QGIS 0.10 "Io" Release Announcement

It is our great pleasure to announce the immediate availability of Quantum GIS (QGIS) Version 0.10.0 'Io'. This release includes over 140 bug fixes and stability improvements and introduces several new features including Python support, see below for previews!

Binary and source code packages are available at http://download.qgis.org.

Quantum GIS (QGIS) is a user friendly Open Source Geographic Information System (GIS), licensed under the GNU General Public License, that runs on Linux, Unix, Mac OSX, and Windows. QGIS is Open Source software and its free of cost (download here). It supports vector, raster, and database formats (including the most common ESRI ShapeFile and geotiff). QGIS supports a wide variety of plugins to do things like display tracks from your GPS, and much more. They can be easily managed through the Plugin Manager.

As an open source project, we provide support for using QGIS via our mailing lists and bug tracker:

* For general enquiries subscribe to our users mailing list at http://lists.osgeo.org/mailman/listinfo/qgis-user
* For developer related enquiries subscribe to our separate developers list at http://lists.osgeo.org/mailman/listinfo/qgis-developer
* If you think you have found a bug, please report it using our bug tracker. When reporting bugs, please include some contact information in case we need help with replicating your issue at https://trac.osgeo.org/qgis/

For users

New button theme

We have overhauled the application icons to improve consistency and clarity. This is the first part of complete graphical user interface audit we will be doing in the lead up to the final release of QGIS 1.0.


The new button theme (in front) and a glimpse of the new digitising handles

Digitising

The digitising tools have received a lot of attention in this release, with improved ability to edit and split features, insert and delete vertices and snap to neighboring features. Editing vertices is now easier with the improvements made to the digitising handles.

Style support

Another handy new feature in this release is the ability to associate default layer style settings with a layer. At the moment only vector, file based layers are supported - in the future this will be extended to support rasters and database sourced vectors. When editing the properties of a layer, simply click the 'save as default' button in the layer properties dialog. Then in future those settings will automatically be applied any time you add that layer to a project. The saved settings include symbology and labelling etc.

Raster refactor

We have made many changes to the raster implementation in this release, including the ability to have finer control over transparency in a raster. Also it is now possible to apply custom colour classifications to single band rasters (or multiband rasters when being represented as a single band). For those using rasters that are not 'north up', QGIS now respects the rotation properties for the raster and should display it properly.

Drag and drop

QGIS now has support for drag-drop operations from your file manager into the application.

Python plugin repositories

The addition of python bindings to QGIS has really raised a lot of interest, with many people beginning to implement some really neat python based plugins for QGIS. We have now set up a central repository for contributed python plugins.

We have also added the capability to browse and install these plugins from within the QGIS application. There is also the possibility to use custom repositories, so you can create a repository with your favourite plugins to share with your friends and co-workers.

Rotating and scaling symbols

This version of QGIS introduces the ability to rotate and scale vector point symbols based on the value in a selected field of the attribute table. This is handy, for example, for orienteering maps where each node should show a symbol pointed in a specific direction.

Rev up

Previous versions of QGIS had issues opening old project (.qgs) files. This version introduces 'revup' support to update the .qgs file if it detects it was created in an older version of QGIS.

For developers

Gdal capi port

The use of GDAL nad OGR throughout QGIS has been revised so that it uses only the C API for GDAL/OGR. This will improve ABI (Application Binary Interface) compatibility between QGIS and subsequent versions of GDAL.

Python bindings

The python bindings have undergone continued improvement and bug fixing. In addition, support for functions for geometry operations like union, intersection have been added.

Some python bindings for geometry operations make it possible to make a geoprocessing plugin

Project News

On the 14th of march, OSGeo announced that the Quantum GIS project has graduated from the incubation process and is now a full fledged OSGeo project.

