QGIS Changelog

for QGIS 0.11.0 'Metis'

% This document is in txt2tags format
% To generate html do:
% txt2tags -t html -o QGIS.0.11.0VisualChangelog.html QGIS.0.11.0VisualChangelog.txt
% To generate moin moin do:
% txt2tags -t moin -o QGIS.0.11.0VisualChangelog.moin QGIS.0.11.0VisualChangelog.txt

It is our great pleasure to announce the immediate availability of Quantum GIS (QGIS) Version 0.11.0 'Metis'. This release includes over XXXXX bug fixes and stability improvements and introduces several new features including Python support enhancements, see below for more details!
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:
<pre>
 - 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/
</pre>

<pre>
 [[""http://farm4.static.flickr.com/3142/2639621657_84fb393ea7"".jpg] http://farm4.static.flickr.com/3142/2639621657_66439d0c5e_o.png] 
</pre>

Since we call each 'point' release of QGIS after a planetary moon, Metis was chosen as the name for this release. Metis is the closest (and smallest) moon orbiting Jupiter. The choice of Metis is symbolic since QGIS 0.11.0 is the last planned release before QGIS 1.0 is announced. Hereafter a summary of some of the more noticeable changes in this release of QGIS.

h1. Visual Changes 

h2. Toolbar Tweaks 

<pre>
 [[""http://farm4.static.flickr.com/3159/2639603623_2cd2421c2a"".jpg] http://farm4.static.flickr.com/3159/2639603623_936e7f39fa_o.jpg] 
</pre>

We've made some tweaks to the layout of the toolbars in Metis (pictured below). In (1), all icons used for adding data have been grouped together (with the exception of GRASS). In (2) digitising icons have been grouped more naturally with feature editing icons first then vertex editing icons.

h2. Legend Improvements 

<pre>
 [[""http://farm4.static.flickr.com/3063/2640430520_4cdc4bae5e"".jpg] http://farm4.static.flickr.com/3063/2640430520_7a458b4d5b_o.jpg] 
</pre>

The QGIS 0.11.0 legend (pictured right) has undergone some enhancements as part of our user interface review. Layer names are shown in bold so they stand out from class names more. The class fields list is now optional (configured in QGIS options dialog) and is off by default to provide a cleaner default look. Lastly you will notice that the legend (and overview pane) are now dock widgets. The dock widgets  mean less wasted screen space and for users with dual screen setups, you can place the legend on one screen and the map canvas on another.

h2. Vector Dialogs : Symbology 

<pre>
 [[""http://farm4.static.flickr.com/3061/2640430996_4c7118064d"".jpg] http://farm4.static.flickr.com/3061/2640430996_4c7118064d_b.jpg] 
</pre>

All of the dialogs have undergone a revision for style and layout consistency and to improve usability. Lets start by looking at the vector symbology tab. The classes in the class list now display a symbol preview (as can be seen in the Metis version of the dialog on right). This makes it much easier to work with class lists without having to remember what previous assignments have been made. Also random colours can now be assigned to classes.

h2. Vector Dialogs : Metadata 

<pre>
 [[""http://farm4.static.flickr.com/3022/2640431520_49395c09c6"".jpg] http://farm4.static.flickr.com/3022/2640431520_49395c09c6_b.jpg] 
</pre>

Display of vector (and similarly for raster) metadata is now themed to match your desktop environment theme (in the illustrated case Ubuntu).

h2. Vector Dialogs : Actions 

<pre>
 [[""http://farm4.static.flickr.com/3017/2640432026_a91e86c29f"".jpg] http://farm4.static.flickr.com/3017/2640432026_a91e86c29f_b.jpg] 
</pre>

The actions dialog has been cleaned up so that wasted screen space (as seen in the 0.10.0 image on left) is avoided.

h2. Raster Dialog 

<pre>
 [[""http://farm4.static.flickr.com/3079/2640432600_9c069143ed"".jpg] http://farm4.static.flickr.com/3079/2640432600_e0b737af9a_o.jpg] 
</pre>

The raster properties dialog has received some attention too - raster properties for RGB or Grayscale images are only shown in context, so for example if you have an RGB image as illustrated, you wont see irrelevant Grayscale image options. Also raster images (and other non-file based layers!) are now supported with QML styles, so hitting the save as default button (as shown in QGIS 0.11.0 screenshot on right) will cause your settings to be applied whenever it is added to a project in the future.

h2. Project Properties 

<pre>
 [[""http://farm4.static.flickr.com/3151/2639606247_d1ff67c60d"".jpg] http://farm4.static.flickr.com/3151/2639606247_eab170f681_o.jpg] 
</pre>

This dialog has also been revised so that the layout from QGIS 0.10.0 (as seen to left) is now implemented more neatly.

h2. QGIS Options 

<pre>
 [[""http://farm4.static.flickr.com/3279/2639606595_c1d2884528"".jpg] http://farm4.static.flickr.com/3279/2639606595_55b6ccae13_o.jpg] 
</pre>

We've also revised this dialog, making better use of the available space by combining the 'General' and 'Rendering' dialogs from QGIS 0.10.0 (on left) into a single 'General' dialog. The digitizing tab now has an option to choose vertex marker style. We've also added a 'proxy' tab and removed the proxy settings used in creating wfs and wms connections. The Options proxy settings will be used globally for all connections, making it easy to move in and out of proxy enabled networks.

h2. New Vector Layer 

<pre>
 [[""http://farm4.static.flickr.com/3114/2639606933_7bd20508dd"".jpg] http://farm4.static.flickr.com/3114/2639606933_763325bd64_o.jpg] 
</pre>

The pop-up for setting attributes and name for a new field has been incorporated directly into the 'New Vector Layer' dialog, which makes the process of creating new field definitions faster.

h2. Attributes Table 

<pre>
 [[""http://farm4.static.flickr.com/3125/2639607327_4e406c6af0"".jpg] http://farm4.static.flickr.com/3125/2639607327_4e406c6af0_b.jpg] 
</pre>

The attributes table has been tweaked so there is more space for the search bar below. The Close/Help buttons have been implemented using Qt's QDialogButtonBox which basically means that button ordering and icons etc will adhere to the human interface guidelines of your operating system. This improvement has been carried out on all other dialogs too, so the layout of buttons on dialogs will feel more in keeping with other applications on your computer.

h1. 'Under the hood' changes 

h2. QML Style support for Raster, Database layers 

In addition to the more visual areas described above, we have made many changes behind the scenes too. As briefly mentioned above, QML style support has been extended to raster and database layers so that you can style layers once and have those style assignments loaded by default when you add the layer to your map.

h2. Python Support 

Python support has undergone numerous improvements. One of the main changes is that python support is now built into its own library which separates it more cleanly from the QGIS application. This simplifies the packaging and distribution. Python support also includes better error reporting and misc bug fixes.

h2. In-memory providers 

For programmers there is a new provider type for creating in-memory layers. This is useful if you want to make a transient layer without reverting to kludges. The provider implements all capabilities and features also spatial indexing.

h2. Automated generation of projection information in srs.db 

Projection information / proj lines are being updated all the time in the gis world. The most important source for this is the epsg database (www.epsg.org). The GDAL/PROJ team 
uses this database to keep up to date with changing insights/information. QGIS was trying to keep this information up to date by updating a (sqlite) srs.db by hand. This process is now automated with a script, so we keep our projection data uptodate in line with GDAL and friends.

h2. Support for Qt4.2.x discontinued 

In order to take advantage of some of the new features in Qt4.3, and because Qt4.3 is now available in most mainstream distributions, we have discontinued support for Qt 4.2.x. Also work is underway to remove the need for the Qt3Support compatibility layer, with only a few small places where these libraries are still required, and we aim to remove the final dependancy on legacy Qt3 calls by the final 1.0 release of QGIS.

h1. Changelog from svn 

svn log -r 8243:8714 | grep -i '^[a-z][a-z]' | sed -e "s\^\- \1" > log.txt
(sanitized / hand editid 8/7 by Richard Duivenvoorde, so please only add/change lines now...)
(depending on when there is a branch, we can add the latest 'changes')

- Made some small changes to whats new too.
- Fix build error due to not returning bool
- Disable move vertex tool for point layers (fixes bug 979)
- Updated changelog for 'Io' release
- German translation update
- SPIT plugin update
- Update Mac release scripts for 0.10.0.
- updated french gui .ts files for translations
- Fix z-order issue when writing LAYER sections of the map file
- Fix rpath issue
- Disable some initially enabled editing maptools
- Fix #1052 'Uninitialized field variables in QgsPostgresProvider '
- Fix for #130 'Database default fields'
- Added option to have the old vertex markers back
- Add fixdiff.pl to convert svn diff from other architectures
- Polish gui translation updates
- Use Qt 4.2 compatible properties
- Search CMake default standard locations rather than explicitly encoding standard locations into files. On a Mac, the standard locations may also include framework paths and the frameworks need to be searched either first or last depending upon other CMake settings.
- Add GRASS-6.3 to the Mac GRASS search paths.
- Remove all use of Qt3 compatibiliy routines except for the GRASS provider/plugin. Automatic casts of QString to char* have also been removed for compatibility with Qt/Mac-Cocoa (64-bit).
- Remove selection every time in QgsAttributeTable::handleChangedSelections()
- Fix for bug #1057 'Trivial bug in qgsmaptoolmovefeature.cpp'
- Fix for ticket #1058 'Some UI fixes in Options dialog'
- Change order of x- and y- coordinates in WMS bbox parameter for 1.3 and for geographic coordinate systems. This is as described in the WMS1.3 specifications (for WMS1.1.1, there is no such change)
- Merged Release-0.10.0 changes r8366:r8391 into the trunk.
- Spanish gui translation updates
- GRASS plugin r.in.gdal/r.in.gdal.loc update
- Debian package: add files added to release branch to trunk
- Update french gui translation
- Fix leaks calling OGR_DS_ExecuteSQL (fixes #1083)
- Changed version to 0.11.0 for trunk
- Fix tests to work with QT_NO_CAST_TO_ASCII
- Update turkish gui translations
- New splash for Metis
- Alternative post build scripts for mac if using qgis universal deps bundle for OS X
- Updated projection icon for status bar.
- Create resource file from icons
- Third alternative mac post build script for building dmg
- Numerous changes in GUI HIG revision:
- Changed release name to Metis
- Added some HIG guidelines (more to come)
- Enable qtsql module
- Change all remaining Qt include filenames from qxxx.h to QXxx and adjust other Qt include statements as necessary. (GRASS provider/plugin not changed since it hasn't been updated from Qt3 to Qt4 yet.)
- Merge of rendercontext branch into trunk
- Replaced zoomFull() code with a single QGraphicsView function.
- Added cursor tips for composer maps and images.
- Changed std::map to QMap in QgsRasterLayer::identify(), updated PyQGIS
- Implement #1087 'adding postgis data with geometry field based on a domain and not a simple geometry type'
- Added x11 deps required for herob
- Fix for ticket #942 'gpx extension not added to file name'
- Fix for problems with floating point outline width for hard markers
- Fix for continuous color rendering of points, changed test qml files to mm units
- Differentiate between field scale and raster scale factor such that field scaled point symbols all have the same outline width
- Some cleanup in point rendering code
- Changed testimage for renderers
- Some labeling cleanups (fixes #1088)
- Fix linking of python bindings on windows
- Fix rendering off added features
- Fix crash on invalid raster layers
- Fix #928 'Plugin Manager: let select/de-select plugins also by clicking within the checkbox'
- Added a small script to tidy away tmp, orig and rej files left by svn
- Updates for tims post install mac scripts
- Don't artificially limit the raster types available. Note if you have a lot of gdal file types supported the file filter is very long.
- Created a custom view delegate for displaying in lists like the plugin manager and the grass toolbox.
- The delegate allows displaying a title (in bold) and a description underneath it (in normal font), without needing to resort to using tables & columns. 
- The qgsdetailed item data class is a new qvariant type that can be used to pass title, description etc between the model and the view.
- Removed the definition for UNUSED as we have replaced all UNUSED in the source tree with Q_UNUSED
- On windows and mac, add the plugins dir to the search path on application start up.
- Reimplemented plugin manager to use a list view rather than a table view and to use the custom qgsdetaileditemdelegate for display of available plugins
- Fix MSVC warning
- make QgsDetailedItemDelegate link on windoze
- Dont use PREFIX on linux (or anywhere else). On linux assume prefix is appdirpath/.
- This fixes issues where qgis is nor relocatable after building, and removes cmake warnings about duplicate definition of PREFIX. Note that to be relocatable you should not build using rpath support..
- Sync sip with c++ core
- Fix QgsSpatialRefSys::createFromWkt
- Fix grass crash
- Fix for bug #1096 Snapping to currently moved vertex should be suppressed
- Fixed python console (was displaying plain text)
- Moved text2tags sources into docs dir.
- Made some minor updates to coding.t2t
- Added style sheet for text2tags rendering
- Minor change to commenting
- Fixed / Removed kludge for getting detailed widget capture to layout out by calling show() on it quickly first.
- Added show settings to show application var state when debugging
- Prettified application variable name
- Some minor updates to docs
- Gui tidy ups for the project props dialog as part of the general GUI revision
- Make the top level legend item bold for each layer so that it stands out from the categories under it.
- Revisions to improve gui layout and useability. Note the custom projection navigation buttons are temporary and will be updated shortly with icons.
- Gui cleanups to main app window
- Better handling of python errors raised during initialization.
- enhance unique value dialog
- Updated polish gui translation file
- Even better python errors handling: now displaying traceback, python version and python path.
- Fixed uninstalling redirection from python console
- Icon updates to templates and gave icon master a better name
- Navigation buttons for custom prj dialog
- SVG master for zoom icons
- Nav button for custom prj dialog
- Small icon cleanups
- make the highlight gradient a little less extreme
- Added missing icons for rec naviagation to the custom projection dialog
- Syntactical change in QgsApplication wrapper to match its C++ counterpart
- More sane python paths order: first qgis-wide python path, then plugins don't try to reload plugins, it has just a little meaning and might do some problems for plugins. Moreover it was producing output to console.
- Made QgsPythonUtils a singleton instead of a class with all members being static.
- Python utilities separated to an interface and implementation.
- Remove some duplication of version vars in top level cmakelists.txt
- Implemented word wrap in manually draw detailed item delegate and other related cleanups
- Further work on ui cleanups and useability:
- Just fixed some code indentation
- Remove superfluous ^ symbol
- Gui cleaunups and use buttonbox
- Update list widget colors on reset/randomize colors
- Keep current row on classify
- Support for non-ascii characters in path to home directory.
- Moved python support to a library, QGIS app now during the initialization tries to load that library.
- Renamed non db icon to add ogr layer for better naming
- Hide list view in grass toolbox as I hadent meant to commit it yet
- Fix building python plugin on windows
- Remove /bin from application path for MSVC build
- Fix strange compile error with MSVC9
- Package python support seperately in debian
- Add support for maptool doubleclick events
- Fix for #1118 '"Display Field" option in layer properties greyed out for Postgis layers'
- Fix for #1119 'Display field does not stick in general tab of layer properties'
- Removed files that are unused - part of cleanups of code base for 1.0 release.
- Remove references to deleted uis
- Use button box for cross platform consistency
- Use pushbutton instead of abstract button to prevent compile errors
- Remove deprecated include of attribute dialog header
- Remove cmake 2.6 warnings
- Unique value dialog: ask if the existing classes should be deleted when classifying on a new attribute
- Gui cleanups for attribute capture when digitising. Create a dynamically generated dialog rather than using a table widget.
- Fix for label size in printing output (bug #1097)
- Fix restoration of saved main window position
- Updated post build scripts for mac (Tims Version) so that python libs all have proper relative references into bundle for the lib deps.
- Add backward compatibility for Mac CMake 2.4
- Update german translation
- Add path so Mac qgispython lib can be found.
- Updates debian packaging
- Spanish gui translation updates
- Applied patch that fixes QgsGeometry::setWkbGeometry() in Python
- Applied patch for simpler retreival of coords from QgsPoint
- Update feature id of added features in OGR and PostgrSQL provider
- Applied patch to return features (with new IDs) after being added.
- Strip current schema from selected tables to match postgres provider behaviour
- Save qml of non-file datasources to qgis user database
- Use QgsVectorDataProvider::getUniqueValues() in unique value dialog again (was lost in r8440)
- Apply changes to layer before saving qml
- Call OSRImportFromProj4() in locale "C" (fixes #1120)
- Possibility to add WMS layers through plugin interface
- Display the grass modules list as second tab which avoids rendering issues. Enabled list mode.
- Use cmake script with CONFIGURE_FILE rather than grep/sed to create Mac Info.plist. This circumvents command-line quoting problems when upgrading to CMake 2.6.
- Update Polish gui translation
- Changed some debug statements to use QgsDebugMsg
- Refactored grass tools and plugin manager to always use qgsdetaileditemdata to represent the info to be display in items. This will let us switch between widget based and manually drawn implementations easily.
- Get svn revison number for Mac Info.plist from top-level source directory rather then current source directory.
- Fix filtering bug in plugin manager
- Sort the model proxy after populating so python and c++ plugins get sorted irrescective of their type.
- Fix height bug manifesting in plugin manager and grass toolbox list view
- Removed non-functional MySQL provider - was just a copied from Postgres provider, with old provider interface which is not being used anymore, 2 years without any development.
- Added "memory" provider. It stores all data in heap, offering 3rd party developers fast provider for temporary data.
- Small fix for multipart geometry types
- Additional conversion from Q3ListView to QTreeWidget. This is an addition to r8406 and fixes #1074.
- For Q3ListView, each item is already set to the new selection state when on_lstLayers_selectionChanged is called. For QTreeWidget, each item still has the old selection state and selectedItems() must be used to get the new selection state.
- Remove use of Qt3 support inline routines which redirect old Qt3 names to new Qt4 names. Remove USE_QT3SUPPORT from top-level CMakeLists and add it to GRASS provider/plugin CMakeLists so that all use of Qt3 names and libraries is limited to these two directories.
- Update dutch gui translations
- Applied patch to fix problem where attributes where not copied for modified features
- Fix compile error on windows
- Fix link error on windows
- Add memoryprovider to debian package
- Remove declaration which causes Qt3Support dependency.
- Accept EPSG and epsg when constructing srs
- Added global proxy configuration to options dialog. Use the follow qsettings keys to obtain proxy configs: proxy/proxyEnabled, proxy/proxyHost, proxy/proxyPort, proxy/proxyUser and proxy/proxyPassword. Note that the proxy password is not encrypted in any way when stored in Qt config file / win registry.
- Implemented proxy support to be application global rather than set on a per connection basis
- Fixed problem with iterating over features of memory provider
- Added QgsRect::intersects(QgsRect) predicate
- Polishing and optimizations in memory provider:
- Project file transformation from 0.10.0 to 0.11.0
- Revert r8586 and solve issue in QgsVectorLayer (fixes #1126)
- Fix #958 'wrong cursor after quiting edit mode'
- Use QPrinter instead of QPixmap to find out screen resolution
- Correct wrong version name in wfs get capabilities
- Fix gcc 4.3 warnings, a gcc 4.3 compile error and a MSVC warning
- Fixed a potential bug in case someone calls QgsMapCanvas::setOverview(NULL)
- Updates for internationalisation from Carlos
- Fix #1130 'Query builder attaches sql clause to wrong entry when PostGIS table has multiple geometry columns'
- Replaced some occurences of default srs id with epgs id
- Fix multiple table selection
- Fix #1131 'shapefile export of PostGIS layer: field size for integer is too small'
- Updates spanish gui translation
- Fix some lupdate warnings
- Update german translation
- Fix windows link errors
- Do not accept band-less dataset as valid (#1040)
- Improve error propagation for raster open errors (#1040)
- Moved const to the place where it belongs
- Fix for bug #1136 measure tools show wrong values
- Hungarian gui translation update
- Fixed broken filewriter unit test by changes in qgsapplication by adding a mechanism to find the install root of qgis.
- Use new prefix path mechanism to locate resources
- Use new mechanism to find path. Test still fails due to small differences in rendered output