This page will contain the visual changelog for QGIS 1.0.0. Please use t2t markup inside the

 tags below.

<pre>
QGIS Changelog

for QGIS 1.0.0 'Kore'

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

h1. Preface : A Message from the Project Steering Committee Chair 

Welcome to Quantum GIS version 1.0. and version 1.0 of the QGIS Users Guide. This release is the culmination of literally hundreds of hours of work by a team of developers, translators, documentation writers, and graphics designers. 

QGIS began life in February of 2002, with the first release in June of the same year. The initial goal was to create a viewer for PostGIS data that ran on Linux. From those humble beginnings, QGIS has become a true cross-platform application that runs on all major versions of unix, Linux, as well as Mac and Windows. It supports editing and map composition as well as integration with GRASS to provide powerful GIS capability. 

At 1.0 we provide a stable API from which you can develop custom solutions in Python or C++. Even though 1.0 is fresh, there are a number of exciting developments underway in both the core application and plugins. Although it took nearly 7 years to get to version 1.0, I think you'll find that this version is the best yet. Thanks for using QGIS---you, the users, have played a large part in its success.

-- Gary Sherman, Chair, QGIS Project Steering Committee

[[""http://farm4.static.flickr.com/3105/3156736741_76e9b94dac"".jpg] http://farm4.static.flickr.com/3105/3156736741_03f9bdce54_o.jpg]

h1. Introduction 

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. 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>

QGIS 1.0 brings with it a wealth of improvements, over 265 bug fixes and many new features. This is also a landmark release in that it is our first API stable release and contains a core set of features needed to make QGIS into a very capable and user friendly GIS data browser. There are some things that didn't make it into this release, most notably support for advanced labelling - which we will incorporate into our next point release. Now that 1.0 is out we won't be resting on our laurels - there are still many bug fixes, improvements and new features that need taking care of. We will be continuing bug fixing on the 1.0 release for at least the next year, and will provide maintenance releases when we have significant bug fixes to disseminate. These releases will be numbered with a minor designation (e.g. 1.0.1, 1.0.2 etc) and will contain no new features. We recommend users who are most interested in stability and isolation from change (e.g. on corporate and organisational desktops) to follow the Stable 1.0.x bug fix release series. In addition, we will be incorporating new features into point releases (1.1.0, 1.2.0 etc). These releases will incorporate downstream bug fixes where possible but the focus will be on innovation and integration of new ideas rather than just stability. We recommend the Unstable 1.x point releases for users interested in trying out new features and who don't mind the odd bump in the road. Both the Stable and Unstable release series will maintain backwards API compatibility so that developers can use the QGIS API with confidence that it won't undergo changes and break their applications.

Along with the release of QGIS 1.0, the QGIS Community Team is also extremely pleased to announce the immediate availability of the QGIS Users' Guide version 1.0. This is a substantial body of work that includes a complete revision of the guide, addition of many new sections covering the user interface, introductory tutorials on programming with QGIS, notes on compilation, and much more! The guide includes many screenshots to make it easy to digest. Work will soon begin in translating this guide into additional languages. In all the QGIS User's Guide includes over 250 pages of content and is a fantastic companion to the QGIS 1.0.0 application. The guide can be downloaded from http://download.qgis.org.

For a nice overview of the bugs that were fixed for this release, take a look at: https://trac.osgeo.org/qgis/milestone/Version%201.0.0

h1. Download your copy 

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

[[""http://farm4.static.flickr.com/3076/3157654522_921f451ac5_m"".jpg] http://farm4.static.flickr.com/3076/3157654522_e4fef4c6b9_o.jpg]

Lets take a deeper look at what's new in this release...

h1. Main Application 

[[""http://farm4.static.flickr.com/3284/3156997809_199d5693da"".jpg] http://farm4.static.flickr.com/3284/3156997809_43e25ffbd8_o.png]

When modifying a layer's properties the project will now be marked as unsaved. We also have improved the 'qml' saved style support so that it is portable across different layers (assuming they are compatible).

h2. Theming and UI 

[[""http://farm4.static.flickr.com/3092/3156998303_d37c4ef999"".jpg] http://farm4.static.flickr.com/3092/3156998303_d2a1d9f675_o.png]

This release has seen a complete audit of the user interface. QGIS now
tries to follow the Human Interface Guidelines (HIG) of the operating
system and desktop environment you are currently working on. This includes
menu and button arrangement that will adapt itself to Windows, Mac OS X,
Gnome and KDE. We also went through the dialogs and standardised the
layouts, labels and visual appearance so that in general they will appear
consistent with each other. This release also brings to new icon themes to
QGIS:

- The old icons are back as 'classic' theme
- Addition of a new theme called 'GIS'
-

We also did some infrastructural work to ensure themes are better
supported. One thing left outstanding is theme support for QGIS plugins -
which we will add in a future version.

h2. Vector Related Updates 

[[""http://farm4.static.flickr.com/3080/3157830318_4188acbe96"".jpg] http://farm4.static.flickr.com/3080/3157830318_148dd131b3_o.png]

The postgres provider received some maintenance so that it better manages open cursors. Other work to improve the general quality of the PostgreSQL provider was carried out.

Right clicking on a vector layer and using the 'save as shapefile' or 'save selection as shapefile' options will now let you specify a coordinate reference system for the exported shapefile.

The attribute table for vector layers can now be docked into the main window (disabled by default, enable it in the QGIS settings dialog).

When editing vector layers, topological editing now allows all features using a shared vertex to be updated at the same time when that vertex is moved.

It is now possible to select features using a single click, instead of having to drag a bounding box always. When polygons are selected, they also keep their outline colour so that selecting multiple polygons doesn't make them appear merged. When using the 'split feature' tool, if features are selected, only the selected features will be split. 

h2. Raster Related Features 

[[""http://farm4.static.flickr.com/3085/3157830566_482cc27aaf"".jpg] http://farm4.static.flickr.com/3085/3157830566_ff6f657db9_o.png]

When adding a raster layer, its legend entry now shows a mini icon of that
layer making it easier to associate the legend entry with its layer. It is
now possible to build pyramids (aka overviews) internally or externally
where supported by GDAL. Building pyramids externally is useful since it
is non-destructive to the original image. We also now provide better
progress feedback during the pyramid building process.

h2. Map Composer 

[[""http://farm4.static.flickr.com/3222/3157000091_5011563d7a"".jpg] http://farm4.static.flickr.com/3222/3157000091_b6e3271fdc_o.png]

The map composer has been completely overhauled with many improvements made so that it is possible to produce good quality maps.

h2. Symbology Improvements 

[[""http://farm4.static.flickr.com/3215/3157000287_fe7b0fc083"".jpg] http://farm4.static.flickr.com/3215/3157000287_1039ae926f_o.png]

Point symbols sizes can now be specified using decimal numbers for more precise size specification.

h1. Plugins 

[[""http://farm4.static.flickr.com/3081/3157000539_548157df57"".jpg] http://farm4.static.flickr.com/3081/3157000539_2e3eea75bb_o.png]

QGIS Plugins have undergone a number of improvements - new plugins have been added and we've made many cleanups to existing ones:

- GPS Plugin now supports more than 2 com ports on windows
- A new 'coordinate capture' plugin was added that lets you click on the map and then cut & paste the coordinates to and from the clipboard
- A new plugin for converting between OGR supported formats was added.
- A new plugin for converting from DXF files to shapefiles was added.
- A new plugin was added for interpolating point features into ASCII grid layers.
- The python plugin manager was completely overhauled, the new version having many improvements, including checking that the version of QGIS running will support a plugin that is being installed.
- Plugin toolbar positions are now correctly saved when the application is closed.
- In the WMS client, WMS standards support has been improved.
-

h2. GRASS Plugin 

[[""http://farm4.static.flickr.com/3238/3157832150_f6f184d55d"".jpg] http://farm4.static.flickr.com/3238/3157832150_d5890e283a_o.png]

- Allow vertical resizing of GRASS toolbox windows
- Many of the modules have been revised and updated.
- QGIS now supports GRASS 6.4
-

h1. Windows 

The windows installer wizard has been updated and improved.

h1. For developers 

- The QGIS API documentation (covering qgis_core and qgis_gui modules) was updated and made more consistent.
- The QGIS API was overhauled so that naming conventions are much more consistent across QGIS and also more consistent with Qt4 conventions. For the publicly visible parts of the API we have removed abbreviations and used clear intuitive variable, function and enumeration naming. For example a function like setYMin is now know as setYMinimum. A complete list of these changes is provided lower down. **Note that this API is incompatible with earlier QGIS releases and you will need to update your source code accordingly.** This API will be supported over a long period since we will now maintain backwards compatibility for the 1.x release series.
- The source code has been 'prettified' using astyle so that it uses consistent indentation and spacing throughout.
- For GEOS library calls we have migrated all code over to use the GEOS C-API which improves binary compatibility.
- For GDAL library calls we have also migrated to use the C-API for GDAL/OGR.
- 

h1. Developer Notes 

** If you are a normal user, this section probably won't be very interesting for you - it contains a lot of technical details about changes we have made to the QGIS programming environment.**

In making cleanups before 1.0 feature freeze we have made numerous consistency fixes to the gui api. This will affect all plugins which will need minor adjustments in order to work again. Please see the notes below for a detailed list of changes we have made.  Obviously we realise these changes will inconvenience many plugin and third party application writers, but it was important to make them now before we start the QGIS 1.x  release series. In the 1.x series we will be guaranteeing backwards API compatibility between 1.x releases - something we have not offered to this point. This guarantee is a double edged sword - it will make it much easier to write long lived QGIS based applications, but it will also drastically reduce the flexibility we will have to make substantial improvements to the API.

Thank you all for your understanding in this and let us know if you need any help in porting your application or plugin to the updated API.

List of key changes follow:

<pre>
 - QgsMapRender has been renamed to QgsMapRenderer (and its include file is now #include <qgsmaprenderer.h>)
 - QgsMapCanvas::mapRender() is now QgsMapCanvas::mapRenderer()
 - QgsLayerProjectionSelector is now called QgsGenericProjectionSelector. To get the same behaviour as the original 
 - QgsLayerProjectionSelector call the new setMessage() method with no arguments. 
 - QgsProviders now use rewind() instead of reset() to return to the start of the selected features
 -
</pre>

Example of how to use updated projection selector class:

```
QgsGenericProjectionSelector mySelector;
mySelector->setMessage();
```

QgsApplication::themePath() is deprecated, instead you should use QgsApplication::defaultThemePath() or probably more likely 
you will want to use the new QgsApplication::activeThemePath(). On a side note, you should update your theme logic so that if 
an icon in the active theme is not found it will fall back to default path. There are two static convenience functions : 

```
QPixmap QgisApp::getThemePixmap(const QString theName)
QIcon QgisApp::getThemeIcon(const QString theName)
``` 

that will manage this for you. If you are writing third party code that doesnt have access to QgisApp, you can copy and 
paste this method if needed.

For the remainder of this document, we are describing the API Changes as an rpl instruction list. RPL is a search and replace 
program that runs under linux. We have combined nearly all of the API changes we made into a sequence of rpl statements 
presented as a single bash script below. Please take careful note of the comments at the start of this script. This script will 
not completely automate the process and for best results we really do recommend making these changes manually rather. Always 
work on a backup copy of your code!

Using rpl (sudo apt-get install rpl) in preview mode (remove -s to make it work for real)

```
# !/bin/bash

# Please use this script with caution on a backup copy of your sources!
# Note this list is not exhaustive and you may need to do some manual tweaking 
# and / or disable selected lines below to get the desired result

# Tim Sutton August 2006

rpl -R -x .cpp -x .h -x .sip "DOM" "Dom" *
rpl -R -x .cpp -x .h -x .sip "setXmin" "setXMinimum" *
rpl -R -x .cpp -x .h -x .sip "setXmax" "setXMaximum" *
rpl -R -x .cpp -x .h -x .sip "layerCoordsToOutputCoords" "layerToMapCoordinates" *
rpl -R -x .cpp -x .h -x .sip "coordXForm" "coordinateTransform" *
rpl -R -x .cpp -x .h -x .sip "layerCoordsToOutputCoords" "layerToMapCoordinates" *
rpl -R -x .cpp -x .h -x .sip "outputCoordsToLayerCoords" "mapToLayerCoordinates" *
rpl -R -x .cpp -x .h -x .sip "renderContext" "rendererContext" *
rpl -R -x .cpp -x .h -x .sip "dirty()" "isDirty()" *
rpl -R -x .cpp -x .h -x .sip "filename( QString" "setFilename( QString" *
rpl -R -x .cpp -x .h -x .sip "filename(" "setFilename(" *
rpl -R -x .cpp -x .h -x .sip "transformInPlace" "transform" *
rpl -R -x .cpp -x .h -x .sip "asWKTCoords" "asWktCoordinates" *
rpl -R -x .cpp -x .h -x .sip "stringRep" "toString" *
rpl -R -x .cpp -x .h -x .sip "coordTransform" "coordinateTransform" *
rpl -R -x .cpp -x .h -x .sip "minValue" "minimumValue" *
rpl -R -x .cpp -x .h -x .sip "setLabelOn" "enableLabels" *
rpl -R -x .cpp -x .h -x .sip "labelOn" "hasLabelsEnabled" *
rpl -R -x .cpp -x .h -x .sip "wasModified" "layerModified" *
rpl -R -x .cpp -x .h -x .sip "getDataProvider" "dataProvider" *
rpl -R -x .cpp -x .h -x .sip "mupp" "mapUnitsPerPixel" *
rpl -R -x .cpp -x .h -x .sip "Mupp" "MapUnitsPerPixel" *
rpl -R -x .cpp -x .h -x .sip "QgsSpatialRefSys" "QgsCoordinateReferenceSystem" *
rpl -R -x .cpp -x .h -x .sip "qgsspatialrefsys" "qgscoordinatereferencesystem" *
rpl -R -x .cpp -x .h -x .sip "SRS" "CRS" *
rpl -R -x .cpp -x .h -x .sip "qgsspatialrefsys" "qgscoordinatereferencesystem" *
rpl -R -x .cpp -x .h -x .sip "setFilename()" "fileName()" *
rpl -R -x .cpp -x .h -x .sip "ilename" "ileName" *
rpl -R -x .cpp -x .h -x .sip "ayername" "ayerName" *
rpl -R -x .cpp -x .h -x .sip "CRSID" "CrsId" *
rpl -R -x .cpp -x .h -x .sip "QgsCoordinateReferenceSystem::QGIS_CrsId" "QgsCoordinateReferenceSystem::QGIS_CRS_ID" *
rpl -R -x .cpp -x .h -x .sip "createFromSrsId" "createFromCrsId" *
rpl -R -x .cpp -x .h -x .sip "srs()" "crs()" *
rpl -R -x .cpp -x .h -x .sip "srsid()" "crsid()" *
rpl -R -x .cpp -x .h -x .sip "crsid()" "crsId()" *
rpl -R -x .cpp -x .h -x .sip "CRS_TYPE" "CrsType" *
rpl -R -x .cpp -x .h -x .sip "QGIS_CRS_ID" "QgisCrsId" *
rpl -R -x .cpp -x .h -x .sip "QGIS_CRS_ID" "QgisCrsId" *
rpl -R -x .cpp -x .h -x .sip "POSTGIS_SRID" "PostgisCrsId" *
rpl -R -x .cpp -x .h -x .sip "QGIS_CrsId" "QgisCrsId" *
rpl -R "FORWARD" "ForwardTransform" .
rpl -R "REVERSE" "ReverseTransform" .
rpl -R "CRS_TYPE" "CrsType" .
rpl -R "QGIS_CRSID" "InternalCrsId" .
rpl -R "POSTGIS_SRID" "PostgisCrsId" .
rpl -R "EPSG" "EpsgCrsId" .
rpl -R "setSrsId" "setInternalId" .
rpl -R -x .cpp -x .h -x .sip "setSelectedCRSName" "setSelectedCrsName" *
rpl -R -x .cpp -x .h -x .sip "USER_PROJECTION_START_Id" "UserProjectionStartId" *
rpl -R -x .cpp -x .h -x .sip "USER_PROJECTION_START_ID" "UserProjectionStartId" *
rpl -R -x .cpp -x .h -x .sip "EPSG" "Epsg" *
rpl -R -x .cpp -x .h -x .ui -x .sip "EPSGID" "EpsgId" *
rpl -R -x .cpp -x .h -x .ui -x .sip "getSelectedSRID" "getSelectedCrsId" *
# provider
rpl -R -x .cpp -x .h -x .sip "setFetchFeaturesWithoutGeom" "enableGeometrylessFeatures" *
rpl -R -x .cpp -x .h -x .sip "indexFromFieldName" "fieldNameIndex" *
# vector layer
rpl -R -x .cpp -x .h -x .sip "deleteVertexAt" "deleteVertex" *
rpl -R -x .cpp -x .h -x .sip "moveVertexAt" "moveVertex" *
rpl -R -x .cpp -x .h -x .sip "insertVertexBefore" "insertVertex" *

rpl -R -x .cpp -x .h -x .sip "getMapCanvas" "mapCanvas" *
rpl -R -x .cpp -x .h -x .sip "getMainWindow" "mainWindow" *
rpl -R -x .cpp -x .h -x .sip "addPluginMenu" "addPluginToMenu" *
rpl -R -x .cpp -x .h -x .sip "getToolBox" "toolBox" *
rpl -R -x .cpp -x .h -x .sip "dirOnly" "isDirOnly" *
rpl -R -x .cpp -x .h -x .sip "fileOnly" "isFileOnly" *
rpl -R -x .cpp -x .h -x .sip "getCurrentSRSID" "currentCrsId" *
rpl -R -x .cpp -x .h -x .sip "getCurrentCRSID" "currentCrsId" *
rpl -R -x .cpp -x .h -x .sip "getCurrentCrsId" "currentCrsId" *
rpl -R -x .cpp -x .h -x .sip "getCurrentEpsg" "currentEpsg" *
rpl -R -x .cpp -x .h -x .sip "setSelectedCRSID" "setSelectedCrsId" *
rpl -R -x .cpp -x .h -x .sip "getSelectedCRSID" "selectedCrsId" *

rpl -R -x .cpp -x .h -x .sip "getSelectedSRID" "getSelectedPostgresSrId" *
rpl -R -x .cpp -x .h -x .sip "getSelectedPostgresSrId" "selectedPostgresSrId"*
rpl -R -x .cpp -x .h -x .sip "getSelectedProj4String" "selectedProj4String" *
rpl -R -x .cpp -x .h -x .sip "getSelectedEpsg" "selectedEpsg" *
rpl -R -x .cpp -x .h -x .sip "getSelectedName" "selectedName" *
rpl -R -x .cpp -x .h -x .sip "setSelectedCRSName" "setSelectedCrsName" *
rpl -R -x .cpp -x .h -x .sip "applyUserProjList" "loadUserCrsList" *
rpl -R -x .cpp -x .h -x .sip "applyProjList" "loadCrsList" *
rpl -R -x .cpp -x .h -x .sip "stringSQLSafe" "sqlSafeString" *

rpl -R -x .cpp -x .h -x .sip "visible()" "isVisible()" *
rpl -R -x .cpp -x .h -x .sip "inOverview" "isInOverview" *
rpl -R -x .cpp -x .h -x .sip "getScale" "scale" *
rpl -R -x .cpp -x .h -x .sip "zoomFullExtent" "zoomToFullExtent" *
rpl -R -x .cpp -x .h -x .sip "zoomPrevious" "zoomToPrevious" *
rpl -R -x .cpp -x .h -x .sip "useQImageToRender" "useImageToRender" *
rpl -R -x .cpp -x .h -x .sip "updateCanvasItemsPositions" "updateCanvasItemPositions" *
rpl -R -x .cpp -x .h -x .sip "setbgColor" "setBackgroundColor" *
rpl -R -x .cpp -x .h -x .sip "toMapCoords" "toMapCoordinates" *
rpl -R -x .cpp -x .h -x .sip "toLayerCoords" "toLayerCoordinates" *
rpl -R -x .cpp -x .h -x .sip "toCanvasCoords" "toCanvasCoordinates" *
rpl -R "METERS" "Meters" .
rpl -R "FEET" "Feet" .
rpl -R "DEGREES" "Degrees" .
rpl -R "getZpos" "layer" .
rpl -R "getNextFeature" "nextFeature" .
rpl -R "getFeatureAtId" "featureAtId" .
rpl -R "getDefaultValue" "defaultValue" .
rpl -R "allAttributesList" "attributeIndexes" .
rpl -R "UNKNOWN" "Unknown" .
rpl -R "PROJECTION" "CRS" .
rpl -R "WKBTYPE" "WkbType" .
rpl -R "VectorType" "GeometryType" .
rpl -R "QGis::units" "QGis::UnitType" .
rpl -R "type" "type" .
rpl -R "qgisVersionInt" "QGIS_VERSION_INT" . 
rpl -R "qgisVersion" "QGIS_VERSION" .
rpl -R "qgisReleaseName" "QGIS_RELEASE_NAME" .
rpl -R "qgisSvnVersion" "QGIS_SVN_VERSION" .
rpl -R "QgsClipper::maxX" "QgsClipper::MAX_X" .
rpl -R "QgsClipper::maxY" "QgsClipper::MAX_Y" .
rpl -R "QgsClipper::minX" "QgsClipper::MIN_X" .
rpl -R "QgsClipper::minY" "QgsClipper::MIN_Y" .

rpl -R "vectorType" "type" .
rpl -R "qgisVersionInt" "QGIS_VERSION_INT" . 
rpl -R "qgisVersion" "QGIS_VERSION" .
rpl -R "qgisReleaseName" "QGIS_RELEASE_NAME" .
rpl -R "qgisSvnVersion" "QGIS_SVN_VERSION" .
rpl -R "UNKNOWN" "Unknown" .
rpl -R "PROJECTION" "CRS" .
rpl -R "WKBTYPE" "WkbType" .
rpl -R "VectorType" "GeometryType" .
rpl -R "QGis::units" "QGis::UnitType" .

rpl -R "LAYERS" "QgsMapLayer::LayerType" .
rpl -R "QgsMapLayer::RASTER" "QgsMapLayer::RasterLayer" .
rpl -R "QgsMapLayer::LAYERS" "QgsMapLayer::LayerType" .

rpl -R "WKT" "Wkt" .
rpl -R "getCRS" "crs" .
rpl -R "connInfo" "connectionInfo" .

rpl -R "setSourceCRS" "setSourceCrs" .
rpl -R "sourceCRS" "sourceCrs" .
rpl -R "projectionsEnabled" "hasCrsTransformEnabled" .
rpl -R "ellipsoidInvFlattening" "ellipsoidInverseFlattening" .
rpl -R "getBearing" "bearing" .

rpl -R "resetDirty" "clean" .
rpl -R "featureId()" "id()" .

rpl -R "isSymbologyCompatible" "hasCompatibleSymbology" .
rpl -R "errorCaptionString" "lastError" .
rpl -R "isSymbologyCompatible" "hasCompatibleSymbology" .
rpl -R "errorCaptionString" "lastErrorTitle" .
rpl -R "setSrs" "setCrs" .
rpl -R "setMinScale" "setMinimumScale" .
rpl -R "setMaximumScale" "setMaximumScale" .
rpl -R "setMaxScale" "setMaximumScale" .
rpl -R "minScale" "minimumScale" .
rpl -R "maximumScale" "maximumScale" .
rpl -R "maxScale" "maximumScale" .

rpl -R "setScaleBasedVisibility" "toggleScaleBasedVisibility" .
rpl -R "scaleBasedVisibility" "hasScaleBasedVisibility" .

rpl -R "scaleBasedVisibility" "hasScaleBasedVisibility" .
rpl -R "SIGNAL( setStatus" "SIGNAL( statusChanged" .
rpl -R "SIGNAL( setStatus" "SIGNAL( statusChanged" .
rpl -R "SIGNAL(setStatus" "SIGNAL( statusChanged" .
rpl -R "SIGNAL( setStatus" "SIGNAL( statusChanged" .
rpl -R "emit setStatus" "emit statusChanged" .
rpl -R "OUTPUT_UNITS" "OutputUnits" ../src/ .
rpl -W -R "MM" "Millimeters" .

rpl -R "distArea" "distanceArea" .
rpl -R "setOverview" "enableOverviewMode" .
rpl -R "warnOlderProjectVersion" "oldProjectVersionWarning" .
rpl -R "numberFeatures" "featureCount" .
rpl -R "numberFeatures" "featuresCountes" .
rpl -R  "featuresCountes" "featuresCounted" .
rpl -R "getMetadata" "metadata" .
rpl -R "setCoordTransform" "setCoordinateTransform" .
rpl -R "setEmpty()" "clear()" .
rpl -R "SNAP_TO" "SnappingType" .
rpl -R "SnappingType_VERTEX" "SnapToVertex" .
rpl -R "SnappingType_SEGMENT" "SnapToSegment" .
rpl -R "SnapToVertex_AND_SEGMENT" "SnapToVertexAndSegment" .
rpl -R "SNAP_MODE" "SnappingMode" .
rpl -R "ONE_RESULT" "SnapWithOneResult" .
rpl -R "SEVERAL_RESULTS_SAME_POSITION" "SnapWithResultsForSamePosition" .
rpl -R "ALL_RESULTS_WITHIN_GIVEN_TOLERANCES" "SnapWithResultsWithinTolerances" .

#
# Raster
#
rpl -R -x .cpp -x .h -x .sip "getAlphaValue" "alphaValue" src/ python/
rpl -R -x .cpp -x .h -x .sip "getTransparentThreeValuePixelList" "transparentThreeValuePixelList" src/ python/
rpl -R -x .cpp -x .h -x .sip "getTransparentSingleValuePixelList" "transparentSingleValuePixelList" src/ python/
rpl -R -x .cpp -x .h -x .sip "generateShadedValue" "shade" src/ python/
rpl -R -x .cpp -x .h -x .sip "getRasterShaderFunction" "rasterShaderFunction" src/ python/
rpl -R -x .cpp -x .h -x .sip "getMinimumValue" "minimumValue" src/core/ src/app  python/
rpl -R -x .cpp -x .h -x .sip "getMaximumValue" "maximumValue" src/core/ src/app  python/     
rpl -R -x .cpp -x .h -x .sip "bandNo" "bandNumber" src/ python/
rpl -R -x .cpp -x .h -x .sip "histogramOutOfRangeFlag" "isHistogramOutOfRange" src/ python/
rpl -R -x .cpp -x .h -x .sip "histogramEstimatedFlag" "isHistogramEstimated" src/ python/
rpl -R -x .cpp -x .h -x .sip "maxVal" "maximumValue" src/ python/
rpl -R -x .cpp -x .h -x .sip "minVal" "minimumValue" src/ python/
rpl -R -x .cpp -x .h -x .sip "statsGatheredFlag" "statsGathered" src/ python/
rpl -R -x .cpp -x .h -x .sip "sumSqrDev" "sumOfSquares" src/ python/
rpl -R -x .cpp -x .h -x .sip "stretch" "enhanceContrast" src/core/ src/app  python/
rpl -R -x .cpp -x .h -x .sip "enhanceValue" "enhance" src/ python/
rpl -R -x .cpp -x .h -x .sip "getMaximumPossibleValue" "maximumValuePossible" src/ python/
rpl -R -x .cpp -x .h -x .sip "getMinimumPossibleValue" "minimumValuePossible" src/ python/
rpl -R -x .cpp -x .h -x .sip "getColorRampItemList" "colorRampItemList" src/ python/
rpl -R -x .cpp -x .h -x .sip "getColorRampType" "colorRampType" src/ python/
rpl -R -x .cpp -x .h -x .sip "getMaximumColorCacheSize" "maximumColorCacheSize" src/ python/
rpl -R -x .cpp -x .h -x .sip "getDiscreteColor" "discreteColor" src/ python/
rpl -R -x .cpp -x .h -x .sip "getExactColor" "exactColor" src/ python/
rpl -R -x .cpp -x .h -x .sip "getInterpolatedColor" "interpolatedColor" src/ python/
rpl -R -x .cpp -x .h -x .sip "getInvertHistogramFlag" "invertHistogram" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getNoDataValue" "noDataValue" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "drawThumbnail" "thumbnailAsPixmap" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getPaletteAsPixmap" "paletteAsPixmap" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterXDim" "width" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterYDim" "height" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getStdDevsToPlot" "standardDeviations" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setStdDevsToPlot" "setStandardDeviations" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getBandCount" "bandCount" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterBandStats" "bandStatistics" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterBandName" "bandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterBandNumber" "bandNumber" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getDrawingStyle" "drawingStyle" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRedBandName" "redBandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getGreenBandName" "greenBandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getBlueBandName" "blueBandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getGrayBandName" "grayBandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterTransparency" "rasterTransparency" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getTransparentBandName" "transparentBandName" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getContrastEnhancement" "contrastEnhancement" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getColorShadingAlgorithm" "colorShadingAlgorithm" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterShader" "rasterShader" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterLayerType" "layerType" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getRasterLayerType" "rasterType" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getHasPyramidsFlag" "hasPyramids" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getLegendQPixmap" "legendAsPixmap" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getDetailedLegendQPixmap" "legendAsPixmap" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getUserDefinedRGBMinMax" "hasUserDefinedRGBMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getUserDefinedGrayMinMax" "hasUserDefinedGrayMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setUserDefinedRGBMinMax" "setUserDefinedRGBMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setUserDefinedGrayMinMax" "setUserDefinedGrayMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setActualRGBMinMaxFlag" "setRGBMinimumMaximumEstimated" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getActualRGBMinMaxFlag" "isRGBMinimumMaximumEstimated" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setActualGrayMinMaxFlag" "setGrayMinimumMaximumEstimated" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getActualGrayMinMaxFlag" "isGrayMinimumMaximumEstimated" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getColorTable" "colorTable" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "setInvertHistogramFlag" "setInvertHistogram" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "getProjectionWkt" "projectionWkt" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "hasStats" "hasStatistics" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "buildRasterPyramidList" "buildPyramidList" src/ python/ tests/

# Variables name changes ( private variables but impact project files )
rpl -R -x .cpp -x .h -x .sip "mInvertPixelsFlag" "mInvertColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mRasterXDim" "mWidth" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mRasterYDim" "mHeight" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "rasterLayerType" "mRasterType" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "drawingStyle" "mDrawingStyle" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mUserDefinedRGBMinMaxFlag" "mUserDefinedRGBMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mUserDefinedGrayMinMaxFlag" "mUserDefinedGrayMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mRGBActualMinimumMaximum" "mRGBMinimumMaximumEstimated" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "mGrayActualMinimumMaximum" "mGrayMinimumMaximumEstimated" src/ python/ tests/

# Enum changes also impacts project files 
# NOTE!! the order of these is important if using rpl becuase of Partial changes occur
rpl -R -x .cpp -x .h -x .sip "COLOR_SHADING_ALGORITHM" "ColorShadingAlgorithm" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "UNDEFINED_SHADING_ALGORITHM" "UndefinedShader" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PSEUDO_COLOR" "PseudoColorShader" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "FREAK_OUT" "FreakOutShader" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "COLOR_RAMP" "ColorRampShader" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "USER_DEFINED" "UserDefinedShader" src/ python/ tests/

rpl -R -x .cpp -x .h -x .sip "RASTER_LAYER_TYPE" "LayerType" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "GRAY_OR_UNDEFINED" "GrayOrUndefined" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PALETTE" "Palette" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "MULTIBAND" "Multiband" src/ python/ tests/

rpl -R -x .cpp -x .h -x .sip "DRAWING_STYLE" "DrawingStyle" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "UNDEFINED_DrawingStyle" "UndefinedDrawingStyle" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "SINGLE_BAND_GRAY" "SingleBandGray" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "SINGLE_BAND_PseudoColor" "SingleBandPseudoColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PaletteD_COLOR" "PalettedColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PaletteD_SingleBandGray" "PalettedSingleBandGray" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PaletteD_SingleBandPseudoColor" "PalettedSingleBandPseudoColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "PaletteD_MULTI_BAND_COLOR" "PalettedMultiBandColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "MULTI_BAND_SingleBandGray" "MultiBandSingleGandGray" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "MULTI_BAND_SingleBandPseudoColor" "MultiBandSingleBandPseudoColor" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "MULTI_BAND_COLOR" "MultiBandColor" src/ python/ tests/

rpl -R -x .cpp -x .h -x .sip "CONTRAST_ENHANCEMENT_ALGORITHM" "ContrastEnhancementAlgorithm" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "NO_STRETCH" "NoEnhancement" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "STRETCH_TO_MINMAX" "StretchToMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "STRETCH_AND_CLIP_TO_MINMAX" "StretchAndClipToMinimumMaximum" src/ python/ tests/
rpl -R -x .cpp -x .h -x .sip "CLIP_TO_MINMAX" "ClipToMinimumMaximum" src/ python/ tests/

# composer

rpl -R "QgsComposerItem::mouseMoveAction" "QgsComposerItem::MouseMoveAction" src/ python/ tools/ tests/
rpl -R "QgsComposerItem::moveItem" "QgsComposerItem::moveItem" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeUp" "QgsComposerItem::ResizeUp" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::moveItem" "QgsComposerItem::MoveItem" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeDown" "QgsComposerItem::ResizeDown" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeLeft" "QgsComposerItem::ResizeLeft" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeLeft" "QgsComposerItem::ResizeLeft" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeRight" "QgsComposerItem::ResizeRight" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeDRightUp" "QgsComposerItem::ResizeRightUp" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeDRightDown" "QgsComposerItem::ResizeRightDown" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeDLeftDown" "QgsComposerItem::ResizeLeftDown" src/ tools/ tests/ python/
rpl -R "QgsComposerItem::resizeDLeftUp" "QgsComposerItem::ResizeLeftUp" src/ tools/ tests/ python/

#
# Gui classes
# 
rpl -R "setBgColor" "setBackgroundColor" src/ python/ tools/ tests/
rpl -R "reflectChangedExtent" "drawExtentRect" src/ python/ tests/ tools/
rpl -R "gotPoint" "canvasClicked" src/ python/ tests/ tools/
rpl -r "yMin()" "yMinimum()" src/ python/ tests/ tools/
rpl -R "yMin()" "yMinimum()" src/ python/ tests/ tools/
rpl -R "xMin()" "xMinimum()" src/ python/ tests/ tools/
rpl -R "xMax()" "xMaximum()" src/ python/ tests/ tools/
rpl -R "yMax()" "yMaximum()" src/ python/ tests/ tools/
rpl -R "QgsRect" "QgsRectangle" src/ python/ tools/ tests/
rpl -R "qgsrect.h" "qgsrectangle.h" src/ python/ tools/ tests/
rpl -R "qgsrect.cpp" "qgsrectangle.cpp" src/ python/ tools/ tests/

```

</pre>