We are pleased to announce that Paolo Cavallini ( cavallini AT faunalia.it), has been elected as the final member of the QGIS Project Steering Committee. Paolo will be responsible for steering financial activities of the QGIS project. If you are a happy QGIS user and would like to donate towards, you may be interested to know that we are planning a bug squashing hackfest in the run up to the release of QGIS version 1.0. If you are interested in participating in the hackfest, note that you don't need to be a programmer, since we need people to help get documentation, usability and various other aspects of QGIS ready. Contact Paolo if you would like to come and lend a hand!

Community involvement in the QGIS project has resulted in two new teams forming:

  • The QGIS Community Team keeps contact with the community, takes care of documentation and GUI translation processes, and ensures smooth running of the QGIS.org online experience including web sites, blog, mailing lists, forums etc. If you are interested in helping, please feel free to contact us and subscribe to the qgis-community-team mailing list.
  • The QGIS release team coordinates the release process, packagin and announcing new releases to the world at large. If you are interested in helping, please feel free to contact us and subscribe to the qgis-release-team mailing list.

Forming these dedicated teams will help us contually improve the quality of the QGIS application and online experience. Once again these new teams are predominantly made up of non-programmers and we would like to encourage anyone interested in helping to not be shy and jump in!

Lastly we should mention that the project has moved various facilities (e.g. download site, mailing lists and SVN repository) onto OSGEO.org servers and we thank them for the support.

Changelog

An assorted selection from the subversion changelog:

