[qgis] branch upstream updated (5b7bdd9 -> 69edb36)

Bas Couwenberg sebastic at debian.org
Fri Oct 21 19:28:58 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a change to branch upstream
in repository qgis.

      from  5b7bdd9   Imported Upstream version 2.16.3+dfsg
       new  69edb36   Imported Upstream version 2.18.0+dfsg

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .editorconfig                                      |     4 +
 CMakeLists.txt                                     |     6 +-
 CTestConfig.cmake                                  |     2 +-
 ChangeLog                                          |  2980 +++-
 NEWS                                               |   209 +-
 ci/travis/linux/qt4/script.sh                      |     2 +-
 ci/travis/linux/qt5/blacklist.txt                  |     1 +
 ci/travis/linux/qt5/script.sh                      |     2 +-
 cmake/FindSpatiaLite.cmake                         |     2 +-
 cmake/SIPMacros.cmake                              |     4 -
 debian/changelog                                   |    20 +-
 debian/compat.in                                   |     2 +-
 debian/control.in                                  |    36 +-
 debian/copyright                                   |    11 +-
 debian/qgis-providers.install.in                   |     4 +-
 debian/rules                                       |     8 +-
 doc/TRANSLATORS                                    |    76 +-
 doc/news.html                                      |   268 +-
 doc/news.t2t                                       |    30 +
 i18n/qgis_de.ts                                    | 13909 ++++++++++---------
 images/images.qrc                                  |   109 +-
 images/splash/splash.png                           |   Bin 3251283 -> 2839175 bytes
 images/themes/default/extents.png                  |   Bin 701 -> 0 bytes
 images/themes/default/histogram.png                |   Bin 510 -> 0 bytes
 images/themes/default/mActionAddBasicShape.png     |   Bin 1102 -> 0 bytes
 images/themes/default/mActionCalculateField.png    |   Bin 1177 -> 0 bytes
 images/themes/default/mActionCaptureLine.png       |   Bin 942 -> 0 bytes
 images/themes/default/mActionDeleteAttribute.png   |   Bin 728 -> 0 bytes
 images/themes/default/mActionFilter.png            |   Bin 1726 -> 0 bytes
 images/themes/default/mActionNewAttribute.png      |   Bin 821 -> 0 bytes
 images/themes/default/mActionRotateLabel.png       |   Bin 1323 -> 0 bytes
 images/themes/default/mActionToggleEditing.png     |   Bin 1046 -> 0 bytes
 images/themes/default/mIconClear.png               |   Bin 773 -> 0 bytes
 images/themes/default/mIconClearText.svg           |    72 +
 images/themes/default/mIconClearTextHover.svg      |    72 +
 images/themes/default/mIconClose.png               |   Bin 502 -> 0 bytes
 .../default}/mIconClose.svg                        |     0
 images/themes/default/mIconWarn.png                |   Bin 658 -> 0 bytes
 images/themes/default/symbologyAdd.png             |   Bin 249 -> 0 bytes
 images/themes/default/symbologyDown.png            |   Bin 514 -> 0 bytes
 images/themes/default/symbologyRemove.png          |   Bin 202 -> 0 bytes
 images/themes/default/transformed.png              |   Bin 3344 -> 0 bytes
 .../themes/default}/transformed.svg                |     0
 ms-windows/Installer-Files/WelcomeFinishPage.bmp   |   Bin 154542 -> 154542 bytes
 ms-windows/osgeo4w/creatensis.pl                   |     7 +-
 ms-windows/osgeo4w/package-nightly.cmd             |     2 +-
 ms-windows/osgeo4w/package.cmd                     |     3 +-
 python/PyQt/PyQt4/Qt.py                            |    27 +
 python/PyQt/PyQt5/Qt.py                            |    27 +
 python/console/console.py                          |     6 +-
 python/console/console_editor.py                   |     8 +-
 python/core/composer/qgscomposerattributetable.sip |     4 +-
 .../core/composer/qgscomposerattributetablev2.sip  |     2 +-
 python/core/composer/qgscomposerlegend.sip         |     4 +-
 python/core/composer/qgscomposerpicture.sip        |    39 +
 python/core/composer/qgscomposition.sip            |     2 +-
 python/core/core.sip                               |     3 +
 python/core/dxf/qgsdxfexport.sip                   |    16 +-
 python/core/geometry/qgsabstractgeometryv2.sip     |     9 +-
 python/core/geometry/qgscurvepolygonv2.sip         |     2 +
 python/core/geometry/qgscurvev2.sip                |     2 +
 python/core/geometry/qgsgeometry.sip               |    43 +-
 python/core/geometry/qgsgeometrycollectionv2.sip   |     1 +
 python/core/geometry/qgsmulticurvev2.sip           |     2 +
 python/core/geometry/qgsmultipointv2.sip           |     2 +
 python/core/geometry/qgsmultipolygonv2.sip         |     2 +
 python/core/geometry/qgsmultisurfacev2.sip         |     2 +
 python/core/geometry/qgspointv2.sip                |     1 +
 python/core/geometry/qgspolygonv2.sip              |     1 +
 python/core/layertree/qgslayertreemodel.sip        |    10 +-
 python/core/qgsannotation.sip                      |     2 +-
 python/core/qgsapplication.sip                     |     4 +-
 python/core/qgsbearingutils.sip                    |    21 +
 python/core/qgscolorscheme.sip                     |     8 +
 python/core/qgseditformconfig.sip                  |    65 +-
 python/core/qgsexpression.sip                      |    65 +-
 python/core/qgsexpressioncontext.sip               |     2 +-
 python/core/qgsexpressionfieldbuffer.sip           |    10 +
 python/core/qgsfeedback.sip                        |    43 +
 python/core/qgsfield.sip                           |    51 +-
 python/core/qgsgeometryvalidator.sip               |     2 +-
 python/core/qgsmaplayer.sip                        |    13 +-
 python/core/qgsmaplayerrenderer.sip                |     4 +
 python/core/qgsmapsettings.sip                     |     3 +-
 python/core/qgsofflineediting.sip                  |     4 +-
 python/core/qgsoptionalexpression.sip              |   112 +
 python/core/qgspallabeling.sip                     |     6 +
 python/core/qgsproject.sip                         |    10 +-
 python/core/qgsrendercontext.sip                   |     1 +
 python/core/qgsstringutils.sip                     |   123 +-
 python/core/qgsvectorlayer.sip                     |    45 +-
 python/core/raster/qgsbrightnesscontrastfilter.sip |     3 +-
 python/core/raster/qgshillshaderenderer.sip        |     1 +
 python/core/raster/qgshuesaturationfilter.sip      |     3 +-
 python/core/raster/qgsmultibandcolorrenderer.sip   |     1 +
 python/core/raster/qgspalettedrasterrenderer.sip   |     1 +
 python/core/raster/qgsrasterdataprovider.sip       |     3 +-
 python/core/raster/qgsrasterdrawer.sip             |     5 +-
 python/core/raster/qgsrasterinterface.sip          |    51 +
 python/core/raster/qgsrasteriterator.sip           |     3 +-
 python/core/raster/qgsrasternuller.sip             |     1 +
 python/core/raster/qgsrasterprojector.sip          |    30 +-
 python/core/raster/qgsrasterrenderer.sip           |     2 -
 python/core/raster/qgsrasterresamplefilter.sip     |     1 +
 .../core/raster/qgssinglebandcolordatarenderer.sip |     1 +
 python/core/raster/qgssinglebandgrayrenderer.sip   |     1 +
 .../raster/qgssinglebandpseudocolorrenderer.sip    |     1 +
 python/ext-libs/owslib/swe/common.py               |     2 +-
 python/ext-libs/owslib/wmts.py                     |     2 +-
 python/ext-libs/owslib/wps.py                      |     4 +-
 .../editorwidgets/core/qgseditorconfigwidget.sip   |     7 +
 python/gui/editorwidgets/qgsdoublespinbox.sip      |    40 +-
 .../gui/editorwidgets/qgsrelationwidgetwrapper.sip |    48 +
 python/gui/editorwidgets/qgsspinbox.sip            |    41 +-
 python/gui/gui.sip                                 |     2 +
 python/gui/layertree/qgslayertreeview.sip          |     8 +
 python/gui/qgscolorschemelist.sip                  |     7 +
 python/gui/qgscolorwidgets.sip                     |     1 +
 python/gui/qgscompoundcolorwidget.sip              |    12 +-
 python/gui/qgsexpressionlineedit.sip               |    82 +
 python/gui/qgsfieldexpressionwidget.sip            |    19 +
 python/gui/qgsfilterlineedit.sip                   |   118 +-
 python/gui/qgspanelwidget.sip                      |    15 +-
 python/gui/qgsrelationeditorwidget.sip             |    40 +
 python/gui/qgstabwidget.sip                        |    84 +
 python/plugins/GdalTools/tools/doBuildVRT.py       |     1 +
 python/plugins/GdalTools/tools/doExtractProj.py    |     8 +-
 python/plugins/db_manager/db_manager.py            |     9 +
 python/plugins/db_manager/db_manager_plugin.py     |    39 +
 python/plugins/db_manager/db_plugins/plugin.py     |     3 +
 .../db_manager/db_plugins/postgis/plugin.py        |     3 +
 .../db_manager/db_plugins/spatialite/connector.py  |     2 +-
 python/plugins/db_manager/dlg_import_vector.py     |    17 +-
 python/plugins/db_manager/dlg_sql_layer_window.py  |   530 +
 python/plugins/db_manager/ui/DlgImportVector.ui    |     9 +-
 python/plugins/db_manager/ui/DlgSqlLayerWindow.ui  |   407 +
 python/plugins/processing/ProcessingPlugin.py      |     2 +-
 .../plugins/processing/algs/gdal/GdalAlgorithm.py  |     3 +-
 .../processing/algs/gdal/ogr2ogrtopostgis.py       |    52 +-
 .../processing/algs/gdal/ogr2ogrtopostgislist.py   |     2 +-
 python/plugins/processing/algs/gdal/warp.py        |    13 +-
 .../processing/algs/grass/GrassAlgorithm.py        |    10 +-
 .../processing/algs/grass7/Grass7Algorithm.py      |     9 +-
 .../plugins/processing/algs/grass7/Grass7Utils.py  |     4 +-
 .../processing/algs/grass7/ext/i_aster_toar.py     |     2 +-
 python/plugins/processing/algs/help/qgis.yaml      |    52 +-
 python/plugins/processing/algs/help/saga.yaml      |    48 +
 python/plugins/processing/algs/qgis/Boundary.py    |    92 +
 python/plugins/processing/algs/qgis/BoundingBox.py |    86 +
 python/plugins/processing/algs/qgis/Buffer.py      |    14 +-
 python/plugins/processing/algs/qgis/Clip.py        |   147 +-
 python/plugins/processing/algs/qgis/Difference.py  |     2 +-
 python/plugins/processing/algs/qgis/Dissolve.py    |    75 +-
 python/plugins/processing/algs/qgis/Eliminate.py   |    20 +-
 .../processing/algs/qgis/ImportIntoPostGIS.py      |     8 +-
 .../plugins/processing/algs/qgis/Intersection.py   |    34 +-
 python/plugins/processing/algs/qgis/MergeLines.py  |    89 +
 .../processing/algs/qgis/MergeLines_BACKUP_1606.py |    89 +
 .../processing/algs/qgis/MergeLines_BASE_1606.py   |    90 +
 .../processing/algs/qgis/MergeLines_LOCAL_1606.py  |     0
 .../processing/algs/qgis/MergeLines_REMOTE_1606.py |    89 +
 .../plugins/processing/algs/qgis/PointOnSurface.py |    83 +
 .../processing/algs/qgis/QGISAlgorithmProvider.py  |     9 +-
 .../processing/algs/qgis/RemoveNullGeometry.py     |    65 +
 .../processing/algs/qgis/SymmetricalDifference.py  |     2 +-
 python/plugins/processing/algs/qgis/Union.py       |     2 +-
 .../algs/qgis/ui/FieldsCalculatorDialog.py         |    15 +-
 .../processing/algs/qgis/ui/FieldsMappingPanel.py  |    48 +-
 python/plugins/processing/algs/r/RAlgorithm.py     |     2 +-
 python/plugins/processing/algs/r/RUtils.py         |     9 +-
 .../processing/algs/saga/SagaNameDecorator.py      |     2 +-
 python/plugins/processing/core/GeoAlgorithm.py     |     3 +-
 python/plugins/processing/core/ProcessingConfig.py |     5 +
 python/plugins/processing/core/parameters.py       |     6 +-
 python/plugins/processing/gui/AlgorithmDialog.py   |    42 +
 .../plugins/processing/gui/AlgorithmDialogBase.py  |     2 +-
 python/plugins/processing/gui/AlgorithmExecutor.py |     5 +-
 python/plugins/processing/gui/BatchPanel.py        |    15 +-
 .../processing/gui/ListMultiselectWidget.py        |     2 +-
 .../plugins/processing/gui/OutputSelectionPanel.py |    35 +-
 .../plugins/processing/gui/ScriptEditorDialog.py   |    25 +-
 .../plugins/processing/modeler/ModelerAlgorithm.py |    15 +-
 python/plugins/processing/modeler/ModelerDialog.py |     2 +-
 python/plugins/processing/script/ScriptSelector.py |     2 +-
 python/plugins/processing/tests/CMakeLists.txt     |     1 +
 .../plugins/processing/tests/GdalAlgorithmsTest.py |    48 +
 python/plugins/processing/tests/ParametersTest.py  |     2 +-
 python/plugins/processing/tests/ToolsTest.py       |   159 +
 .../processing/tests/testdata/dissolve_polys.gfs   |    31 +
 .../processing/tests/testdata/dissolve_polys.gml   |    87 +
 .../expected/clip_lines_by_multipolygon.gml        |    34 +
 .../expected/clip_lines_by_multipolygon.xsd        |    23 +
 .../clip_lines_by_multipolygon_BACKUP_3790.gml     |    34 +
 .../clip_lines_by_multipolygon_BASE_3790.gml       |    34 +
 .../clip_lines_by_multipolygon_LOCAL_3790.gml      |     0
 .../clip_lines_by_multipolygon_REMOTE_3790.gml     |    34 +
 .../testdata/expected/clip_lines_by_polygon.gml    |    24 +
 .../testdata/expected/clip_lines_by_polygon.xsd    |    23 +
 .../expected/clip_multipolygons_by_polygons.gml    |    35 +
 .../expected/clip_multipolygons_by_polygons.xsd    |    43 +
 .../expected/clip_points_by_multipolygons.gml      |    44 +
 .../expected/clip_points_by_multipolygons.xsd      |    23 +
 .../testdata/expected/clip_points_by_polygons.gml  |    44 +
 .../testdata/expected/clip_points_by_polygons.xsd  |    23 +
 .../expected/clip_polys_by_multipolygon.gml        |    37 +
 .../expected/clip_polys_by_multipolygon.xsd        |    43 +
 .../tests/testdata/expected/dissolve_field.gml     |    50 +
 .../tests/testdata/expected/dissolve_field.xsd     |    43 +
 .../testdata/expected/dissolve_two_fields.gml      |    58 +
 .../testdata/expected/dissolve_two_fields.xsd      |    43 +
 .../tests/testdata/expected/lines_boundary.gml     |    48 +
 .../tests/testdata/expected/lines_boundary.xsd     |    23 +
 .../tests/testdata/expected/lines_bounds.gml       |    48 +
 .../tests/testdata/expected/lines_bounds.xsd       |    23 +
 .../tests/testdata/expected/merge_lines.gml        |    33 +
 .../tests/testdata/expected/merge_lines.xsd        |    23 +
 .../tests/testdata/expected/multi_to_single.gml    |    48 +
 .../tests/testdata/expected/multi_to_single.xsd    |    23 +
 .../tests/testdata/expected/multiline_boundary.gml |    33 +
 .../tests/testdata/expected/multiline_boundary.xsd |    23 +
 .../tests/testdata/expected/multiline_bounds.gml   |    33 +
 .../tests/testdata/expected/multiline_bounds.xsd   |    23 +
 .../tests/testdata/expected/multipoint_bounds.gml  |    43 +
 .../tests/testdata/expected/multipoint_bounds.xsd  |    30 +
 .../tests/testdata/expected/multipoly_boundary.gml |    42 +
 .../tests/testdata/expected/multipoly_boundary.xsd |    43 +
 .../tests/testdata/expected/multipoly_bounds.gml   |    42 +
 .../tests/testdata/expected/multipoly_bounds.xsd   |    43 +
 .../tests/testdata/expected/point_bounds.gml       |    59 +
 .../tests/testdata/expected/point_bounds.xsd       |    23 +
 .../tests/testdata/expected/point_on_line.gml      |    48 +
 .../tests/testdata/expected/point_on_line.xsd      |    23 +
 .../testdata/expected/point_on_multipoint.gml      |    43 +
 .../testdata/expected/point_on_multipoint.xsd      |    30 +
 .../tests/testdata/expected/point_on_poly.gml      |    58 +
 .../tests/testdata/expected/point_on_poly.xsd      |    43 +
 .../tests/testdata/expected/poly_boundary.gml      |    58 +
 .../tests/testdata/expected/poly_boundary.xsd      |    43 +
 .../tests/testdata/expected/poly_bounds.gml        |    58 +
 .../tests/testdata/expected/poly_bounds.xsd        |    43 +
 .../processing/tests/testdata/multilines.gfs       |    15 +
 .../processing/tests/testdata/multilines.gml       |    33 +
 .../processing/tests/testdata/multipoints.gfs      |    19 +
 .../processing/tests/testdata/multipoints.gml      |    43 +
 .../tests/testdata/qgis_algorithm_tests.yaml       |   279 +-
 python/plugins/processing/tools/dataobjects.py     |    18 +-
 python/plugins/processing/tools/postgis.py         |     3 +-
 python/plugins/processing/tools/vector.py          |   101 +-
 python/pyplugin_installer/installer_data.py        |     2 +-
 python/qsci_apis/pyqgis.pap                        |   Bin 1270051 -> 1275750 bytes
 python/server/qgswmsconfigparser.sip               |     3 +
 python/server/qgswmsprojectparser.sip              |     4 +
 resources/context_help/HeatmapGui                  |     2 +-
 resources/function_help/json/ILIKE                 |    24 +-
 resources/function_help/json/LIKE                  |    19 +-
 resources/function_help/json/angle_at_vertex       |     8 +
 resources/function_help/json/boundary              |     8 +
 resources/function_help/json/distance_to_vertex    |     8 +
 .../function_help/json/line_interpolate_angle      |     8 +
 .../function_help/json/line_interpolate_point      |     8 +
 resources/function_help/json/line_locate_point     |     8 +
 resources/function_help/json/line_merge            |     9 +
 resources/function_help/json/regexp_match          |     4 +-
 resources/function_help/json/regexp_replace        |     6 +-
 resources/function_help/json/regexp_substr         |     4 +-
 resources/symbology-ng-style.db                    |   Bin 84992 -> 98304 bytes
 resources/symbology-ng-style.xml                   |    24 +
 scripts/chkspelling.sh                             |     2 +-
 scripts/generate_test_mask_image.py                |     2 +-
 scripts/qgm2cpp.pl                                 |     2 +-
 scripts/release.pl                                 |    16 +-
 src/app/CMakeLists.txt                             |    13 +-
 src/app/composer/qgscomposer.cpp                   |     2 +-
 src/app/composer/qgscomposerlegendwidget.cpp       |    34 +-
 src/app/composer/qgscomposermapwidget.cpp          |     2 +-
 src/app/composer/qgscomposerpicturewidget.cpp      |    37 +
 src/app/composer/qgscomposerpicturewidget.h        |     2 +
 src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp        |     2 +-
 src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp        |     2 +-
 src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp      |     2 +-
 src/app/main.cpp                                   |     8 +
 src/app/nodetool/qgsmaptoolnodetool.cpp            |     8 +-
 src/app/pluginmanager/qgspluginmanager.cpp         |    12 +-
 src/app/qgisapp.cpp                                |    73 +-
 src/app/qgisapp.h                                  |     3 +
 src/app/qgsannotationwidget.cpp                    |    11 +-
 src/app/qgsannotationwidget.h                      |     2 +-
 src/app/qgsapplayertreeviewmenuprovider.cpp        |     4 +-
 src/app/qgsattributetypedialog.cpp                 |    84 +-
 src/app/qgsattributetypedialog.h                   |    28 +-
 src/app/qgsdiagramproperties.cpp                   |   105 +-
 src/app/qgsdiagramproperties.h                     |    30 +
 src/app/qgsdxfexportdialog.cpp                     |    27 +-
 src/app/qgsdxfexportdialog.h                       |     4 +
 src/app/qgsfeatureaction.cpp                       |    10 +
 src/app/qgsfieldsproperties.cpp                    |   164 +-
 src/app/qgsfieldsproperties.h                      |    29 +-
 src/app/qgsformannotationdialog.cpp                |     8 +
 src/app/qgsformannotationdialog.h                  |     1 +
 src/app/qgshtmlannotationdialog.cpp                |     8 +
 src/app/qgshtmlannotationdialog.h                  |     1 +
 src/app/qgsidentifyresultsdialog.cpp               |    49 +-
 src/app/qgslabelinggui.cpp                         |    98 +-
 src/app/qgslabelinggui.h                           |     7 +
 src/app/qgslabelingwidget.cpp                      |     1 +
 src/app/qgslayerstylingwidget.cpp                  |    49 +-
 src/app/qgsmeasuredialog.cpp                       |    29 +-
 src/app/qgsmergeattributesdialog.cpp               |    13 +-
 src/app/qgsprojectproperties.cpp                   |     4 +
 src/app/qgsrelationmanagerdialog.cpp               |     2 +
 src/app/qgsstatusbarcoordinateswidget.cpp          |     4 +-
 src/app/qgssubstitutionlistwidget.cpp              |   230 +
 src/app/qgssubstitutionlistwidget.h                |   111 +
 src/app/qgssvgannotationdialog.cpp                 |     8 +
 src/app/qgssvgannotationdialog.h                   |     1 +
 src/app/qgstextannotationdialog.cpp                |     9 +
 src/app/qgstextannotationdialog.h                  |     1 +
 src/app/qgsvectorlayerproperties.cpp               |     6 +-
 src/app/qgsvisibilitypresets.cpp                   |     6 +-
 src/core/CMakeLists.txt                            |     8 +-
 src/core/composer/qgscomposerattributetable.h      |     4 +-
 src/core/composer/qgscomposerattributetablev2.h    |     2 +-
 src/core/composer/qgscomposeritem.cpp              |     8 +-
 src/core/composer/qgscomposeritemcommand.h         |     1 +
 src/core/composer/qgscomposerlegend.h              |     4 +-
 src/core/composer/qgscomposermodel.cpp             |     2 +-
 src/core/composer/qgscomposermousehandles.cpp      |     7 +-
 src/core/composer/qgscomposerpicture.cpp           |    79 +-
 src/core/composer/qgscomposerpicture.h             |    47 +
 src/core/composer/qgscomposition.h                 |     2 +-
 src/core/dxf/qgsdxfexport.cpp                      |   333 +-
 src/core/dxf/qgsdxfexport.h                        |    18 +-
 src/core/effects/qgspainteffect.cpp                |     5 +
 src/core/geometry/qgsabstractgeometryv2.h          |    10 +-
 src/core/geometry/qgscircularstringv2.cpp          |     3 +
 src/core/geometry/qgscurvepolygonv2.cpp            |    22 +-
 src/core/geometry/qgscurvepolygonv2.h              |     1 +
 src/core/geometry/qgscurvev2.cpp                   |    16 +
 src/core/geometry/qgscurvev2.h                     |     2 +
 src/core/geometry/qgsgeometry.cpp                  |   146 +-
 src/core/geometry/qgsgeometry.h                    |    43 +-
 src/core/geometry/qgsgeometrycollectionv2.cpp      |     5 +
 src/core/geometry/qgsgeometrycollectionv2.h        |     1 +
 src/core/geometry/qgsgeometryutils.cpp             |    59 +-
 src/core/geometry/qgsgeometryutils.h               |    23 +-
 src/core/geometry/qgsgeos.cpp                      |    49 +
 src/core/geometry/qgsgeos.h                        |    21 +
 src/core/geometry/qgslinestringv2.cpp              |    10 +-
 src/core/geometry/qgsmulticurvev2.cpp              |    23 +
 src/core/geometry/qgsmulticurvev2.h                |     3 +
 src/core/geometry/qgsmultilinestringv2.cpp         |     1 +
 src/core/geometry/qgsmultipointv2.cpp              |     5 +
 src/core/geometry/qgsmultipointv2.h                |     2 +
 src/core/geometry/qgsmultipolygonv2.cpp            |    36 +
 src/core/geometry/qgsmultipolygonv2.h              |     3 +-
 src/core/geometry/qgsmultisurfacev2.cpp            |    19 +
 src/core/geometry/qgsmultisurfacev2.h              |     2 +
 src/core/geometry/qgspointv2.cpp                   |    12 +-
 src/core/geometry/qgspointv2.h                     |     1 +
 src/core/geometry/qgspolygonv2.cpp                 |    23 +
 src/core/geometry/qgspolygonv2.h                   |     2 +
 src/core/layertree/qgslayertreemodel.cpp           |    97 +-
 src/core/layertree/qgslayertreemodel.h             |    22 +-
 src/core/layertree/qgslayertreemodellegendnode.cpp |     6 +-
 src/core/pal/feature.cpp                           |   800 +-
 src/core/pal/feature.h                             |    65 +-
 src/core/pal/labelposition.cpp                     |    29 +-
 src/core/pal/labelposition.h                       |     6 +
 src/core/pal/layer.cpp                             |     1 +
 src/core/pal/layer.h                               |     4 +
 src/core/pal/pal.cpp                               |     6 +-
 src/core/pal/problem.cpp                           |     2 +-
 src/core/pal/util.cpp                              |     9 +-
 src/core/qgsannotation.h                           |     2 +-
 src/core/qgsapplication.cpp                        |    16 +-
 src/core/qgsapplication.h                          |     4 +-
 src/core/qgsbearingutils.cpp                       |    51 +
 src/core/qgsbearingutils.h                         |    45 +
 src/core/qgscolorscheme.cpp                        |    32 +
 src/core/qgscolorscheme.h                          |     8 +
 src/core/qgsdataitem.cpp                           |     4 +-
 src/core/qgsdataitemproviderregistry.cpp           |    13 +
 src/core/qgseditformconfig.cpp                     |   149 +-
 src/core/qgseditformconfig.h                       |   126 +-
 src/core/qgsexpression.cpp                         |   163 +-
 src/core/qgsexpression.h                           |   135 +-
 src/core/qgsexpressioncontext.cpp                  |     4 +-
 src/core/qgsexpressioncontext.h                    |     2 +-
 src/core/qgsexpressionfieldbuffer.cpp              |     5 +
 src/core/qgsexpressionfieldbuffer.h                |    10 +
 src/core/qgsfeedback.h                             |    73 +
 src/core/qgsfield.cpp                              |    41 +-
 src/core/qgsfield.h                                |    61 +-
 src/core/qgsfield_p.h                              |    11 +-
 src/core/qgsgeometryvalidator.cpp                  |    24 +-
 src/core/qgsgml.cpp                                |    18 +-
 src/core/qgslabelfeature.h                         |     6 +-
 src/core/qgslabelingenginev2.cpp                   |    12 +-
 src/core/qgslegendrenderer.cpp                     |     3 +-
 src/core/qgsmaplayer.cpp                           |     4 +-
 src/core/qgsmaplayerrenderer.h                     |     6 +
 src/core/qgsmaprenderercustompainterjob.cpp        |    21 +-
 src/core/qgsmaprendererjob.cpp                     |     7 +
 src/core/qgsmaprendererjob.h                       |     1 +
 src/core/qgsmaprendererparalleljob.cpp             |    11 +-
 src/core/qgsmapsettings.h                          |     3 +-
 src/core/qgsmimedatautils.h                        |     2 +
 src/core/qgsnetworkaccessmanager.cpp               |    17 +-
 src/core/qgsofflineediting.cpp                     |    75 +-
 src/core/qgsofflineediting.h                       |    13 +-
 src/core/qgsogcutils.cpp                           |    85 +-
 src/core/qgsogrutils.cpp                           |     2 +-
 src/core/qgsoptional.h                             |   137 +
 src/core/qgsoptionalexpression.cpp                 |    48 +
 src/core/qgsoptionalexpression.h                   |    76 +
 src/core/qgspallabeling.cpp                        |   144 +-
 src/core/qgspallabeling.h                          |     7 +
 src/core/qgspointlocator.cpp                       |    14 +
 src/core/qgsproject.cpp                            |    10 +
 src/core/qgsproject.h                              |    12 +-
 src/core/qgsprojectproperty.cpp                    |    12 +
 src/core/qgsprojectproperty.h                      |    14 +-
 src/core/qgsproviderregistry.cpp                   |     5 +-
 src/core/qgsrendercontext.cpp                      |     1 +
 src/core/qgsrendercontext.h                        |     1 +
 src/core/qgsstringutils.cpp                        |   128 +
 src/core/qgsstringutils.h                          |   149 +-
 src/core/qgsvectorlayer.cpp                        |   288 +-
 src/core/qgsvectorlayer.h                          |    55 +-
 src/core/qgsvectorlayereditbuffer.cpp              |     4 +-
 src/core/qgsvectorlayerfeatureiterator.cpp         |    32 +-
 src/core/qgsvectorlayerrenderer.cpp                |    14 -
 src/core/qgsvectorlayerrenderer.h                  |     1 -
 src/core/qgswebpage.h                              |     2 +
 src/core/qgswebview.h                              |    12 +-
 src/core/raster/qgsbrightnesscontrastfilter.cpp    |     7 +-
 src/core/raster/qgsbrightnesscontrastfilter.h      |     1 +
 src/core/raster/qgshillshaderenderer.cpp           |     9 +-
 src/core/raster/qgshillshaderenderer.h             |     1 +
 src/core/raster/qgshuesaturationfilter.cpp         |     7 +-
 src/core/raster/qgshuesaturationfilter.h           |     1 +
 src/core/raster/qgsmultibandcolorrenderer.cpp      |     7 +-
 src/core/raster/qgsmultibandcolorrenderer.h        |     1 +
 src/core/raster/qgspalettedrasterrenderer.cpp      |     9 +-
 src/core/raster/qgspalettedrasterrenderer.h        |     1 +
 src/core/raster/qgsrasterdataprovider.cpp          |     9 +-
 src/core/raster/qgsrasterdataprovider.h            |     5 +-
 src/core/raster/qgsrasterdrawer.cpp                |    22 +-
 src/core/raster/qgsrasterdrawer.h                  |     4 +-
 src/core/raster/qgsrasterinterface.h               |    59 +
 src/core/raster/qgsrasteriterator.cpp              |     6 +-
 src/core/raster/qgsrasteriterator.h                |     5 +-
 src/core/raster/qgsrasterlayer.cpp                 |     4 +-
 src/core/raster/qgsrasterlayerrenderer.cpp         |    43 +-
 src/core/raster/qgsrasterlayerrenderer.h           |    31 +
 src/core/raster/qgsrasternuller.cpp                |     7 +-
 src/core/raster/qgsrasternuller.h                  |     1 +
 src/core/raster/qgsrasterpipe.h                    |     1 +
 src/core/raster/qgsrasterprojector.cpp             |   256 +-
 src/core/raster/qgsrasterprojector.h               |   109 +-
 src/core/raster/qgsrasterrenderer.h                |     2 -
 src/core/raster/qgsrasterresamplefilter.cpp        |     9 +-
 src/core/raster/qgsrasterresamplefilter.h          |     1 +
 src/core/raster/qgssinglebandcolordatarenderer.cpp |     7 +-
 src/core/raster/qgssinglebandcolordatarenderer.h   |     1 +
 src/core/raster/qgssinglebandgrayrenderer.cpp      |     9 +-
 src/core/raster/qgssinglebandgrayrenderer.h        |     1 +
 .../raster/qgssinglebandpseudocolorrenderer.cpp    |     9 +-
 src/core/raster/qgssinglebandpseudocolorrenderer.h |     1 +
 src/core/symbology-ng/qgsarrowsymbollayer.cpp      |    12 +-
 .../qgscategorizedsymbolrendererv2.cpp             |    15 +-
 .../qgsgeometrygeneratorsymbollayerv2.cpp          |     2 +
 src/core/symbology-ng/qgslinesymbollayerv2.cpp     |    36 +-
 src/core/symbology-ng/qgsmarkersymbollayerv2.cpp   |     4 +-
 src/gui/CMakeLists.txt                             |    23 +-
 .../qgsattributetablefiltermodel.cpp               |     2 +-
 src/gui/attributetable/qgsattributetablemodel.cpp  |     7 +-
 src/gui/attributetable/qgsdualview.cpp             |     9 +-
 src/gui/editorwidgets/core/qgseditorconfigwidget.h |     7 +
 src/gui/editorwidgets/qgscheckboxconfigdlg.cpp     |     3 +
 src/gui/editorwidgets/qgsdatetimeeditconfig.cpp    |     5 +
 src/gui/editorwidgets/qgsdoublespinbox.cpp         |    36 +-
 src/gui/editorwidgets/qgsdoublespinbox.h           |    48 +-
 .../editorwidgets/qgsexternalresourceconfigdlg.cpp |    14 +
 src/gui/editorwidgets/qgsphotoconfigdlg.cpp        |     2 +
 src/gui/editorwidgets/qgsrangeconfigdlg.cpp        |    10 +
 .../qgsrelationreferenceconfigdlg.cpp              |    14 +-
 .../qgsrelationreferencesearchwidgetwrapper.cpp    |     6 +
 .../editorwidgets/qgsrelationreferencewidget.cpp   |    24 +-
 src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp |    36 +
 src/gui/editorwidgets/qgsrelationwidgetwrapper.h   |    42 +
 src/gui/editorwidgets/qgsspinbox.cpp               |    36 +-
 src/gui/editorwidgets/qgsspinbox.h                 |    49 +-
 src/gui/editorwidgets/qgstexteditconfigdlg.cpp     |     2 +
 src/gui/editorwidgets/qgstexteditwrapper.cpp       |    10 +
 src/gui/editorwidgets/qgsuniquevaluesconfigdlg.cpp |     1 +
 src/gui/editorwidgets/qgsvaluemapconfigdlg.cpp     |     3 +
 .../editorwidgets/qgsvaluerelationconfigdlg.cpp    |     9 +
 .../qgsvaluerelationwidgetfactory.cpp              |     2 -
 src/gui/editorwidgets/qgswebviewconfigdlg.cpp      |     2 +
 src/gui/effects/qgseffectstackpropertieswidget.cpp |    14 +-
 src/gui/layertree/qgslayertreeview.cpp             |    50 +-
 src/gui/layertree/qgslayertreeview.h               |     8 +
 src/gui/qgsattributeform.cpp                       |   111 +-
 src/gui/qgsattributeform.h                         |    35 +
 src/gui/qgscolorbuttonv2.cpp                       |    32 +-
 src/gui/qgscolorbuttonv2.h                         |     9 +
 src/gui/qgscolorschemelist.cpp                     |     5 +
 src/gui/qgscolorschemelist.h                       |     7 +
 src/gui/qgscolorwidgets.cpp                        |    21 +
 src/gui/qgscolorwidgets.h                          |     1 +
 src/gui/qgscomposeritemcombobox.cpp                |     2 +-
 src/gui/qgscompoundcolorwidget.cpp                 |    68 +-
 src/gui/qgscompoundcolorwidget.h                   |    20 +-
 src/gui/qgsexpressionbuilderwidget.cpp             |    21 +-
 src/gui/qgsexpressionbuilderwidget.h               |    14 +
 src/gui/qgsexpressionlineedit.cpp                  |   214 +
 src/gui/qgsexpressionlineedit.h                    |   143 +
 src/gui/qgsfieldexpressionwidget.cpp               |    10 +
 src/gui/qgsfieldexpressionwidget.h                 |    22 +-
 src/gui/qgsfilterlineedit.cpp                      |   149 +-
 src/gui/qgsfilterlineedit.h                        |   168 +-
 src/gui/qgshighlight.cpp                           |    79 +-
 src/gui/qgshtmlannotationitem.cpp                  |    60 +-
 src/gui/qgsidentifymenu.cpp                        |     8 +-
 src/gui/qgsmapcanvas.cpp                           |    12 +-
 src/gui/qgsmapoverviewcanvas.cpp                   |    13 +-
 src/gui/qgsmessagebar.cpp                          |     2 +-
 src/gui/qgsmessagebaritem.cpp                      |     2 +-
 src/gui/qgspanelwidget.cpp                         |    25 +-
 src/gui/qgspanelwidget.h                           |    15 +-
 src/gui/qgsprojectionselector.cpp                  |     6 +-
 src/gui/qgsrasterlayersaveasdialog.cpp             |     2 +-
 src/gui/qgsrelationeditorwidget.cpp                |    41 +-
 src/gui/qgsrelationeditorwidget.h                  |    42 +
 src/gui/qgsscalecombobox.cpp                       |     4 +-
 src/gui/qgsscalecombobox.h                         |     8 +-
 src/gui/qgsscalerangewidget.cpp                    |    16 +-
 src/gui/qgsscalerangewidget.h                      |    16 +-
 src/gui/qgsscalewidget.cpp                         |     6 +-
 src/gui/qgsscalewidget.h                           |     2 +-
 src/gui/qgssourceselectdialog.cpp                  |    21 -
 src/gui/qgssourceselectdialog.h                    |     2 -
 src/gui/qgstabwidget.cpp                           |   159 +
 src/gui/qgstabwidget.h                             |   119 +
 src/gui/raster/qgsrastertransparencywidget.cpp     |    11 +-
 .../raster/qgsrendererrasterpropertieswidget.cpp   |     1 +
 .../qgssinglebandpseudocolorrendererwidget.cpp     |    15 +-
 .../qgscategorizedsymbolrendererv2widget.cpp       |    10 +-
 .../qgsgraduatedsymbolrendererv2widget.cpp         |    10 +-
 .../symbology-ng/qgsrulebasedrendererv2widget.cpp  |    29 +-
 src/gui/symbology-ng/qgsstylev2managerdialog.cpp   |     2 +-
 src/gui/symbology-ng/qgssvgselectorwidget.cpp      |   306 +-
 src/gui/symbology-ng/qgssvgselectorwidget.h        |   161 +-
 src/gui/symbology-ng/qgssymbollayerv2widget.cpp    |   152 +-
 src/gui/symbology-ng/qgssymbollayerv2widget.h      |    33 -
 .../qgsvectorgradientcolorrampv2dialog.cpp         |    10 +-
 .../coordinate_capture/coordinatecapture.cpp       |     4 +-
 .../coordinate_capture/coordinatecapture.qrc       |     4 +-
 .../coordinatecapturemaptool.cpp                   |     2 +-
 src/plugins/coordinate_capture/tracking.png        |   Bin 2165 -> 0 bytes
 src/plugins/coordinate_capture/transformed.png     |   Bin 3344 -> 0 bytes
 .../dxf2shp_converter/dxflib/src/dl_entities.h     |     2 +-
 src/plugins/evis/README.TXT                        |     2 +-
 .../evisdatabaseconnectiongui.cpp                  |     4 +-
 .../eventbrowser/evisgenericeventbrowsergui.cpp    |     4 +-
 .../evis/ui/evisdatabaseconnectionguibase.ui       |     4 +-
 .../evis/ui/evisgenericeventbrowserguibase.ui      |     4 +-
 .../georeferencer/qgsgeorefpluginguibase.ui        |     2 +-
 src/plugins/globe/globe_plugin.cpp                 |     4 +-
 src/plugins/grass/qgsgrassplugin.cpp               |     6 +-
 src/plugins/grass/qgsgrasstools.cpp                |     4 +-
 src/plugins/interpolation/interpolator.qrc         |     3 +-
 src/plugins/interpolation/options.png              |   Bin 3797 -> 0 bytes
 .../interpolation/qgsinterpolationdialogbase.ui    |     6 +-
 .../offline_editing/offline_editing_plugin.cpp     |     2 +-
 .../offline_editing/offline_editing_plugin_gui.cpp |     7 +-
 .../offline_editing/offline_editing_plugin_gui.h   |     3 +-
 .../offline_editing_plugin_guibase.ui              |    11 +-
 src/plugins/roadgraph/shortestpathwidget.cpp       |     6 -
 src/providers/arcgisrest/qgsafssourceselect.cpp    |     4 +
 src/providers/arcgisrest/qgsamsprovider.cpp        |     4 +-
 src/providers/arcgisrest/qgsamsprovider.h          |     2 +-
 src/providers/arcgisrest/qgsamssourceselect.cpp    |     4 +
 src/providers/db2/qgsdb2tablemodel.cpp             |     2 +-
 src/providers/gdal/qgsgdalprovider.cpp             |    14 +-
 src/providers/gdal/qgsgdalprovider.h               |     3 +-
 src/providers/gdal/qgsgdalproviderbase.cpp         |    29 +-
 src/providers/gdal/qgsgdalproviderbase.h           |     2 +-
 src/providers/grass/qgsgrassrasterprovider.cpp     |     3 +-
 src/providers/grass/qgsgrassrasterprovider.h       |     2 +-
 src/providers/mssql/qgsmssqltablemodel.cpp         |     2 +-
 src/providers/ogr/qgsogrfeatureiterator.cpp        |    11 +-
 src/providers/ogr/qgsogrprovider.cpp               |    48 +-
 src/providers/ogr/qgsogrprovider.h                 |     4 +
 src/providers/oracle/qgsoracleprovider.cpp         |    38 +-
 src/providers/oracle/qgsoracletablemodel.cpp       |     2 +-
 src/providers/postgres/qgspgtablemodel.cpp         |     4 +-
 src/providers/postgres/qgspostgresprovider.cpp     |   230 +-
 src/providers/postgres/qgspostgresprovider.h       |    14 +-
 .../virtual/qgsvirtuallayersourceselectbase.ui     |     2 +-
 src/providers/wcs/qgswcscapabilities.cpp           |    35 +
 src/providers/wcs/qgswcscapabilities.h             |     3 +
 src/providers/wcs/qgswcsprovider.cpp               |   106 +-
 src/providers/wcs/qgswcsprovider.h                 |    19 +-
 src/providers/wfs/qgswfscapabilities.cpp           |     4 +-
 src/providers/wfs/qgswfscapabilities.h             |     2 +-
 src/providers/wfs/qgswfsconstants.cpp              |     2 +-
 src/providers/wfs/qgswfsdataitems.cpp              |     4 +-
 src/providers/wfs/qgswfsdatasourceuri.cpp          |    47 +-
 src/providers/wfs/qgswfsdatasourceuri.h            |    20 +-
 src/providers/wfs/qgswfsfeatureiterator.cpp        |     7 +-
 src/providers/wfs/qgswfsprovider.cpp               |    17 +-
 src/providers/wfs/qgswfsrequest.cpp                |    23 +
 src/providers/wfs/qgswfssourceselect.cpp           |     4 +-
 src/providers/wfs/qgswfsutils.cpp                  |     4 +-
 src/providers/wms/CMakeLists.txt                   |     2 +
 src/providers/wms/qgstilecache.cpp                 |    57 +
 src/providers/wms/qgstilecache.h                   |    56 +
 src/providers/wms/qgswmscapabilities.cpp           |   156 +-
 src/providers/wms/qgswmscapabilities.h             |    82 +-
 src/providers/wms/qgswmsdataitems.cpp              |   127 +-
 src/providers/wms/qgswmsdataitems.h                |    60 +
 src/providers/wms/qgswmsprovider.cpp               |   968 +-
 src/providers/wms/qgswmsprovider.h                 |    89 +-
 src/providers/wms/qgsxyzconnection.cpp             |    59 +
 src/providers/wms/qgsxyzconnection.h               |    47 +
 src/python/qgspythonutilsimpl.cpp                  |    40 +-
 src/server/qgsconfigparserutils.cpp                |    10 +-
 src/server/qgshostedrdsbuilder.cpp                 |     2 +-
 src/server/qgsowsserver.cpp                        |     4 +-
 src/server/qgsremoteowsbuilder.cpp                 |     4 +-
 src/server/qgsserver.cpp                           |     4 +-
 src/server/qgsserverlogger.cpp                     |     3 +
 src/server/qgsserverprojectparser.cpp              |    14 +-
 src/server/qgsserverprojectparser.h                |     1 +
 src/server/qgssldconfigparser.cpp                  |     9 +
 src/server/qgssldconfigparser.h                    |     3 +
 src/server/qgswcsprojectparser.cpp                 |     4 +-
 src/server/qgswcsserver.cpp                        |     2 +-
 src/server/qgswfsprojectparser.cpp                 |     6 +-
 src/server/qgswfsserver.cpp                        |    12 +-
 src/server/qgswmsconfigparser.h                    |     3 +
 src/server/qgswmsprojectparser.cpp                 |    38 +-
 src/server/qgswmsprojectparser.h                   |     3 +
 src/server/qgswmsserver.cpp                        |    73 +-
 src/ui/auth/qgsauthauthoritieseditor.ui            |     6 +-
 src/ui/auth/qgsauthconfigeditor.ui                 |     4 +-
 src/ui/auth/qgsauthconfigselect.ui                 |     2 +-
 src/ui/auth/qgsauthidentitieseditor.ui             |     4 +-
 src/ui/auth/qgsauthserverseditor.ui                |     4 +-
 src/ui/composer/qgsattributeselectiondialogbase.ui |     2 +-
 src/ui/composer/qgscomposerpicturewidgetbase.ui    |    39 +-
 src/ui/qgisapp.ui                                  |    15 +-
 src/ui/qgsattributeactiondialogbase.ui             |     2 +-
 src/ui/qgsattributetabledialog.ui                  |    12 +-
 src/ui/qgsattributetypeedit.ui                     |   159 +-
 src/ui/qgscategorizedsymbolrendererv2widget.ui     |     4 +-
 src/ui/qgscompoundcolorwidget.ui                   |  1154 +-
 src/ui/qgsdualviewbase.ui                          |     2 +-
 src/ui/qgsdxfexportdialogbase.ui                   |    70 +-
 src/ui/qgserrordialogbase.ui                       |     2 +-
 src/ui/qgsfieldconditionalformatwidget.ui          |     2 +-
 src/ui/qgsformannotationdialogbase.ui              |     2 +-
 src/ui/qgsgraduatedsymbolrendererv2widget.ui       |     6 +-
 src/ui/qgslabelingguibase.ui                       |   624 +-
 src/ui/qgsnewgeopackagelayerdialogbase.ui          |     4 +-
 src/ui/qgsnewspatialitelayerdialogbase.ui          |     4 +-
 src/ui/qgsnewvectorlayerdialogbase.ui              |     4 +-
 src/ui/qgsprojectpropertiesbase.ui                 |   149 +-
 src/ui/qgssqlcomposerdialogbase.ui                 |     4 +-
 src/ui/qgsstylev2managerdialogbase.ui              |     8 +-
 src/ui/qgssubstitutionlistwidgetbase.ui            |   134 +
 src/ui/qgstextannotationdialogbase.ui              |     4 +-
 src/ui/qgsunitselectionwidget.ui                   |     6 +-
 src/ui/qgsvectorlayerpropertiesbase.ui             |     2 +-
 src/ui/symbollayer/widget_svgfill.ui               |    15 +
 tests/src/app/testqgisapppython.cpp                |     4 +
 tests/src/core/testqgs25drenderer.cpp              |     1 +
 tests/src/core/testqgsexpression.cpp               |    38 +-
 tests/src/core/testqgsfield.cpp                    |    50 +
 tests/src/core/testqgsgeometry.cpp                 |   334 +-
 tests/src/core/testqgsgeometryutils.cpp            |   101 +
 tests/src/core/testqgslabelingenginev2.cpp         |    42 +
 tests/src/core/testqgslegendrenderer.cpp           |    23 +
 tests/src/core/testqgsmarkerlinesymbol.cpp         |    65 +
 tests/src/core/testqgsogcutils.cpp                 |   220 +-
 tests/src/core/testqgspointlocator.cpp             |    43 +
 tests/src/core/testqgsstringutils.cpp              |    36 +
 tests/src/python/CMakeLists.txt                    |     9 +
 tests/src/python/offlineditingtestbase.py          |     5 +-
 tests/src/python/qgis_wrapped_server.py            |    67 +-
 tests/src/python/test_authmanager_endpoint.py      |   182 +
 tests/src/python/test_offline_editing_wfs.py       |    66 +-
 tests/src/python/test_provider_ogr.py              |    19 +
 tests/src/python/test_provider_ogr_gpkg.py         |    46 +-
 tests/src/python/test_provider_postgres.py         |    80 +
 tests/src/python/test_provider_shapefile.py        |   101 +
 tests/src/python/test_provider_wfs.py              |    34 +-
 tests/src/python/test_provider_wfs_gui.py          |     4 +-
 tests/src/python/test_qgsbearingutils.py           |    60 +
 tests/src/python/test_qgscolorscheme.py            |    29 +-
 tests/src/python/test_qgscomposerpicture.py        |    63 +-
 tests/src/python/test_qgseditwidgets.py            |    32 +-
 tests/src/python/test_qgsexpression.py             |     8 +
 tests/src/python/test_qgsexpressionlineedit.py     |    78 +
 tests/src/python/test_qgsfilterlineedit.py         |   136 +
 tests/src/python/test_qgsgeometry.py               |   155 +
 tests/src/python/test_qgsgeometryvalidator.py      |    71 +
 tests/src/python/test_qgsoptional.py               |    59 +
 tests/src/python/test_qgspallabeling_base.py       |     3 +-
 tests/src/python/test_qgspallabeling_placement.py  |   161 +
 tests/src/python/test_qgspanelwidget.py            |    60 +
 tests/src/python/test_qgsserver.py                 |   107 +-
 tests/src/python/test_qgsserver_wfst.py            |    23 +-
 tests/src/python/test_qgsstringutils.py            |   181 +
 tests/src/python/test_qgstabwidget.py              |    88 +
 tests/src/python/test_qgsvectorlayer.py            |   215 +-
 tests/src/python/utilities.py                      |    30 +-
 .../expected_composerpaper_markerborder_mask.png   |   Bin 18524 -> 18639 bytes
 .../sp_letter_spacing/sp_letter_spacing_mask.png   |   Bin 1857 -> 1779 bytes
 .../sp_word_spacing/sp_word_spacing_mask.png       |   Bin 1857 -> 1749 bytes
 .../sp_curved_placement_above.png                  |   Bin 12116 -> 12196 bytes
 .../sp_curved_placement_above_mask.png             |   Bin 3494 -> 9496 bytes
 .../sp_curved_placement_below.png                  |   Bin 12044 -> 12047 bytes
 .../sp_curved_placement_below_mask.png             |   Bin 3625 -> 9999 bytes
 .../sp_curved_placement_online.png                 |   Bin 11014 -> 10889 bytes
 .../sp_curved_placement_online_mask.png            |   Bin 10684 -> 8546 bytes
 .../sp_line_placement_above_line_orientation.png   |   Bin 13178 -> 12019 bytes
 ..._line_placement_above_line_orientation_mask.png |   Bin 10006 -> 3626 bytes
 .../sp_line_placement_above_map_orientation.png    |   Bin 12909 -> 11684 bytes
 ...p_line_placement_above_map_orientation_mask.png |   Bin 7882 -> 3477 bytes
 .../sp_line_placement_below_line_orientation.png   |   Bin 12909 -> 11684 bytes
 ..._line_placement_below_line_orientation_mask.png |   Bin 7343 -> 3477 bytes
 .../sp_line_placement_below_map_orientation.png    |   Bin 13178 -> 12019 bytes
 ...p_line_placement_below_map_orientation_mask.png |   Bin 7222 -> 3626 bytes
 .../sp_line_placement_online.png                   |   Bin 12343 -> 11480 bytes
 .../sp_line_placement_online_mask.png              |   Bin 7389 -> 3496 bytes
 .../sp_img_letter_spacing_mask.png                 |   Bin 1868 -> 1779 bytes
 .../sp_img_word_spacing_mask.png                   |   Bin 1864 -> 1749 bytes
 .../sp_img_curved_placement_above.png              |   Bin 12116 -> 12196 bytes
 .../sp_img_curved_placement_above_mask.png         |   Bin 3494 -> 11097 bytes
 .../sp_img_curved_placement_below.png              |   Bin 12044 -> 12047 bytes
 .../sp_img_curved_placement_below_mask.png         |   Bin 3625 -> 9269 bytes
 .../sp_img_curved_placement_online.png             |   Bin 11014 -> 10889 bytes
 .../sp_img_curved_placement_online_mask.png        |   Bin 3398 -> 7219 bytes
 ...p_img_line_placement_above_line_orientation.png |   Bin 13178 -> 12019 bytes
 ..._line_placement_above_line_orientation_mask.png |   Bin 9380 -> 3703 bytes
 ...sp_img_line_placement_above_map_orientation.png |   Bin 12909 -> 11684 bytes
 ...g_line_placement_above_map_orientation_mask.png |   Bin 8793 -> 3650 bytes
 ...p_img_line_placement_below_line_orientation.png |   Bin 12909 -> 11684 bytes
 ..._line_placement_below_line_orientation_mask.png |   Bin 9316 -> 3650 bytes
 ...sp_img_line_placement_below_map_orientation.png |   Bin 13178 -> 12019 bytes
 ...g_line_placement_below_map_orientation_mask.png |   Bin 9285 -> 3703 bytes
 .../sp_img_line_placement_online.png               |   Bin 12343 -> 11480 bytes
 .../sp_img_line_placement_online_mask.png          |   Bin 14408 -> 3496 bytes
 .../sp_pdf_curved_placement_above.png              |   Bin 11536 -> 11694 bytes
 .../sp_pdf_curved_placement_above_mask.png         |   Bin 3645 -> 9553 bytes
 .../sp_pdf_curved_placement_below.png              |   Bin 11542 -> 11507 bytes
 .../sp_pdf_curved_placement_below_mask.png         |   Bin 3552 -> 9322 bytes
 .../sp_pdf_curved_placement_online.png             |   Bin 10775 -> 10528 bytes
 .../sp_pdf_curved_placement_online_mask.png        |   Bin 3416 -> 8385 bytes
 ...p_pdf_line_placement_above_line_orientation.png |   Bin 10998 -> 11456 bytes
 ..._line_placement_above_line_orientation_mask.png |   Bin 14579 -> 3686 bytes
 ...sp_pdf_line_placement_above_map_orientation.png |   Bin 10797 -> 11252 bytes
 ...f_line_placement_above_map_orientation_mask.png |   Bin 14523 -> 3570 bytes
 ...p_pdf_line_placement_below_line_orientation.png |   Bin 10797 -> 11252 bytes
 ..._line_placement_below_line_orientation_mask.png |   Bin 14523 -> 3570 bytes
 ...sp_pdf_line_placement_below_map_orientation.png |   Bin 10998 -> 11456 bytes
 ...f_line_placement_below_map_orientation_mask.png |   Bin 14579 -> 3686 bytes
 .../sp_pdf_line_placement_online.png               |   Bin 10325 -> 11089 bytes
 .../sp_pdf_line_placement_online_mask.png          |   Bin 14301 -> 3556 bytes
 .../sp_svg_curved_placement_above.png              |   Bin 12108 -> 12218 bytes
 .../sp_svg_curved_placement_above_mask.png         |   Bin 3503 -> 8664 bytes
 .../sp_svg_curved_placement_below.png              |   Bin 12035 -> 12048 bytes
 .../sp_svg_curved_placement_below_mask.png         |   Bin 3427 -> 8162 bytes
 .../sp_svg_curved_placement_online.png             |   Bin 11028 -> 10890 bytes
 .../sp_svg_curved_placement_online_mask.png        |   Bin 3044 -> 7593 bytes
 ...p_svg_line_placement_above_line_orientation.png |   Bin 13171 -> 12022 bytes
 ..._line_placement_above_line_orientation_mask.png |   Bin 8221 -> 3639 bytes
 ...sp_svg_line_placement_above_map_orientation.png |   Bin 12916 -> 11765 bytes
 ...g_line_placement_above_map_orientation_mask.png |   Bin 7727 -> 3505 bytes
 ...p_svg_line_placement_below_line_orientation.png |   Bin 12916 -> 11765 bytes
 ..._line_placement_below_line_orientation_mask.png |   Bin 8126 -> 3505 bytes
 ...sp_svg_line_placement_below_map_orientation.png |   Bin 13171 -> 12022 bytes
 ...g_line_placement_below_map_orientation_mask.png |   Bin 8230 -> 3639 bytes
 .../sp_svg_line_placement_online.png               |   Bin 12359 -> 11420 bytes
 .../sp_svg_line_placement_online_mask.png          |   Bin 7696 -> 3457 bytes
 .../sp_label_line_avoid_jaggy.png                  |   Bin 0 -> 5018 bytes
 .../sp_label_line_avoid_jaggy_mask.png             |   Bin 0 -> 1143 bytes
 .../sp_label_line_over_small_angles.png            |   Bin 0 -> 3239 bytes
 .../sp_label_line_over_small_angles_mask.png       |   Bin 0 -> 1521 bytes
 .../sp_label_line_toward_center.png                |   Bin 0 -> 2485 bytes
 .../sp_label_line_toward_center_mask.png           |   Bin 0 -> 1226 bytes
 ...placement_around_obstacle_large_symbol_mask.png |   Bin 1390 -> 1299 bytes
 .../sp_polygon_placement_perimeter.png             |   Bin 0 -> 1310 bytes
 .../sp_polygon_placement_perimeter_mask.png        |   Bin 0 -> 1021 bytes
 ..._polygon_placement_with_hole_and_point_mask.png |   Bin 886 -> 880 bytes
 .../sp_prefer_line_above_instead_of_below.png      |   Bin 0 -> 6902 bytes
 .../sp_prefer_line_above_instead_of_below_mask.png |   Bin 0 -> 2545 bytes
 .../sp_prefer_line_above_instead_of_online.png     |   Bin 0 -> 6902 bytes
 ...sp_prefer_line_above_instead_of_online_mask.png |   Bin 0 -> 2545 bytes
 .../sp_prefer_line_below_instead_of_online.png     |   Bin 0 -> 7092 bytes
 ...sp_prefer_line_below_instead_of_online_mask.png |   Bin 0 -> 2592 bytes
 ...p_prefer_line_curved_above_instead_of_below.png |   Bin 0 -> 7989 bytes
 ...fer_line_curved_above_instead_of_below_mask.png |   Bin 0 -> 2938 bytes
 ..._prefer_line_curved_above_instead_of_online.png |   Bin 0 -> 7989 bytes
 ...er_line_curved_above_instead_of_online_mask.png |   Bin 0 -> 2938 bytes
 ..._prefer_line_curved_below_instead_of_online.png |   Bin 0 -> 7822 bytes
 ...er_line_curved_below_instead_of_online_mask.png |   Bin 0 -> 2831 bytes
 .../sp_prefer_longer_lines_over_shorter.png        |   Bin 0 -> 2719 bytes
 .../sp_prefer_longer_lines_over_shorter_mask.png   |   Bin 0 -> 1808 bytes
 .../sp_prefer_more_horizontal_lines.png            |   Bin 0 -> 4171 bytes
 .../sp_prefer_more_horizontal_lines_mask.png       |   Bin 0 -> 1790 bytes
 .../sp_small_polygon_curvedperimeter_only_fit.png  |   Bin 0 -> 1257 bytes
 ...small_polygon_curvedperimeter_only_fit_mask.png |   Bin 0 -> 991 bytes
 .../sp_small_polygon_over_point_only_fit.png       |   Bin 0 -> 1257 bytes
 .../sp_small_polygon_over_point_only_fit_mask.png  |   Bin 0 -> 991 bytes
 .../sp_small_polygon_perimeter_only_fit.png        |   Bin 0 -> 1257 bytes
 .../sp_small_polygon_perimeter_only_fit_mask.png   |   Bin 0 -> 991 bytes
 .../sp_small_polygon_placement_perimeter.png       |   Bin 0 -> 1496 bytes
 .../sp_small_polygon_placement_perimeter_mask.png  |   Bin 0 -> 1117 bytes
 .../sp_letter_spacing/sp_letter_spacing_mask.png   |   Bin 1876 -> 1741 bytes
 .../sp_word_spacing/sp_word_spacing_mask.png       |   Bin 1974 -> 1764 bytes
 .../sp_curved_placement_above.png                  |   Bin 12139 -> 12194 bytes
 .../sp_curved_placement_above_mask.png             |   Bin 2680 -> 6650 bytes
 .../sp_curved_placement_below.png                  |   Bin 12047 -> 12050 bytes
 .../sp_curved_placement_below_mask.png             |   Bin 2648 -> 7727 bytes
 .../sp_curved_placement_online.png                 |   Bin 11016 -> 10890 bytes
 .../sp_curved_placement_online_mask.png            |   Bin 2760 -> 6996 bytes
 .../sp_line_placement_above_line_orientation.png   |   Bin 13178 -> 12022 bytes
 ..._line_placement_above_line_orientation_mask.png |   Bin 11732 -> 2765 bytes
 .../sp_line_placement_above_map_orientation.png    |   Bin 12909 -> 11684 bytes
 ...p_line_placement_above_map_orientation_mask.png |   Bin 11664 -> 2627 bytes
 .../sp_line_placement_below_line_orientation.png   |   Bin 12909 -> 11684 bytes
 ..._line_placement_below_line_orientation_mask.png |   Bin 11664 -> 2627 bytes
 .../sp_line_placement_below_map_orientation.png    |   Bin 13178 -> 12022 bytes
 ...p_line_placement_below_map_orientation_mask.png |   Bin 11732 -> 2765 bytes
 .../sp_line_placement_online.png                   |   Bin 12343 -> 11481 bytes
 .../sp_line_placement_online_mask.png              |   Bin 11865 -> 2482 bytes
 .../expected_vector_layertransparency_mask.png     |   Bin 11487 -> 11815 bytes
 .../expected_labeling_basic.png                    |   Bin 24392 -> 24314 bytes
 .../expected_labeling_basic_mask.png               |   Bin 21234 -> 7558 bytes
 .../expected_legend_3_by_2_mask.png                |   Bin 1491 -> 1798 bytes
 .../expected_legend_3_by_3_mask.png                |   Bin 1526 -> 1633 bytes
 .../expected_legend_4_by_2_mask.png                |   Bin 1676 -> 2189 bytes
 .../expected_legend_4_by_3_mask.png                |   Bin 1855 -> 2197 bytes
 .../expected_legend_5_by_2_mask.png                |   Bin 1964 -> 2467 bytes
 .../expected_legend_5_by_3_mask.png                |   Bin 2045 -> 2583 bytes
 .../expected_legend_6_by_3_mask.png                |   Bin 2226 -> 2907 bytes
 .../expected_legend_7_by_3_mask.png                |   Bin 2539 -> 3127 bytes
 .../expected_legend_diagram_attributes.png         |   Bin 5729 -> 5235 bytes
 .../expected_legend_diagram_attributes_mask.png    |   Bin 2374 -> 6304 bytes
 .../expected_legend_diagram_size.png               |   Bin 14032 -> 13493 bytes
 .../expected_legend_diagram_size_mask.png          |   Bin 3467 -> 15205 bytes
 .../expected_legend_filter_by_map_mask.png         |   Bin 8402 -> 8843 bytes
 .../expected_legend_tall_symbol.png                |   Bin 0 -> 20452 bytes
 .../expected_legend_tall_symbol_mask.png           |   Bin 0 -> 23530 bytes
 .../expected_lines-parallel-label+45.png           |   Bin 40258 -> 3716 bytes
 .../expected_lines-parallel-label+45_mask.png      |   Bin 3062 -> 1122 bytes
 .../WMS_GetLegendGraphic_test.png                  |   Bin 0 -> 2962 bytes
 .../WMS_GetLegendGraphic_test_mask.png             |   Bin 0 -> 265 bytes
 .../WMS_GetLegendGraphic_test_layertitle_false.png |   Bin 0 -> 355 bytes
 ...GetLegendGraphic_test_layertitle_false_mask.png |   Bin 0 -> 166 bytes
 .../expected_filledmarker_mask.png                 |   Bin 4499 -> 4514 bytes
 .../expected_filledmarker_bounds_mask.png          |   Bin 2383 -> 2387 bytes
 .../expected_point_num_interval.png                |   Bin 0 -> 2765 bytes
 .../expected_point_num_interval_mask.png           |   Bin 0 -> 981 bytes
 .../expected_point_num_vertex.png                  |   Bin 0 -> 1650 bytes
 .../expected_point_num_vertex_mask.png             |   Bin 0 -> 719 bytes
 tests/testdata/labeling/line_placement_1.qml       |   272 +
 tests/testdata/labeling/line_placement_2.qml       |   273 +
 tests/testdata/labeling/line_placement_3.qml       |   273 +
 tests/testdata/labeling/line_placement_4.qml       |   273 +
 tests/testdata/labeling/line_placement_5.qml       |   249 +
 tests/testdata/labeling/pal_features_v3.sqlite     |   Bin 144384 -> 198656 bytes
 tests/testdata/labeling/polygon_perimeter.qml      |   272 +
 tests/testdata/labeling/polygon_small.qml          |   272 +
 tests/testdata/qgis_server/getcapabilities.txt     |    18 +-
 tests/testdata/qgis_server/getprojectsettings.txt  |    23 +-
 .../{test+project.qgs => test_project.qgs}         |   239 +-
 ...roject_inspire.qgs => test_project_inspire.qgs} |     0
 .../{test+project_wfs.qgs => test_project_wfs.qgs} |     0
 .../qgis_server/wms_getfeatureinfo-text-html.txt   |     2 +-
 884 files changed, 33188 insertions(+), 11426 deletions(-)
 delete mode 100644 images/themes/default/extents.png
 delete mode 100644 images/themes/default/histogram.png
 delete mode 100644 images/themes/default/mActionAddBasicShape.png
 delete mode 100644 images/themes/default/mActionCalculateField.png
 delete mode 100644 images/themes/default/mActionCaptureLine.png
 delete mode 100644 images/themes/default/mActionDeleteAttribute.png
 delete mode 100644 images/themes/default/mActionFilter.png
 delete mode 100644 images/themes/default/mActionNewAttribute.png
 delete mode 100644 images/themes/default/mActionRotateLabel.png
 delete mode 100644 images/themes/default/mActionToggleEditing.png
 delete mode 100644 images/themes/default/mIconClear.png
 create mode 100644 images/themes/default/mIconClearText.svg
 create mode 100644 images/themes/default/mIconClearTextHover.svg
 delete mode 100644 images/themes/default/mIconClose.png
 copy images/{theme_originals => themes/default}/mIconClose.svg (100%)
 delete mode 100644 images/themes/default/mIconWarn.png
 delete mode 100644 images/themes/default/symbologyAdd.png
 delete mode 100644 images/themes/default/symbologyDown.png
 delete mode 100644 images/themes/default/symbologyRemove.png
 delete mode 100644 images/themes/default/transformed.png
 copy {src/plugins/coordinate_capture => images/themes/default}/transformed.svg (100%)
 create mode 100644 python/PyQt/PyQt4/Qt.py
 create mode 100644 python/PyQt/PyQt5/Qt.py
 create mode 100644 python/core/qgsbearingutils.sip
 create mode 100644 python/core/qgsfeedback.sip
 create mode 100644 python/core/qgsoptionalexpression.sip
 create mode 100644 python/gui/qgsexpressionlineedit.sip
 create mode 100644 python/gui/qgstabwidget.sip
 create mode 100644 python/plugins/db_manager/dlg_sql_layer_window.py
 create mode 100644 python/plugins/db_manager/ui/DlgSqlLayerWindow.ui
 create mode 100644 python/plugins/processing/algs/help/saga.yaml
 create mode 100644 python/plugins/processing/algs/qgis/Boundary.py
 create mode 100644 python/plugins/processing/algs/qgis/BoundingBox.py
 create mode 100644 python/plugins/processing/algs/qgis/MergeLines.py
 create mode 100644 python/plugins/processing/algs/qgis/MergeLines_BACKUP_1606.py
 create mode 100644 python/plugins/processing/algs/qgis/MergeLines_BASE_1606.py
 copy ci/travis/osx/after_script.sh => python/plugins/processing/algs/qgis/MergeLines_LOCAL_1606.py (100%)
 mode change 100755 => 100644
 create mode 100644 python/plugins/processing/algs/qgis/MergeLines_REMOTE_1606.py
 create mode 100644 python/plugins/processing/algs/qgis/PointOnSurface.py
 create mode 100644 python/plugins/processing/algs/qgis/RemoveNullGeometry.py
 create mode 100644 python/plugins/processing/tests/ToolsTest.py
 create mode 100644 python/plugins/processing/tests/testdata/dissolve_polys.gfs
 create mode 100644 python/plugins/processing/tests/testdata/dissolve_polys.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon_BACKUP_3790.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon_BASE_3790.gml
 copy ci/travis/osx/after_script.sh => python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon_LOCAL_3790.gml (100%)
 mode change 100755 => 100644
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_multipolygon_REMOTE_3790.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_polygon.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_lines_by_polygon.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_multipolygons_by_polygons.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_multipolygons_by_polygons.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_points_by_multipolygons.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_points_by_multipolygons.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_points_by_polygons.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_points_by_polygons.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_polys_by_multipolygon.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/clip_polys_by_multipolygon.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/dissolve_field.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/dissolve_field.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/dissolve_two_fields.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/dissolve_two_fields.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/lines_boundary.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/lines_boundary.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/lines_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/lines_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/merge_lines.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/merge_lines.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multi_to_single.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multi_to_single.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multiline_boundary.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multiline_boundary.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multiline_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multiline_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoint_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoint_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoly_boundary.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoly_boundary.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoly_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/multipoly_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_line.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_line.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_multipoint.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_multipoint.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_poly.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/point_on_poly.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/poly_boundary.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/poly_boundary.xsd
 create mode 100644 python/plugins/processing/tests/testdata/expected/poly_bounds.gml
 create mode 100644 python/plugins/processing/tests/testdata/expected/poly_bounds.xsd
 create mode 100644 python/plugins/processing/tests/testdata/multilines.gfs
 create mode 100644 python/plugins/processing/tests/testdata/multilines.gml
 create mode 100644 python/plugins/processing/tests/testdata/multipoints.gfs
 create mode 100644 python/plugins/processing/tests/testdata/multipoints.gml
 create mode 100644 resources/function_help/json/angle_at_vertex
 create mode 100644 resources/function_help/json/boundary
 create mode 100644 resources/function_help/json/distance_to_vertex
 create mode 100644 resources/function_help/json/line_interpolate_angle
 create mode 100644 resources/function_help/json/line_interpolate_point
 create mode 100644 resources/function_help/json/line_locate_point
 create mode 100644 resources/function_help/json/line_merge
 create mode 100644 src/app/qgssubstitutionlistwidget.cpp
 create mode 100644 src/app/qgssubstitutionlistwidget.h
 create mode 100644 src/core/qgsbearingutils.cpp
 create mode 100644 src/core/qgsbearingutils.h
 create mode 100644 src/core/qgsfeedback.h
 create mode 100644 src/core/qgsoptional.h
 create mode 100644 src/core/qgsoptionalexpression.cpp
 create mode 100644 src/core/qgsoptionalexpression.h
 create mode 100644 src/gui/qgsexpressionlineedit.cpp
 create mode 100644 src/gui/qgsexpressionlineedit.h
 create mode 100644 src/gui/qgstabwidget.cpp
 create mode 100644 src/gui/qgstabwidget.h
 delete mode 100644 src/plugins/coordinate_capture/tracking.png
 delete mode 100644 src/plugins/coordinate_capture/transformed.png
 delete mode 100644 src/plugins/interpolation/options.png
 create mode 100644 src/providers/wms/qgstilecache.cpp
 create mode 100644 src/providers/wms/qgstilecache.h
 create mode 100644 src/providers/wms/qgsxyzconnection.cpp
 create mode 100644 src/providers/wms/qgsxyzconnection.h
 create mode 100644 src/ui/qgssubstitutionlistwidgetbase.ui
 create mode 100644 tests/src/python/test_authmanager_endpoint.py
 create mode 100644 tests/src/python/test_qgsbearingutils.py
 create mode 100644 tests/src/python/test_qgsexpressionlineedit.py
 create mode 100644 tests/src/python/test_qgsfilterlineedit.py
 create mode 100644 tests/src/python/test_qgsgeometryvalidator.py
 create mode 100644 tests/src/python/test_qgsoptional.py
 create mode 100644 tests/src/python/test_qgspanelwidget.py
 create mode 100644 tests/src/python/test_qgsstringutils.py
 create mode 100644 tests/src/python/test_qgstabwidget.py
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_avoid_jaggy/sp_label_line_avoid_jaggy.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_avoid_jaggy/sp_label_line_avoid_jaggy_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_over_small_angles/sp_label_line_over_small_angles.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_over_small_angles/sp_label_line_over_small_angles_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_toward_center/sp_label_line_toward_center.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_label_line_toward_center/sp_label_line_toward_center_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_polygon_placement_perimeter/sp_polygon_placement_perimeter.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_polygon_placement_perimeter/sp_polygon_placement_perimeter_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_above_instead_of_below/sp_prefer_line_above_instead_of_below.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_above_instead_of_below/sp_prefer_line_above_instead_of_below_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_above_instead_of_online/sp_prefer_line_above_instead_of_online.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_above_instead_of_online/sp_prefer_line_above_instead_of_online_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_below_instead_of_online/sp_prefer_line_below_instead_of_online.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_below_instead_of_online/sp_prefer_line_below_instead_of_online_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_above_instead_of_below/sp_prefer_line_curved_above_instead_of_below.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_above_instead_of_below/sp_prefer_line_curved_above_instead_of_below_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_above_instead_of_online/sp_prefer_line_curved_above_instead_of_online.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_above_instead_of_online/sp_prefer_line_curved_above_instead_of_online_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_below_instead_of_online/sp_prefer_line_curved_below_instead_of_online.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_line_curved_below_instead_of_online/sp_prefer_line_curved_below_instead_of_online_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_longer_lines_over_shorter/sp_prefer_longer_lines_over_shorter.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_longer_lines_over_shorter/sp_prefer_longer_lines_over_shorter_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_more_horizontal_lines/sp_prefer_more_horizontal_lines.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_prefer_more_horizontal_lines/sp_prefer_more_horizontal_lines_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_curvedperimeter_only_fit/sp_small_polygon_curvedperimeter_only_fit.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_curvedperimeter_only_fit/sp_small_polygon_curvedperimeter_only_fit_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_over_point_only_fit/sp_small_polygon_over_point_only_fit.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_over_point_only_fit/sp_small_polygon_over_point_only_fit_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_perimeter_only_fit/sp_small_polygon_perimeter_only_fit.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_perimeter_only_fit/sp_small_polygon_perimeter_only_fit_mask.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_placement_perimeter/sp_small_polygon_placement_perimeter.png
 create mode 100644 tests/testdata/control_images/expected_pal_placement/sp_small_polygon_placement_perimeter/sp_small_polygon_placement_perimeter_mask.png
 create mode 100644 tests/testdata/control_images/legend/expected_legend_tall_symbol/expected_legend_tall_symbol.png
 create mode 100644 tests/testdata/control_images/legend/expected_legend_tall_symbol/expected_legend_tall_symbol_mask.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test_mask.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false_mask.png
 create mode 100644 tests/testdata/control_images/symbol_markerline/expected_point_num_interval/expected_point_num_interval.png
 create mode 100644 tests/testdata/control_images/symbol_markerline/expected_point_num_interval/expected_point_num_interval_mask.png
 create mode 100644 tests/testdata/control_images/symbol_markerline/expected_point_num_vertex/expected_point_num_vertex.png
 create mode 100644 tests/testdata/control_images/symbol_markerline/expected_point_num_vertex/expected_point_num_vertex_mask.png
 create mode 100644 tests/testdata/labeling/line_placement_1.qml
 create mode 100644 tests/testdata/labeling/line_placement_2.qml
 create mode 100644 tests/testdata/labeling/line_placement_3.qml
 create mode 100644 tests/testdata/labeling/line_placement_4.qml
 create mode 100644 tests/testdata/labeling/line_placement_5.qml
 create mode 100644 tests/testdata/labeling/polygon_perimeter.qml
 create mode 100644 tests/testdata/labeling/polygon_small.qml
 rename tests/testdata/qgis_server/{test+project.qgs => test_project.qgs} (79%)
 rename tests/testdata/qgis_server/{test+project_inspire.qgs => test_project_inspire.qgs} (100%)
 rename tests/testdata/qgis_server/{test+project_wfs.qgs => test_project_wfs.qgs} (100%)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qgis.git



More information about the Pkg-grass-devel mailing list