For users

  • Fix for #846 * No miles / inches display in scale bar
  • Accept urls with and without ? for wfs layers. Removed warning string for wfs and increased version string to '0.1'
  • Swedish translation for trunk
  • Added Thai translation provided by Man
  • Changed to a custom cross hair mouse pointer when using measurement tool. Fixes #862
  • Extended GPS plugin with a tab for performing conversions of GPX files, with the help of gpsbabel. Requested in #648.
  • PyQGIS: support for Mac universal builds * fixes #876
  • Russian translation provided by Artem
  • spanish translation updates from Carlos Dávila
  • Fix for ticket #890 "python plugin installer unzip fails"
  • Fix for #893 * focus whole rows and give table widget focus on dialog open
  • first part of advanced editing branch merge
  • Merge of advanced editing branch is now done
  • New MapServer export plugin implemented in Python. This is a core plugin and installed with QGIS. The old exporter (C++/SWIG/Python) has been removed from the build and the code will be removed following complete testing of the new plugin.
  • Fixed selection of features in vector layer so the map canvas doesn't get rerendered many times during the operation.
  • Commit postgis dialog extension to trunk
  • Merge of raster transparency branch
  • new files from raster transparency branch
  • First pass at improved digitising icons * there are still some refinements needed here
  • Fixed crash when reading project file with non *existing raster file
  • include move feature tool when handling state of editing tools
  • Finalised (hopefully digitising icons)
  • Cleaner win app icon
  • Improvements and Fixes for quickprint
  • update german language
  • Specify bgcolour as 152,219,249 so it doesnt look so turdacious on windows
  • Swedish translations
  • Improvement to polygon splitting
  • Committed patch from #901 * fixes for pg query dialog
  • Updated grass icons to make grass image stand out more and not obscure backgrounds to much
  • nicer vertex markers for editing
  • Enhanced maximum value for digitizing double spin boxes
  • Fix for bug that crashed qgis when moving the first/last vertex of a line
  • Fix for bug where topological editing did not work for polygons with remove intersection option
  • fix for bug #925 'Add Island' and 'Add Ring' not greyed *out when leaving edit mode
  • Make zoomToLayer, zoomFull and zoomSelected all adds the same five percent margin around the extent. Fixes #932.
  • Various fixes for quickprint:
  • Support user defined page size selection
  • Added ability to set paper size to python api
  • Fix for bug where projects loaded slowly
  • Allow large numbers to be entered (reverted to line edits)
  • Some fixes for graticule creation when origin is > endpoint
  • Fix alignment issue with scale bar unit
  • Remember last used page size
  • Default to A4 on first use
  • Beatify scale bar a little
  • Cleanups to the quickprint output to manage text overruns in legend and improve alignment of text in various places.
  • Insert a 'Cancel' button to the dialogs when stop editing, fix for bug #944
  • Updated Slovak translation (#934).Many thanks to Lubos Balazovic!
  • Some tweaks to try to ensure proper font sizing in projected maps and to make the scale bar a little skinnier
  • Drag and drop implementation.
  • Fix tab order in gps dialog. Fix for #943
  • Fix to enable spatial bookmarks with non *ascii characters
  • Fixed window title which was showing incorrect label
  • updated gui translations from Christian Ferreira
  • update hungarian messages
  • delimited text plugin: enable button to parse if the text in the delimiter field has changed
  • spanish translation updates from Carlos Dávila

For developers

  • Fix for #854 * Dont assert for unknown types in QgsVectorFileWriter
  • Modified Build Instructions for dependencies * More to come for GDAL
  • Merged all track segments into one line. Possibly, a MultiLine should be used instead. Fixes bug #696
  • Call setCodec("UTF *8") when reading UTF *8 text; it is not the default for Macs. Also change Qt deprecated Q_OS_MACX to Q_WS_MAC.
  • fix crash while editing shapes
  • Save and restore window position for AttributeTable, Bookmarks and HelpViewer.
  • Fix for ticket #847 (make the requirement for a header row in a delimited text file clearer)
  • Fix for ticket #420 (attribute table can truncate displayed data)
  • Tried a new way of displaying text, hopefully easier for translations.
  • Fixed #872 in plugin_template, made links clickable and changed template to make it more translateable
  • Fix for ticket #830 (print composer pane is wrong on first running of qgis)
  • Added various qmls to test data for unit testing different renderers
  • Patch that provides incremental screen update
  • protect editing tools if map canvas is rendering
  • Applied patch from #892 which removes qt3 deps for plugin manager. Muito obrigado Fernando!
  • Removed last slash for path to python plugins in home directory. It was the reason why plugins in home dir couldn't be accessed on Windows.
  • Create directory for python plugins if it doesn't exist
  • Applied patch from Fernando to provide grass export to dxf option
  • Initial commit of new quick print plugin: The plugin seeks to cater for users who want to print a map with no hassle, and does not seek to replace the mapcomposer plugin which is aimed at advanced users. Since I hate wasting paper / cutting down trees, I have made the quick print plugin output to pdf for digital redistribution or optionally printing from pdf.
  • Added quick print plugin to build list
  • updated python bindings for rubber band
  • Fixes compilation of bindings, added wrapper for QgsSnapper.
  • Moved all conversions between c++ templates and python objects to one file.
  • removed QgisPlugin from the bindings (not used anyway)
  • Committed patch from ticket #897 * port pg and attribute search dialogs to qt4
  • Resave under Qt designer 4.2.3 rather than 4.3 (fails to compile otherwise)
  • revert some changes from r7926, which break building debian packages
  • Use english for logical values of band names in project files. Use String comparision properly
  • re *disable msexport and remove it from the debian package as it's going to be turned into a plugin
  • Adds some margin to zoomToLayer. Fixes #881
  • Build fix for GRASS on mingw/cygwin. I hope it works on other systems too...
  • Predifine icon size as a var instead of redecllaring each time
  • added qgsprojectversion.h to installed headers so third party apps using qgsproject have all needed headers available
  • Added missing GUI_EXPORT
  • Upgrade point size when reading old project to make it look the same. Also change default point size to same loko as previously
  • Saved using qt4.2 and added lblMinMaxEstimateWarning
  • Disconnect signals on unload to avoid crash when plugin has been unloaded.
  • Merged maptips *branch 7939:7967 into trunk
  • Potential fix for directory unzip problems
  • Moved qgsmaptip class to .../src/app where it is used
  • Put maptip in gui lib so 3rd party apps can use it. Make it do GUI_EXPORT and install its header so it builds properly on win and that 3rd party apps can find its header.
  • Turn on console output when debugging on windows
  • Updates to raster tests * added image writing capability. At teh moment it will write to /tmp/raster_test.png. Later I will write different files out after performing various colour and transparency operations on the test dataset.
  • Use mpRasterLayer *>getRasterLayerType() instead of mpRasterLayer *>rasterLayerType
  • Unit test for pseudocolor
  • Cleaned up and added debug output for north arrow plugin
  • Moved the dbmodel classes to app as they are not very likely to be of use to third part apps
  • Added QgsGeometry::buffer() function that returns buffer around the geometry.
  • Added missing sip file for quickprint
  • Context help for spanish updates from Carlos Davila
  • Fix for bug #904: 'no decorations'
  • Limit scale bar with
  • Cleaned up gps importer translation
  • Cleaned up translation for qgsrasterlayerproperties
  • Let single symbol render mark borders of areas when selected, just as the other renderers
  • Fixes to the mapserver exporter
  • Changed feature splitting mechanism such that it is possible to generate several new features with one split
  • Fixing capture points
  • Expose maprender height and width via the public api
  • Added a helper class for unit tests that will compare an image with a maprender product and return true or false based on their equiality or on the time it takes to render the output. It will also produce a difference image so that dissimilar areas in the two images can easily be identified. Lastly it generates a simple report as an html snippet for easy inclusion of results in a test report in a web browser.
  • Updated these tests to use the qgsrenderchecker class to validate results.
  • srcMakelist modified to gui tests will build
  • Prefix image urls with file://
  • Removed polygon outlines so maprender test passes
  • Fix point size so unit test passes again
  • Updated control image for raster pseudo tests
  • Resave using qt designer 4.2.3 to allow compilation with that version
  • Use qRgba to set pixel values
  • Install raster ramp shader header needed for 3rd party apps
  • Remove cursor manipulation from httptransaction to make core library X11 independent
  • added forgotten parameter
  • Added raster test for a multiband image
  • Added missing loadDefaultStyle to raster ctor (its not enabled in ui for 0.9.2 since its untested and unstable)
  • Added test image for testing multiband raster images
  • Added mising expected landsat basic control image
  • Added fromMultiPoint method to QgsGeometry
  • Also added code to convert geos multipoint to wkb multipoint
  • Added copyright and license info for plugin_installer files
  • Added qml for testing landsat
  • Added unit test for setting raster qml which sets bands rgb as 875
  • Removed redundant maplayer section
  • Renamed landsat_clip to landsat and updated raster test accordingly
  • Replace deprecated activated() calls to qaction with triggered() * removes COMPAT warning on console
  • More updates to icons
  • Fix for #870 (suggest python sip4 for runtime)
  • Use double spin boxes to insert default snapping tolarance and search radius for vertex edits
  • Improvement to feature splitting: if there is a selection, the split tool only considers the selected features. If not, all the features intersecting the bounding box of the split line are considered
  • Updated spanish translations from Carlos Davila
  • Add Qt *supplied qt_ar.ts corresponding to new qgis_ar.ts file. Translated About, Preferences and Quit menu items on Mac need this file. It also provides translations for all Qt library strings as well.
  • Updated nsis version to 0.9.2rc2
  • Commented out scale and rotation debug causing log spam
  • more robust line/multiline splitting
  • Eliminate GEOS 3.0 deprecated header warnings by including individual headers instead of deprecated multifile headers.
  • fix for bug where feature splitting was not possible if bounding box of split line was a line
  • Insert 0 for missing geometries in postgres provider. Plus little performance enhancement by avoiding unnecessary copies
  • Use more logic ordering for toolbar icons and menu entries
  • Saved dialog using qt4.2.x
  • Saved ui in qt4.2.x
  • Fix .so collision between lib and app in deb packaging
  • Add geos include dir for grid maker plugin
  • Dont make page size methods slots
  • Added add postgres layer icon to master svg
  • Make maprender able to tell us the map size and dpi (there were previously no accessors for this)
  • Fixed a memory leak in postgres provider (that was caused by my own modifications a week ago)
  • Restore map canvas to exactly same size and dpi after printing
  • WIMPY's window installer files from 0.9.2 release branch
  • Dont call method 'max' because its a reserved word / compiler macro on some platforms (MSVC) and causes build failures
  • Use qMax macro instead of reimplementing the same thing
  • Use png rather than xpm for desktop icon.
  • Run dh_icons & dh_desktop in rules
  • Added mim types and try to put qgis in root of application menu (Until I can figure out how to get it to create a new menu folder called science and add it into there)
  • Commited patch from Stefanie for QgsVectorLayer::snapToGeometry
  • Added forgotten setAttributeMap() wrapper
  • Fix for const iterator
  • Added some 0 pointer checks for geometry (useful e.g. in cases of NULL geometries in postgis layers)
  • Remove need for specifying the web browser. QDesktopServices are used instead.
  • Applied patch for bug #938. Thanks to smizuno!
  • Modified geos exception catching. It seems that geos2 throws exceptions as pointers and geos3 as objects
  • Patch from smizuno to fix bug #954. Thanks!
  • Updated to use osgeo repo path for svn
  • Add capability of doing HTTP POST request to QgsHttpTransaction. Uses a default argument to maintain interface compatibility
  • Changed required version to gutsy
  • Initial test for qgsgeometry. At the moment it only does the following:
  • Please feel free to add further tests here as you work on qgsgeometry * its very simple to do with the framework I have put in place now...
  • Union test
  • Write column and row as graticule attributes
  • Fix for if WITH_BINDINGS is off but python was found, cmake was still trying to build python stuff.
  • Only change project snapping settings if it was changed in the dialog
  • Better creation of list of directories of a zip file. Fixes installation problem with some plugins.
  • Updated osx build procedure with notes from William
  • Regenerated INSTALL procedure to reflect Williams changes
  • Added some logic to allow libs and headers in non default locations to be used with priority over those in default locations (/usr and /usr/local)
  • Added clauses (not enabled by default) to not build any parts of code base requiring grass or pg support.Before this change it was not possible to disable them building if you did have pg grass on your system because when the cmake rules found them to be present it assumes you want to build with them. This may not always be the case. Note that if you disable them you have to do it explicitly before CMakeCache.txt is generated: e.g. *DWITH_GRASS=OFF *DWITH_POSTGRESQL=OFF otherwise the default behaviour is to build if those libs are present (as it was before this commit)
  • Added the possibility to use these libs from non default locations by specifying them in LIB_DIR. Before this change, the presence of the lib in /usr or /usr/local would override command line specified paths
  • Wrapped QgsEncodingFileDialog
  • Stop editing before layer remove if necessary
  • fix msvc warnings
  • don't try to add attributes twice, if some attribute change fails
  • reintroduce getPoint method for QgsRubberband
  • keep editing on failed attribute commit
  • allow changing attributes of added and not yet commited features
  • followup to r8211 * missed a file
  • Added support for a default snap mode (can be to vertex, to segment, to vertex and segment)
  • add QgsRubberBand::getPoint to python interface (following up r8209)
  • Merge of C *API into trunk
  • Added the possibility to use these libs from non default locations by specifying them in LIB_DIR. Before this change, the presence of the lib in /usr or /usr/local would override command line specified paths
  • Fix error in sqlite find path
  • Added the option (off by default) to build with an internal copy of sqlite3. This is the recommended approach by the author of sqlite3, but the old way (linking to an external lib) remains default for now. To use add *DWITH_INTERNAL_SQLITE3 to cmake command line
  • Added clause for finding sqlite header correctly when building internal

Reply