[qgis] 03/09: Imported Upstream version 2.14.1+dfsg

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Fri Mar 25 17:54:16 UTC 2016


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

sebastic pushed a commit to branch master
in repository qgis.

commit e66986d76ae81cdf3e4caf034aa8c586156322f0
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Mar 25 14:34:56 2016 +0100

    Imported Upstream version 2.14.1+dfsg
---
 CMakeLists.txt                                     |     2 +-
 ChangeLog                                          |   501 +
 debian/changelog                                   |    15 +-
 debian/qgis.preinst                                |    20 +-
 doc/TRANSLATORS                                    |    78 +-
 i18n/qgis_de.ts                                    | 10589 ++++++++++---------
 images/splash/splash.png                           |   Bin 318410 -> 318410 bytes
 ms-windows/Installer-Files/WelcomeFinishPage.bmp   |   Bin 112180 -> 154542 bytes
 ms-windows/QGIS-Installer.nsi                      |     4 +-
 ms-windows/osgeo4w/creatensis.pl                   |    62 +-
 ms-windows/osgeo4w/postinstall-desktop.bat         |     8 +-
 ms-windows/osgeo4w/postinstall-dev.bat             |    12 +-
 ms-windows/osgeo4w/postinstall-grass.bat           |     7 +-
 ms-windows/osgeo4w/preremove-desktop.bat           |    18 +-
 ms-windows/osgeo4w/preremove-dev.bat               |    20 +-
 ms-windows/osgeo4w/preremove-grass.bat             |    10 +-
 ms-windows/osgeo4w/preremove-server.bat            |     2 +-
 python/core/composer/qgscomposerpicture.sip        |    51 +
 python/core/qgsnetworkaccessmanager.sip            |    19 -
 python/core/symbology-ng/qgsrendererv2.sip         |     2 +
 .../symbology-ng/qgssinglesymbolrendererv2.sip     |     2 +
 python/core/symbology-ng/qgsstylev2.sip            |     6 +
 .../db_manager/db_plugins/vlayers/data_model.py    |    12 +-
 .../algs/grass/GrassAlgorithmProvider.py           |     1 +
 .../processing/algs/grass7/Grass7Algorithm.py      |    29 +-
 .../algs/grass7/Grass7AlgorithmProvider.py         |     1 -
 .../algs/grass7/description/r.viewshed.txt         |     1 +
 .../algs/grass7/description/v.buffer.column.txt    |     1 +
 .../processing/algs/qgis/FieldsCalculator.py       |    16 +-
 .../plugins/processing/algs/qgis/FieldsMapper.py   |    27 +-
 .../algs/qgis/ui/FieldsCalculatorDialog.py         |     9 +
 .../algs/saga/description/2.1.2/GridMasking.txt    |     1 +
 .../algs/saga/description/2.1.3/GridMasking.txt    |     1 +
 .../algs/saga/description/2.1.4/GridMasking.txt    |     1 +
 .../description/2.2.0/B-SplineApproximation.txt    |     3 +-
 .../description/2.2.0/CubicSplineApproximation.txt |     3 +-
 .../algs/saga/description/2.2.0/GridMasking.txt    |     1 +
 .../MultilevelB-SplineInterpolation(fromGrid).txt  |     3 +-
 .../2.2.0/MultilevelB-SplineInterpolation.txt      |     2 +
 ...ltilevelB-SplineInterpolationforCategories.txt} |     7 +-
 .../algs/saga/description/2.2.0/Resampling.txt     |     7 +-
 .../description/2.2.0/ThinPlateSpline(TIN).txt     |     1 +
 .../ThinPlateSpline.txt}                           |     6 +-
 .../2.2.2/ConfusionMatrix(GridPolygons).txt        |    12 +
 .../description/2.2.2/DiversityOfCategories.txt    |    14 +
 .../algs/saga/description/2.2.2/GridMasking.txt    |     1 +
 .../2.2.2/GridStatisticsforPolygons.txt            |    18 +-
 .../2.2.2/MultilevelB-SplineInterpolation.txt      |     1 -
 ...ltilevelB-SplineInterpolationforCategories.txt} |     7 +-
 .../algs/saga/description/2.2.2/Resampling.txt     |     7 +-
 .../description/2.2.2/ResidualAnalysis(Grid).txt   |     9 +-
 .../ThinPlateSpline.txt}                           |     6 +-
 .../2.2.3/ConfusionMatrix(GridPolygons).txt        |    12 +
 .../saga/description/2.2.3/CreateGraticule.txt     |     8 -
 .../description/2.2.3/CreateLinesGraticule.txt     |     9 +
 .../description/2.2.3/CreatePolygonsGraticule.txt  |     9 +
 .../2.2.3/DiffusiveHillslopeEvolution(ADI).txt     |    11 +
 .../2.2.3/DiffusiveHillslopeEvolution(FTCS).txt    |    11 +
 .../description/2.2.3/DiversityOfCategories.txt    |    15 +
 .../saga/description/2.2.3/FillSinks(QMofESP).txt  |     6 +
 .../2.2.3/FlowAccumulation(QMofESP).txt            |     6 +
 .../algs/saga/description/2.2.3/GridMasking.txt    |     1 +
 .../2.2.3/GridStatisticsforPolygons.txt            |    20 +-
 .../algs/saga/description/2.2.3/Mosaicking.txt     |     1 +
 .../2.2.3/MultilevelB-SplineInterpolation.txt      |     1 -
 ...ltilevelB-SplineInterpolationforCategories.txt} |     7 +-
 .../algs/saga/description/2.2.3/Resampling.txt     |     7 +-
 .../description/2.2.3/ResidualAnalysis(Grid).txt   |    10 +-
 .../description/2.2.3/SuccessiveFlowRouting.txt    |     7 +
 .../ThinPlateSpline.txt}                           |     6 +-
 python/plugins/processing/gui/BatchPanel.py        |    55 +-
 python/plugins/processing/gui/ProcessingToolbox.py |     4 +-
 .../plugins/processing/modeler/ModelerAlgorithm.py |     4 +-
 python/plugins/processing/tools/raster.py          |    10 +-
 .../qgsplugininstallerinstallingdialog.py          |    30 +-
 scripts/release.pl                                 |    11 +-
 src/analysis/vector/qgstransectsample.cpp          |     6 +-
 src/analysis/vector/qgszonalstatistics.h           |     2 +-
 src/app/CMakeLists.txt                             |    36 +-
 src/app/composer/qgscomposerpicturewidget.cpp      |   139 +-
 src/app/composer/qgscomposerpicturewidget.h        |     9 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar.h             |    84 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.cpp    |   320 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.h      |    79 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.cpp     |   596 ++
 src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.h       |   161 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.cpp    |   100 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.h      |    40 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_global.h      |    39 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.cpp      |  1138 ++
 src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.h        |   187 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_item.cpp      |   484 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_item.h        |   178 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.cpp  |   171 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.h    |    55 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.cpp    |   444 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.h      |    78 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.cpp |   167 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.h   |    58 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.cpp    |   233 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.h      |    70 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.cpp    |   118 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.h      |    52 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.cpp    |   246 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.h      |    98 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp      |  1362 +++
 src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h        |   219 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp  |   437 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.h    |    72 +
 .../gps/qwtpolar-1.1.1/qwt_polar_spectrogram.cpp   |   495 +
 src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.h |    92 +
 src/app/main.cpp                                   |    13 +-
 src/app/qgisapp.cpp                                |   122 +-
 src/app/qgsconfigureshortcutsdialog.cpp            |     3 +-
 src/app/qgsdiagramproperties.cpp                   |     2 +-
 src/app/qgslabelinggui.cpp                         |     1 +
 src/app/qgspluginregistry.cpp                      |     4 +
 src/core/CMakeLists.txt                            |     2 +
 src/core/composer/qgscomposermapgrid.cpp           |     3 +
 src/core/composer/qgscomposerpicture.cpp           |   145 +-
 src/core/composer/qgscomposerpicture.h             |    56 +
 src/core/geometry/qgsgeometrycollectionv2.cpp      |     4 +
 src/core/geometry/qgsgeometryfactory.cpp           |     1 +
 src/core/geometry/qgsgeos.cpp                      |     2 +-
 src/core/qgscoordinatereferencesystem.cpp          |     6 +-
 src/core/qgsexpression.cpp                         |    17 +-
 src/core/qgsexpressionlexer.ll                     |     3 +
 src/core/qgshttptransaction.cpp                    |     4 +-
 src/core/qgsmaprenderer.cpp                        |     1 +
 src/core/qgsmaprenderercustompainterjob.cpp        |     2 +
 src/core/qgsmaprendererparalleljob.cpp             |     4 +
 src/core/qgsmaptopixelgeometrysimplifier.cpp       |     1 +
 src/core/qgsnetworkaccessmanager.cpp               |    74 +-
 src/core/qgsnetworkaccessmanager.h                 |    22 +-
 src/core/qgsnetworkdiskcache.cpp                   |   115 +
 src/core/qgsnetworkdiskcache.h                     |   100 +
 src/core/qgspointlocator.cpp                       |     3 +
 src/core/qgsslconnect.cpp                          |    11 +
 src/core/qgssqlexpressioncompiler.cpp              |    21 +
 src/core/qgssqlexpressioncompiler.h                |     3 +
 src/core/qgsvectorfilewriter.cpp                   |     9 +-
 .../symbology-ng/qgssinglesymbolrendererv2.cpp     |     6 +
 src/core/symbology-ng/qgssinglesymbolrendererv2.h  |     2 +
 src/core/symbology-ng/qgsstylev2.cpp               |    89 +-
 src/core/symbology-ng/qgsstylev2.h                 |     6 +
 src/gui/attributetable/qgsdualview.cpp             |    10 +-
 src/gui/layertree/qgslayertreemapcanvasbridge.cpp  |     6 +-
 src/gui/qgscredentialdialog.cpp                    |     1 +
 src/gui/qgsmapcanvas.cpp                           |     1 +
 src/gui/qgsrasterlayersaveasdialog.cpp             |     4 +-
 src/plugins/evis/evis.cpp                          |     4 +-
 src/plugins/geometry_checker/utils/qgsgeomutils.h  |    23 +-
 src/plugins/globe/CMakeLists.txt                   |     2 +
 src/plugins/globe/globe_plugin.cpp                 |    36 +-
 src/providers/grass/qgsgrass.cpp                   |    16 +-
 src/providers/memory/qgsmemoryprovider.cpp         |    12 +-
 src/providers/mssql/qgsmssqlfeatureiterator.cpp    |     2 +-
 src/providers/ogr/qgsogrexpressioncompiler.cpp     |     9 +-
 src/providers/ogr/qgsogrprovider.cpp               |    16 +-
 .../spatialite/qgsspatialitefeatureiterator.cpp    |    10 +-
 src/providers/spatialite/qgsspatialiteprovider.cpp |    64 +-
 src/providers/spatialite/qgsspatialiteprovider.h   |     3 +
 src/providers/virtual/CMakeLists.txt               |     1 +
 src/providers/virtual/qgsvirtuallayerprovider.cpp  |     2 +-
 src/providers/wcs/qgswcscapabilities.cpp           |    37 +-
 src/providers/wcs/qgswcscapabilities.h             |     3 +-
 src/providers/wcs/qgswcsprovider.cpp               |    30 +-
 src/providers/wcs/qgswcsprovider.h                 |     3 -
 src/providers/wfs/qgswfsdataitems.cpp              |    17 +-
 src/providers/wfs/qgswfsdataitems.h                |     3 -
 src/providers/wms/qgswmscapabilities.cpp           |    55 +-
 src/providers/wms/qgswmscapabilities.h             |    18 +-
 src/providers/wms/qgswmsprovider.cpp               |    44 +-
 src/providers/wms/qgswmsprovider.h                 |     2 -
 src/server/qgsserverprojectparser.cpp              |    15 +-
 src/server/qgswfsprojectparser.cpp                 |     2 +
 src/ui/composer/qgscomposerpicturewidgetbase.ui    |   145 +-
 src/ui/qgsabout.ui                                 |    10 +
 src/ui/qgsdiagrampropertiesbase.ui                 |    18 +-
 src/ui/qgsrulebasedrendererv2widget.ui             |    13 +-
 tests/src/core/testqgscomposerpicture.cpp          |    23 +
 tests/src/core/testqgsexpression.cpp               |    55 +
 tests/src/core/testqgsgeometry.cpp                 |     4 +
 tests/src/core/testqgsstylev2.cpp                  |   110 +
 tests/src/providers/testqgswcspublicservers.cpp    |     2 +-
 tests/src/python/providertestbase.py               |    11 +
 tests/src/python/test_provider_memory.py           |     1 +
 tests/src/python/test_provider_spatialite.py       |    11 +
 tests/src/python/test_qgsgeometry.py               |    15 +
 tests/src/python/test_qgsserver.py                 |    13 +-
 .../expected_atlas_autoscale1_mask.png             |   Bin 30630 -> 30674 bytes
 .../expected_atlas_autoscale2_mask.png             |   Bin 34016 -> 34030 bytes
 .../expected_atlas_autoscale_old_api1_mask.png     |   Bin 30630 -> 30674 bytes
 .../expected_atlas_autoscale_old_api2_mask.png     |   Bin 34016 -> 34030 bytes
 .../expected_atlas_filtering1_mask.png             |   Bin 34115 -> 34163 bytes
 .../expected_atlas_fixedscale1_mask.png            |   Bin 32163 -> 32217 bytes
 .../expected_atlas_fixedscale2_mask.png            |   Bin 33062 -> 33076 bytes
 .../expected_atlas_fixedscale_old_api1_mask.png    |   Bin 32163 -> 32217 bytes
 .../expected_atlas_fixedscale_old_api2_mask.png    |   Bin 33062 -> 33076 bytes
 .../expected_atlas_hiding1_mask.png                |   Bin 12393 -> 12444 bytes
 .../expected_atlas_hiding2_mask.png                |   Bin 10487 -> 10502 bytes
 .../expected_atlas_predefinedscales1_mask.png      |   Bin 30681 -> 30744 bytes
 .../expected_atlas_predefinedscales2_mask.png      |   Bin 29807 -> 29801 bytes
 .../expected_atlas_sorting1_mask.png               |   Bin 34298 -> 34335 bytes
 .../expected_atlas_sorting2_mask.png               |   Bin 27506 -> 27590 bytes
 .../expected_atlas_two_maps1_mask.png              |   Bin 31062 -> 31122 bytes
 .../expected_atlas_two_maps2_mask.png              |   Bin 32786 -> 32798 bytes
 .../expected_composerrotation_label_mask.png       |   Bin 9094 -> 9065 bytes
 .../expected_composerrotation_maprotation_mask.png |   Bin 0 -> 5421 bytes
 ...ed_composermap_exteriorticks_annotated_mask.png |   Bin 33697 -> 33593 bytes
 ...d_composermap_exteriorticks_annotated2_mask.png |   Bin 29602 -> 29556 bytes
 ...pected_composermap_filteredannotations_mask.png |   Bin 20483 -> 30583 bytes
 ...sermap_interiorexteriorticks_annotated_mask.png |   Bin 31381 -> 31393 bytes
 ...ermap_interiorexteriorticks_annotated2_mask.png |   Bin 29602 -> 29556 bytes
 ...ed_composermap_interiorticks_annotated_mask.png |   Bin 31381 -> 31393 bytes
 ...d_composermap_interiorticks_annotated2_mask.png |   Bin 32536 -> 32468 bytes
 ...ected_composermap_lineborder_annotated_mask.png |   Bin 32472 -> 32305 bytes
 ...cted_composermap_lineborder_annotated2_mask.png |   Bin 32403 -> 32326 bytes
 ...xpected_composermap_rotatedannotations_mask.png |   Bin 39132 -> 49060 bytes
 ..._composermap_verticaldescending_inside_mask.png |   Bin 40872 -> 40991 bytes
 ...composermap_verticaldescending_outside_mask.png |   Bin 43103 -> 43108 bytes
 .../expected_composerpicture_svg_params.png        |   Bin 0 -> 34554 bytes
 .../expected_composerscalebar_doublebox_mask.png   |   Bin 8947 -> 8918 bytes
 .../expected_composerscalebar_numeric_mask.png     |   Bin 7720 -> 7739 bytes
 .../expected_composerscalebar_singlebox_mask.png   |   Bin 8856 -> 8826 bytes
 .../expected_composerscalebar_tick_mask.png        |   Bin 8887 -> 8859 bytes
 .../expected_composerattributetable_align_mask.png |   Bin 42737 -> 42975 bytes
 ...pected_composerattributetable_autowrap_mask.png |   Bin 50549 -> 50560 bytes
 ...ected_composerattributetable_cellstyle_mask.png |   Bin 29157 -> 29104 bytes
 ...ted_composerattributetable_columnwidth_mask.png |   Bin 36444 -> 36344 bytes
 ...ected_composerattributetable_drawempty_mask.png |   Bin 29057 -> 29005 bytes
 ...ted_composerattributetable_headersonly_mask.png |   Bin 17415 -> 17366 bytes
 ...ected_composerattributetable_multiline_mask.png |   Bin 42356 -> 42256 bytes
 ...expected_composerattributetable_render_mask.png |   Bin 42220 -> 42124 bytes
 ...ted_composerattributetable_showmessage_mask.png |   Bin 20888 -> 20832 bytes
 .../expected_legend_basic_mask.png                 |   Bin 19209 -> 19044 bytes
 .../expected_legend_big_marker_mask.png            |   Bin 20733 -> 20496 bytes
 .../expected_legend_filter_by_expression_mask.png  |   Bin 12137 -> 12134 bytes
 .../expected_legend_filter_by_map_mask.png         |   Bin 13779 -> 13766 bytes
 .../expected_legend_filter_by_map_dupe_mask.png    |   Bin 2296 -> 2873 bytes
 .../expected_legend_filter_by_polygon_mask.png     |   Bin 12137 -> 12134 bytes
 .../expected_legend_long_symbol_text_mask.png      |   Bin 23719 -> 23507 bytes
 .../expected_legend_raster_border_mask.png         |   Bin 1015 -> 1014 bytes
 .../expected_legend_three_columns_mask.png         |   Bin 19244 -> 19184 bytes
 tests/testdata/provider/testdata_mssql.sql         |    13 +-
 tests/testdata/qgis_server/getprojectsettings.txt  |     2 +-
 .../qgis_server/wfs_describefeaturetype.txt        |     2 +-
 tests/testdata/svg_params.svg                      |    43 +
 248 files changed, 15856 insertions(+), 5905 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88ef44d..27eca56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 SET(CPACK_PACKAGE_VERSION_MAJOR "2")
 SET(CPACK_PACKAGE_VERSION_MINOR "14")
-SET(CPACK_PACKAGE_VERSION_PATCH "0")
+SET(CPACK_PACKAGE_VERSION_PATCH "1")
 SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
 SET(RELEASE_NAME "Essen")
 IF (POLICY CMP0048) # in CMake 3.0.0+
diff --git a/ChangeLog b/ChangeLog
index 1853a78..f3442dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,504 @@
+Juergen E. Fischer <jef at norbit.de>	2016-03-25
+
+    german translation update
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-24
+
+    [Spatialite] Fix crash on iterator closing if connection failed.
+
+    If an iterator fails to open the spatialite database (mHandle == nullptr
+    in QgsSpatiaLiteFeatureIterator::QgsSpatiaLiteFeatureIterator() ),
+    a crash will occur at the destruction of the QgsSpatiaLiteFeatureSource,
+    due to the iterator not being removed from the list of active iterators.
+
+    Currently QgsSpatiaLiteFeatureIterator::close() does not call
+    iteratorClosed() if mHandle is invalid, which later causes
+    QgsAbstractFeatureSource::~QgsAbstractFeatureSource() to try calling
+    the close() method of a now defunct iterator.
+
+    If not applying the patch, the added test case crashes with:
+
+    177: src/providers/spatialite/qgsspatialiteconnection.cpp: 736: (openDb) [1ms] New sqlite connection for /tmp/test.sqlite.corrupt
+    177: src/providers/spatialite/qgsspatialiteconnection.cpp: 750: (openDb) [1ms] Failure while connecting to: /tmp/test.sqlite.corrupt
+    177:
+    177: invalid metadata tables
+    177: src/core/qgsfeaturerequest.cpp: 259: (~QgsAbstractFeatureSource) [0ms] closing active iterator
+    177: CMake Error at PyQgsSpatialiteProvider.cmake:22 (MESSAGE):
+    177:   Test failed: Segmentation fault
+    (cherry picked from commit 2b15eaa14d9e5067ed32f41572d5e9658fa8b278)
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-24
+
+    Use consistant default value of 60000ms for /qgis/networkAndProxy/networkTimeout
+
+    Currently there's an inconsistancy between the Options dialog that displays a
+    default value of 60000ms for network request timeouts, whereas places in the
+    code use 20000ms. I propose to align on 60000s, since there are occurrences
+    of network requests, for example big WFS GetFeature requests, that can take
+    more than 20s to start.
+
+    (cherry picked from commit f3872914ceb27fc7871bf571eb542db9a131f545)
+
+    (testqgswcspublicservers.cpp update added)
+
+Hugo Mercier <hugo.mercier at oslandia.com>	2016-03-15
+
+    [db manager] Fix virtual layers plugin (fixes #14404)
+
+    (cherry-picked from commit 7dbc0bf81992cd58a6e4d0b081941f3c20f168ca)
+
+Hugo Mercier <hugo.mercier at oslandia.com>	2016-03-14
+
+    Virtual layer: Be case insensitive when looking for a layer name
+
+    (cherry picked from commit f14bc8c4d9e88af5529c80593d73e4e9ba472a68)
+
+Marco Hugentobler <marco.hugentobler at sourcepole.ch>	2016-03-14
+
+    Fix attribute creation in transect sample
+
+    (cherry picked from commit 90e0cb995fd887db7042fc2e811b685004f0cbbd)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-18
+
+    Don't force use of SQL dialect when running ogr queries (fix #14407)
+
+    Using "SQL" dialect is not recommended as it forces use of the sometimes
+    buggy SDK query engines. This was breaking the uniqueValues method for
+    ESRI gdb files.
+
+    See https://trac.osgeo.org/gdal/ticket/6415 for GDAL dev recommendation
+    to use default OGR dialect in place of "SQL" dialect.
+
+    (cherry picked from commit 8d9443bdca7bee131f75c27192aa021c95a93417)
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-23
+
+    [Spatialite] Use correct free function for sqlite3_bind_blob of geometries
+
+    Currently sqlite3_bind_blob() uses free() as the free function of WKB
+    blobs returned by convertFromGeosWKB(). But those are allocated with
+    new[] and should consequently be freed with delete[].
+
+    Spotted by Valgrind:
+    ==4014== Mismatched free() / delete / delete []
+    ==4014==    at 0x4C287BE: free (vg_replace_malloc.c:446)
+    ==4014==    by 0xE42E481: sqlite3VdbeMemReleaseExternal (sqlite3.c:57237)
+    ==4014==    by 0xE42E4E3: sqlite3VdbeMemRelease (sqlite3.c:57252)
+    ==4014==    by 0xE42EC3E: releaseMemArray (sqlite3.c:59208)
+    ==4014==    by 0xE42ED1E: sqlite3VdbeDeleteObject (sqlite3.c:60561)
+    ==4014==    by 0xE46A6DB: sqlite3VdbeFinalize (sqlite3.c:60528)
+    ==4014==    by 0xE46A916: sqlite3_finalize (sqlite3.c:61431)
+    ==4014==    by 0x7FB23958: QgsSpatiaLiteProvider::addFeatures(QList<QgsFeature>&) (qgsspatialiteprovider.cpp:3752)
+    ==4014==  Address 0x8e2a8b30 is 0 bytes inside a block of size 94 alloc'd
+    ==4014==    at 0x4C29520: operator new[](unsigned long) (vg_replace_malloc.c:363)
+    ==4014==    by 0x7FB1B964: QgsSpatiaLiteProvider::convertFromGeosWKB(unsigned char const*, int, unsigned char**, int*, int) (qgsspatialiteprovider.cpp:1341)
+    ==4014==    by 0x7FB234B5: QgsSpatiaLiteProvider::addFeatures(QList<QgsFeature>&) (qgsspatialiteprovider.cpp:3676)
+
+    (cherry picked from commit 2e04162e377969e41675d1c2f7f36da7f171c945)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-23
+
+    Reenable fcgi and server on osx (followup 53d40e8)
+
+    (cherry picked from commit 2c866f45cdcb03a1be89f7237763e8e38f2d3faa)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-11
+
+    evis: update QAction::activated to triggered
+
+    (cherry picked from commit 48911ca9a4dc979bdb73b935bc319dadcbe781d5)
+
+Juergen E. Fischer <jef at norbit.de>	2016-02-27
+
+    fix warnings
+
+    (cherry picked from commit eefb046dab437c35205cba8cf68103ccc240c7f9)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-04
+
+    use individual network managers for threads (fixes #13721, fixes #14401, implements #14192)
+
+    (cherry picked from commit 2eb82430bbdb02b0789b3ffe80d5b6fd747fa8cc)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-04
+
+    show source locations in windows backtraces
+
+    (cherry picked from commit 26d61956d75dd0e522f49a41cec9faef0f2e3719)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-03-19
+
+    Don't crash when some shortcuts can't be loaded
+
+    Fix #14528
+
+    (cherry picked from commit 76296c82e7e9225c6be3c00d48b4bf748ca5daa8)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-18
+
+    use link to release branch in about box for exported sources (fixeds #14525)
+
+    (cherry picked from commit 044379b758a286d8d65d9d5181b776096ba7c737)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-12
+
+    osgeo4w: support for OSGEO4W_DESKTOP and fix deinstallation
+
+    (cherry picked from commit c2ff2d772197a93c99b625d64e44acc71df2c00c)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-21
+
+    travis: disable fcgi and server on osx (fastcgi.com apparently gone)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-03-16
+
+    UI consistency "Rendering order..." to "Symbol levels..."
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-19
+
+    crssync: skip more crses that cannot be copied
+
+    (cherry picked from commit 71429be7a289e1b8050005dabcb3e0e33ac1cdbd)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-03-20
+
+    [processing] activate GRASS 7 by default and disable GRASS 6
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-21
+
+    [FEATURE] Parameterized svg support for composer svg images
+
+    This makes it possible to change SVG fill/outline color and outline
+    width when using parameterised SVG files such as those included
+    with QGIS (fix #10542)
+
+    (cherry-picked from ed3cb120087414906fd409049081950137116e1a)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-21
+
+    Use SVG cache to handle parameterized SVG files in composer picture
+    selection widget (fix #14385)
+
+    (cherry-picked from 94e7720fe365794be5ea09564f0bc65577a5e068)
+
+Martin Dobias <wonder.sk at gmail.com>	2016-03-06
+
+    Improved fix for spatialite views (fixes #14232)
+
+    (cherry picked from commit 42d88848f3010365d2c9fcf84b3a8ed5d52749a1)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-19
+
+    Fix PyQgsServer test on GDAL >= 2.0
+
+    Also fix handling of longlong types in wfs_describefeaturetype
+
+    (cherry-picked from 0780527428c474df8714be8b6d96aa25b81b3996)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-03-17
+
+    Disable watchDog when plugin was loaded successfully
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-15
+
+    Add internal qwtpolar 1.1.1 for Qwt 6.1
+
+    (cherry picked from commit a9cb9906a296eba4f4a1f1dea414d1bd8f352271)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-03-15
+
+    GDAL 2.0 allows writing 64bit longlong integers
+
+    Fix #14411
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-15
+
+    Default to layer CRS in raster save as dialog (fix #14209)
+
+    (cherry-picked from 8fc405648be18870133e318cbfc7cb0918efe4b1)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-15
+
+    Fix incorrect projection if raster or plugin layer is first layer
+    loaded into an empty project (fix #14392)
+
+    (cherry-picked from 15d2be26f1235d9ec18b48f09376390c3a6e2d00)
+
+Sandro Mani <manisandro at gmail.com>	2016-03-12
+
+    [Geometry checker] Make polyLineSize survive empty geometries
+
+    (cherry-picked from 34bd12402362e8af1ba3b1cae09f6be9fb7c2c52)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-08
+
+    globe: adapt to osgearth 2.7
+
+    (cherry picked from commit 6327558 and de06cd7)
+
+Bas Couwenberg <sebastic at xs4all.nl>	2016-03-12
+
+    Add Qt5OpenGL variables to include_directories() & target_link_libraries().
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-10
+
+    [virtual provider] Add SQLITE3_INCLUDE_DIR to CMakeLists.txt
+
+    The virtual provider depends directly on sqlite3.h, but fails to add
+    explictly its paths, relying on it to be present in the other used
+    included paths, which may be not always the case in some setups.
+
+    (cherry-picked from 455a473)
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-10
+
+    Add debug message in case of failure in QgsSLConnect::sqlite3_close()
+
+    and in QgsSLConnect::sqlite3_close_v2() too. This can make spotting
+    issues like the one fixed in b0f2b970ac8918e5cb0ec566ecb491a57054a093
+    easier.
+
+    (cherry-picked from b253a29aa4c2cf9b214a086e9783c856313cde2e)
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-10
+
+    [BUGFIX] [Spatialite] Finalize statement in addFeatures()
+
+    The sqlite3_prepare_v2() call in QgsSpatiaLiteProvider::addFeatures() is
+    not associated with a matching sqlite3_finalize(). Consequently at
+    time of sqlite3_close(), the later returns a SQLITE_BUSY error and
+    fails to close the file descriptor (can be checked by runing 'lsof' on
+    qgis process).
+
+    (cherry-picked from b0f2b970ac8918e5cb0ec566ecb491a57054a093)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-12
+
+    Fix broken $x_at, $y_at functions (fix #14462), add tests
+
+    (cherry-picked from 3b40e2baa5b939dd4b920220e266a98cf9ef0e4c)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-10
+
+    Fix reshape involving first/last vertex (fix #14443)
+
+    (cherry-picked from bb0ecf427fd3c92a46bac26d7344f82381f34e8e)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-10
+
+    Allow editing newly added diagram expression attributes (fix #14063)
+
+    (cherry-picked from 8389b7f703694bf107ffaa85f5b4bda934e2391a)
+
+Juergen E. Fischer <jef at norbit.de>	2016-03-09
+
+    debian packaging update
+
+    (cherry picked from commit e62d8fe790e88f22a7ab35e5346a52708892b581)
+
+rldhont <rldhont at gmail.com>	2016-03-09
+
+    [BUGFIX][QGIS Server] To avoid infinite loop in layer creation
+
+    Insert layer in registry and cache before addValueRelationLayersForLayer
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-03-09
+
+    [processing] don't show tip when user uses search and tip was disabled (fix #14379)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-09
+
+    Fix searching for symbols by tag (fix #14445), add tests
+
+    (cherry-picked from 6be8d06dc6147b35ad072ef383e200c8a2da5c84)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-09
+
+    Correctly set title for label svg selector dialog
+
+    (cherry-picked from 7f179032f71ad27618ea8175c0c2d9c572be05a2)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-09
+
+    Use correct field icon in form view preview menu
+
+    (cherry-pick from ea10c5da3c23689cbc755b980c290dd79cd1836c)
+
+radosuav <radoslaw.guzinski at esa.int>	2016-03-07
+
+    [Processing] Fix TypeError in Zonal Statistics algorithm
+
+    Fixes #14412
+
+Giovanni Manghi <giovanni.manghi at faunalia.pt>	2016-03-07
+
+    processing fix SAGA 2.2.x resampling
+
+Giovanni Manghi <giovanni.manghi at faunalia.pt>	2016-03-07
+
+    processing fix SAGA 2.2.* grid_spline tools
+
+Markus Neteler <neteler at gmail.com>	2016-03-06
+
+    Include parameter target elevation above the ground
+
+Giovanni Manghi <giovanni.manghi at faunalia.pt>	2016-03-06
+
+    processing: in SAGA grid masking it is not mandatory for inputs to have the same extent
+
+Médéric RIBREUX <mederic.ribreux at medspx.homenet.org>	2016-03-06
+
+    [Processing] Use local GRASS7 help files if they exist. Fixes #7745
+
+Giovanni Manghi <giovanni.manghi at faunalia.pt>	2016-03-06
+
+    processing: fix GRASS7 v.buffer.column
+
+Giovanni Manghi <giovanni.manghi at faunalia.pt>	2016-03-06
+
+    fix/adds SAGA 2.2.3 tools
+
+Etienne Trimaille <etienne.trimaille at gmail.com>	2016-02-17
+
+    catch some python error in batch processing
+
+Etienne Trimaille <etienne.trimaille at gmail.com>	2016-02-17
+
+    improve error message in the modeler
+
+Salvatore Larosa <lrssvtml at gmail.com>	2016-03-06
+
+    Fix #14426 - Zoom to layer behaves really weird when using a filter on a Shape file:
+
+    Fix extent for OGR provider, followup 9fb7819
+
+    (cherry-picked from 5bb25d8917dc0d494ae46c035f8e019f448c60fb)
+
+Sandro Mani <manisandro at gmail.com>	2016-03-06
+
+    Extend TestQgsGeometry::isEmpty to also test empty geometry collection
+
+    (cherry-picked from 1e90786be770868b90887cd1bb98c041ec0eee01)
+
+Sandro Mani <manisandro at gmail.com>	2016-03-05
+
+    Fix out of bounds array access if nextVertex is called on empty QgsGeometryCollectionV2
+
+    (cherry-picked from 4c0e78a22dba81d9a1450620ade8ab321fc4d7d7)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-02-26
+
+    [pluginmanager] apply auth also when downloading plugin package
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-04
+
+    Fix handling of longlong fields in memory provider
+
+    (cherry-picked from 98a216e0327c72132faa434251f29ee9f2a582bc)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-04
+
+    Update test mask images
+
+    (cherry-picked from dc2f1523cd7c5bb655e36ae302b67e1284573341)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-04
+
+    Fix OGR expression compiler with GDAL >= 2.0
+
+    Some extreme corner cases (eg "NULL OR TRUE") tested by the provider
+    tests were failing with GDAL 2.0. In GDAL<2.0 these expressions would
+    be rejected by OGR, but it seems GDAL>=2.0 has partial support for
+    these so the expression compiler needs to handle them before handing
+    off to GDAL.
+
+    (cherry-picked from 81be55937538307efed3b76b518fba4fa699545e)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-03-03
+
+    Python binding fixes for 2.5D renderer
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-03
+
+    Fix fetching subset of attributes with mssql (fix #14402), add test
+
+    (cherry-picked from 30449e577f0cd432bd8c60787743fba54c1e51b9)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-03
+
+    Fix mssql provider test data
+
+    (cherry-picked from 527fe9d2344f8d93e2f9d430f5691a678b63c164)
+
+Radim Blazek <radim.blazek at gmail.com>	2016-03-02
+
+    [GRASS] set PATH and PYTHONPATH in startModule() for t.list, #14241
+
+    (cherry picked from commit 1d3cbd91cace921f71183535ca90ca8cf38bf9ef)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-01
+
+    Fix build
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-01
+
+    Fix setting symbol for single symbol renderer via legend dbl click
+
+    Eg if diagram legend is also shown for layer it's possible for the
+    single symbol renderer to show a legend item.
+
+    (cherry-picked from 5612936836524eb1d85a0ab4168c80cf2b10dded)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-01
+
+    Fix pasting mixed geometry types to memory layer, switch to message bar
+
+    (cherry-picked from 28d725c1e4f152031223a66f8929bf5d2ac74551)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-01
+
+    Fix string capitalization
+
+    (cherry-picked from 3f80649b58c8ea50c0e2f93b556b1568ab3b3430)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-03-01
+
+    [processing] Fixes for field calculator and field mapper
+
+    - respect project distance, area and ellipsoid settings
+    - ensure expression variables are correctly evaluated
+
+    (cherry-picked from d32c41a60ed28abe3d8a93971810ee4f9735e055)
+
+*_* <guilhem.vellut at gmail.com>	2016-02-29
+
+    Correct initialization of Max
+
+    FLT_MIN is the smallest positive float
+
+    (cherry-picked from 8a47b5cad07bcf50c3b194631374c6021e56c823)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-02-29
+
+    Add splash screen credits for City of Essen and Linux Hotel
+
+Juergen E. Fischer <jef at norbit.de>	2016-02-27
+
+    fix nsis installer welcome picture (convert to BMP3)
+
+Juergen E. Fischer <jef at norbit.de>	2016-02-26
+
+    fix mis-sized splash
+
+Juergen E. Fischer <jef at norbit.de>	2016-02-26
+
+    Release of 2.14 (Essen)
+
+Juergen E. Fischer <jef at norbit.de>	2016-02-26
+
+    changelog and news update for 2.14
+
 Juergen E. Fischer <jef at norbit.de>	2016-02-26
 
     translation update for 2.14 from transifex
diff --git a/debian/changelog b/debian/changelog
index 80f0c2c..40e473c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,19 @@
-qgis (2.14.0) UNRELEASED; urgency=medium
+qgis (2.14.1) UNRELEASED; urgency=medium
 
+  * Release of 2.14.1
+
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 25 Mar 2016 13:17:00 +0100
+
+qgis (2.14.0) unstable; urgency=medium
+
+  [ Jürgen E. Fischer ]
   * Release of 2.14.0
 
- -- Jürgen E. Fischer <jef at norbit.de>  Fri, 26 Feb 2016 13:23:48 +0100
+  [ Bas Couwenberg ]
+  * Fix removal of obsolete diversions for bother the grass plugin & provider.
+    (closes: #817176)
+
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 25 Mar 2016 13:17:00 +0100
 
 qgis (2.13.0) unstable; urgency=medium
 
diff --git a/debian/qgis.preinst b/debian/qgis.preinst
index 392b962..eb81103 100644
--- a/debian/qgis.preinst
+++ b/debian/qgis.preinst
@@ -3,19 +3,13 @@
 set -e
 
 if [ "$1" = "install" -o "$1" = "upgrade" ]; then
-	# Fix bad diversions
-        div=$(dpkg-divert --listpackage /usr/bin/qgis)
-        if [ -n "$div" -a "$div" = qgis-plugin-grass ]; then
-               for i in /usr/bin/qgis /usr/bin/qbrowser; do
-                       if [ -e $i ] && ! [ -e $i.undiverted ]; then
-                               mv $i $i.undiverted
-                       fi
-                       dpkg-divert --package qgis-plugin-grass --remove --rename --divert $i.bin $i
-                       if [ -e $i.undiverted ]; then
-                               mv $i.undiverted $i
-                       fi
-               done
-       fi
+	# Remove obsolete diversions
+	for i in /usr/bin/qgis /usr/bin/qbrowser; do
+		pkg=$(dpkg-divert --listpackage $i)
+		if [ -n "$pkg" -a "$pkg" = qgis-plugin-grass -o "$pkg" = qgis-provider-grass ]; then
+			dpkg-divert --package $pkg --rename --remove $i
+		fi
+	done
 fi
 
 #DEBHELPER#
diff --git a/doc/TRANSLATORS b/doc/TRANSLATORS
index 9354391..3c855b5 100644
--- a/doc/TRANSLATORS
+++ b/doc/TRANSLATORS
@@ -1,41 +1,41 @@
 <style>table {font-size:80%;}th {text-align:left; }.bartodo{ background-color:red;width:100px;height:20px;}.bardone{ background-color:green;width:80px;height:20px;font-size:80%;text-align:center;padding-top:4px;height:16px;color:white;}</style><table><tr><th colspan="2" style="width:250px;">Language</th><th>Finished %</th><th>Translators</th></tr>
 
-<tr><td><img src="qrc:/images/flags/de.png"></td><td>German</td><td><div title="finished:17420 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</div></div></td><td>Jürgen E. Fischer, Stephan Holl, Otto Dassau, Werner Macho</td></tr>
-<tr><td><img src="qrc:/images/flags/sv.png"></td><td>Swedish</td><td><div title="finished:17420 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</div></div></td><td>Victor Axbom, Lars Luthman, Magnus Homann, Klas Karlsson, Isabelle J Wigren, Daniel Rosander, Anders Ekwall, Magnus Nilsson, Jonas Svensson, Christian Brinkenberg</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_BR.png"></td><td>Portuguese (Brazil)</td><td><div title="finished:17418 unfinished:0 untranslated:2" class="bartodo"><div class="bardone" style="width:99px">100.0</div></div></td><td>Sidney Schaberle Goveia, Arthur Nanni, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Leônidas Descovi Filho, Felipe Sodré Barros </td></tr>
-<tr><td><img src="qrc:/images/flags/eu.png"></td><td>Basque</td><td><div title="finished:17386 unfinished:0 untranslated:34" class="bartodo"><div class="bardone" style="width:99px">99.8</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
-<tr><td><img src="qrc:/images/flags/fr.png"></td><td>French</td><td><div title="finished:17376 unfinished:0 untranslated:44" class="bartodo"><div class="bardone" style="width:99px">99.7</div></div></td><td>Arnaud Morvan, Augustin Roche, DelazJ, Didier Vanden Berghe, Dofabien, etrimaille, Jean-Roc Morreale, Jérémy Garniaux, Loïc Buscoz, Lsam, Marc-André Saia, Marie Silvestre, Mathieu Bossaert, Mathieu Lattes, Mayeul Kauffmann, Médéric Ribreux, Mehdi Semchaoui, Michael Douchin, Nicolas Boi [...]
-<tr><td><img src="qrc:/images/flags/gl.png"></td><td>Galician</td><td><div title="finished:17376 unfinished:0 untranslated:44" class="bartodo"><div class="bardone" style="width:99px">99.7</div></div></td><td>Xan Vieiro</td></tr>
-<tr><td><img src="qrc:/images/flags/nl.png"></td><td>Dutch</td><td><div title="finished:17376 unfinished:0 untranslated:44" class="bartodo"><div class="bardone" style="width:99px">99.7</div></div></td><td>Richard Duivenvoorde, Raymond Nijssen, Carlo van Rijswijk, Diethard Jansen, Willem Hoffmans, Dick Groskamp</td></tr>
-<tr><td><img src="qrc:/images/flags/ro.png"></td><td>Romanian</td><td><div title="finished:17350 unfinished:0 untranslated:70" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Sorin Călinică, Tudor Bărăscu, Georgiana Ioanovici, Alex Bădescu, Lonut Losifescu-Enescu, Bogdan Pacurar</td></tr>
-<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16884 unfinished:5 untranslated:531" class="bartodo"><div class="bardone" style="width:96px">96.9</div></div></td><td>Phùng Văn Doanh, Bùi Hữu Mạnh, Nguyễn Văn Thanh, Nguyễn Hữu Phúc, Cao Minh Tu</td></tr>
-<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:16535 unfinished:30 untranslated:855" class="bartodo"><div class="bardone" style="width:95px">95.0</div></div></td><td>Carlos Dávila, Javier César Aldariz, Gabriela Awad, Edwin Amado, Mayeul Kauffmann, Diana Galindo</td></tr>
-<tr><td><img src="qrc:/images/flags/ja.png"></td><td>Japanese</td><td><div title="finished:16457 unfinished:0 untranslated:963" class="bartodo"><div class="bardone" style="width:94px">94.5</div></div></td><td>BABA Yoshihiko, Yoichi Kayama, Minoru Akagi, Takayuki Nuimura, Takayuki Mizutani, Norihiro Yamate</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15793 unfinished:13 untranslated:1614" class="bartodo"><div class="bardone" style="width:90px">90.7</div></div></td><td>Giovanni Manghi, Joana Simões, Duarte Carreira, Alexandre Neto, Pedro Pereira, Pedro Palheiro, Nelson Silva, Ricardo Sena, Leandro Infantini, João Gaspar</td></tr>
-<tr><td><img src="qrc:/images/flags/ru.png"></td><td>Russian</td><td><div title="finished:15410 unfinished:28 untranslated:1982" class="bartodo"><div class="bardone" style="width:88px">88.5</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
-<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese simplified</td><td><div title="finished:15256 unfinished:15 untranslated:2149" class="bartodo"><div class="bardone" style="width:87px">87.6</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
-<tr><td><img src="qrc:/images/flags/hu.png"></td><td>Hungarian</td><td><div title="finished:15112 unfinished:12 untranslated:2296" class="bartodo"><div class="bardone" style="width:86px">86.8</div></div></td><td>Zoltan Siki</td></tr>
-<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14402 unfinished:192 untranslated:2826" class="bartodo"><div class="bardone" style="width:83px">83.2</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
-<tr><td><img src="qrc:/images/flags/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14372 unfinished:31 untranslated:3017" class="bartodo"><div class="bardone" style="width:82px">82.6</div></div></td><td>James Stott, Maléne Peterson</td></tr>
-<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14331 unfinished:71 untranslated:3018" class="bartodo"><div class="bardone" style="width:82px">82.5</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
-<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14335 unfinished:40 untranslated:3045" class="bartodo"><div class="bardone" style="width:82px">82.4</div></div></td><td>Jan Helebrant, Martin Landa, Peter Antolik, Martin Dzurov, Stanislav Horáček</td></tr>
-<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14275 unfinished:28 untranslated:3117" class="bartodo"><div class="bardone" style="width:82px">82.0</div></div></td><td>Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach</td></tr>
-<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14122 unfinished:74 untranslated:3224" class="bartodo"><div class="bardone" style="width:81px">81.3</div></div></td><td>Roberto Angeletti, Michele Beneventi, Marco Braida, Stefano Campus, Luca Casagrande, Paolo Cavallini, Giuliano Curti, Luca Delucchi, Alessandro Fanna, Michele Ferretti, Matteo Ghetta, Anne Gishla, Maurizio Napolitano, Flavio Rigolon</td></tr>
-<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12742 unfinished:114 untranslated:4564" class="bartodo"><div class="bardone" style="width:73px">73.5</div></div></td><td>Harish Kumar Solanki</td></tr>
-<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:12627 unfinished:86 untranslated:4707" class="bartodo"><div class="bardone" style="width:72px">72.7</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
-<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12503 unfinished:81 untranslated:4836" class="bartodo"><div class="bardone" style="width:72px">72.0</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
-<tr><td><img src="qrc:/images/flags/et.png"></td><td>Estonian</td><td><div title="finished:12475 unfinished:108 untranslated:4837" class="bartodo"><div class="bardone" style="width:71px">71.9</div></div></td><td>Veiko Viil</td></tr>
-<tr><td><img src="qrc:/images/flags/ca.png"></td><td>Catalan</td><td><div title="finished:12185 unfinished:62 untranslated:5173" class="bartodo"><div class="bardone" style="width:70px">70.1</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
-<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11948 unfinished:117 untranslated:5355" class="bartodo"><div class="bardone" style="width:68px">68.9</div></div></td><td>OSGeo Korean Chapter</td></tr>
-<tr><td><img src="qrc:/images/flags/lt.png"></td><td>Lithuanian</td><td><div title="finished:11562 unfinished:119 untranslated:5739" class="bartodo"><div class="bardone" style="width:66px">66.7</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
-<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10949 unfinished:234 untranslated:6237" class="bartodo"><div class="bardone" style="width:63px">63.5</div></div></td><td>Emir Hartato, Muhammad Iqnaul Haq Siregar, Trias Aditya, Januar V. Simarmata, I Made Anombawa</td></tr>
-<tr><td><img src="qrc:/images/flags/bs.png"></td><td>Bosnian</td><td><div title="finished:10814 unfinished:124 untranslated:6482" class="bartodo"><div class="bardone" style="width:62px">62.4</div></div></td><td>Almir Karabegovic</td></tr>
-<tr><td><img src="qrc:/images/flags/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10709 unfinished:45 untranslated:6666" class="bartodo"><div class="bardone" style="width:61px">61.6</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
-<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10631 unfinished:85 untranslated:6704" class="bartodo"><div class="bardone" style="width:61px">61.3</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
-<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9497 unfinished:125 untranslated:7798" class="bartodo"><div class="bardone" style="width:54px">54.9</div></div></td><td>Khoem Sokhem</td></tr>
-<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9380 unfinished:183 untranslated:7857" class="bartodo"><div class="bardone" style="width:54px">54.4</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
-<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9165 unfinished:134 untranslated:8121" class="bartodo"><div class="bardone" style="width:52px">53.0</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
-<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:8956 unfinished:118 untranslated:8346" class="bartodo"><div class="bardone" style="width:51px">51.8</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
-<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7692 unfinished:717 untranslated:9011" class="bartodo"><div class="bardone" style="width:46px">46.2</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr>
-<tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7494 unfinished:127 untranslated:9799" class="bartodo"><div class="bardone" style="width:43px">43.4</div></div></td><td>Zoran Jankovic</td></tr>
-<tr><td><img src="qrc:/images/flags/sr.png"></td><td>Serbian (latin)</td><td><div title="finished:6137 unfinished:153 untranslated:11130" class="bartodo"><div class="bardone" style="width:35px">35.7</div></div></td><td>Goran Ivanković</td></tr></table>
+<tr><td><img src="qrc:/images/flags/de.png"></td><td>German</td><td><div title="finished:17449 unfinished:1 untranslated:0" class="bartodo"><div class="bardone" style="width:99px">100.0</div></div></td><td>Jürgen E. Fischer, Stephan Holl, Otto Dassau, Werner Macho</td></tr>
+<tr><td><img src="qrc:/images/flags/sv.png"></td><td>Swedish</td><td><div title="finished:17416 unfinished:8 untranslated:26" class="bartodo"><div class="bardone" style="width:99px">99.8</div></div></td><td>Victor Axbom, Lars Luthman, Magnus Homann, Klas Karlsson, Isabelle J Wigren, Daniel Rosander, Anders Ekwall, Magnus Nilsson, Jonas Svensson, Christian Brinkenberg</td></tr>
+<tr><td><img src="qrc:/images/flags/pt_BR.png"></td><td>Portuguese (Brazil)</td><td><div title="finished:17414 unfinished:10 untranslated:26" class="bartodo"><div class="bardone" style="width:99px">99.8</div></div></td><td>Sidney Schaberle Goveia, Arthur Nanni, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Leônidas Descovi Filho, Felipe Sodré Barros </td></tr>
+<tr><td><img src="qrc:/images/flags/eu.png"></td><td>Basque</td><td><div title="finished:17382 unfinished:10 untranslated:58" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
+<tr><td><img src="qrc:/images/flags/fr.png"></td><td>French</td><td><div title="finished:17372 unfinished:11 untranslated:67" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Arnaud Morvan, Augustin Roche, DelazJ, Didier Vanden Berghe, Dofabien, etrimaille, Jean-Roc Morreale, Jérémy Garniaux, Loïc Buscoz, Lsam, Marc-André Saia, Marie Silvestre, Mathieu Bossaert, Mathieu Lattes, Mayeul Kauffmann, Médéric Ribreux, Mehdi Semchaoui, Michael Douchin, Nicolas Bo [...]
+<tr><td><img src="qrc:/images/flags/gl.png"></td><td>Galician</td><td><div title="finished:17372 unfinished:10 untranslated:68" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Xan Vieiro</td></tr>
+<tr><td><img src="qrc:/images/flags/nl.png"></td><td>Dutch</td><td><div title="finished:17372 unfinished:8 untranslated:70" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Richard Duivenvoorde, Raymond Nijssen, Carlo van Rijswijk, Diethard Jansen, Willem Hoffmans, Dick Groskamp</td></tr>
+<tr><td><img src="qrc:/images/flags/ro.png"></td><td>Romanian</td><td><div title="finished:17346 unfinished:9 untranslated:95" class="bartodo"><div class="bardone" style="width:99px">99.4</div></div></td><td>Sorin Călinică, Tudor Bărăscu, Georgiana Ioanovici, Alex Bădescu, Lonut Losifescu-Enescu, Bogdan Pacurar</td></tr>
+<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16880 unfinished:15 untranslated:555" class="bartodo"><div class="bardone" style="width:96px">96.8</div></div></td><td>Phùng Văn Doanh, Bùi Hữu Mạnh, Nguyễn Văn Thanh, Nguyễn Hữu Phúc, Cao Minh Tu</td></tr>
+<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:16531 unfinished:40 untranslated:879" class="bartodo"><div class="bardone" style="width:94px">94.8</div></div></td><td>Carlos Dávila, Javier César Aldariz, Gabriela Awad, Edwin Amado, Mayeul Kauffmann, Diana Galindo</td></tr>
+<tr><td><img src="qrc:/images/flags/ja.png"></td><td>Japanese</td><td><div title="finished:16453 unfinished:11 untranslated:986" class="bartodo"><div class="bardone" style="width:94px">94.3</div></div></td><td>BABA Yoshihiko, Yoichi Kayama, Minoru Akagi, Takayuki Nuimura, Takayuki Mizutani, Norihiro Yamate</td></tr>
+<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15789 unfinished:21 untranslated:1640" class="bartodo"><div class="bardone" style="width:90px">90.5</div></div></td><td>Giovanni Manghi, Joana Simões, Duarte Carreira, Alexandre Neto, Pedro Pereira, Pedro Palheiro, Nelson Silva, Ricardo Sena, Leandro Infantini, João Gaspar</td></tr>
+<tr><td><img src="qrc:/images/flags/ru.png"></td><td>Russian</td><td><div title="finished:15406 unfinished:37 untranslated:2007" class="bartodo"><div class="bardone" style="width:88px">88.4</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
+<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese simplified</td><td><div title="finished:15252 unfinished:24 untranslated:2174" class="bartodo"><div class="bardone" style="width:87px">87.5</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
+<tr><td><img src="qrc:/images/flags/hu.png"></td><td>Hungarian</td><td><div title="finished:15108 unfinished:24 untranslated:2318" class="bartodo"><div class="bardone" style="width:86px">86.6</div></div></td><td>Zoltan Siki</td></tr>
+<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14398 unfinished:198 untranslated:2854" class="bartodo"><div class="bardone" style="width:83px">83.1</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
+<tr><td><img src="qrc:/images/flags/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14368 unfinished:36 untranslated:3046" class="bartodo"><div class="bardone" style="width:82px">82.4</div></div></td><td>James Stott, Maléne Peterson</td></tr>
+<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14327 unfinished:80 untranslated:3043" class="bartodo"><div class="bardone" style="width:82px">82.3</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
+<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14331 unfinished:49 untranslated:3070" class="bartodo"><div class="bardone" style="width:82px">82.3</div></div></td><td>Jan Helebrant, Martin Landa, Peter Antolik, Martin Dzurov, Stanislav Horáček</td></tr>
+<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14271 unfinished:35 untranslated:3144" class="bartodo"><div class="bardone" style="width:81px">81.9</div></div></td><td>Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach</td></tr>
+<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14118 unfinished:83 untranslated:3249" class="bartodo"><div class="bardone" style="width:81px">81.1</div></div></td><td>Roberto Angeletti, Michele Beneventi, Marco Braida, Stefano Campus, Luca Casagrande, Paolo Cavallini, Giuliano Curti, Luca Delucchi, Alessandro Fanna, Michele Ferretti, Matteo Ghetta, Anne Gishla, Maurizio Napolitano, Flavio Rigolon</td></tr>
+<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12738 unfinished:121 untranslated:4591" class="bartodo"><div class="bardone" style="width:73px">73.3</div></div></td><td>Harish Kumar Solanki</td></tr>
+<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:12623 unfinished:93 untranslated:4734" class="bartodo"><div class="bardone" style="width:72px">72.6</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
+<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12499 unfinished:88 untranslated:4863" class="bartodo"><div class="bardone" style="width:71px">71.9</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
+<tr><td><img src="qrc:/images/flags/et.png"></td><td>Estonian</td><td><div title="finished:12471 unfinished:115 untranslated:4864" class="bartodo"><div class="bardone" style="width:71px">71.8</div></div></td><td>Veiko Viil</td></tr>
+<tr><td><img src="qrc:/images/flags/ca.png"></td><td>Catalan</td><td><div title="finished:12181 unfinished:69 untranslated:5200" class="bartodo"><div class="bardone" style="width:70px">70.0</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
+<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11944 unfinished:126 untranslated:5380" class="bartodo"><div class="bardone" style="width:68px">68.8</div></div></td><td>OSGeo Korean Chapter</td></tr>
+<tr><td><img src="qrc:/images/flags/lt.png"></td><td>Lithuanian</td><td><div title="finished:11558 unfinished:128 untranslated:5764" class="bartodo"><div class="bardone" style="width:66px">66.6</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
+<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10945 unfinished:240 untranslated:6265" class="bartodo"><div class="bardone" style="width:63px">63.4</div></div></td><td>Emir Hartato, Muhammad Iqnaul Haq Siregar, Trias Aditya, Januar V. Simarmata, I Made Anombawa</td></tr>
+<tr><td><img src="qrc:/images/flags/bs.png"></td><td>Bosnian</td><td><div title="finished:10811 unfinished:131 untranslated:6508" class="bartodo"><div class="bardone" style="width:62px">62.3</div></div></td><td>Almir Karabegovic</td></tr>
+<tr><td><img src="qrc:/images/flags/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10706 unfinished:52 untranslated:6692" class="bartodo"><div class="bardone" style="width:61px">61.5</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
+<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10627 unfinished:92 untranslated:6731" class="bartodo"><div class="bardone" style="width:61px">61.2</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
+<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9495 unfinished:130 untranslated:7825" class="bartodo"><div class="bardone" style="width:54px">54.8</div></div></td><td>Khoem Sokhem</td></tr>
+<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9378 unfinished:192 untranslated:7880" class="bartodo"><div class="bardone" style="width:54px">54.3</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
+<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9164 unfinished:141 untranslated:8145" class="bartodo"><div class="bardone" style="width:52px">52.9</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
+<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:8953 unfinished:123 untranslated:8374" class="bartodo"><div class="bardone" style="width:51px">51.7</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
+<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7690 unfinished:725 untranslated:9035" class="bartodo"><div class="bardone" style="width:46px">46.1</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr>
+<tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7494 unfinished:134 untranslated:9822" class="bartodo"><div class="bardone" style="width:43px">43.3</div></div></td><td>Zoran Jankovic</td></tr>
+<tr><td><img src="qrc:/images/flags/sr.png"></td><td>Serbian (latin)</td><td><div title="finished:6137 unfinished:157 untranslated:11156" class="bartodo"><div class="bardone" style="width:35px">35.6</div></div></td><td>Goran Ivanković</td></tr></table>
diff --git a/i18n/qgis_de.ts b/i18n/qgis_de.ts
index 7d52004..ee7caa3 100644
--- a/i18n/qgis_de.ts
+++ b/i18n/qgis_de.ts
@@ -4,7 +4,7 @@
 <context>
     <name>@default</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="12"/>
         <source><html><body><h2>Algorithm description</h2>
 </source>
         <translation><html><body><h2>Algorithmenbeschreibung</h2>
@@ -16,36 +16,36 @@
         <translation>Konsolenausgabe der OTB-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="13"/>
         <source><h2>Input parameters</h2>
 </source>
         <translation><h2>Eingabeparameter</h2>
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="14"/>
         <source><h2>Outputs</h2>
 </source>
         <translation><h2>Ausgaben</h2>
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="15"/>
         <source><p align="right">Algorithm author: %s</p></source>
         <translation><p align="right">Algorithmusautor: %s</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="16"/>
         <source><p align="right">Help author: %s</p></source>
         <translation><p align="right">Autor der Hilfe: %s</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="17"/>
         <source><p align="right">Algorithm version: %s</p></source>
         <translation><p align="right">Algorithmusversion: %s</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="11"/>
         <source>Executing iteration %s/%s...</source>
         <translation>Schritt %s/%s läuft...</translation>
     </message>
@@ -246,62 +246,62 @@
 <context>
     <name>AlgorithmClassification</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
         <source>Overlay</source>
         <translation>Überlagern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="283"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
         <source>Feature Extraction</source>
         <translation>Objektextraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
         <source>Raster -> Vector</source>
         <translation>Raster -> Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="317"/>
         <source>Miscellaneous</source>
         <translation>Sonstiges</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="344"/>
         <source>Vector Data Manipulation</source>
         <translation>Vektordatenmanipulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="341"/>
         <source>Segmentation</source>
         <translation>Segmentierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
         <source>Raster - vector</source>
         <translation>Raster - Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="373"/>
         <source>Calibration</source>
         <translation>Kalibrierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
         <source>Vector -> Raster</source>
         <translation>Vektor -> Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
         <source>Image Manipulation</source>
         <translation>Bildmanipulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
         <source>Image Filtering</source>
         <translation>Bildfiltrierung</translation>
     </message>
@@ -311,312 +311,312 @@
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
         <source>Stereo</source>
         <translation>Stereo</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="350"/>
         <source>Geometry</source>
         <translation>Geometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="320"/>
         <source>Polygon intersection</source>
         <translation>Polygonverschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="338"/>
         <source>Vectorize raster layer</source>
         <translation>Rasterlayer vektorisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
         <source>Terrain analysis and geomorphometry</source>
         <translation>Geländeanalyse und </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="367"/>
         <source>Domain specific</source>
         <translation>Bereichsspezifisch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="328"/>
         <source>Lines</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="287"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="375"/>
         <source>Analysis</source>
         <translation>Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="351"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="378"/>
         <source>Modeler</source>
         <translation>Modellierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
         <source>Modeler tools</source>
         <translation>Modellierungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="346"/>
         <source>Creation</source>
         <translation>Erzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="314"/>
         <source>Table tools</source>
         <translation>Tabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
         <source>Edition</source>
         <translation>Bearbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="284"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="365"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="319"/>
         <source>Learning</source>
         <translation>Klassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="345"/>
         <source>Images</source>
         <translation>Bilder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="334"/>
         <source>Viewsheds\Lighting</source>
         <translation>Landschaftsbild/Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
         <source>Filters</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
         <source>Interpolate (Inverse distance weighting)</source>
         <translation>Interpolation (Inverse Abstandsgewichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="337"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="303"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
         <source>Rasterize vector layer</source>
         <translation>Vektorlayer rastern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="339"/>
         <source>Polygon identity</source>
         <translation>Polygonidentität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
         <source>Polygon dissolve (all polygons)</source>
         <translation>Polygon auflösen (alle Polygone)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
         <source>Polygon union</source>
         <translation>Polygonvereinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="379"/>
         <source>Geometry operations</source>
         <translation>Geometrieoperationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="357"/>
         <source>Interpolate (Natural neighbor)</source>
         <translation>Interpolation (Natürlicher Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="311"/>
         <source>Raster - vector statistics</source>
         <translation>Raster - Vektorstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="327"/>
         <source>Merge raster layers</source>
         <translation>Rasterlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="321"/>
         <source>Remove small pixel clumps (nearest neighbour)</source>
         <translation>Kleine Pixelklumpen entfernen (nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
         <source>Interpolate (Nearest Neighbor)</source>
         <translation>Interpolation (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
         <source>Hydrology</source>
         <translation>Hydrologie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
         <source>Interpolate (Cubic spline)</source>
         <translation>Interpolieren (Kubisches Spline)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="352"/>
         <source>Raster - vector operations</source>
         <translation>Raster-Vektoroperationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="318"/>
         <source>Interpolate (Data metrics)</source>
         <translation>Interpolation (Datenmetrik)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="354"/>
         <source>Reproject raster layer</source>
         <translation>Rasterlayer reprojizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
         <source>Export raster layer</source>
         <translation>Rasterlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="343"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
         <source>Export vector layer</source>
         <translation>Vektorlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
         <source>Polygon dissolve (by attribute)</source>
         <translation>Polygon auflösen (nach Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="340"/>
         <source>Remove small pixel clumps (to no-data)</source>
         <translation>Kleine Pixelklumpen entfernen (zu Nullwerten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
         <source>Interpolate (Modified quadratic shepard)</source>
         <translation>Interpolieren (Modifizierte quadratische Shepard-Methode)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="371"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
         <source>Reclassify (simple)</source>
         <translation>Neuklassifizieren (einfach)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
         <source>Execute SQL on vector layer</source>
         <translation>SQL auf Vektorlayer ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
         <source>Geostatistics</source>
         <translation>Geostatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="331"/>
         <source>Raster layer information</source>
         <translation>Rasterlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
         <source>Contour lines</source>
         <translation>Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
         <source>Image tools</source>
         <translation>Bildwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="353"/>
         <source>Create graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="376"/>
         <source>Fire spreading simulation</source>
         <translation>Feuerausbreitungssimulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
         <source>Polygon difference</source>
         <translation>Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="309"/>
         <source>Cost analysis</source>
         <translation>Kostenanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
         <source>Create graticule from extent</source>
         <translation>Gradnetz aus Grenzen erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
         <source>Polygon symmetrical difference</source>
         <translation>Symmetrische Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
         <source>Vector layer information</source>
         <translation>Vektorlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
         <source>General tools</source>
         <translation>Allgemeine Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
         <source>Image analysis</source>
         <translation>Bildanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
         <source>Polygon update</source>
         <translation>Polygonaktualisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
         <source>Interpolate (Average)</source>
         <translation>Interpolation (Durchschnitt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
@@ -1160,45 +1160,55 @@ Verarbeite Algorithmus %d/%d...</translation>
         <translation>JSON-Dateien (*.json)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="199"/>
         <source><b>Missing parameter value: %s (row %d)</b></source>
         <translation><b>Fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="200"/>
         <source><b>Wrong or missing parameter value: %s (row %d)</b></source>
         <translation><b>Falscher oder fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="201"/>
         <source>Save batch</source>
         <translation>Stapel speichern</translation>
     </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="197"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="198"/>
+        <source>An error occured while reading your file.</source>
+        <translation>Ein Fehler trat beim Lesen der Datei auf.</translation>
+    </message>
 </context>
 <context>
     <name>CalculatorModelerAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="205"/>
         <source>Calculator</source>
         <translation>Rechner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="206"/>
         <source>Modeler-only tools</source>
         <translation>Nur-Modellierungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="207"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="208"/>
         <source>Result</source>
         <translation>Ergebnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="209"/>
         <source>Wrong formula: %s</source>
         <translation>Falsche Formel: %s</translation>
     </message>
@@ -1206,26 +1216,26 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CalculatorModelerParametersDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="213"/>
         <source>You can refer to model values in your formula, using single-letter variables, as follows:
 </source>
         <translation>Mit Variablen mit einem Buchstaben kann auf Modellwerte in den Formeln wie folgt Bezug genommen werden:
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="214"/>
         <source>
  - No numerical variables are available.</source>
         <translation>
  - Keine numerischen Variablen verfügbar.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="215"/>
         <source>[Enter your formula here]</source>
         <translation>[Formel hier eingeben]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="216"/>
         <source>Calculator</source>
         <translation>Rechner</translation>
     </message>
@@ -1233,47 +1243,47 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CanopyMaxima</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="220"/>
         <source>Canopy Maxima</source>
         <translation>Bodenbedeckungsmaxima</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="221"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="222"/>
         <source>Input FUSION canopy height model</source>
         <translation>Eingabe FUSION Bodenbedeckungs Höhenmodell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="223"/>
         <source>Input ground .dtm layer [optional]</source>
         <translation>Eingabe Boden .dtm Layer [optional]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="224"/>
         <source>Height threshold</source>
         <translation>Höhenschwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="225"/>
         <source>Variable window size: parameter A</source>
         <translation>Variable Fenstergröße: Parameter A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="226"/>
         <source>Parameter C</source>
         <translation>Parameter C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="227"/>
         <source>Summary (tree height summary statistics)</source>
         <translation>Zusammenfassung (Baumhöhenzusammenfassungsstatistik)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="228"/>
         <source>Output file with maxima</source>
         <translation>Ausgabedatei mit Maxima</translation>
     </message>
@@ -1281,67 +1291,67 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CanopyModel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="232"/>
         <source>Canopy Model</source>
         <translation>Bodenbedeckungsmodell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="233"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="234"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="235"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="236"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="237"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="238"/>
         <source>.dtm output surface</source>
         <translation>.dtm-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="239"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="240"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="241"/>
         <source>Smooth</source>
         <translation>Glatt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="243"/>
         <source>Calculate slope</source>
         <translation>Neigung berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="244"/>
         <source>Add an ASCII output</source>
         <translation>Eine ASCII-Ausgabe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="242"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
@@ -1349,42 +1359,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Catalog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="248"/>
         <source>Catalog</source>
         <translation>Katalog</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="249"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="250"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="251"/>
         <source>Output files</source>
         <translation>Ausgabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="252"/>
         <source>Density - area, min, max (set blank if not used)</source>
         <translation>Dichte - Fläche, min, max (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="253"/>
         <source>First Density - area, min, max (set blank if not used)</source>
         <translation>Erste Dichte - Fläche, min, max (leer lassen, wenn nicht benutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="254"/>
         <source>Intensity - area, min, max (set blank if not used)</source>
         <translation>Intensität - Fläche, min, max (leer lassen, wenn nicht benutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="255"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -1392,27 +1402,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Centroids</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="260"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="261"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="262"/>
         <source>Centroids</source>
         <translation>Zentroide</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="263"/>
         <source>Error calculating centroid</source>
         <translation>Felder bei Zentrumsberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="259"/>
         <source>Polygon centroids</source>
         <translation>Polygonschwerpunkt</translation>
     </message>
@@ -1428,42 +1438,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CheckValidity</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="268"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="269"/>
         <source>The one selected in digitizing settings</source>
         <translation>Die in den Digitalisierungseinstellungen gewählte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="270"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="271"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="272"/>
         <source>Valid output</source>
         <translation>Gültige Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="273"/>
         <source>Invalid output</source>
         <translation>Ungültige Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="274"/>
         <source>Error output</source>
         <translation>Fehlerausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="267"/>
         <source>Check validity</source>
         <translation>Gültigkeit prüfen</translation>
     </message>
@@ -1471,42 +1481,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Clip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="279"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="280"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="281"/>
         <source>Clip layer</source>
         <translation>Layer zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="282"/>
         <source>Clipped</source>
         <translation>Zugeschnitten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="283"/>
         <source>Input layer has unsupported geometry type {}</source>
         <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="284"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="285"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>Objektgeometriefehler: Ein oder mehrere Objekte wegen ungültiger Geometrie ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="278"/>
         <source>Clip</source>
         <translation>Zuschneiden</translation>
     </message>
@@ -1514,77 +1524,77 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipByExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="291"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="293"/>
         <source>Clipping extent</source>
         <translation>Maße zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="294"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="295"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="296"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="297"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="298"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="299"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="300"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="301"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="302"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="303"/>
         <source>Clipped (extent)</source>
         <translation>Abgeschnitten (Grenze)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="289"/>
         <source>Clip raster by extent</source>
         <translation>Raster auf Ausmaße zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="290"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="292"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
@@ -1592,92 +1602,92 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipByMask</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="309"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="310"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="312"/>
         <source>Create and output alpha band</source>
         <translation>Alphakanal erzeugen und ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="313"/>
         <source>Crop the extent of the target dataset to the extent of the cutline</source>
         <translation>Ausmaße des Zieldatensatzes auf die Ausmaße der Schnittlinie abschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="314"/>
         <source>Keep resolution of output raster</source>
         <translation>Auflösung des Ausgaberasters beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="315"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="316"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="317"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="318"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="319"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="320"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="321"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="322"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="323"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="324"/>
         <source>Clipped (mask)</source>
         <translation>Abgeschnitten (Maske)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="307"/>
         <source>Clip raster by mask layer</source>
         <translation>Raster auf Layermaske zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="308"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="311"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
@@ -1685,42 +1695,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="328"/>
         <source>Clip Data</source>
         <translation>Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="329"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="330"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="331"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="332"/>
         <source>Shape</source>
         <translation>Form</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="333"/>
         <source>Output clipped LAS file</source>
         <translation>Zugeschnittene LAS-Datei ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="334"/>
         <source>Ground file for height normalization</source>
         <translation>Grunddatei für Höhennormalisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="335"/>
         <source>Convert point elevations into heights above ground (used with the above command)</source>
         <translation>Punkthöhen in Höhe über Grund umwandeln (zur Verwendung mit dem obigen Befehl)</translation>
     </message>
@@ -1728,42 +1738,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CloudMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="339"/>
         <source>Cloud Metrics</source>
         <translation>Wolkenmessung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="340"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="341"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="342"/>
         <source>Output file with tabular metric information</source>
         <translation>Ausgabedatei mit metrischer Tabelleninformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="343"/>
         <source>Above</source>
         <translation>Oben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="344"/>
         <source>First Impulse</source>
         <translation>Erster Impuls</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="345"/>
         <source>First Return</source>
         <translation>Erster Rückgabewert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="346"/>
         <source>Htmin</source>
         <translation>Htmin</translation>
     </message>
@@ -1771,37 +1781,37 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ColorRelief</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="351"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="352"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="353"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="354"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="355"/>
         <source>Color configuration file</source>
         <translation>Farbkonfigurationsdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="356"/>
         <source>Matching mode</source>
         <translation>Zuordnungsmodus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="350"/>
         <source>Color relief</source>
         <translation>Farbrelief</translation>
     </message>
@@ -1809,7 +1819,7 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CommanderWindow</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="360"/>
         <source>Missing dependency</source>
         <translation>Fehlende Abhängigkeit</translation>
     </message>
@@ -1817,57 +1827,57 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConcaveHull</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="366"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="367"/>
         <source>Threshold (0-1, where 1 is equivalent with Convex Hull)</source>
         <translation>Schwelle (0-1, bei der 1 der konvexen Hülle entspricht)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="368"/>
         <source>Allow holes</source>
         <translation>Löcher erlauben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="369"/>
         <source>Split multipart geometry into singleparts geometries</source>
         <translation>Mehrteilige in einzelteilige Geometrien zerlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="364"/>
         <source>Concave hull</source>
         <translation>Konkave Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="365"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="370"/>
         <source>Creating Delaunay triangles...</source>
         <translation>Erzeuge Delaunay-Dreiecke...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="371"/>
         <source>Computing edges max length...</source>
         <translation>Berechne Kantenmaximallänge...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="372"/>
         <source>Removing features...</source>
         <translation>Entferne Objekt...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="373"/>
         <source>Dissolving Delaunay triangles...</source>
         <translation>Löse Delaunay-Dreiecke auf...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="374"/>
         <source>Saving data...</source>
         <translation>Speichere Daten...</translation>
     </message>
@@ -1875,47 +1885,47 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConfigDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="378"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="379"/>
         <source>Setting</source>
         <translation>Einstellung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="380"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="381"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="382"/>
         <source>Models</source>
         <translation>Modelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="383"/>
         <source>Scripts</source>
         <translation>Skripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="384"/>
         <source>Providers</source>
         <translation>Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="385"/>
         <source>Wrong value</source>
         <translation>Falscher Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="386"/>
         <source>Wrong value for parameter "%s":
 
 %s</source>
@@ -1927,42 +1937,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConvexHull</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="394"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="395"/>
         <source>Field (optional, only used if creating convex hulls by classes)</source>
         <translation>Feld (optional, wird nur zur Erzeugung von konvexen Hüllen nach Klassen verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="396"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="390"/>
         <source>Convex hull</source>
         <translation>Konvexe Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="391"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="392"/>
         <source>Create single minimum convex hull</source>
         <translation>Einzelne konvexe Minimalhülle erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="393"/>
         <source>Create convex hulls based on field</source>
         <translation>Konvexe Hüllen auf Basis eines Eingabefelds erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="397"/>
         <source>Exception while computing convex hull</source>
         <translation>Ausnahme während Berechnung der konvexen Hülle</translation>
     </message>
@@ -2026,42 +2036,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Cover</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="402"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="403"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="404"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="405"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="406"/>
         <source>Heightbreak</source>
         <translation>Höhenbruch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="407"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="408"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="401"/>
         <source>Cover</source>
         <translation>Bedeckung</translation>
     </message>
@@ -2069,27 +2079,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateConstantRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="413"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="414"/>
         <source>Reference layer</source>
         <translation>Referenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="415"/>
         <source>Constant value</source>
         <translation>Konstanter Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="416"/>
         <source>Constant</source>
         <translation>Konstantes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="412"/>
         <source>Create constant raster layer</source>
         <translation>Konstanten Rasterlayer erzeugen</translation>
     </message>
@@ -2097,12 +2107,12 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateNewModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="418"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="420"/>
         <source>Create new model</source>
         <translation>Erzeuge neues Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="421"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -2110,7 +2120,7 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateNewScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="425"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -2118,27 +2128,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Csv2Grid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="429"/>
         <source>Csv2Grid</source>
         <translation>CSV nach Grid</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="430"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="431"/>
         <source>CSV Files</source>
         <translation>CSV-Dateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="432"/>
         <source>Column</source>
         <translation>Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="433"/>
         <source>Raster Output file</source>
         <translation>Rasterausgabedatei</translation>
     </message>
@@ -2224,340 +2234,340 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>DBManagerPlugin</name>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="28"/>
         <source>Unable to find a valid unique field</source>
         <translation>Konnte kein gültiges eindeutiges Feld finden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="29"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="174"/>
         <source>DB Manager</source>
         <translation>DB-Verwaltung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="159"/>
         <source>Select an empty schema for deletion.</source>
         <translation>Leeres zu löschendes Schema wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="161"/>
         <source>Select a table for editation.</source>
         <translation>Tabelle zur Bearbeitung wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="162"/>
         <source>Select a table/view for deletion.</source>
         <translation>Zu löschende Tabelle/Sicht wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="164"/>
         <source>Select a table to empty it.</source>
         <translation>Zu leerende Tabelle wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="166"/>
         <source>Select a table/view.</source>
         <translation>Tabelle/Sicht wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="38"/>
         <source>Server version: </source>
         <translation>Server-Version: </translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="39"/>
         <source>Host:</source>
         <translation>Server:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="40"/>
         <source>User:</source>
         <translation>Benutzer:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="32"/>
         <source>Library:</source>
         <translation>Bibliothek:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="33"/>
         <source><warning> geometry_columns table doesn't exist!
 This table is essential for many GIS applications for enumeration of tables.</source>
         <translation><warning> Tabelle geometry_columns nicht vorhanden!
 Diese Tabelle ist für viele GIS-Applikationen für die Bestimmung der Tabelle unverzichtbar.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="41"/>
         <source>create new schemas</source>
         <translation>Neue Schemata erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="42"/>
         <source>create temporary tables</source>
         <translation>Temporärtabellen erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="43"/>
         <source>Not connected</source>
         <translation>Nicht verbunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="44"/>
         <source>Connection details</source>
         <translation>Verbindungsdetails</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="45"/>
         <source>General info</source>
         <translation>Allgemeine Informationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="46"/>
         <source><warning> %s support not enabled!</source>
         <translation><warnung> Unterstützung für %s nicht aktiv!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="47"/>
         <source><warning> This user has no privileges!</source>
         <translation><warning> Dieser Benutzer hat keine Rechte!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="48"/>
         <source>User has privileges:</source>
         <translation>Benutzerrechte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="49"/>
         <source>Privileges</source>
         <translation>Rechte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="50"/>
         <source>Owner:</source>
         <translation>Besitzer:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="51"/>
         <source>Comment:</source>
         <translation>Kommentar:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="110"/>
         <source>Materialized View information</source>
         <translation>Materialisierte Sichtinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="52"/>
         <source>create new objects</source>
         <translation>Neue Objekte erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="53"/>
         <source>access objects</source>
         <translation>Zugriffsobjekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="54"/>
         <source>Schema details</source>
         <translation>Schemadetails</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="55"/>
         <source><warning> This user has no privileges to access this schema!</source>
         <translation><warning> Dieser Benutzer hat keine Zugriffsrechte für dieses Schema!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="56"/>
         <source>Relation type:</source>
         <translation>Beziehungsart:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="57"/>
         <source>View</source>
         <translation>Sicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="58"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="59"/>
         <source>Rows:</source>
         <translation>Zeilen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="60"/>
         <source>Unknown (<a href="action:rows/count">find out</a>)</source>
         <translation>Unbekannt (<a href="action:rows/count">Feststellen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="35"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="36"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="61"/>
         <source>Null</source>
         <translation>Null</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="62"/>
         <source>Default</source>
         <translation>Voreinstellung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="37"/>
         <source>Column(s)</source>
         <translation>Spalte(n)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="63"/>
         <source>Function</source>
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="64"/>
         <source><warning> This is not a spatial table.</source>
         <translation><warning> Keine räumliche Tabelle.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="65"/>
         <source>Fields</source>
         <translation>Felder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="66"/>
         <source>Constraints</source>
         <translation>Restriktionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="67"/>
         <source>Indexes</source>
         <translation>Indizes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="68"/>
         <source>Triggers</source>
         <translation>Trigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="69"/>
         <source>View definition</source>
         <translation>Definition anzeigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="70"/>
         <source>Column:</source>
         <translation>Spalte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="71"/>
         <source>Geometry:</source>
         <translation>Geometrie:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="72"/>
         <source>Dimension:</source>
         <translation>Dimension:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="73"/>
         <source>Undefined</source>
         <translation>Undefiniert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="74"/>
         <source>Spatial ref:</source>
         <translation>Räuml. Bez.:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="75"/>
         <source>Estimated extent:</source>
         <translation>Geschätzte Ausmaße:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="76"/>
         <source>(unknown) (<a href="action:extent/get">find out</a>)</source>
         <translation>Unbekannt (<a href="action:extent/get">Feststellen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="77"/>
         <source>Extent:</source>
         <translation>Grenzen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="79"/>
         <source><warning> No spatial index defined (<a href="action:spatialindex/create">create it</a>)</source>
         <translation><warning> Kein räumlicher Index definiert(<a href="action:spatialindex/create">Erzeugen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="140"/>
         <source>Materialized view</source>
         <translation>Materialisierte Sicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="141"/>
         <source>Pages:</source>
         <translation>Seiten:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="84"/>
         <source>Rows (estimation):</source>
         <translation>Zeilen (geschätzt):</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="88"/>
         <source>Privileges:</source>
         <translation>Rechte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="142"/>
         <source><warning> This user doesn't have usage privileges for this schema!</source>
         <translation><warning> Dieser Benutzer hat keine Nutzungsrechte für dieses Schema!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="85"/>
         <source>Rows (counted):</source>
         <translation>Zeilen (gezählt):</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="89"/>
         <source><warning> This user has read-only privileges.</source>
         <translation><warning> Dieser Benutzer hat nur Leserechte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="143"/>
         <source><warning> There's a significant difference between estimated and real row count. Consider running <a href="action:vacuumanalyze/run">VACUUM ANALYZE</a>.</source>
         <translation><warning> Es gibt einen signifikanten Unterschied zwischen der geschätzen und der wirklichen Zeilenanzahl. Erwägen Sie <a href="action:vacuumanalyze/run">VACUUM ANALYZE</a> auszuführen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="90"/>
         <source><warning> No primary key defined for this table!</source>
         <translation><warning> Kein Primärschlüssel für diese Tabelle definiert!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="144"/>
         <source>Scripts:</source>
         <translation>Skripte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="145"/>
         <source><warning> Version of installed scripts doesn't match version of released scripts!
 This is probably a result of incorrect PostGIS upgrade.</source>
         <translation><warning> Version der installierten Skripte entspricht nicht der der aktuellen Skripte!  Die ist wahrscheinlich Folge einer falschen PostGIS-Aktualisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="146"/>
         <source><warning> This user doesn't have privileges to read contents of geometry_columns table!
 This table is essential for many GIS applications for enumeration of tables.</source>
         <translation><warning> Der Benutzer hat keine Rechte die Tabelle geometry_columns zu lesen!
@@ -2569,69 +2579,69 @@ Diese Tabelle ist für viele GIS-Applikationen für die Bestimmung der Tabelle u
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="107"/>
         <source>Enabled</source>
         <translation>Eingeschaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="108"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="109"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="147"/>
         <source><a href="action:triggers/enable">Enable all triggers</a> / <a href="action:triggers/disable">Disable all triggers</a></source>
         <translation><a href="action:triggers/enable">Alle Trigger aktivieren</a> / <a href="action:triggers/disable">Alle Trigger deaktivieren</a></translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="148"/>
         <source>Definition</source>
         <translation>Definition</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="149"/>
         <source>Rules</source>
         <translation>Regeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="139"/>
         <source>&Versioning</source>
         <translation>&Versionierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="129"/>
         <source>&Table</source>
         <translation>&Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="34"/>
         <source>"{0}" not found</source>
         <translation>"{0}" nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="30"/>
         <source>Filename:</source>
         <translation>Dateiname:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="31"/>
         <source>SQLite version:</source>
         <translation>SQLIte-Version:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="150"/>
         <source>Error:
 %s</source>
         <translation>Fehler:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="151"/>
         <source>
 
 Query:
@@ -2642,332 +2652,332 @@ Abfrage:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="122"/>
         <source>&Re-connect</source>
         <translation>&Neu verbinden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="123"/>
         <source>&Database</source>
         <translation>&Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="124"/>
         <source>&Create schema</source>
         <translation>&Schema anlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="125"/>
         <source>&Schema</source>
         <translation>&Schema</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="126"/>
         <source>&Delete (empty) schema</source>
         <translation>(&Leeres) Schema löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="127"/>
         <source>Delete selected item</source>
         <translation>Lösche gewähltes Element</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="128"/>
         <source>&Create table</source>
         <translation>Tabelle &anlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="130"/>
         <source>&Edit table</source>
         <translation>Tabelle &bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="131"/>
         <source>&Delete table/view</source>
         <translation>Tabelle/Sicht l&öschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="132"/>
         <source>&Empty table</source>
         <translation>Tabelle &leeren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="154"/>
         <source>&Move to schema</source>
         <translation>In Schema &verschieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="155"/>
         <source>Cannot delete the selected item.</source>
         <translation>Konnte gewähltes Objekt nicht löschen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="156"/>
         <source>No database selected or you are not connected to it.</source>
         <translation>Keine Datenbank gewählt oder keine Verbindung möglich.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="157"/>
         <source>New schema</source>
         <translation>Neues Schema</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="158"/>
         <source>Enter new schema name</source>
         <translation>Neuen Schemanamen eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="152"/>
         <source>hey!</source>
         <translation>Hey!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="153"/>
         <source>Really remove connection to %s?</source>
         <translation>Verbindung zu %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="160"/>
         <source>Really delete schema %s?</source>
         <translation>Das Schema %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="163"/>
         <source>Really delete table/view %s?</source>
         <translation>Tabelle/Sicht %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="165"/>
         <source>Really delete all items from table %s?</source>
         <translation>Wirklich alle Elemente der Tabelle %s löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="167"/>
         <source>Do you want to %s all triggers?</source>
         <translation>Aktion %s auf alle Trigger ausführen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="168"/>
         <source>Table triggers</source>
         <translation>Tabellentrigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="169"/>
         <source>Do you want to %s trigger %s?</source>
         <translation>Aktion %s auf Trigger %s anwenden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="170"/>
         <source>Table trigger</source>
         <translation>Tabellentrigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="171"/>
         <source>Do you want to %s spatial index for field %s?</source>
         <translation>Aktion %s auf räumlichen Index für Feld %s ausführen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="172"/>
         <source>Spatial Index</source>
         <translation>Räumlicher Index</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="134"/>
         <source>Check</source>
         <translation>Prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="135"/>
         <source>Primary key</source>
         <translation>Primärschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="136"/>
         <source>Foreign key</source>
         <translation>Fremdschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="137"/>
         <source>Unique</source>
         <translation>Eindeutig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="173"/>
         <source>Exclusion</source>
         <translation>Ausschluß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="138"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="133"/>
         <source>Table Index</source>
         <translation>Tabellenindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="80"/>
         <source>Database:</source>
         <translation>Datenbank:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="81"/>
         <source>SQLite list tables cache:</source>
         <translation>SQLite-Tabellencache:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="82"/>
         <source>Oracle            Spatial:</source>
         <translation>Oracle       Spatial:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="83"/>
         <source>Object type:</source>
         <translation>Objekttyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="86"/>
         <source>Creation Date:</source>
         <translation>Erzeugungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="87"/>
         <source>Last Modification Date:</source>
         <translation>Letztes Änderungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="92"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="93"/>
         <source>Column</source>
         <translation>Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="94"/>
         <source>Status</source>
         <translation>Status</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="95"/>
         <source>Validated</source>
         <translation>Überprüft</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="96"/>
         <source>Generated</source>
         <translation>Erzeugt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="97"/>
         <source>Check condition</source>
         <translation>Prüfungsbedingung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="98"/>
         <source>Foreign Table</source>
         <translation>Fremdtabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="99"/>
         <source>Foreign column</source>
         <translation>Fremdspalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="100"/>
         <source>On Delete</source>
         <translation>Beim Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="101"/>
         <source>Index Type</source>
         <translation>Indextyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="102"/>
         <source>Last analyzed</source>
         <translation>Zuletzt analysiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="103"/>
         <source>Compression</source>
         <translation>Kompression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="104"/>
         <source>Uniqueness</source>
         <translation>Eindeutigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="105"/>
         <source>Action</source>
         <translation>Aktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="106"/>
         <source>Event</source>
         <translation>Ereignis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="111"/>
         <source>Refresh Mode:</source>
         <translation>Aktualisierungsmodus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="112"/>
         <source>Refresh Method:</source>
         <translation>Aktualisierungsmethode:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="113"/>
         <source>Build Mode:</source>
         <translation>Erzeugungsmodus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="114"/>
         <source>Last Refresh Date:</source>
         <translation>Letztes Aktualisierungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="115"/>
         <source>Last Refresh Type:</source>
         <translation>Letzter Aktualisierungstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="116"/>
         <source>Fast Refreshable:</source>
         <translation>Schnell aktualisierbar:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="117"/>
         <source>Staleness:</source>
         <translation>Ungültigkeit:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="118"/>
         <source>Stale since:</source>
         <translation>Ungültig seit:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="119"/>
         <source>Compile State:</source>
         <translation>Übersetzungsstatus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="120"/>
         <source>Use no index:</source>
         <translation>Keinen Index nutzen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="121"/>
         <source>QGis Geometry type:</source>
         <translation>QGIS-Geometrietyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="78"/>
         <source><warning> There is no entry in geometry_columns!</source>
         <translation><warning> Kein Eintrag in geometry_columns!</translation>
     </message>
@@ -3036,22 +3046,22 @@ Abfrage:
 <context>
     <name>DTM2ASCII</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="437"/>
         <source>DTM to ASCII</source>
         <translation>DTM nach ASCII</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="436"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="438"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="439"/>
         <source>Input canopy surface (.dtm)</source>
         <translation>Eingabe Bodenbedeckung (.dtm)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="440"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
@@ -3059,22 +3069,22 @@ Abfrage:
 <context>
     <name>DTM2TIF</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="444"/>
         <source>DTM to TIF</source>
         <translation>DTM nach TIF</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="445"/>
         <source>Conversion</source>
         <translation>Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="446"/>
         <source>Input .dtm layer</source>
         <translation>Eingabe .dtm Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="447"/>
         <source>Output file name</source>
         <translation>Ausgabedateiname</translation>
     </message>
@@ -3082,32 +3092,32 @@ Abfrage:
 <context>
     <name>Datasources2Vrt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="452"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="453"/>
         <source>Input datasources</source>
         <translation>Eingabedatenquellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="454"/>
         <source>Overwrite output vrt</source>
         <translation>Ausgabe VRT überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="455"/>
         <source>Virtual vector</source>
         <translation>Virtueller Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="456"/>
         <source>Virtual string</source>
         <translation>Virtuelle Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="451"/>
         <source>Build virtual vector</source>
         <translation>Virtuellen Vektor erzeugen</translation>
     </message>
@@ -3863,22 +3873,22 @@ laden</translation>
 <context>
     <name>Delaunay</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="460"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="462"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="460"/>
         <source>Delaunay triangulation</source>
         <translation>Delaunay-Triangulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="459"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="461"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="461"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="463"/>
         <source>Input file should contain at least 3 points. Choose another file and try again.</source>
         <translation>Eingabedatei sollte mindestens 3 Punkte enthalten. Eine andere Datei wählen und nochmal versuchen.</translation>
     </message>
@@ -3886,27 +3896,27 @@ laden</translation>
 <context>
     <name>DeleteColumn</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="468"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="469"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="470"/>
         <source>Field to delete</source>
         <translation>Zu löschendes Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="471"/>
         <source>Deleted column</source>
         <translation>Gelöschte Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="467"/>
         <source>Delete column</source>
         <translation>Spalte löschen</translation>
     </message>
@@ -3914,22 +3924,22 @@ laden</translation>
 <context>
     <name>DeleteDuplicateGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="476"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="477"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="478"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="475"/>
         <source>Delete duplicate geometries</source>
         <translation>Doppelte Geometrien löschen</translation>
     </message>
@@ -3937,22 +3947,22 @@ laden</translation>
 <context>
     <name>DeleteHoles</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="483"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="484"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="485"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="482"/>
         <source>Delete holes</source>
         <translation>Löcher löschen</translation>
     </message>
@@ -3960,17 +3970,17 @@ laden</translation>
 <context>
     <name>DeleteModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="489"/>
         <source>Delete model</source>
         <translation>Lösche Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="490"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="491"/>
         <source>Are you sure you want to delete this model?</source>
         <translation>Dieses Modell wirklich löschen?</translation>
     </message>
@@ -3978,17 +3988,17 @@ laden</translation>
 <context>
     <name>DeleteScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="495"/>
         <source>Delete script</source>
         <translation>Lösche Skript</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="496"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="497"/>
         <source>Are you sure you want to delete this script?</source>
         <translation>Dieses Skript wirklich löschen?</translation>
     </message>
@@ -3996,27 +4006,27 @@ laden</translation>
 <context>
     <name>DensifyGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="502"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="503"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="504"/>
         <source>Vertices to add</source>
         <translation>Zu ergänzende Stützpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="505"/>
         <source>Densified</source>
         <translation>Verdichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="501"/>
         <source>Densify geometries</source>
         <translation>Geometrien verdichten</translation>
     </message>
@@ -4024,27 +4034,27 @@ laden</translation>
 <context>
     <name>DensifyGeometriesInterval</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="510"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="511"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="512"/>
         <source>Interval between vertices to add</source>
         <translation>Intervall zwischen hinzuzufügenden Stützpunkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="513"/>
         <source>Densified</source>
         <translation>Verdichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="509"/>
         <source>Densify geometries given an interval</source>
         <translation>Geometrien mit gegebenem Intervall verdichten</translation>
     </message>
@@ -4053,19 +4063,19 @@ laden</translation>
     <name>Dialog</name>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="40"/>
         <source>Eliminate sliver polygons</source>
         <translation>Splitterpolygone entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="41"/>
         <source>common boundary</source>
         <translation>Gemeinsame Umgrenzung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="27"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="42"/>
         <source>Merge selection with the neighbouring polygon with the largest</source>
         <translation>Auswahl mit dem benachbarten Polygon mit dem größten verschmelzen</translation>
     </message>
@@ -4088,7 +4098,7 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="361"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="35"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="168"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="28"/>
         <source>Browse</source>
         <translation>Durchsuchen</translation>
     </message>
@@ -4098,7 +4108,7 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="28"/>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="28"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="31"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
@@ -4115,31 +4125,31 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="117"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="370"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="177"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="29"/>
         <source>Add result to canvas</source>
         <translation>Ergebnis der Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="103"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="43"/>
         <source>Selected features:</source>
         <translation>Gewählte Objekte:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="110"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="44"/>
         <source>area</source>
         <translation>Fläche</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="223"/>
         <source>Extract Nodes</source>
         <translation>Knoten extrahieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="224"/>
         <source>Input line or polygon vector layer</source>
         <translation>Polygon- oder Linieneingabelayer</translation>
     </message>
@@ -4147,38 +4157,38 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="87"/>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="56"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="44"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="190"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="139"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="228"/>
         <source>Save to new shapefile</source>
         <translation>In Shapedatei speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="146"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="152"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="101"/>
         <source>Output point shapefile</source>
         <translation>Ausgabepunktshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="225"/>
         <source>Tolerance</source>
         <translation>Toleranz</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="98"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="226"/>
         <source>Calculate using</source>
         <translation>Berechnen mit</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="117"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="227"/>
         <source>Calculate extent for each feature separately</source>
         <translation>Abmessung für jedes Objekt einzeln berechnen</translation>
     </message>
@@ -4188,43 +4198,43 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="81"/>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="37"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="32"/>
         <source>Use only selected features</source>
         <translation>Nur gewählte Objekte nutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="30"/>
         <source>Geoprocessing</source>
         <translation>Geodatenverarbeitung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="60"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="33"/>
         <source>Intersect layer</source>
         <translation>Layer verschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="115"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="35"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="155"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="36"/>
         <source>Buffer distance field</source>
         <translation>Pufferabstandsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="162"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="37"/>
         <source>Dissolve field</source>
         <translation>Auflösungsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="210"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="38"/>
         <source>Dissolve buffer results</source>
         <translation>Pufferergebnis auflösen</translation>
     </message>
@@ -4233,44 +4243,44 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="107"/>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="78"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="345"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="39"/>
         <source>Output shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="92"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="34"/>
         <source>Segments to approximate</source>
         <translation>Zu approximierende Segmente</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="22"/>
         <source>Locate Line Intersections</source>
         <translation>Linienschnittpunkte bestimmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="23"/>
         <source>Input line layer</source>
         <translation>Linienlayereingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="42"/>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="24"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="25"/>
         <source>Intersect line layer</source>
         <translation>Schnittlinienlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="26"/>
         <source>Intersect unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Schnitts</translation>
     </message>
@@ -4282,243 +4292,243 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="207"/>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="161"/>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="90"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="27"/>
         <source>Output Shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="188"/>
         <source>Generate Centroids</source>
         <translation>Zentroide erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="189"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="191"/>
         <source>Number of standard deviations</source>
         <translation>Anzahl der Standardabweichung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="77"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="192"/>
         <source>Std. Dev.</source>
         <translation>Std.Abw.</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="45"/>
         <source>Merge shapefiles</source>
         <translation>Shapedateien zusammenführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="46"/>
         <source>Select by layers in the folder</source>
         <translation>Einzellayer aus Verzeichnis wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="47"/>
         <source>Shapefile type</source>
         <translation>Shapedateityp</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="37"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="48"/>
         <source>Polygon</source>
         <translation>Polygon</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="49"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="47"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="50"/>
         <source>Point</source>
         <translation>Punkt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="57"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="51"/>
         <source>Input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="99"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="52"/>
         <source>Add result to map canvas</source>
         <translation>Ergebnis der Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="179"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="193"/>
         <source>Create Distance Matrix</source>
         <translation>Distanzmatrix erstellen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="194"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="195"/>
         <source>Target point layer</source>
         <translation>Zielpunktlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="196"/>
         <source>Target unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Ziels</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="82"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="184"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="197"/>
         <source>Output matrix type</source>
         <translation>Typ der Ausgabematrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="88"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="185"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="198"/>
         <source>Linear (N*k x 3) distance matrix</source>
         <translation>Lineare (N*k x 3) Distanzmatrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="98"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="186"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="199"/>
         <source>Standard (N x T) distance matrix</source>
         <translation>Standard (N x T) Distanzmatrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="105"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="200"/>
         <source>Summary distance matrix (mean, std. dev., min, max)</source>
         <translation>Zusammenfassende Distanzmatrix (mtl, std.abw., min, max.)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="112"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="201"/>
         <source>Use only the nearest (k) target points</source>
         <translation>Nur (k) nächste Zielpunkte verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="150"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="202"/>
         <source>Output distance matrix</source>
         <translation>Distanzmatrixausgabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="175"/>
         <source>Count Points In Polygons</source>
         <translation>Polygonpunkte zählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="178"/>
         <source>Input point vector layer attributes to aggregate</source>
         <translation>Punktlayerattribute zur Aggregation</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="129"/>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="179"/>
         <source>Input polygon vector layer</source>
         <translation>Eingabepolygonvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="177"/>
         <source>Input point vector layer</source>
         <translation>Eingabepunktvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="176"/>
         <source>Statistical method for attribute aggregation</source>
         <translation>Statistische Methode zur Attributaggregation</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="141"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="180"/>
         <source>Select columns</source>
         <translation>Spalten wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="158"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="181"/>
         <source>sum</source>
         <translation>Summe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="163"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="182"/>
         <source>stddev</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="168"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="183"/>
         <source>mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="173"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="184"/>
         <source>max</source>
         <translation>Maximum</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="178"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="185"/>
         <source>min</source>
         <translation>Minimum</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="196"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="187"/>
         <source>Output count field name</source>
         <translation>Anzahlausgabefeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="186"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="186"/>
         <source>PNTCNT</source>
         <translation>PKTCNT</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="250"/>
         <source>Generate Random Points</source>
         <translation>Zufällige Punkte erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="32"/>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="32"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="55"/>
         <source>Input Boundary Layer</source>
         <translation>Eingabegrenzlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="251"/>
         <source>Sample Size</source>
         <translation>Stichprobengröße</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="55"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="252"/>
         <source>Unstratified Sampling Design (Entire layer)</source>
         <translation>Ungeschichtete Zufallsprobenentnahme (gesamter Layer)</translation>
     </message>
@@ -4526,31 +4536,31 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="64"/>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="105"/>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="149"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="63"/>
         <source>Use this number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="96"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="253"/>
         <source>Stratified Sampling Design (Individual polygons)</source>
         <translation>Geschichtete Zufallsprobenentnahme (einzelnen Polygone)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="129"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="254"/>
         <source>Use this density of points</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="162"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="255"/>
         <source>Use value from input field</source>
         <translation>Wert aus Eingabefeld verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="88"/>
         <source>Random Selection Tool</source>
         <translation>Zufälliges Auswahlwerkzeug</translation>
     </message>
@@ -4558,683 +4568,683 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="23"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="25"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="95"/>
         <source>Input Vector Layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="33"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="55"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="155"/>
         <source>Randomly Select</source>
         <translation>Zufällig auswählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="42"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="156"/>
         <source>Number of Features</source>
         <translation>Objektanzahl</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="76"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="100"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="177"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="157"/>
         <source>Percentage of Features</source>
         <translation>Prozentualler Objektanteil</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="96"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="120"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="178"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="158"/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="127"/>
         <source>Projection Management Tool</source>
         <translation>Projektionsverwaltungswerkzeug</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="128"/>
         <source>Input spatial reference system</source>
         <translation>Räumliches Eingabebezugssystem</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="58"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="129"/>
         <source>Output spatial reference system</source>
         <translation>Räumliches Ausgabebezugssystem</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="130"/>
         <source>Use predefined spatial reference system</source>
         <translation>Vordefiniertes räumliches Bezugssystem benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="131"/>
         <source>Choose</source>
         <translation>Wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="92"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="132"/>
         <source>Import spatial reference system from existing layer</source>
         <translation>Räumliches Bezugssystem des vorhandenen Layers importieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="109"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="133"/>
         <source>Import spatial reference system</source>
         <translation>Räumliches Bezugssystem importieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="53"/>
         <source>Generate Regular Points</source>
         <translation>Regelmäßige Punkte generieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="54"/>
         <source>Area</source>
         <translation>Bereich</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="45"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="56"/>
         <source>Input Coordinates</source>
         <translation>Eingabekoordinaten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="52"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="66"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="57"/>
         <source>X Min</source>
         <translation>X-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="66"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="93"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="58"/>
         <source>Y Min</source>
         <translation>Y-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="80"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="120"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="59"/>
         <source>X Max</source>
         <translation>X-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="94"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="147"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="60"/>
         <source>Y Max</source>
         <translation>Y-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="111"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="61"/>
         <source>Grid Spacing</source>
         <translation>Rasterabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="119"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="62"/>
         <source>Use this point spacing</source>
         <translation>Punktabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="171"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="64"/>
         <source>Apply random offset to point spacing</source>
         <translation>Zufälligen Versatz auf Punktabstand anwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="191"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="65"/>
         <source>Initial inset from corner (LH side)</source>
         <translation>Anfängliche Einsatz von Ecke (linke Seite)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="261"/>
         <source>Simplify geometries</source>
         <translation>Geometrien vereinfachen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="262"/>
         <source>Input line or polygon layer</source>
         <translation>Eingabelinien- oder -polygonlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="46"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="263"/>
         <source>Simplify tolerance</source>
         <translation>Vereinfachungstoleranz</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="73"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="264"/>
         <source>Save to new file</source>
         <translation>In neuer Datei speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="233"/>
         <source>Build spatial index</source>
         <translation>Räumlicher Index erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="22"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="234"/>
         <source>Select files from disk</source>
         <translation>Dateien wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="235"/>
         <source>Select files...</source>
         <translation>Durchsuchen...</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="53"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="236"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="60"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="237"/>
         <source>Select none</source>
         <translation>Keine wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="67"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="238"/>
         <source>Clear list</source>
         <translation>Liste leeren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="79"/>
         <source>Spatial Join</source>
         <translation>Räumliche Schneidung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="138"/>
         <source>Target vector layer</source>
         <translation>Zielvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="139"/>
         <source>Join vector layer</source>
         <translation>Aus Vektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="140"/>
         <source>Attribute Summary</source>
         <translation>Attributzusammenfassung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="89"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="141"/>
         <source>Mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="99"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="142"/>
         <source>Take summary of intersecting features</source>
         <translation>Zusammenfassung der schneidenden Objekte erstellen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="109"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="143"/>
         <source>Min</source>
         <translation>Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="119"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="144"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="129"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="145"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="139"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="202"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="146"/>
         <source>Max</source>
         <translation>Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="146"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="147"/>
         <source>Take attributes of first located feature</source>
         <translation>Attribute des ersten bestimmten Objekts verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="188"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="148"/>
         <source>Output table</source>
         <translation>Ausgabetabelle</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="194"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="149"/>
         <source>Only keep matching records</source>
         <translation>Nur passende Datensätze erhalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="204"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="150"/>
         <source>Keep all records (including non-matching target records)</source>
         <translation>Alle Datensätze erhalten (einschließlich nicht zutreffender Zieldatensätzen)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="153"/>
         <source>Random Selection From Within Subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="39"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="154"/>
         <source>Input subset field (unique ID field)</source>
         <translation>Eingabeuntermengenfeld (eindeutiges Schlüsselfeld)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="229"/>
         <source>Sum Line Length In Polygons</source>
         <translation>Länge in Polygonen summieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="231"/>
         <source>Output summed length field name</source>
         <translation>Ausgabefeld für Liniensumme</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="63"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="232"/>
         <source>LENGTH</source>
         <translation>LÄNGE</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="230"/>
         <source>Input line vector layer</source>
         <translation>Eingabelinienvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="165"/>
         <source>Generate Vector Grid</source>
         <translation>Vektorgitter erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="239"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="41"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="240"/>
         <source>Update extents from layer</source>
         <translation>Layergrenzen aktualisieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="241"/>
         <source>Update extents from canvas</source>
         <translation>Layergrenzen aus aktueller Ansicht</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="169"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="242"/>
         <source>Align extents and resolution to selected raster layer</source>
         <translation>Ausmaße und Auflösung am gewählten Layer ausrichten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="179"/>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="30"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="519"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="521"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="198"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="244"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="221"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="245"/>
         <source>Lock 1:1 ratio</source>
         <translation>1:1 Verhältnis festhalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="260"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="246"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="286"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="247"/>
         <source>Output grid as polygons</source>
         <translation>Gitter als Polygone ausgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="296"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="248"/>
         <source>Output grid as lines</source>
         <translation>Gitter als Linien ausgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="316"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="249"/>
         <source>Rotation angle in degrees</source>
         <translation>Drehwinkel in Grad</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="135"/>
         <source>Vector Split</source>
         <translation>Vektorteilung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="57"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="256"/>
         <source>Output folder</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="94"/>
         <source>List Unique Values</source>
         <translation>Eindeutige Werte auflisten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="53"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="96"/>
         <source>Target field</source>
         <translation>Zielfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="67"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="97"/>
         <source>Unique values list</source>
         <translation>Eindeutige Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="115"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="98"/>
         <source>Unique value count</source>
         <translation>Anzahl eindeutiger Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="145"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="100"/>
         <source>Save errors location</source>
         <translation>Fehlerpositionen speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="131"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="99"/>
         <source>Press Ctrl+C to copy results to the clipboard</source>
         <translation>Strg+C drücken, um die Ergebnisse in
 die Zwischenablage zu kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="159"/>
         <source>Vector grid</source>
         <translation>Vektorgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="161"/>
         <source>Please select a raster layer</source>
         <translation>Bitte einen Rasterlayer auswählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="162"/>
         <source>Unable to compute extents aligned on selected raster layer</source>
         <translation>Konnte auf gewähltes Raster ausgerichtete Ausmaße nicht berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="163"/>
         <source>Please specify valid extent coordinates</source>
         <translation>Bitte gültige Grenzkoordinaten angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="15"/>
         <source>Please specify output shapefile</source>
         <translation>Bitte Ausgabeshapedatei angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="164"/>
         <source>Invalid extent coordinates entered</source>
         <translation>Ungültige Grenzkoordinaten angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="87"/>
         <source>Random selection</source>
         <translation>Zufällige Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="68"/>
         <source>No input shapefile specified</source>
         <translation>Keine Eingabeshapedatei angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="109"/>
         <source>Regular points</source>
         <translation>Regelmäßige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="110"/>
         <source>Please specify input layer</source>
         <translation>Bitte Eingabelayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="111"/>
         <source>Please properly specify extent coordinates</source>
         <translation>Bitte Ausgabegrenzkoordinaten genau angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="166"/>
         <source>Mean coordinates</source>
         <translation>Mittlere Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="167"/>
         <source>Standard distance</source>
         <translation>Standardabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="168"/>
         <source>(Optional) Weight field</source>
         <translation>(Optionales) Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="169"/>
         <source>(Optional) Unique ID field</source>
         <translation>(Optionales) Eindeutiges ID-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="170"/>
         <source>Coordinate statistics</source>
         <translation>Koordinatenstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="171"/>
         <source>No input vector layer specified</source>
         <translation>Keinen Eingabevektorlayer angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="221"/>
         <source>There were %d vertices in original dataset which
 were reduced to %d vertices after simplification</source>
         <translation>%d Stützpunkte des ursprünglichen Datenbestands
 wurden auf %d Stützpunkte vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="136"/>
         <source>Processing of the following layers/files ended with error:<br><br></source>
         <translation>Verarbeitung der folgenden Layer/Dateien endete mit Fehler:<br><br></translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="78"/>
         <source>Join attributes by location</source>
         <translation>Attribute nach Position zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="80"/>
         <source>Please specify target vector layer</source>
         <translation>Bitte Zielvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="81"/>
         <source>Please specify join vector layer</source>
         <translation>Bitte zusammenzuführenden Vektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="82"/>
         <source>Please specify at least one summary statistic</source>
         <translation>Bitte mindestens eine Zusammenfassungsstatistik angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="16"/>
         <source>CRS warning!</source>
         <translation>KBS-Warnung!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="17"/>
         <source>Warning: Input layers have non-matching CRS.
 This may cause unexpected results.</source>
         <translation>Warnung: Eingabelayer haben nicht das gleiche KBS.
 Dies kann zu unerwarteten Ergebnissen führen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="84"/>
         <source>Summary field</source>
         <translation>Zusammenfassungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="85"/>
         <source>Error deleting shapefile</source>
         <translation>Fehler beim Löschen der Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="89"/>
         <source>Sum line lengths</source>
         <translation>Linienlängen summieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="90"/>
         <source>Sum Line Lengths In Polyons</source>
         <translation>Länge in Polygonen summieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="12"/>
         <source>Please specify input polygon vector layer</source>
         <translation>Bitte Eingabepolygonvektorlayer wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="91"/>
         <source>Please specify input line vector layer</source>
         <translation>Bitte Eingabelinienvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="92"/>
         <source>Please specify output length field</source>
         <translation>Bitte Ausgabelängenfeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="93"/>
         <source>length field</source>
         <translation>Längenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="86"/>
         <source>Can't delete existing shapefile
 %s</source>
         <translation>Kann vorhandene Shapedateien nicht löschen
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="134"/>
         <source>Split vector layer</source>
         <translation>Vektorlayer teilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="18"/>
         <source>Cancel</source>
         <translation>Abbruch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="21"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="10"/>
         <source>Count Points in Polygon</source>
         <translation>Punkte in Polygon zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="11"/>
         <source>Count Points In Polygon</source>
         <translation>Punkte in Polygonen zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="13"/>
         <source>Please specify input point vector layer</source>
         <translation>Bitte Eingabepunktvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="14"/>
         <source>Please specify output count field</source>
         <translation>Bitte Ausgabezählfeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="172"/>
         <source>Random selection within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="70"/>
         <source>Can't delete file %s</source>
         <translation>Kann Datei %s nicht löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="19"/>
         <source>Error loading output shapefile:
 %s</source>
         <translation>Fehler beim Laden der Ausgabeshapedatei:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="83"/>
         <source>Created output shapefile:
 %s
 
@@ -5245,232 +5255,232 @@ Would you like to add the new layer to the TOC?</source>
 Soll sie dem Projekt als neuer Layer hinzugefügt werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="173"/>
         <source>Please specify input vector layer</source>
         <translation>Bitte Eingabevektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="174"/>
         <source>Please specify an input field</source>
         <translation>Bitte Eingabefeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="271"/>
         <source>Defined Projection For:
 %s.shp</source>
         <translation>Definierte Projektion für:
 %s.shp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="102"/>
         <source>Random Points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="103"/>
         <source>No input layer specified</source>
         <translation>Kein Eingabelayer angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="104"/>
         <source>unstratified</source>
         <translation>nicht geschichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="105"/>
         <source>stratified</source>
         <translation>geschichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="106"/>
         <source>density</source>
         <translation>Dichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="107"/>
         <source>field</source>
         <translation>Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="108"/>
         <source>Unknown layer type...</source>
         <translation>Unbekannter Layertyp...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="66"/>
         <source>Selected features: %s</source>
         <translation>Gewählte Objekte: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="72"/>
         <source>Commit error:
 %s</source>
         <translation>Commit-Fehler:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="75"/>
         <source>Could not replace geometry of feature with id %s</source>
         <translation>Konnte Geometrie des Objektes %s nicht ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="76"/>
         <source>Could not eliminate features with these ids:
 %s</source>
         <translation>Konnte Objekte mit folgenden Dateien nicht eliminieren:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="20"/>
         <source>Created output shapefile:
 %s</source>
         <translation>Ausgabeshapedatei erzeugt:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="203"/>
         <source>Line intersections</source>
         <translation>Linienschnittpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="204"/>
         <source>Please specify input line layer</source>
         <translation>Bitte Eingabelinienlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="205"/>
         <source>Please specify line intersect layer</source>
         <translation>Bitte Schnittlinienlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="137"/>
         <source>Created output shapefiles in folder:
 %s</source>
         <translation>Ausgabeshapedateien erzeugt im Ordner:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="117"/>
         <source>Please specify input unique ID field</source>
         <translation>Bitte Eingabefeld für eindeutigen ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="206"/>
         <source>Please specify intersect unique ID field</source>
         <translation>Bitte Feld für eindeutige Schnitt-ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="219"/>
         <source>Currently QGIS doesn't allow simultaneous access from different threads to the same datasource. Make sure your layer's attribute tables are closed. Continue?</source>
         <translation>Gegenwärtig erlaubt QGIS keine gleichzeitigen Zugriff von verschiedenen Threads auf die gleiche Datenquelle. Bitte sicherstellen, dass keine Attributtabellen geöffnet sind. Fortfahren?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="112"/>
         <source>Distance matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="113"/>
         <source>Create Point Distance Matrix</source>
         <translation>Punktabstandsmatrix erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="114"/>
         <source>Please specify input point layer</source>
         <translation>Bitte den Eingabelayer wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="115"/>
         <source>Please specify output file</source>
         <translation>Bitte Ausgabedatei angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="116"/>
         <source>Please specify target point layer</source>
         <translation>Bitte Zielpunktlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="118"/>
         <source>Please specify target unique ID field</source>
         <translation>Bitte Zielfeld für eindeutigen ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="151"/>
         <source>Finished</source>
         <translation>Abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="152"/>
         <source>Processing completed.</source>
         <translation>Verarbeitung abgeschlossen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="207"/>
         <source>Select directory with shapefiles to merge</source>
         <translation>Verzeichnis der zusammenzuführenden Shapedateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="208"/>
         <source>No shapefiles found</source>
         <translation>Keine Shapedateien gefunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="209"/>
         <source>There are no shapefiles in this directory. Please select another one.</source>
         <translation>Es gibt keine Shapedateien in diesem Verzeichnis. Bitte ein anderes wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="210"/>
         <source>Input files</source>
         <translation>Eingabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="211"/>
         <source>No output file</source>
         <translation>Keine Ausgabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="212"/>
         <source>Please specify output file.</source>
         <translation>Bitte eine Ausgabedatei angeben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="213"/>
         <source>There are no shapefiles with the given geometry type. Please select an available geometry type.</source>
         <translation>Es gibt keine Shapedatei des gegebenen Geometrietyps. Bitte wählen einen verfügbaren Geometrietyp wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="69"/>
         <source>Delete error</source>
         <translation>Fehler beim Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="214"/>
         <source>Merging</source>
         <translation>Beim Zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="265"/>
         <source>Define current projection</source>
         <translation>Aktuelle Projektion definieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="266"/>
         <source>Missing or invalid CRS</source>
         <translation>Fehlendes oder ungültiges KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="267"/>
         <source>Please specify spatial reference system</source>
         <translation>Bitte räumliches Bezugssystem angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="268"/>
         <source>Cannot define projection for PostGIS data...yet!</source>
         <translation>Kann Projektionsdaten für PostGIS-Daten nicht definieren...noch!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="269"/>
         <source>Identical output spatial reference system chosen
 
 Are you sure you want to proceed?</source>
@@ -5479,200 +5489,200 @@ Are you sure you want to proceed?</source>
 Soll wirklich fortgefahren werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="270"/>
         <source>Output spatial reference system is not valid</source>
         <translation>Räumliches Ausgabebezugssystem ist ungültig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="272"/>
         <source>Please select the projection system that defines the current layer.</source>
         <translation>Bitte Projektionssystem für den aktuellen Layer wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="273"/>
         <source>Layer CRS information will be updated to the selected CRS.</source>
         <translation>Layer-KBS-Information wird auf das gewählte KBS aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="274"/>
         <source>Export to new projection</source>
         <translation>In neue Projektion exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="275"/>
         <source>No Valid CRS selected</source>
         <translation>Kein gültiges KBS gewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="160"/>
         <source>Layer and project have different CRS!
 Results may be wrong.</source>
         <translation>Layer und Projekt haben unterschiedliche KBS!
 Ergebnisse könnten falsch sein.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="215"/>
         <source>Densify geometries</source>
         <translation>Geometrien verdichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="216"/>
         <source>Vertices to add</source>
         <translation>Zu ergänzende Stützpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="217"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="218"/>
         <source>Please specify an input layer</source>
         <translation>Bitte einen Eingabelayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="220"/>
         <source>Simplify results</source>
         <translation>Ergebnisse vereinfachen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="222"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="257"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="258"/>
         <source>adding to current selection</source>
         <translation>Zur aktuellen Auswahl hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="259"/>
         <source>removing from current selection</source>
         <translation>Aus aktueller Auswahl entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="32"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="119"/>
         <source>Select by location</source>
         <translation>Nach Position auswählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="40"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="120"/>
         <source>Select features in:</source>
         <translation>Objekte wählen in:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="121"/>
         <source>that intersect features in:</source>
         <translation>die Objekte schneiden in:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="76"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="123"/>
         <source>Include input features that touch the selection features</source>
         <translation>Eingabeobjekte einschließen, die die gewählten Objekte berührt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="124"/>
         <source>Include input features that overlap/cross the selection features</source>
         <translation>Eingabeobjekte einschließen, die die gewählten Objekte überlagern oder kreuzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="90"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="125"/>
         <source>Include input features completely within the selection features</source>
         <translation>Eingabeobjekte einschließen, die ganz in den gewählten Objekten liegen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="97"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="126"/>
         <source>Only selected features</source>
         <translation>Nur gewählte Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="260"/>
         <source>Please specify select layer</source>
         <translation>Bitte Auswahllayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="67"/>
         <source>Eliminate</source>
         <translation>Entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="71"/>
         <source>No selection in input layer</source>
         <translation>Keine Auswahl auf Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="73"/>
         <source>Error creating output file</source>
         <translation>Fehler beim Erzeugen des Ausgabelayers</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="74"/>
         <source>Could not delete features</source>
         <translation>Konnte Objekte nicht löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="77"/>
         <source>Could not add features</source>
         <translation>Konnte Objekte nicht hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/DlgMessage.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="520"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="522"/>
         <source>Log</source>
         <translation>Protokoll</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="62"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="523"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="75"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="524"/>
         <source>about:blank</source>
         <translation>about:blank</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="66"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="122"/>
         <source>Include input features that intersect the selection features</source>
         <translation>Eingabeobjekte einschließen, die sich mit gewählten Objekte überschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="517"/>
         <source> output table</source>
         <translation>Ausgabetabelle</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="518"/>
         <source>Select connection and schema</source>
         <translation>Verbindung und Schema wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="41"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="519"/>
         <source>Table name</source>
         <translation>Tabellenname</translation>
     </message>
@@ -5680,38 +5690,38 @@ Ergebnisse könnten falsch sein.</translation>
 <context>
     <name>Difference</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="530"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="531"/>
         <source>Difference layer</source>
         <translation>Differenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="532"/>
         <source>Input layer has unsupported geometry type {}</source>
         <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="533"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="534"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="528"/>
         <source>Difference</source>
         <translation>Unterschied</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="527"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="529"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
@@ -5719,57 +5729,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistDown</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="538"/>
         <source>D-Infinity Distance Down</source>
         <translation>D-Infinity Entfernung nach unten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="539"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="540"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="541"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="542"/>
         <source>Stream Raster Grid</source>
         <translation>Stromrastergitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="543"/>
         <source>Weight Path Grid</source>
         <translation>Pfadgewichtungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="544"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="545"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="546"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="547"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Abstand nach unten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="548"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5777,57 +5787,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistDownMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="552"/>
         <source>D-Infinity Distance Down (multifile)</source>
         <translation>D-Infinity Entfernung nach unten (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="553"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="554"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="555"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="556"/>
         <source>Stream Raster Grid</source>
         <translation>Stromrastergitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="557"/>
         <source>Weight Path Grid</source>
         <translation>Pfadgewichtungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="558"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="559"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="560"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="561"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="562"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5835,52 +5845,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistUp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="568"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="569"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="570"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="571"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="572"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="573"/>
         <source>Proportion Threshold</source>
         <translation>Anteils Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="574"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="566"/>
         <source>D-Infinity Distance Up</source>
         <translation>D-Infinity Entfernung hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="567"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="575"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5888,57 +5898,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistUpMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="579"/>
         <source>D-Infinity Distance Up (multifile)</source>
         <translation>D-Infinity Entfernung nach oben (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="580"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="581"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="580"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="582"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="581"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="583"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="584"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="585"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="586"/>
         <source>Proportion Threshold</source>
         <translation>Anteils Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="587"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="588"/>
         <source>D-Infinity Distance Up</source>
         <translation>D-Infinity Entfernung hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="589"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5946,52 +5956,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="593"/>
         <source>D-Infinity Transport Limited Accumulation</source>
         <translation>D-Infinity transportbegrenzte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="594"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="595"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="596"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="597"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="598"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="599"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="600"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="601"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="602"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5999,62 +6009,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum2</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="606"/>
         <source>D-Infinity Transport Limited Accumulation - 2</source>
         <translation>D-Infinity transportbegrenzte Akkumulation - 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="605"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="607"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="608"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="609"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="610"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="611"/>
         <source>Input Concentration Grid</source>
         <translation>Eingangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="612"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="613"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="614"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="615"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="616"/>
         <source>Output Concentration Grid</source>
         <translation>Ausgangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="617"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6062,62 +6072,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum2Multi</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="621"/>
         <source>D-Infinity Transport Limited Accumulation - 2 (multifile)</source>
         <translation>D-Infinity transportbegrenzte Akkumulation - 2 (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="622"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="623"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="624"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="625"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="626"/>
         <source>Input Concentration Grid</source>
         <translation>Eingangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="627"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="628"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="629"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="630"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="631"/>
         <source>Output Concentration Grid</source>
         <translation>Ausgangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="632"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6125,52 +6135,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccumMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="636"/>
         <source>D-Infinity Transport Limited Accumulation (multifile)</source>
         <translation>D-Infinity transportbegrenzte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="637"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="638"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="639"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="640"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="641"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="642"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="643"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="644"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="645"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6178,27 +6188,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Dissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="653"/>
         <source>Geometry exception while dissolving</source>
         <translation>Geometrieausnahme während Zerlegung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="650"/>
         <source>Dissolve all (do not use field)</source>
         <translation>Alle auflösen (Feld nicht nutzen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="651"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="649"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="652"/>
         <source>Dissolved</source>
         <translation>Aufgelöst</translation>
     </message>
@@ -6220,37 +6230,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgAutofill</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="657"/>
         <source>Autofill settings</source>
         <translation>Autofülleinstellungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="658"/>
         <source>Autofill mode</source>
         <translation>Autofüllmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="28"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="659"/>
         <source>Do not autofill</source>
         <translation>Nicht automatisch füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="33"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="660"/>
         <source>Fill with numbers</source>
         <translation>Mit Zahlen füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="38"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="661"/>
         <source>Fill with parameter values</source>
         <translation>Mit Parameterwerten füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="49"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="662"/>
         <source>Parameter to use</source>
         <translation>Zu benutzender Parameter</translation>
     </message>
@@ -6259,13 +6269,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgConfig</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgConfig.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="666"/>
         <source>Processing options</source>
         <translation>Verarbeitungsoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgConfig.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="667"/>
         <source>Enter setting name to filter list</source>
         <translation>Einstellungsname eingeben, um Liste zu filtern</translation>
     </message>
@@ -6408,7 +6418,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgFixedTable</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgFixedTable.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="671"/>
         <source>Fixed table</source>
         <translation>Feste Tabelle</translation>
     </message>
@@ -6417,13 +6427,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgGetScriptsAndModels</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgGetScriptsAndModels.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="675"/>
         <source>Get scripts and models</source>
         <translation>Skripte und Modelle laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgGetScriptsAndModels.ui" line="86"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="676"/>
         <source>about:blank</source>
         <translation>about:blank</translation>
     </message>
@@ -6432,25 +6442,25 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgHelpEdition</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="680"/>
         <source>Help editor</source>
         <translation>Hilfeeditor</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="31"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="681"/>
         <source>about:blank</source>
         <translation>about:blank</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="47"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="682"/>
         <source>Select element to edit</source>
         <translation>Element zur Bearbeitung wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="82"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="683"/>
         <source>Element description</source>
         <translation>Elementbeschreibung</translation>
     </message>
@@ -6459,7 +6469,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgHistory</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHistory.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="687"/>
         <source>History</source>
         <translation>Historie</translation>
     </message>
@@ -6513,13 +6523,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgModeler</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="691"/>
         <source>Processing modeler</source>
         <translation>Verarbeitungsmodellierung</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="34"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="692"/>
         <source>Open model</source>
         <translation>Modell öffnen</translation>
     </message>
@@ -6531,97 +6541,97 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="105"/>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="125"/>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="145"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="693"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="50"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="695"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="66"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="697"/>
         <source>Save as...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="89"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="699"/>
         <source>Export as image</source>
         <translation>Speichern als Rasterbild</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="102"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="700"/>
         <source>Export as Python script</source>
         <translation>Exportiere als Python-Skript</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="122"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="701"/>
         <source>Edit model help</source>
         <translation>Modellhilfe bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="142"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="702"/>
         <source>Run model</source>
         <translation>Modell ausführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="190"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="704"/>
         <source>Inputs</source>
         <translation>Eingaben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="218"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="703"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="705"/>
         <source>Algorithms</source>
         <translation>Algorithmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="230"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="706"/>
         <source>Enter algorithm name to filter list</source>
         <translation>Algorithmenname eingeben, um Liste zu filtern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="260"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="707"/>
         <source>Enter model name here</source>
         <translation>Modellname hier eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="267"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="708"/>
         <source>Enter group name here</source>
         <translation>Gruppenname eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="40"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="694"/>
         <source>Ctrl+O</source>
         <translation>Strg+O</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="694"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="696"/>
         <source>Ctrl+S</source>
         <translation>Strg+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="698"/>
         <source>Ctrl+Shift+S</source>
         <translation>Strg+Umschalt+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="148"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="701"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="703"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
@@ -6630,7 +6640,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgMultipleSelection</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgMultipleSelection.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="712"/>
         <source>Multiple selection</source>
         <translation>Mehrfachauswahl</translation>
     </message>
@@ -6639,19 +6649,19 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgNumberInput</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="716"/>
         <source>Enter number or expression</source>
         <translation>Zahl oder Ausdruck eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="717"/>
         <source><html><head/><body><p>Enter expression in the text field. Double click on elements in the tree to add their values to the expression.</p></body></html></source>
         <translation><html><head/><body><p>Einen Ausdruck in das Textfeld eingeben. Auf Baumelemente doppelklicken, um deren Wert dem Ausdruck hinzuzufügen.</p></body></html></translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="36"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="718"/>
         <source><html><head/><body><p><span style=" font-weight:600;">Warning</span>: if expression result is float value, but integer required, result will be rounded to integer.</p></body></html></source>
         <translation><html><head/><body><p><span style=" font-weight:600;">Warnung</span>: wenn der Ausdruck eine Fließkommazahl ist, aber eine ganze Zahl gefordert ist, wird das Ergebnis auf eine ganze Zahl gerundet.</p></body></html></translation>
     </message>
@@ -6660,19 +6670,19 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgRenderingStyles</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="722"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="30"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="723"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="35"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="724"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
@@ -6681,13 +6691,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgResults</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgResults.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="728"/>
         <source>Results</source>
         <translation>Ergebnisse</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgResults.ui" line="53"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="729"/>
         <source>about:blank</source>
         <translation>about:blank</translation>
     </message>
@@ -6696,13 +6706,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgScriptEditor</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
         <source>Script editor</source>
         <translation>Skript-Editor</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="737"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
@@ -6718,127 +6728,127 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="196"/>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="212"/>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="232"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="739"/>
         <source>Save as...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="95"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="741"/>
         <source>Edit script help</source>
         <translation>Skripthilfe bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="115"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="742"/>
         <source>Run algorithm</source>
         <translation>Algorithmus ausführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="138"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="744"/>
         <source>Cut</source>
         <translation>Ausschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="154"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="170"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="748"/>
         <source>Paste</source>
         <translation>Einfügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="193"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="750"/>
         <source>Undo</source>
         <translation>Zurücknehmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="209"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
         <source>Redo</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="40"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
         <source>Open script</source>
         <translation>Skript öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="46"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
         <source>Ctrl+O, Return</source>
         <translation>Strg+O, Eingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="62"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="738"/>
         <source>Ctrl+S</source>
         <translation>Strg+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="78"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="740"/>
         <source>Ctrl+Shift+S</source>
         <translation>Strg+Umschalt+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="121"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="743"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="144"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="745"/>
         <source>Ctrl+X</source>
         <translation>Strg+X</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="160"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="747"/>
         <source>Ctrl+C</source>
         <translation>Strg+C</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="176"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="749"/>
         <source>Ctrl+V</source>
         <translation>Strg+V</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="199"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="751"/>
         <source>Ctrl+Z</source>
         <translation>Strg+Z</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="215"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="753"/>
         <source>Ctrl+Shift+Z</source>
         <translation>Strg+Umschalt+Z</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="249"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="754"/>
         <source>A+</source>
         <translation>A+</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="259"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="755"/>
         <source>A-</source>
         <translation>A-</translation>
     </message>
@@ -6998,67 +7008,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="759"/>
         <source>Stream Drop Analysis</source>
         <translation>Gewässergefälleanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="760"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="761"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="762"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="763"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="764"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="765"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="766"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="767"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="768"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="769"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="770"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="771"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -7066,67 +7076,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysisMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="775"/>
         <source>Stream Drop Analysis (multifile)</source>
         <translation>Gewässergefälleanalyse (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="776"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="777"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="778"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="779"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="780"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="781"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="782"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="783"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="784"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="785"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="786"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="787"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -7134,7 +7144,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="791"/>
         <source>Edit model</source>
         <translation>Editiere Modell</translation>
     </message>
@@ -7142,7 +7152,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="795"/>
         <source>Edit script</source>
         <translation>Editiere Skript</translation>
     </message>
@@ -7168,112 +7178,112 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Eliminate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="800"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="801"/>
         <source>Largest area</source>
         <translation>Größte Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="802"/>
         <source>Smallest Area</source>
         <translation>Kleinste Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="803"/>
         <source>Largest common boundary</source>
         <translation>Größte gemeinsame Grenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
         <source>Use current selection in input layer (works only if called from toolbox)</source>
         <translation>Aktuelle Auswahl des Eingabelayers verwenden (funktionert nur aus Werkzeugkasten heraus)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="807"/>
         <source>Comparison</source>
         <translation>Vergleich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
         <source>Merge selection with the neighbouring polygon with the</source>
         <translation>Vereinige Auswahl mit dem Nachbarpolygon mit den</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
         <source>Cannot convert "%s" to integer</source>
         <translation>Kann "%s" nicht in Integer umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
         <source>Cannot convert "%s" to float</source>
         <translation>Kann "%s" nicht in float umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
         <source>Cannot convert "%s" to unicode</source>
         <translation>Kann "%s" nicht in unicode umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="814"/>
         <source>Cannot convert "%s" to date with system date format %s</source>
         <translation>Kann "%s" nicht in Datum mit Systemdatumsformat %s umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="815"/>
         <source>Cannot convert "%s" to date with format string "%s"</source>
         <translation>Kann "%s" nicht in Datum im Format "%s" umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="816"/>
         <source>Enter the date and the date format, e.g. "07.26.2011" "MM.dd.yyyy".</source>
         <translation>Bitte Datum und Format eingeben, z.B.: "07.26.2011" "MM.dd.yyyy".</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="817"/>
         <source>"%s" can only be used with string fields</source>
         <translation>"%s" kann nur mit Textfeldern verwendet werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="818"/>
         <source>Error in selection input: %s</source>
         <translation>Fehler in der Auswahleingabe: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="819"/>
         <source>%s: (No selection in input layer "%s")</source>
         <translation>%s: (Keine Auswahl in Eingabelayer "%s")</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="820"/>
         <source>Could not replace geometry of feature with id %s</source>
         <translation>Konnte Geometrie des Objektes %s nicht ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="799"/>
         <source>Eliminate sliver polygons</source>
         <translation>Splitterpolygone beseitigen</translation>
     </message>
@@ -7281,27 +7291,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EquivalentNumField</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="824"/>
         <source>Add unique value index field</source>
         <translation>Feld mit eindeutigem Klassenindex hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="823"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="825"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="824"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="826"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="827"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="828"/>
         <source>Layer with index field</source>
         <translation>Layer mit eindeutigem Klassenindex</translation>
     </message>
@@ -7309,22 +7319,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExampleAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="832"/>
         <source>Create copy of layer</source>
         <translation>Layerkopie erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="833"/>
         <source>Algorithms for vector layers</source>
         <translation>Algorithmen für Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="834"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="833"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="835"/>
         <source>Output layer with selected features</source>
         <translation>Eingabelayer mit gewählten Objekten</translation>
     </message>
@@ -7332,62 +7342,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="839"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="840"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="841"/>
         <source>Additional input datasources (called input1, .., inputN in the query)</source>
         <translation>Zusätzliche Eingabedatenquellen (in der Abfrage input1, .., inputN genannt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="842"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="843"/>
         <source>Unique identifier field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="842"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="844"/>
         <source>Geometry field</source>
         <translation>Geometriefeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="845"/>
         <source>Autodetect</source>
         <translation>Automatisch feststellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="846"/>
         <source>No geometry</source>
         <translation>Keine Geometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="847"/>
         <source>Geometry type</source>
         <translation>Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="848"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="849"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="850"/>
         <source>Empty SQL. Please enter valid SQL expression and try again.</source>
         <translation>Leerer SQL-Ausdruck. Bitte einen gültigen SQL-Ausdruck eingeben und wiederholen.</translation>
     </message>
@@ -7395,22 +7405,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Explode</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="855"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="856"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="857"/>
         <source>Exploded</source>
         <translation>Explodiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="854"/>
         <source>Explode lines</source>
         <translation>Linien sprengen</translation>
     </message>
@@ -7418,42 +7428,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExportGeometryInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="863"/>
         <source>Layer CRS</source>
         <translation>Layer-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="864"/>
         <source>Project CRS</source>
         <translation>Projekt-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="865"/>
         <source>Ellipsoidal</source>
         <translation>Ellipsenförmig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="866"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="867"/>
         <source>Calculate using</source>
         <translation>Berechnen mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="868"/>
         <source>Added geom info</source>
         <translation>Geometrieinfo ergänzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
         <source>Export/Add geometry columns</source>
         <translation>Geometriespalte exportieren/hinzufügen</translation>
     </message>
@@ -7461,27 +7471,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentFromLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="875"/>
         <source>Calculate extent for each feature separately</source>
         <translation>Abmessung für jedes Objekt einzeln berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="876"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
         <source>Polygon from layer extent</source>
         <translation>Polygon aus Layergrenzen</translation>
     </message>
@@ -7489,42 +7499,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="880"/>
         <source>[Leave blank to use min covering extent]</source>
         <translation>[Freilassen, um min Abdeckungsumfang zu nutzen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="881"/>
         <source>Use layer/canvas extent</source>
         <translation>Benutze Layer/Leinwand Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="882"/>
         <source>Select extent on canvas</source>
         <translation>Wähle Ausdehnung auf Leinwand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
         <source>Use min covering extent from input layers</source>
         <translation>Benutze minimale Abdeckungsausmasse von Eingangslayern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
         <source>Select extent</source>
         <translation>Ausdehnung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="885"/>
         <source>Use extent from</source>
         <translation>Ausdehnung verwenden aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="886"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="887"/>
         <source>The projection of the chosen layer is not the same as canvas projection! The selected extent might not be what was intended.</source>
         <translation>Die Projekt des gewählten Layers entspricht nicht der Kartenprojektion! Die gewählten Grenzen könnte nicht die beabsichtigten sein.</translation>
     </message>
@@ -7532,57 +7542,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
         <source>begins with</source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="896"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="897"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="898"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="899"/>
         <source>Extracted (attribute)</source>
         <translation>Extrahiert (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="900"/>
         <source>Operators %s can be used only with string fields.</source>
         <translation>Operatoren %s könnte nur in Textfeldern verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="901"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
         <source>Extract by attribute</source>
         <translation>Nach Attribut extrahieren</translation>
     </message>
@@ -7590,37 +7600,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="907"/>
         <source>Layer to select from</source>
         <translation>Auswählen von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="908"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="910"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="911"/>
         <source>Extracted (location)</source>
         <translation>Extrahiert (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="905"/>
         <source>Extract by location</source>
         <translation>Nach Position extrahieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="904"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="906"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
@@ -7628,22 +7638,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractNodes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="916"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="917"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="918"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="915"/>
         <source>Extract nodes</source>
         <translation>Knoten extrahieren</translation>
     </message>
@@ -7651,22 +7661,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractProjection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="924"/>
         <source>Input file</source>
         <translation>Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="925"/>
         <source>Create also .prj file</source>
         <translation>Auch .prj-Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
         <source>Extract projection</source>
         <translation>Projektion extrahieren</translation>
     </message>
@@ -7675,144 +7685,144 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>FieldsCalculator</name>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="929"/>
         <source>Field calculator</source>
         <translation>Feldrechner</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="946"/>
         <source>Create a new field</source>
         <translation>Neues Feld anlegen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="59"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="947"/>
         <source>Output field name</source>
         <translation>Ausgabefeldname</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="948"/>
         <source>Output field type</source>
         <translation>Ausgabefeldtyp</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="85"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="949"/>
         <source>Output field width</source>
         <translation>Ausgabefeldbreite</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="95"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="950"/>
         <source>Width of complete output. For example 123,456 means 6 as field width.</source>
         <translation>Breite der kompletten Ausgabe. Zum  Beispiel bedeutet 123,456 eine Feldbreite von 6.</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="108"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="146"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="935"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="165"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
         <source>Update existing field</source>
         <translation>Vorhandenes Feld erneuern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="195"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="953"/>
         <source>Output file</source>
         <translation>Ausgabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="205"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="954"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="930"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="931"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="932"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="933"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="939"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="940"/>
         <source>Create new field</source>
         <translation>Neues Feld erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="941"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="940"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="942"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="943"/>
         <source>Evaluation error: %s</source>
         <translation>Auswertungsfehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
         <source>An error occurred while evaluating the calculation string:
 %s</source>
         <translation>Ein Fehler trat bei der Auswertung der Formel auf:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
         <source>Field name is not set. Please enter a field name</source>
         <translation>Feldname ist nicht gesetzt. Bitte Feldname eingeben</translation>
     </message>
@@ -7820,17 +7830,17 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsCalculatorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="958"/>
         <source>[Save to temporary file]</source>
         <translation>[In Temporärdatei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="959"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="960"/>
         <source>Unable to execute algorithm</source>
         <translation>Konnte Anweisung nicht ausführen</translation>
     </message>
@@ -7838,44 +7848,44 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsMapper</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="963"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="965"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="966"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
         <source>Fields mapping</source>
         <translation>Feldabbildung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
         <source>Refactored</source>
         <translation>Faktoriert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
         <source>Parser error in expression "{}": {}</source>
         <translation>Fehler in Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="970"/>
         <source>Evaluation error in expression "{}": {}</source>
         <translation>Auswertungsfehler bei Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="971"/>
         <source>An error occurred while evaluating the calculation string:
 </source>
         <translation>Ein Fehler trat auf bei der Auswertung von:
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
         <source>Refactor fields</source>
         <translation>Felder überarbeiten</translation>
     </message>
@@ -7883,67 +7893,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsPyculator</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="981"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="982"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="983"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="982"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="984"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="985"/>
         <source>Global expression</source>
         <translation>Globaler Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="986"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="988"/>
         <source>FieldPyculator code execute error.Global code block can't be executed!
 %s
 %s</source>
@@ -7952,7 +7962,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="989"/>
         <source>FieldPyculator code execute error.Field code block can't be executed!
 %s
 %s</source>
@@ -7961,14 +7971,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="990"/>
         <source>FieldPyculator code execute error
 Field code block does not return '%s1' variable! Please declare this variable in your code!</source>
         <translation>FieldPyculator-Code Ausführungsfehler
 Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren sie diese Variable im Code!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
         <source>Advanced Python field calculator</source>
         <translation>Erweiterter Python-Feldrechner</translation>
     </message>
@@ -7976,22 +7986,22 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FileDirectorySelector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="996"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="997"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
@@ -7999,12 +8009,12 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FileSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1001"/>
         <source>Select folder</source>
         <translation>Wähle Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1000"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1002"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
@@ -8012,32 +8022,32 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FilterData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1004"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
         <source>Filter Data outliers</source>
         <translation>Datenausreißer filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
         <source>Standard Deviation multiplier</source>
         <translation>Standardabweichungsfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1010"/>
         <source>Window size</source>
         <translation>Fenstergröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1011"/>
         <source>Output filtered LAS file</source>
         <translation>Gefilterte LAS-Ausgabedatei</translation>
     </message>
@@ -8045,27 +8055,27 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FirstLastReturn</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1013"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
         <source>First&Last Return</source>
         <translation>Erste&letzte Rückgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1018"/>
         <source>Use LAS info</source>
         <translation>LAS-Info verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1019"/>
         <source>Output layers</source>
         <translation>Ausgabelayer</translation>
     </message>
@@ -8073,37 +8083,37 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedDistanceBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1022"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1025"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1026"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1027"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1028"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1029"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1021"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
         <source>Fixed distance buffer</source>
         <translation>Puffer festen Abstands</translation>
     </message>
@@ -8111,17 +8121,17 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedTableDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1033"/>
         <source>Add row</source>
         <translation>Zeile hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1032"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1034"/>
         <source>Remove row(s)</source>
         <translation>Zeile(n) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1035"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
@@ -8129,7 +8139,7 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedTablePanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1039"/>
         <source>Fixed table %dx%d</source>
         <translation>Fixe Tabelle %dx%d</translation>
     </message>
@@ -8144,7 +8154,7 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/widgetParametersPanel.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1057"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
@@ -8158,199 +8168,199 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="29"/>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="39"/>
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="42"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1059"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1071"/>
         <source>Toggle advanced mode</source>
         <translation>Erweiteter Modus umgeschaltet</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1070"/>
         <source>Add row</source>
         <translation>Zeile hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="55"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1072"/>
         <source>Remove row(s)</source>
         <translation>Zeile(n) entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="100"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1073"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="113"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1064"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1074"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="36"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1060"/>
         <source>Iterate over this layer</source>
         <translation>Iteriere über diesen Layer</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1058"/>
         <source>Open number input dialog</source>
         <translation>Zahleneingabedialog öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetParametersPanel.ui" line="44"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1061"/>
         <source>Advanced parameters</source>
         <translation>Fortgeschrittene Parameter</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1075"/>
         <source>Min</source>
         <translation>Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="65"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1076"/>
         <source>Max</source>
         <translation>Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1041"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1043"/>
         <source>Fields</source>
         <translation>Felder</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="43"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
         <source>Add new field</source>
         <translation>Neues Feld hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="46"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
         <source>add</source>
         <translation>hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="53"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
         <source>Delete selected field</source>
         <translation>Gewähltes Feld löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1047"/>
         <source>delete</source>
         <translation>löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="63"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1048"/>
         <source>Move selected field up</source>
         <translation>Gewähltes Feld nach oben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="66"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1049"/>
         <source>up</source>
         <translation>oben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="73"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1050"/>
         <source>Move selected field down</source>
         <translation>Gewähltes Feld nach unten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="76"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1051"/>
         <source>down</source>
         <translation>unten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="83"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
         <source>Reset all fields</source>
         <translation>Alle Felder zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="86"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
         <source>reset</source>
         <translation>zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="112"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
         <source>Load fields from layer</source>
         <translation>Felder aus Layer laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="135"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
         <source>Load fields from selected layer</source>
         <translation>Felder des gewählten Layers laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="138"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
         <source>Load fields</source>
         <translation>Felder laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="23"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1065"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
         <source>equals</source>
         <translation>entspricht</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="30"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1066"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1063"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="37"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1064"/>
         <source>touches</source>
         <translation>berührt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="44"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1068"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1065"/>
         <source>intersects</source>
         <translation>schneidet sich mit</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="51"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1066"/>
         <source>within</source>
         <translation>innerhalb</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="58"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1067"/>
         <source>overlaps</source>
         <translation>überlappt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="65"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1068"/>
         <source>crosses</source>
         <translation>kreuzt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1069"/>
         <source>disjoint</source>
         <translation>getrennt</translation>
     </message>
@@ -8358,14 +8368,14 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FusionAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1080"/>
         <source>Fusion folder is not configured.
 Please configure it before running Fusion algorithms.</source>
         <translation>Fusion Verzeichnis ist nicht konfiguriert.
 Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1081"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -8373,7 +8383,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>FusionUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1085"/>
         <source>Fusion execution console output</source>
         <translation>Konsolenausgabe der Fusion-Ausführung</translation>
     </message>
@@ -8381,7 +8391,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalAlgorithmDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1089"/>
         <source>Run as batch process...</source>
         <translation>Als Batchprozeß starten...</translation>
     </message>
@@ -8389,7 +8399,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalOgrAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1091"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1093"/>
         <source>GDAL/OGR</source>
         <translation>GDAL/OGR</translation>
     </message>
@@ -8397,17 +8407,17 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1097"/>
         <source>GDAL/OGR console call</source>
         <translation>GDAL/OGR Aufruf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1098"/>
         <source>[temporary file]</source>
         <translation>[temporäre Datei]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1099"/>
         <source>Invalid value for parameter '%s'</source>
         <translation>Ungültiger Wert für Parameter '%s'</translation>
     </message>
@@ -8420,7 +8430,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
         <translation>&Eingabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="14"/>
         <source>&Output directory</source>
         <translation>&Ausgabeverzeichnis</translation>
     </message>
@@ -8430,17 +8440,17 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
         <translation>Die gewählte Datei hat kein von OGR unterstütztes Format</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="11"/>
         <source>The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.</source>
         <translation>Der Prozess konnte nicht gestartet werden. Entweder fehlt das aufgerufene Programm oder Sie haben unzureichende Berechtigungen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="12"/>
         <source>The process crashed some time after starting successfully.</source>
         <translation>Der Prozess brach nach einiger Zeit nach erfolgreichem Start ab.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="13"/>
         <source>An unknown error occurred.</source>
         <translation>Ein unbekannter Fehler trat auf.</translation>
     </message>
@@ -8835,331 +8845,331 @@ Wollen Sie ihn trotzdem abbrechen?</translation>
     <name>GdalToolsDialog</name>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="155"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="29"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="156"/>
         <source>&Load into canvas when finished</source>
         <translation>Nach Abschluss zur &Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="66"/>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="69"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="157"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="82"/>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="158"/>
         <source>Reset</source>
         <translation>Zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="131"/>
         <source>Extract projection</source>
         <translation>Projektion extrahieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="132"/>
         <source>Batch mode (for processing whole directory)</source>
         <translation>Stapelverarbeitungsmodus (zur Bearbeitung eines ganzen Verzeichnisses)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="29"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="133"/>
         <source>&Input file</source>
         <translation>&Eingabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="44"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="134"/>
         <source>Recurse subdirectories</source>
         <translation>Unterverzeichnisse durchsuchen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="51"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="135"/>
         <source>Create also prj file</source>
         <translation>Auch eine .prj-Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="162"/>
         <source>Select the file for DEM</source>
         <translation>Datei des DHM wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="106"/>
         <source>Select the raster file to save the results to</source>
         <translation>Rasterdatei zur Speicherung der Ergebnisse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="163"/>
         <source>Select the color configuration file</source>
         <translation>Farbkonfigurationsdatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="143"/>
         <source>Select the input file for Grid</source>
         <translation>Eingabedatei für Gitter wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="159"/>
         <source>Select the input file for Rasterize</source>
         <translation>Eingabe für Rasterierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="151"/>
         <source>Select the input file for Sieve</source>
         <translation>Eingabedatei für Sieben wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="128"/>
         <source>Select the input file for Warp</source>
         <translation>Eingabedatei für Entzerrung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="129"/>
         <source>Select the mask file</source>
         <translation>Maskendatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="130"/>
         <source>Select the input directory with files to Warp</source>
         <translation>Eingabeverzeichnis der zu entzerrenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="119"/>
         <source>Select the output directory to save the results to</source>
         <translation>Ausgabeverzeichnis für Speicherung der Ergebnisse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="160"/>
         <source>Output size or resolution required</source>
         <translation>Ausgabegröße oder -auflösung erforderlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="161"/>
         <source>The output file doesn't exist. You must set up the output size or resolution to create it.</source>
         <translation>Die Ausgabedatei ist nicht vorhanden. Eine Ausgabegröße oder -auflösung muß zum Anlegen angegeben werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="122"/>
         <source>Select the input file for Translate</source>
         <translation>Eingabedatei für Konvertierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="123"/>
         <source>Select the input directory with files to Translate</source>
         <translation>Eingabeverzeichnis der zu konvertierenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="124"/>
         <source>Translate - srcwin</source>
         <translation>Transformation - Quellfenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="125"/>
         <source>Image coordinates (pixels) must be integer numbers.</source>
         <translation>Bildkoordinaten (Pixel) sind ganzzahlig.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="126"/>
         <source>Translate - prjwin</source>
         <translation>Transformation - Projektionsfenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="127"/>
         <source>Image coordinates (geographic) must be numbers.</source>
         <translation>Bildkoordinaten (Pixel) sind numerisch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="152"/>
         <source>Select the input directory with raster files</source>
         <translation>Eingabeverzeichnis mit Rasterdateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="153"/>
         <source>Select where to save the TileIndex output</source>
         <translation>Ort für Speicherung der Kachelindexausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="116"/>
         <source>Convert paletted image to RGB</source>
         <translation>Palettenbild in RGB umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="117"/>
         <source>Select the input file for convert</source>
         <translation>Eingabedatei für Konvertierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="118"/>
         <source>Select the input directory with files for convert</source>
         <translation>Eingabeverzeichnis der zu konvertierenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="109"/>
         <source>Select the file to analyse</source>
         <translation>Zu analysierende Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="110"/>
         <source>Select the input directory with files to Assign projection</source>
         <translation>Eingabeverzeichnis mit Dateien wählen, denen eine Projektion zugewiesen werden soll</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="120"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="121"/>
         <source>Copy all</source>
         <translation>Alle kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="148"/>
         <source>Select the input file for Polygonize</source>
         <translation>Eingabedatei für Polygonisieren wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="101"/>
         <source>Select the files for VRT</source>
         <translation>Dateien für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="102"/>
         <source>Select where to save the VRT</source>
         <translation>Speicherort für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="103"/>
         <source>VRT (*.vrt)</source>
         <translation>VRT (*.vrt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="104"/>
         <source>Select the input directory with files for VRT</source>
         <translation>Eingabeverzeichnis mit Dateien für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="105"/>
         <source>Select the input file for Near Black</source>
         <translation>Eingabedatei für Fast-Schwarz wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="146"/>
         <source>Select the input file</source>
         <translation>Eingabedatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="147"/>
         <source>Select the input directory with files</source>
         <translation>Eingabeverzeichnis mit Daten wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="136"/>
         <source>Select the files to Merge</source>
         <translation>Dateien zum Zusammenführen wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="137"/>
         <source>Error retrieving the extent</source>
         <translation>Fehler bei der Ausdehnungsbestimmung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="138"/>
         <source>GDAL was unable to retrieve the extent from any file. 
 The "Use intersected extent" option will be unchecked.</source>
         <translation>GDAL konnte die Ausdehnung aus keiner Datei bestimmen. 
 Option "Geschnittene Ausdehnung verwenden" wird deaktiviert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="139"/>
         <source>Empty extent</source>
         <translation>Ausdehnung leer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="140"/>
         <source>The computed extent is empty. 
 Disable the "Use intersected extent" option to have a nonempty output.</source>
         <translation>Die berechnete Ausdehnung ist leer. 
 Deaktivieren Sie die Option "Geschnittene Ausdehnung verwenden" um eine nicht leere Ausgabe zu erhalten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="141"/>
         <source>Select where to save the Merge output</source>
         <translation>Ort für Speicherung der Zusammenführung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="142"/>
         <source>Select the input directory with files to Merge</source>
         <translation>Verzeichnis zu den zusammenzuführenden Dateien angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="113"/>
         <source>{0} not created.</source>
         <translation>{0} nicht angelegt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="154"/>
         <source>Select the files to analyse</source>
         <translation>Dateien zur Analyse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="144"/>
         <source>Select the input file for Contour</source>
         <translation>Eingabedatei für Kontur wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="145"/>
         <source>Select where to save the Contour output</source>
         <translation>Ort für Speicherung der Kontur wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="150"/>
         <source>Select the input file for Proximity</source>
         <translation>Eine Eingabedatei für Nähe wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="107"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="108"/>
         <source>Warning: CRS information for all raster in subfolders will be rewritten. Are you sure?</source>
         <translation>Warnung: KBS-Information für alle Raster in Unterverzeichnissen werden überschrieben.  Sind Sie sicher?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="111"/>
         <source>Finished</source>
         <translation>Abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="112"/>
         <source>Processing completed.</source>
         <translation>Verarbeitung abgeschlossen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="114"/>
         <source>Assign projection</source>
         <translation>Projektion zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="115"/>
         <source>This raster already found in map canvas</source>
         <translation>Das Raster ist bereits in der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="149"/>
         <source>Select where to save the Polygonize output</source>
         <translation>Ort für Speicherung der Polygonisierungsausgabe wählen</translation>
     </message>
@@ -9251,13 +9261,13 @@ Deaktivieren Sie die Option "Geschnittene Ausdehnung verwenden" um ein
     <name>GdalToolsSettingsDialog</name>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="188"/>
         <source>Gdal Tools settings</source>
         <translation>GDAL-Werkzeugeinstellungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="22"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="189"/>
         <source>Path to the GDAL executables</source>
         <translation>Pfad zu GDAL-Programmdateien</translation>
     </message>
@@ -9267,36 +9277,36 @@ Deaktivieren Sie die Option "Geschnittene Ausdehnung verwenden" um ein
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="125"/>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="156"/>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="187"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="190"/>
         <source>Browse</source>
         <translation>Durchsuchen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="60"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="191"/>
         <source>Path to the GDAL python modules</source>
         <translation>Pfad zu GDAL-Pythonmodulen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="98"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="192"/>
         <source>GDAL help path</source>
         <translation>GDAL-Hilfeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="137"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="193"/>
         <source>GDAL data path</source>
         <translation>GDAL-Datenpfad</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogSettings.ui" line="168"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="194"/>
         <source>GDAL driver path</source>
         <translation>GDAL-Treiberpfad</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="195"/>
         <source>A list of colon-separated (Linux and MacOS) or
 semicolon-separated (Windows) paths to both binaries
 and python executables.
@@ -9309,14 +9319,14 @@ Eine Liste von durch Doppelpunkt getrennten (Linux und MacOS) oder Strichpunkt g
 MacOS Anwender setzen dies im Normalfall auf Pfade wie /Library/Frameworks/GDAL.framework/Versions/1.8/Programs</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="196"/>
         <source>A list of colon-separated (Linux and MacOS) or
 semicolon-separated (Windows) paths to python modules.</source>
         <translation>
 Eine Liste von durch Doppelpunkt getrennten (Linux und MacOS) oder Strichpunkt getrennten (Windows) Pfaden zu den Python-Modulen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="197"/>
         <source>Useful to open local GDAL documentation instead of online help
 when pressing on the tool dialog's Help button.</source>
         <translation>
@@ -9325,17 +9335,17 @@ Online Hilfe
 bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="198"/>
         <source>Select directory with GDAL executables</source>
         <translation>Verzeichnis mit GDAL-Programmen wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="199"/>
         <source>Select directory with GDAL python modules</source>
         <translation>Verzeichnis der GDAL-Pythonmodule wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="200"/>
         <source>Select directory with the GDAL documentation</source>
         <translation>GDAL-Dokumentationsverzeichnis wählen</translation>
     </message>
@@ -9344,27 +9354,27 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
     <name>GdalToolsWidget</name>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="226"/>
         <source>Build Virtual Raster (Catalog)</source>
         <translation>Virtuelles Raster erzeugen (Katalog)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="233"/>
         <source>Use visible raster layers for input</source>
         <translation>Sichtbare Rasterlayer als Eingabe nutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="68"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="231"/>
         <source>Choose input directory instead of files</source>
         <translation>Eingabeverzeichnis statt Dateien wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="51"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="28"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="229"/>
         <source>&Input files</source>
         <translation>&Eingabedateien</translation>
     </message>
@@ -9373,7 +9383,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="78"/>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="52"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="32"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="239"/>
         <source>Recurse subdirectories</source>
         <translation>Unterverzeichnisse durchsuchen</translation>
     </message>
@@ -9390,74 +9400,74 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="38"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="45"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="45"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="228"/>
         <source>&Output file</source>
         <translation>&Ausgabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="78"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="232"/>
         <source>Target SRS</source>
         <translation>Ziel-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="92"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="234"/>
         <source>&Resolution</source>
         <translation>&Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="109"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="235"/>
         <source>Highest</source>
         <translation>Höchste</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="114"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="236"/>
         <source>Average</source>
         <translation>Mittlere</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="119"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="237"/>
         <source>Lowest</source>
         <translation>Niedrigste</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="146"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="240"/>
         <source>Select</source>
         <translation>Wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="127"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="357"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="238"/>
         <source>&Source No Data</source>
         <translation>&Quellleerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="61"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="230"/>
         <source>Se&parate</source>
         <translation>Ge&trennt</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="31"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="227"/>
         <source>Allow projection difference</source>
         <translation>Unterschiedliche Projektionen zulassen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="371"/>
         <source>Clipper</source>
         <translation>Clipper</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="67"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="298"/>
         <source>&No data value</source>
         <translation>&Leerwert</translation>
     </message>
@@ -9465,50 +9475,50 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="31"/>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="26"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="216"/>
         <source>&Input file (raster)</source>
         <translation>&Eingabedatei (Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="372"/>
         <source>Clipping mode</source>
         <translation>Ausschnittsmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="192"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="374"/>
         <source>X Resolution</source>
         <translation>X-Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="221"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="375"/>
         <source>Y Resolution</source>
         <translation>Y-Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="253"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="376"/>
         <source>Set output file resolution</source>
         <translation>Auflösung der Ausgabedatei setzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="377"/>
         <source>Keep resolution of input raster</source>
         <translation>Auflösung des Eingaberasters beibehalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="286"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="378"/>
         <source>Crop the extent of the target dataset to the extent of the cutline</source>
         <translation>Ausmaße des Zieldatensatzes auf die Ausmaße der Schnittlinie abschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="315"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="804"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="351"/>
         <source>Extent</source>
         <translation>Grenzen</translation>
     </message>
@@ -9516,55 +9526,55 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="152"/>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="328"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="181"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="369"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="136"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="373"/>
         <source>Create an output alpha band</source>
         <translation>Einen Alpha-Kanal erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="291"/>
         <source>Contour</source>
         <translation>Kontur</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="292"/>
         <source>&Output file for contour lines (vector)</source>
         <translation>&Ausgabedatei für Konturlinien (Vektor)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="293"/>
         <source>I&nterval between contour lines</source>
         <translation>I&ntervall zwischen Konturlinien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="294"/>
         <source>&Attribute name</source>
         <translation>&Attributname</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="88"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="295"/>
         <source>If not provided, no elevation attribute is attached.</source>
         <translation>Wenn nicht angegeben, wird kein Höhenattribut zugefügt.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="102"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="325"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="296"/>
         <source>ELEV</source>
         <translation>HOEHE</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="379"/>
         <source>Convert RGB image to paletted</source>
         <translation>RGB-Bild auf Palette konvertieren</translation>
     </message>
@@ -9575,7 +9585,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="26"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="26"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="26"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="286"/>
         <source>Batch mode (for processing whole directory)</source>
         <translation>Stapelverarbeitungsmodus (zur Bearbeitung eines ganzen Verzeichnisses)</translation>
     </message>
@@ -9589,176 +9599,176 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="35"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="222"/>
         <source>&Input file</source>
         <translation>&Eingabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="380"/>
         <source>Number of colors</source>
         <translation>Farbanzahl</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="82"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="381"/>
         <source>Band to convert</source>
         <translation>Umzuwandelnder Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="242"/>
         <source>DEM (Terrain models)</source>
         <translation>DHM (Geländemodelle)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="31"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="243"/>
         <source>&Input file (DEM raster)</source>
         <translation>&Eingabedatei (DHM-Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="51"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="244"/>
         <source>&Band</source>
         <translation>&Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="65"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="245"/>
         <source>Compute &edges</source>
         <translation>Kanten &berechnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="72"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="246"/>
         <source>Use Zevenbergen&&Thorne formula (instead of the Horn's one)</source>
         <translation>Zevenbergen&&Thornesche (statt Hornsche) Formel verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="247"/>
         <source>&Mode</source>
         <translation>&Modus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="105"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="248"/>
         <source>Hillshade</source>
         <translation>Schummerung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="110"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="249"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="115"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="250"/>
         <source>Aspect</source>
         <translation>Perspektive</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="120"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="251"/>
         <source>Color relief</source>
         <translation>Farbrelief</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="125"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="252"/>
         <source>TRI (Terrain Ruggedness Index)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="130"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="253"/>
         <source>TPI (Topographic Position Index)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="135"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="254"/>
         <source>Roughness</source>
         <translation>Rauhigkeit</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="145"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="255"/>
         <source>Mode Options</source>
         <translation>Modusoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="164"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="256"/>
         <source>Z factor (vertical exaggeration)</source>
         <translation>Z-Faktor (Vertikale Überhöhung)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="187"/>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="267"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="257"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="210"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="258"/>
         <source>Azimuth of the light</source>
         <translation>Azimut des Lichts</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="233"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="259"/>
         <source>Altitude of the light</source>
         <translation>Höhe des Lichts</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="260"/>
         <source>Slope expressed as percent (instead of as degrees)</source>
         <translation>Steigung in Prozent (statt Grad)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="307"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="261"/>
         <source>Return trigonometric angle (instead of azimuth)</source>
         <translation>Trigonometrischen Winkel (statt Azimut) zurückgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="314"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="262"/>
         <source>Return 0 for flat (instead of -9999)</source>
         <translation>0 (statt -9999) für Ebene zurückgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="338"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="263"/>
         <source>Color configuration file</source>
         <translation>Farbkonfigurationsdatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="345"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="264"/>
         <source>Matching mode</source>
         <translation>Zuordnungsmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="357"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="265"/>
         <source>Exact color (otherwise "0,0,0,0" RGBA)</source>
         <translation>Genaue Farbe (sonst "0,0,0,0" RGBA)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="370"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="266"/>
         <source>Nearest color</source>
         <translation>Nächste Farbe</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="380"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="267"/>
         <source>Add alpha channel</source>
         <translation>Alphakanal ergänzen</translation>
     </message>
@@ -9766,111 +9776,111 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="418"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="111"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="255"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="268"/>
         <source>&Creation Options</source>
         <translation>&Erzeugungsoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="352"/>
         <source>Fill Nodata</source>
         <translation>"Leerwert" füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="33"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="35"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="310"/>
         <source>&Input Layer</source>
         <translation>&Eingabelayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="62"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="311"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="79"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="353"/>
         <source>Search distance</source>
         <translation>Suchdistanz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="99"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="354"/>
         <source>Smooth iterations</source>
         <translation>Glättungsiterationen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="116"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="355"/>
         <source>Band to operate on</source>
         <translation>Zu bearbeitender Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="130"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="356"/>
         <source>Validity mask</source>
         <translation>Gültigkeitsmaske</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="140"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="357"/>
         <source>Do not use the default validity mask</source>
         <translation>Nicht die voreingestellte Gültigkeitsmaske benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="332"/>
         <source>Grid (Interpolation)</source>
         <translation>Gitter (Interpolation)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="333"/>
         <source>&Z Field</source>
         <translation>&Z-Feld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="58"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="334"/>
         <source>&Algorithm</source>
         <translation>&Algorithmus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="335"/>
         <source>Inverse distance to a power</source>
         <translation>Inverse Distanz zu einer Potenz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="336"/>
         <source>Moving average</source>
         <translation>Beweglicher Mittelwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="337"/>
         <source>Nearest neighbor</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="81"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="338"/>
         <source>Data metrics</source>
         <translation>Datenkriterien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="107"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="339"/>
         <source>Power</source>
         <translation>Potenz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="127"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="340"/>
         <source>Smoothing</source>
         <translation>Glättung</translation>
     </message>
@@ -9879,7 +9889,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="320"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="458"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="605"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="341"/>
         <source>Radius1</source>
         <translation>Radius1</translation>
     </message>
@@ -9888,13 +9898,13 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="343"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="481"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="631"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="342"/>
         <source>Radius2</source>
         <translation>Radius2</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="205"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="343"/>
         <source>Max points</source>
         <translation>Max. Punkte</translation>
     </message>
@@ -9902,7 +9912,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="225"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="395"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="706"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="303"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="344"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
@@ -9911,7 +9921,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="369"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="507"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="657"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="304"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="345"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
@@ -9921,38 +9931,38 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="533"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="680"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="141"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="317"/>
         <source>No data</source>
         <translation>Leerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="573"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="346"/>
         <source>Metrics</source>
         <translation>Kriterien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="587"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="347"/>
         <source>Minimum</source>
         <translation>Minimum</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="592"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="348"/>
         <source>Maximum</source>
         <translation>Maximum</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="597"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="349"/>
         <source>Range</source>
         <translation>Bereich</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="746"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="199"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="350"/>
         <source>Resize</source>
         <translation>Größe ändern</translation>
     </message>
@@ -9960,7 +9970,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="764"/>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="117"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="217"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="210"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
@@ -9968,145 +9978,145 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="784"/>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="137"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="237"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="211"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="221"/>
         <source>Info</source>
         <translation>Info</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="43"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="223"/>
         <source>Raster info</source>
         <translation>Raster-Info</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="63"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="224"/>
         <source>Suppress GCP printing</source>
         <translation>Paßpunkt-Anzeige unterdrücken</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="225"/>
         <source>Suppress metadata printing</source>
         <translation>Metadaten-Anzeige unterdrücken</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="297"/>
         <source>Merge</source>
         <translation>Verschmelzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="87"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="299"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="97"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="283"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="300"/>
         <source>Use intersected extent</source>
         <translation>Geschnittene Ausdehnung verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="104"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="284"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="301"/>
         <source>Grab pseudocolor table from the first image</source>
         <translation>Pseudofarbtabelle aus erstem Bild entnehmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="277"/>
         <source>Near Black</source>
         <translation>Fast-Schwarz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="278"/>
         <source>How &far from black (or white)</source>
         <translation>Ent&fernung von Schwarz (oder Weiß)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="313"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="279"/>
         <source>Search for nearly &white (255) pixels instead of black ones</source>
         <translation>Suche fast &weiße (255) statt schwarze Pixel </translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="359"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="329"/>
         <source>Build overviews (Pyramids)</source>
         <translation>Übersichten erzeugen (Pyramiden)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="53"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="330"/>
         <source>Remove all overviews.</source>
         <translation>Alle Übersichten entfernen.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="56"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="361"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="331"/>
         <source>Clean</source>
         <translation>Löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="215"/>
         <source>Polygonize (Raster to vector)</source>
         <translation>Vektorisieren (Raster nach Vektor)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="39"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="217"/>
         <source>&Output file for polygons (shapefile)</source>
         <translation>&Ausgabedatei für Polygone (Shapedatei)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="52"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="218"/>
         <source>&Field name</source>
         <translation>&Feldname</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="219"/>
         <source>DN</source>
         <translation>DN</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="220"/>
         <source>Use mask</source>
         <translation>Maske benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="285"/>
         <source>Assign projection</source>
         <translation>Projektion zuweisen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="33"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="287"/>
         <source>WARNING: current projection definition will be cleared</source>
         <translation>WARNUNG: aktuelle Projektionsdefinition wird gelöscht</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="288"/>
         <source>Desired SRS</source>
         <translation>Gewählte KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="289"/>
         <source>Output will be:
 - new GeoTiff if input file is not GeoTiff
 - overwritten if input is GeoTiff</source>
@@ -10119,55 +10129,55 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="91"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="74"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="102"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="290"/>
         <source>Select...</source>
         <translation>Wählen...</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="269"/>
         <source>Proximity (Raster distance)</source>
         <translation>Nachbarschaft (Rasterabstand)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="270"/>
         <source>&Values</source>
         <translation>&Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="271"/>
         <source>&Dist units</source>
         <translation>&Abstandseinheiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="373"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="272"/>
         <source>GEO</source>
         <translation>GEO</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="273"/>
         <source>PIXEL</source>
         <translation>PIXEL</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="79"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="375"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="274"/>
         <source>&Max dist</source>
         <translation>&Max. Abstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="93"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="376"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="275"/>
         <source>&No data</source>
         <translation>&Leerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="110"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="276"/>
         <source>&Fixed buf val</source>
         <translation>&Fester Pufferwert</translation>
     </message>
@@ -10175,173 +10185,173 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="155"/>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="124"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="154"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="241"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="204"/>
         <source>Rasterize (Vector to raster)</source>
         <translation>Rastern (Vektor nach Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="28"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="205"/>
         <source>&Input file (shapefile)</source>
         <translation>&Eingabedatei (Shapedatei)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="206"/>
         <source>&Attribute field</source>
         <translation>&Attributfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="58"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="207"/>
         <source>&Output file for rasterized vectors (raster)</source>
         <translation>&Ausgabe für gerasterte Vektoren (Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="208"/>
         <source>Keep existing raster size and resolution</source>
         <translation>Vorhandene Rastergröße und -auflösung beibehalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="86"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="209"/>
         <source>Raster size in pixels</source>
         <translation>Rastergröße in Pixeln</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="157"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="212"/>
         <source>Raster resolution in map units per pixel</source>
         <translation>Rasterauflösung in Karteneinheiten je Pixel</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="185"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="213"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="211"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="214"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="280"/>
         <source>Sieve</source>
         <translation>Sieben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="286"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="281"/>
         <source>&Threshold</source>
         <translation>&Schwellenwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="62"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="287"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="282"/>
         <source>&Pixel connections</source>
         <translation>&Pixelverbindungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="283"/>
         <source>4</source>
         <translation>4</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="75"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="284"/>
         <source>8</source>
         <translation>8</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="303"/>
         <source>Raster tile index</source>
         <translation>Rasterkachelindex</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="22"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="327"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="304"/>
         <source>Input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="39"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="305"/>
         <source>Output shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="49"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="306"/>
         <source>Tile index field</source>
         <translation>Kachelindexfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="307"/>
         <source>location</source>
         <translation>location</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="74"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="308"/>
         <source>Skip files with different projection ref</source>
         <translation>Dateien mit anderer Projektion überspringen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="309"/>
         <source>Translate (Convert format)</source>
         <translation>Übersetzen (Format konvertieren)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="72"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="83"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="312"/>
         <source>&Target SRS</source>
         <translation>&Ziel-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="106"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="122"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="313"/>
         <source>Percentage to resize image. This will change pixel size/image resolution accordingly: 25% will create an image with pixels 4x larger.</source>
         <translation>Prozentuale Bildanpassung. Dies wird die Pixelgröße/Auflösung entsprechend anpassen. 25% erzeugt ein Bild mit viermal so großen Pixeln.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="109"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="334"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="314"/>
         <source>Outsize</source>
         <translation>Ausgabegröße</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="125"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="315"/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="138"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="234"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="336"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="316"/>
         <source>Assign a specified nodata value to output bands.</source>
         <translation>Legt den Leerwert des Ausgabekanals fest.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="148"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="160"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="318"/>
         <source>To expose a dataset with 1 band with a color table as a dataset with 3 (RGB) or 4 (RGBA) bands. 
 Useful for output drivers such as JPEG, JPEG2000, MrSID, ECW that don't support color indexed datasets. 
 The 'gray' value (from GDAL 1.7.0) enables to expand a dataset with a color table that only contains gray levels to a gray indexed dataset.</source>
@@ -10351,140 +10361,140 @@ Der 'Grau'-wert (aus GDAL 1.7) ermöglicht Datensätze mit einer Farbt
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="153"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="338"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="319"/>
         <source>Expand</source>
         <translation>Ausdehnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="166"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="320"/>
         <source>Gray</source>
         <translation>Grau</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="171"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="321"/>
         <source>RGB</source>
         <translation>RGB</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="176"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="322"/>
         <source>RGBA</source>
         <translation>RGBA</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="184"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="194"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="323"/>
         <source>Selects a subwindow from the source image for copying based on pixel/line location. (Enter Xoff Yoff Xsize Ysize)</source>
         <translation>Wählt ein Fenster des Quellbilds zum Kopieren nach Pixel-/Zeilenposition. (Xoff, Yoff Xsize Ysize eingeben)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="187"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="324"/>
         <source>Srcwin</source>
         <translation>Quellfenster</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="201"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="211"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="325"/>
         <source>Selects a subwindow from the source image for copying (like -srcwin) but with the corners given in georeferenced coordinates. (Enter ulx uly lrx lry)</source>
         <translation>Wählt ein Fenster des Quellbilds zum Kopieren (wie -srcwin), aber mit den Eckpunkten in georeferenzierten Koordinaten (ulx uly lrx lry eingeben)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="204"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="345"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="326"/>
         <source>Prjwin</source>
         <translation>Prj.fenster</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="218"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="346"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="327"/>
         <source>Copy all subdatasets of this file to individual output files. Use with formats like HDF or OGDI that have subdatasets.</source>
         <translation>Alle Unterdatensätze dieser Datei in einzelne Dateien kopieren. Zur Benutzung mit Formate mit Unterdatensätzen wie HDF oder OGDI.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="221"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="347"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="328"/>
         <source>Sds</source>
         <translation>Sds</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="358"/>
         <source>Warp (Reproject)</source>
         <translation>Transformieren (Reprojizieren)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="359"/>
         <source>&Source SRS</source>
         <translation>&Eingabe-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="111"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="360"/>
         <source>&Resampling method</source>
         <translation>&Abtastmethode</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="119"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="361"/>
         <source>Near</source>
         <translation>Nah</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="124"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="362"/>
         <source>Bilinear</source>
         <translation>Bilinear</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="129"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="363"/>
         <source>Cubic</source>
         <translation>Kubisch</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="134"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="364"/>
         <source>Cubic spline</source>
         <translation>Kubisches Spline</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="139"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="365"/>
         <source>Lanczos</source>
         <translation>Lanczos</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="147"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="366"/>
         <source>No data values</source>
         <translation>Leerwerte</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="161"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="367"/>
         <source>&Memory used for caching</source>
         <translation>&Speicher für Caching</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="168"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="368"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="370"/>
         <source>Use m&ultithreaded warping implementation</source>
         <translation>&Parallele Entzerrungsimplementation verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="302"/>
         <source>&Output directory for contour lines (shapefile)</source>
         <translation>&Ausgabeverzeichnis für Konturlinien (Shapedatei)</translation>
     </message>
@@ -10492,18 +10502,18 @@ Der 'Grau'-wert (aus GDAL 1.7) ermöglicht Datensätze mit einer Farbt
 <context>
     <name>GeoAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
         <source>Uncaught error while executing algorithm</source>
         <translation>Nicht erfasste Fehler bei der Ausführung von Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1104"/>
         <source>
 See log for more details</source>
         <translation>Die Logdatei enthält mehr Details</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1105"/>
         <source>Converting outputs</source>
         <translation>Konvertierung der Ausgabe</translation>
     </message>
@@ -10511,57 +10521,57 @@ See log for more details</source>
 <context>
     <name>GeometryConvert</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1110"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1111"/>
         <source>Centroids</source>
         <translation>Zentroide</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1110"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1112"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1113"/>
         <source>Linestrings</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1114"/>
         <source>Multilinestrings</source>
         <translation>Multilinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1115"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1116"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1117"/>
         <source>New geometry type</source>
         <translation>Neuer Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1118"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1119"/>
         <source>Cannot convert from %s to %s</source>
         <translation>Kann %s nicht in %s umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1109"/>
         <source>Convert geometry type</source>
         <translation>Geometrietyp umwandeln</translation>
     </message>
@@ -10988,12 +10998,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetModelsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1121"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1123"/>
         <source>Get models from on-line scripts collection</source>
         <translation>Hole Modelle aus der Online Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1122"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1124"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11001,12 +11011,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetRScriptsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1128"/>
         <source>Get R scripts from on-line scripts collection</source>
         <translation>R-Skript aus Online-Sammlung laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1129"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11014,12 +11024,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetScriptsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1131"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1133"/>
         <source>Get scripts from on-line scripts collection</source>
         <translation>Hole Skripte aus der Online Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1134"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11027,62 +11037,62 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetScriptsAndModelsDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
         <source>Could not connect to scripts/models repository</source>
         <translation>Keine Verbindung zum Skript-/Modellrepositorium</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
         <source>Network error code: {} on URL: {}</source>
         <translation>Netzwerkfehlercode {} bei URL: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
         <source>Installed</source>
         <translation>Installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
         <source>Updatable</source>
         <translation>Aktualisierbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
         <source>Not installed</source>
         <translation>Nicht installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1147"/>
         <source><p><b>Description:</b> %s</p></source>
         <translation><p><b>Beschreibung:</b>%s</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1148"/>
         <source><p><b>Created by:</b> %s</source>
         <translation><p><b>Erstellt von:</b>%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1147"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1149"/>
         <source><p><b>Version:</b> %s</source>
         <translation><p><b>Version:</b> %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
         <source><h2>No detailed description available for this script</h2></source>
         <translation><h2>Keine detaillierte Beschreibung für dieses Skript verfügbar</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
         <source>Connection problem</source>
         <translation>Verbindungsproblem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
         <source><h3> Processing resources manager </h3><p>Check/uncheck algorithms in the tree to select the ones that you want to install or remove</p><p>Algorithms are divided in 3 groups:</p><ul><li><b>Installed:</b> Algorithms already in your system, with the latest version available</li><li><b>Updatable:</b> Algorithms already in your system, but with a newer version available in the server</li&gt [...]
         <translation><h3> Verwaltung der Verarbeitungsmittel</h3><p>Bitte Algorithmen im Baum wählen, die installiert oder entfernt werden sollen</p><p>Algorithmen sind in 3 Gruppen aufgeteilt:</p><ul><li><b>Installierte:</b> Algorithmen, die sich bereits in der letzten verfügbaren Version im System befinden</li><li><b>Aktualisierbare:</b> Algorithmen, die sich bereits auf dem System befinden, aber in akt [...]
     </message>
@@ -11090,42 +11100,42 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GlobePlugin</name>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="257"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="261"/>
         <source>Launch Globe</source>
         <translation>Globus starten</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="259"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="263"/>
         <source>Globe Settings</source>
         <translation>Globus-Einstellungen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="261"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="265"/>
         <source>Unload Globe</source>
         <translation>Globus entladen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="265"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="269"/>
         <source>Overlay data on a 3D globe</source>
         <translation>Daten auf einem 3D-Globus überlagern</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="266"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="270"/>
         <source>Settings for 3D globe</source>
         <translation>Einstellungen für den 3D-Globus</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="267"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="271"/>
         <source>Unload globe</source>
         <translation>Globus entladen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="278"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="279"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="280"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="976"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="977"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="978"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="282"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="283"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="284"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="1010"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="1011"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="1012"/>
         <source>&Globe</source>
         <translation>&Globus</translation>
     </message>
@@ -11133,29 +11143,29 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7Algorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1153"/>
         <source>Could not open GRASS GIS 7 algorithm: %s
 %s</source>
         <translation>Kann GRASS GIS 7-Algorithmus nicht öffnen: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
         <source>GRASS GIS 7 region extent</source>
         <translation>GRASS GIS 7-Regionsgrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
         <source>GRASS GIS 7 region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1156"/>
         <source>GRASS GIS 7 folder is not configured. Please configure it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7-Verzeichnis ist nicht konfiguriert. Bitte vor Ausführung von GRASS GIS 7-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1157"/>
         <source>GRASS GIS 7 execution commands</source>
         <translation>GRASS GIS 7-Befehlsausführung</translation>
     </message>
@@ -11163,32 +11173,32 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7AlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1159"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1161"/>
         <source>GRASS7 folder</source>
         <translation>GRASS7-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1160"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1162"/>
         <source>Msys folder</source>
         <translation>MSYS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1163"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1164"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1165"/>
         <source>Could not open GRASS GIS 7 algorithm: %s</source>
         <translation>Konnte GRASS7-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1166"/>
         <source>GRASS GIS 7 commands</source>
         <translation>GRASS GIS 7-Befehle</translation>
     </message>
@@ -11196,17 +11206,17 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7Utils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1170"/>
         <source>GRASS GIS 7 execution console output</source>
         <translation>Konsolenausgabe der GRASS GIS 7-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1171"/>
         <source>GRASS GIS 7 folder is not configured. Please configure it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7-Verzeichnis ist nicht konfiguriert. Bitte vor Ausführung von GRASS GIS 7-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1172"/>
         <source>The specified GRASS 7 folder "{}" does not contain a valid set of GRASS 7 modules.
 Please, go to the Processing settings dialog, and check that the GRASS 7
 folder is correctly configured</source>
@@ -11215,14 +11225,14 @@ Bitte im Processing-Einstellungsdialog überprüfen, dass das GRASS GIS 7-Verzei
 richtig konfiguriert ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1173"/>
         <source>It seems that GRASS GIS 7 is not correctly installed and configured in your system.
 Please install it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7 ist anscheinend nicht richtig auf dem System installiert und konfiguriert.
 Bitte vor der Ausführung von GRASS GIS 7-Algorithmen installieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1174"/>
         <source>Error while checking GRASS GIS 7 installation. GRASS GIS 7 might not be correctly configured.
 </source>
         <translation>Fehler bei der Überprüfung der GRASS GIS 7-Installation. GRASS GIS 7 könnte nicht richtig konfiguriert sein.
@@ -11232,656 +11242,656 @@ Bitte vor der Ausführung von GRASS GIS 7-Algorithmen installieren.</translation
 <context>
     <name>GrassAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1178"/>
         <source>Could not open GRASS algorithm: %s.
 %s</source>
         <translation>Konnte GRASS-Algorithums nicht öffen: %s.
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1177"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1179"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1180"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1181"/>
         <source>GRASS folder is not configured.
 Please configure it before running GRASS algorithms.</source>
         <translation>GRASS-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1182"/>
         <source>GRASS execution commands</source>
         <translation>GRASS-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="424"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
         <source>v.surf.rst.line - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.line - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="518"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="521"/>
         <source>v.clean.advanced - Toolset for cleaning topology of vector map (Advanced).</source>
         <translation>v.clean.advanced - Werkzeugsatz für die Bereinigung der Topologie einer Vektorkarte (Fortgeschritten).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="514"/>
         <source>r.slope - Generates raster maps of slope from a elevation raster map.</source>
         <translation>r.slope - Erzeugt Rasterkarten mit Hangneigung aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="482"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="453"/>
         <source>r.contour.step - Create vector contours from raster at specified steps</source>
         <translation>r.contour.step - Erstellen von Vektorkonturen von Rasterdaten an bestimmten Stufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="568"/>
         <source>v.buffer.distance - Creates a buffer around features of given type.</source>
         <translation>v.buffer.distance - Erzeugt einen Puffer um Objekte mit gegebenen Typ.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
         <source>v.surf.bspline.lambda - Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>v.surf.bspline.lambda - Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="376"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="432"/>
         <source>r.cost.full - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.full - Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
         <source>r.lake.coords - Fills lake at given point to given level.</source>
         <translation>r.lake.coords - See aus Quellenpunkt einer gegebenen Höhe füllen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="505"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
         <source>v.to.rast.value - Converts (rasterize) a vector layer into a raster layer.</source>
         <translation>v.to.rast.value - Konvertiert (rastert) eine Vektorkarte in eine Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="542"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
         <source>v.distance.toattr - Finds the nearest element in vector map 'to' for elements in vector map 'from'.</source>
         <translation>v.distance.toattr - Findet das nächstgelegene Element der Vektorkarte 'to' für Elemente in der Vektorkarte 'from'.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
         <source>r.aspect - Generates raster maps of aspect from a elevation raster map.</source>
         <translation>r.slope.apect - Erzeugt Rasterkarten mit Exposition aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
         <source>v.split.length - Split lines to shorter segments by length.</source>
         <translation>v.split.length - Trenne Linien zu kürzeren Segmenten nach Länge.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
         <source>r.reclass.area.greater - Reclassifies a raster layer, selecting areas larger than a user specified size</source>
         <translation>r.reclass.area.greater -Reklassifiziere Rasterkarte durch Auswahl von Flächen größer eines gegeben Werts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="571"/>
         <source>r.horizon.height - Horizon angle computation from a digital elevation model.</source>
         <translation>r.horizon.height - Berechnung des Horizontwinkel auf Grundlage eines digitalen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="552"/>
         <source>r.sunmask.datetime - Calculates cast shadow areas from sun position and elevation raster map.</source>
         <translation>r.sunmask.datetime - Schattenkarten aus Sonnenposition und Rasterkarten mit Höheninformation berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="417"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="407"/>
         <source>r.lake.layer - Fills lake at given point to given level.</source>
         <translation>r.lake.layer - See aus Quellenpunkt einer gegebenen Höhe füllen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
         <source>r.sunmask.position - Calculates cast shadow areas from sun position and elevation raster map.</source>
         <translation>r.sunmask.position - Schattenkarten aus Sonnenposition und Rasterkarten mit Höheninformation berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="479"/>
         <source>r.drain.coordinate - Traces a flow through an elevation model on a raster map.</source>
         <translation>r.drain.coordinate - Verfolgt einen Fluss durch ein Höhenmodell auf einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="554"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
         <source>v.transform.pointsfile - Performs an affine transformation on a vector layer, using a support point file.</source>
         <translation>v.transform.pointsfile - Führt eine affine Transformation von Vektorkarten mit Hilfe einer Punktdatei durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="466"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="401"/>
         <source>r.cost.full.raster - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.full.raster - Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
         <source>v.buffer.column - Creates a buffer around features of given type.</source>
         <translation>v.buffer.column - Erzeugt einen Puffer um Objekte mit gegebenen Typ.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
         <source>v.to.rast.attribute - Converts (rasterize) a vector layer into a raster layer.</source>
         <translation>v.to.rast.attribute - Konvertiert (rastert) eine Vektorkarte in eine Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="413"/>
         <source>v.surf.rst.cvdev.line - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.cvdev.line - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="435"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
         <source>Imagery (i.*)</source>
         <translation>Bildbearbeitung (i.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="559"/>
         <source>Creates topographic index layer from elevation raster layer</source>
         <translation>Erstellt Karte mit topographischem Index auf Basis eines digitalen Höhenmodells</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="406"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
         <source>Exports GRASS vector map layers to DXF file format.</source>
         <translation>GRASS-Vektor in DXF-Datei exportieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="429"/>
         <source>Generates a raster layer with contiguous areas grown by one cell.</source>
         <translation>Erzeugt eine Rasterkarte mit kontinuierlich um eine Zelle gewachsenen Flächen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="476"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
         <source>Converts a raster layer to a PPM image file at the pixel resolution of the currently defined region.</source>
         <translation>Wandelt einen Rasterlayer in eine PPM-Bilddatie in der Auflösung der aktuellen Region.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="563"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="451"/>
         <source>Generates random cell values with spatial dependence.</source>
         <translation>Erzeugt zufällig Zellwerte mit räumlicher Abhängigkeit.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
         <source>Compares bit patterns with a raster map.</source>
         <translation>Vergleicht Bitmuster mit Rastern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="569"/>
         <source>Bilinear interpolation utility for raster map layers.</source>
         <translation>Bilineare Interpolationswerkzeug für Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="401"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="550"/>
         <source>Stream network extraction</source>
         <translation>Stromnetzwerkextraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
         <source>Miscellaneous (m.*)</source>
         <translation>Verschiedenes (m.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
         <source>Create a new vector map layer by combining other vector map layers.</source>
         <translation>Erzeugt eine neue Vektorkarte durch Kombination anderer Vektorkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
         <source>Performs an affine transformation on a vector layer.</source>
         <translation>Führt eine affine Transformation von Vektorkarten durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="520"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
         <source>Fills no-data areas in a raster layer using v.surf.rst splines interpolation or v.surf.bspline interpolation</source>
         <translation>Leerflächen in Raster nach v.surf.rst oder v.surf.bspline Spline-Interpolation füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
         <source>Reinterpolates using regularized spline with tension and smoothing.</source>
         <translation>Reinterpoliert mit RST und Glättung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="439"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
         <source>Recursively traces the least cost path backwards to cells from which the cumulative cost was determined.</source>
         <translation>Das Modul verfolgt den kürzesten Weg rekursiv zurück zu den Zellen, von denen der kumulative Weg bestimmt wurde.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
         <source>Creates parallel line to input vector lines.</source>
         <translation>Parallele Linien zu Eingabevektorlinien erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="566"/>
         <source>Recodes categorical raster maps.</source>
         <translation>Kodiert kategorische Rasterkarten um.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="551"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
         <source>Horizon angle computation from a digital elevation model.</source>
         <translation>Berechnung des Horizontwinkel auf Grundlage eines digitalen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="477"/>
         <source>Exports GRASS raster map to GRIDATB.FOR map file (TOPMODEL)</source>
         <translation>GRASS-Vektor in GRIDATB.FOR Kartendatei (TOPMODEL) speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
         <source>Finds the average of values in a cover raster layer  within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Durchschnitt der Werte in einer Überlagerungskarte innerhalb gleicher Kategorien in einer benutzer-angegebenen Ausgangskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
         <source>Indices for quadrat counts of vector point lists.</source>
         <translation>Indizes der Quadrat-Zählmethode aus Vektorpunktliste.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="390"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="473"/>
         <source>Detects the object's edges from a LIDAR data set.</source>
         <translation>Bestimmt die Kanten eines Objekte aus einem LIDAR-Datensatz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="438"/>
         <source>Thins non-zero cells that denote linear features in a raster layer.</source>
         <translation>Dünne nicht-Null-Zellen aus, die Linieneigenschaften bezeichnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="549"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="554"/>
         <source>Import GetFeature from WFS</source>
         <translation>Importiert GetFeature eines WFS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="481"/>
         <source>Produces a raster layer of uniform random deviates whose range can be expressed by the user.</source>
         <translation>Erzeugt eine Rasterkarte mit zufälligen Werten einer Gleichverteilung, deren Spanne vom Benutzer angegeben werden kann.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
         <source>Produces the quantization file for a floating-point map.</source>
         <translation>Quantisierungsdatei zu Fließkommaraster erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="393"/>
         <source>Creates a GRASS vector layer of a user-defined grid.</source>
         <translation>Erzeugt eine GRASS Vektorkarte mit einem benutzerdefinierten Gitternetz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="387"/>
         <source>Extracts terrain parameters from a DEM.</source>
         <translation>Geländeparameter aus DEM extrahieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="496"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
         <source>Creates a composite raster layer by using one (or more) layer(s) to fill in areas of "no data" in another map layer.</source>
         <translation>Erstellt eine Komposit-Karte, indem bekannte Kategorie-Werte einer (oder mehrerer) Rasterkarte(n) in "NO DATA"-Bereiche einer anderen Rasterkarte gefüllt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="420"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="507"/>
         <source>Raster (r.*)</source>
         <translation>Raster (r.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="386"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="484"/>
         <source>Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
         <source>Transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space.</source>
         <translation>Rastertransformationfunktion für HIS- (Hue-Intensity-Saturation) in RGB-Farbraum (Rot-Grün-Blau).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="422"/>
         <source>Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.</source>
         <translation>Korrektur der v.lidar.growing Ausgabe. Das ist der letzte von 3 Algorithmen um LIDAR zu filtern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="553"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
         <source>Generates watershed subbasins raster map.</source>
         <translation>Erzeugt Rasterkarte mit Wassereinzugsgebieten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="528"/>
         <source>r.flow.aspect - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
         <source>Outputs a covariance/correlation matrix for user-specified raster layer(s).</source>
         <translation>Gibt eine Kovarianz/Korrelations-Matrix für (eine) benutzerdefiniert Rasterkarte(n) aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
         <source>Compute quantiles using two passes.</source>
         <translation>Berechne Quantile in zwei Durchgängen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="483"/>
         <source>Vector (v.*)</source>
         <translation>Vektor (v.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
         <source>Classifies attribute data, e.g. for thematic mapping.</source>
         <translation>Klassifiziert Attributdaten, z.B. für thematische Karten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="407"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
         <source>Random location perturbations of GRASS vector points</source>
         <translation>Zufällige Positionsstörung von GRASS-Vektorpunkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="545"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
         <source>Changes vector category values for an existing vector map according to results of SQL queries or a value in attribute table column.</source>
         <translation>Ändert die Kategorien einer existierenden Vektorkarte entsprechend den Ergebnissen der SQL-Abfragen oder der Werte einer Spalte der Attributtabelle.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="519"/>
         <source>Reports statistics for raster layers.</source>
         <translation>Gibt statistische Werte für eine Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="563"/>
         <source>r.relief.scaling - Creates shaded relief from an elevation layer (DEM).</source>
         <translation>r.relief.scaling - Erzeugt eine Schummerungskarte aus einem Höhenmodell (DGM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="550"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="500"/>
         <source>Randomly generate a 2D/3D vector points map.</source>
         <translation>Zufällige 2D/3D-Vektorpunktkarte erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="489"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="482"/>
         <source>Generates a raster density map from vector point data using a moving kernel or optionally generates a vector density map on a vector network.</source>
         <translation>Erzeugt eine Raster-Dichtekarte aus Vektorpunkten unter Verwendung eines gleitenden Kerns. Optional kann eine Vektor-Dichtekarte basierend auf einem Vektornetzwerk erstellt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="516"/>
         <source>Resamples raster layers to a coarser grid using aggregation.</source>
         <translation>Erzeugt eine neue Rasterkarte gröberer Auflösung mittels Aggregation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="391"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="418"/>
         <source>Indices for quadrant counts of sites lists.</source>
         <translation>Indizes der Quadrat-Zählmethode aus Siteliste.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="462"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
         <source>Calculates category or object oriented statistics.</source>
         <translation>Berechnet Kategorie- oder objektorientierte Statistik.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="462"/>
         <source>Create points along input lines</source>
         <translation>Punkte entlang von Eingabelinien erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
         <source>Computes minimum spanning tree for the network.</source>
         <translation>Berechnet den minimalen Spannbaum eines Netzwerks.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="418"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="505"/>
         <source>Computes the shortest path between all pairs of nodes in the network</source>
-        <translation>Berechnet die kürzesten Pfad zwischen allen Knotenpaaren eines Netzwerkes.</translation>
+        <translation>Berechnet die kürzesten Pfad zwischen allen Knotenpaaren eines Netzwerkes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="518"/>
         <source>Computes vertex connectivity between two sets of nodes in the network.</source>
         <translation>Berechnet die Stützpunktverbindungen zwischen zwei Knotenmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="492"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
         <source>Creates Steiner tree for the network and given terminals</source>
         <translation>Erzeugt einen Steinerbaum für das Netzwerk und gegebenen Enden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="559"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="455"/>
         <source>v.net.report - Reports lines information of a network</source>
         <translation>v.net.report - Berichte zu Kanteninformationen eines Netzwerks</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="474"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
         <source>Performs visibility graph construction.</source>
-        <translation>Erstellt Sichtbarkeitsgraphen</translation>
+        <translation>Erstellt Sichtbarkeitsgraphen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="483"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="544"/>
         <source>Calculate error matrix and kappa parameter for accuracy assessment of classification result.</source>
         <translation>Fehlermatrix und Kappa-Parameter für Genauigkeitsbewertung von Klassifikationsergebnissen berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="479"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="555"/>
         <source>Flow computation for massive grids.</source>
         <translation>Flußberechnung für massive Raster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="444"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="526"/>
         <source>Calculates univariate statistics from the non-null cells of a raster map.</source>
         <translation>Eindimensionale Statistik des Nicht-Null-Zellen eines Rasters berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="422"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="556"/>
         <source>Surface interpolation from vector point data by Inverse Distance Squared Weighting.</source>
         <translation>Oberflächeninterpolation mit auf Vektorpunkten basierender inverser quadratischer Abstandsgewichtung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="434"/>
         <source>Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
         <source>A simple utility for converting bearing and distance measurements to coordinates and vice versa. It assumes a cartesian coordinate system</source>
         <translation>Ein einfaches Hilfsprogramm, dass Kurs- und Distanzwert in Koordinaten umrechnet und umgekehrt.  Es setzt ein kartesisches Koordinatensystem voraus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="493"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="420"/>
         <source>Surface generation.</source>
         <translation>Oberflächenerzeugung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="449"/>
         <source>Generates raster layers of slope, aspect, curvatures and partial derivatives from a elevation raster layer.</source>
         <translation>Erzeugt Rasterkarten mit Hangneigung, Exposition, Wölbung und partiellen Ableitungen aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="548"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="415"/>
         <source>Simulates elliptically anisotropic spread on a graphics window and generates a raster map of the cumulative time of spread, given raster maps containing the rates of spread (ROS), the ROS directions and the spread origins.</source>
         <translation>Simuliert elliptische anisotrophe Ausbreitung in einem Grafikfenster und erzeugt eine Rasterkarte mit der kumulativen Ausbreitungszeit. Als Ausgangskarten dienen die Ausbreitungsgeschwindigkeit, Ausbreitungsrichtung und der Ursprung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="476"/>
         <source>Tests for normality for points.</source>
         <translation>Tests der Normalität auf Vektor-Punkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="524"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
         <source>Calculates linear regression from two raster layers : y = a + b*x.</source>
         <translation>Berechnet lineare Regression zweier Raster: y = a + b*x.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
         <source>Finds the mode of values in a cover layer within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Modalwert der Werte einer Bedeckungskarte innerhalb der Flächen mit gleichen Werten in einer benutzerdefinierten Basiskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="451"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="548"/>
         <source>r.flow.barrier - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.barrier - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="542"/>
         <source>Reports geometry statistics for vectors.</source>
         <translation>Gibt statistische Werte für Geometrie der Vektorobjekte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="478"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
         <source>Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
         <source>Watershed basin creation program.</source>
         <translation>Wassereinzugsgebietserzeugungsprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="470"/>
         <source>Resamples raster map to a finer grid using interpolation.</source>
         <translation>Erzeugt eine neue Rasterkarte mit feinerer Auflösung mittels Interpolation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="449"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
         <source>Generates red, green and blue raster layers combining hue, intensity and saturation (HIS) values from user-specified input raster layers.</source>
         <translation>Erzeugt rot, grün und blaue Rasterkarten durch Kombination des Farbtons, der Intensität und Sättigung (HIS) aus Eingabe-Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
         <source>Creates a Delaunay triangulation from an input vector map containing points or centroids.</source>
         <translation>Erzeugt eine Delaunay-Triangulation auf Basis einer Eingabe-Vektorkarte mit Punkten oder Zentroiden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="495"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="496"/>
         <source>Generates three, or four raster map layers showing 1) the base (perpendicular) rate of spread (ROS), 2) the maximum (forward) ROS, 3) the direction of the maximum ROS, and optionally 4) the maximum potential spotting distance.</source>
         <translation>Erstellt drei oder vier Rasterkarten, die 1) die Basisrate der (rechtwinkligen) Ausbreitungsgeschwindigkeit, 2) die maximale (Vorwärts-) Geschwindigkeit, 3) die Richtung der größten Ausbreitungsgeschwindigkeit und optional 4) die maximale Entdeckungsentfernung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="503"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="576"/>
         <source>Resamples a raster map layer to a finer grid using interpolation.</source>
         <translation>Erzeugt eine neue Rasterkarte mit feinerer Auflösung mittels Interpolation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="439"/>
         <source>Generates area statistics for raster layers.</source>
         <translation>Erzeugt Flächenstatistiken für Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="521"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="575"/>
         <source>Traces a flow through an elevation model on a raster map.</source>
         <translation>Verfolge eine Strömung durch ein Höhenmodell auf einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="544"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
         <source>Finds the median of values in a cover layer within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Median der Werte einer Coverkarte innerhalb der Flächen mit gleichen Werten in einer benutzerdefinierten Basiskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="466"/>
         <source>Produces a convex hull for a given vector map.</source>
         <translation>Erzeugt eine konvexe Hülle für eine Vektorkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="373"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="498"/>
         <source>r.random.raster - Create random raster</source>
         <translation>r.random.raster - Zufälliges Raster erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="381"/>
         <source>Creates points/segments from input vector lines and positions.</source>
         <translation>Punkte/Segmente von Eingabevektorlinien und -positionen bilden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="561"/>
         <source>Samples a raster layer at vector point locations.</source>
         <translation>Fragt eine Rasterkarte an den Positionen von Vektorpunkten ab.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="504"/>
         <source>Creates a new map layer whose category values are based upon a reclassification of the categories in an existing raster map layer.</source>
         <translation>Neue Karte erzeugen, deren Kategoriewerte auf einer Reklassifikation der Kategorien einer existierenden Rasterkarte basieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="484"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="471"/>
         <source>Transforms raster maps from HIS (Hue-Intensity-Saturation) color space to RGB (Red-Green-Blue) color space.</source>
         <translation>Rastertransformationfunktion für HIS- (Hue-Intensity-Saturation) in RGB-Farbraum (Rot-Grün-Blau).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
         <source>Toolset for cleaning topology of vector map.</source>
         <translation>Werkzeugsatz für die Bereinigung der Topologie einer Vektorkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
         <source>Calculates univariate statistics for attribute. Variance and standard deviation is calculated only for points if specified.</source>
         <translation>Berechnet univariate Statistiken für die Attribute. Die Varianz und Standardabweichung wird nur für Punkte berechnet wenn angefragt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="566"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="532"/>
         <source>Zero-crossing "edge detection" raster function for image processing.</source>
         <translation>Nulldurchgangskantendetektionsrasterfunktion für die Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="511"/>
         <source>Prints vector map attributes</source>
         <translation>Gebe Vektorattribute aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="500"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
         <source>r.contour.level - Create vector contour from raster at specified levels</source>
         <translation>r.contour.level - Erstellen von Vektorkonturen von Rasterdaten an bestimmten Ebenen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="386"/>
         <source>v.surf.bspline.sparse - Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>v.surf.bspline.sparse - Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="511"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="534"/>
         <source>r.reclass.area.lesser - Reclassifies a raster layer, selecting areas lower than a user specified size</source>
         <translation>r.reclass.area.lesser -Reklassifiziere Rasterkarte durch Auswahl von Flächen kleiner eines gegeben Werts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="561"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
         <source>v.split.vert - Split lines to shorter segments by max number of vertices.</source>
         <translation>v.split.vert - Trenne Linien zu kürzeren Segmenten nach Stützpunktanzahl.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="444"/>
         <source>Performs raster map matrix filter.</source>
         <translation>Führt Matrixfilter auf einer Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="405"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="419"/>
         <source>Prints terse list of category values found in a raster layer.</source>
         <translation>Gibt eine kurze Liste der Kategoriewerte einer Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="564"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="489"/>
         <source>Overlays two vector maps.</source>
         <translation>Überlagert zwei Vektorkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="534"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
         <source>Removes outliers from vector point data.</source>
         <translation>Entfernt Ausreißer aus einem Punkt-Vektordatensatz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="519"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="424"/>
         <source>Calculate new raster map from a r.mapcalc expression.</source>
         <translation>Berechne eine neue Rasterkarte mit einem r.mapcalc-Ausdruck.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="411"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="541"/>
         <source>Line-of-sight raster analysis program.</source>
         <translation>Sichtachsen-Rasteranalysemodul.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
         <source>Selects vector objects from a vector layer a new layer containing only the selected objects.</source>
         <translation>Selektiert Vektorobjekte einer existierenden Vektorkarte und erzeugt eine neue Karte nur mit den selektierten Objekten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="477"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="574"/>
         <source>Surface area estimation for rasters.</source>
         <translation>Oberflächensschätzungen für Raster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="438"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
         <source>Combines red, green and blue raster maps into a single composite raster map.</source>
         <translation>Kombiniert rote, grüne und blaue Rasterkarten zu einer zusammengesetzten Rasterkarte.</translation>
     </message>
@@ -11891,362 +11901,362 @@ Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
         <translation>Raster in Vektorlayer umwandeln.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="522"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
         <source>Creates a cross product of the category values from multiple raster map layers.</source>
         <translation>Kreuzprodukt der Kategoriewerte mehrerer Raster erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="552"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
         <source>Converts vector map to 3D by sampling of elevation raster map.</source>
         <translation>Wandelt Vektorkarte in 3D durch Abtastung einer Rasterhöhenkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="443"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="578"/>
         <source>Visualization and animation tool for GRASS data.</source>
         <translation>Visualisierungs- und Animationswerkzeug für GRASS-Daten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
         <source>Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model (DEM).</source>
         <translation>Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (upslope areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="390"/>
         <source>Computes the maximum flow between two sets of nodes in the network.</source>
-        <translation>Berechnet den maximalen Fluß zwischen zwei Knotenmengen im Netzwerk</translation>
+        <translation>Berechnet den maximalen Fluß zwischen zwei Knotenmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="470"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
         <source>v.net.nodes - Creates points for each network arcs</source>
         <translation>v.net.nodes - Erzeugt Punkte für jeden Netzwerkbogen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="551"/>
         <source>v.net.nreport - Reports nodes information of a network</source>
         <translation>v.net.nreport - Berichte zu Knoteninformationen eines Netzwerks</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="487"/>
         <source>Creates raster plane layer given dip (inclination), aspect (azimuth) and one point.</source>
         <translation>Erzeugt eine Rasterkarte mit einer Ebene mit gegebener Neigung (inclination), Ausrichtung (azimuth) und einem Punkt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="457"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
         <source>Computes bridges in the network.</source>
-        <translation>Berechnet Brücken im Netzwerk</translation>
+        <translation>Berechnet Brücken im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
         <source>Splits network by cost isolines.</source>
-        <translation>Schnitt durch Netzwerk entlang veranschlagten Isolinien</translation>
+        <translation>Schnitt durch Netzwerk entlang veranschlagten Isolinien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
         <source>Output basic information about a raster layer.</source>
         <translation>Gibt grundlegende Informationen über eine Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
         <source>Dissolves boundaries between adjacent areas sharing a common category number or attribute.</source>
         <translation>Löst die Grenzen zwischen anliegenden Gebieten auf die eine gemeinsame Kategorie-Nummer oder Attribut haben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
         <source>Allocates subnets for nearest centers (direction from center)</source>
         <translation>Bestimmt Teilnetze für nächste Zentren (vom Zentrum gerichtet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
         <source>Computes shortest distance via the network between the given sets of features.</source>
-        <translation>Berechnet die kürzesten Abstand zwischen zwei gegebenen Objektmengen im Netzwerk</translation>
+        <translation>Berechnet die kürzesten Abstand zwischen zwei gegebenen Objektmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
         <source>v.net.arcs - Creates arcs from a file of points</source>
         <translation>v.net.arcs - Berechnet Bögen aus einer Punktdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="488"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="533"/>
         <source>Finds the nearest element in vector map 'to' for elements in vector map 'from'.</source>
         <translation>Findet das nächstgelegene Element der Vektorkarte 'to' für Elemente in der Vektorkarte 'from'.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="494"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="411"/>
         <source>Computes strongly and weakly connected components in the network.</source>
-        <translation>Berechnet stark und schwach verbundene Komponenten eines Netzwerks</translation>
+        <translation>Berechnet stark und schwach verbundene Komponenten eines Netzwerks.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="535"/>
         <source>v.net.articulation - Computes articulation points in the network</source>
         <translation>v.net.articulation - Berechnet Artikulationspunkte im Netzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
         <source>Computes degree, centrality, betweeness, closeness and eigenvector centrality measures in the network.</source>
         <translation>Berechnet Degree, Centrality, Betweeness, Closeness und Eigenvektor centrality Werte im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="394"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="522"/>
         <source>v.net.connect - Connects points to nearest arcs in a network</source>
         <translation>v.net.connect - Verbinde Punkte zu nächsten Bögen in einem Netzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="556"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="410"/>
         <source>Creates a cycle connecting given nodes (Traveling salesman problem)</source>
         <translation>Erzeugt eine Rundtour zu gegebenen Punkten (Travelling Salesman)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="498"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="457"/>
         <source>Finds shortest path on vector network</source>
         <translation>Kürzesten Weg in einem Vektornetzwerk finden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="429"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="406"/>
         <source>Creates a raster map layer showing buffer zones surrounding cells that contain non-NULL category values.</source>
         <translation>Erzeugt eine Rasterkarte mit Pufferzonen um Zellen, die keine NULL-Wert-Kategorien haben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="453"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="510"/>
         <source>Filters and generates a depressionless elevation layer and a flow direction layer from a given elevation raster layer.</source>
         <translation>Depressionsloses Höhenmodell filtern und generieren und eine Fließrichtungskarte auf Basis eines gegebenen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="507"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
         <source>GRASS raster map layer data resampling capability using nearest neighbors.</source>
         <translation>GRASS-Rasterlayerdatenneuabtastungsfunktion nach nächstem Nachbarn.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
         <source>Creates shaded relief from an elevation layer (DEM).</source>
         <translation>Erzeugt eine Schummerungskarte aus einem Höhenmodell (DGM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="532"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
         <source>Rescales histogram equalized the range of category values in a raster  layer.</source>
         <translation>Reskaliert mit Histogrammnormalisierung die Kategoriewerte einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="535"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
         <source>Makes each cell category value a function of the category values assigned to the cells around it</source>
         <translation>Jede Ausgabezelle zur Funktion der korrespondierenden Zellen des Eingaberasters machen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
         <source>Sediment transport and erosion/deposition simulation using path sampling method (SIMWE).</source>
         <translation>Sedimenttransport und Erosions/Depositions Simulation unter Verwendung der "path sampling" Methode (SIMWE).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="471"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
         <source>Generates a raster layer of distance to features in input layer.</source>
         <translation>Raster aus Objektabständen in Eingabelayer erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="526"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="524"/>
         <source>Sums up the raster cell values.</source>
         <translation>Summiert die Rasterzellenwerte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
         <source>Raster map matrix filter.</source>
         <translation>Rasterkartenmatrixfilter.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
         <source>Outputs a raster layer showing the anisotropic cumulative cost of moving based on friction cost.</source>
         <translation>Erzeugt eine Rasterkarte, die die anisotrophen kumulierten Kosten der Bewegung auf Basis der Reibungskosten zeigt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="447"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="570"/>
         <source>Tabulates the mutual occurrence (coincidence) of categories for two raster map layers.</source>
         <translation>Tabelliere gemeinsames Auftreten (Koinzidenz) der Klassen für zwei Rasterlayer.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="573"/>
         <source>Watershed basin analysis program.</source>
         <translation>Wassereinzugsgebietsanalyseprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
         <source>Creates a raster layer of Gaussian deviates.</source>
         <translation>Erzeugt eine Raster von Gauss'schen Ableitungen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="533"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
         <source>Creates a raster layer and vector point map containing randomly located points.</source>
         <translation>Erstellt eine Rasterkarte und eine Vektorkarte, die zufällig angeordnete Punkte enthalten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="503"/>
         <source>Selects features from vector map (A) by features from other vector map (B).</source>
         <translation>Selektiert Objekte der Vektorkarte (A) durch Objekte einer anderen Vektorkarte (B).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="562"/>
         <source>Creates a raster map containing concentric rings around a given point.</source>
         <translation>Erzeugt eine Rasterkarte, die konzentrische Kreise um einen angegebenen Punkt ziehen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="415"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="478"/>
         <source>Recategorizes data in a raster map by grouping cells that form physically discrete areas into unique categories.</source>
         <translation>Re-Kategorisiert Daten einer Rasterkarte, indem Zellen physikalisch diskreter Areale zu eindeutigen Kategorie gruppiert werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="541"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
         <source>Creates a Voronoi diagram from an input vector layer containing points.</source>
         <translation>Erstellt ein Voronoi Diagramm auf Basis einer Vektorkarte mit Punkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
         <source>Flow computation for massive grids (float version).</source>
         <translation>Flußberechnung für massive Gitter (Fließkommaversion).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="516"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="577"/>
         <source>Flow computation for massive grids (integer version).</source>
         <translation>Flußberechnung für massive Gitter (Ganzzahkversion).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="481"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="545"/>
         <source>Outputs the raster layer values lying on user-defined line(s).</source>
         <translation>Gibt eine Rasterkarte aus, deren Werte entlang einer (oder mehrerer) benutzerdefinierter Linien liegt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="421"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="417"/>
         <source>Export a raster map to a text file as x,y,z values based on cell centers</source>
         <translation>Raster in Textdatei als x-,y- und z-Werte der Zellzentren exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="410"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="474"/>
         <source>Outputs basic information about a user-specified vector map.</source>
         <translation>Gibt grundlegende Informationen einer bestimmten Vektorkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="413"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="549"/>
         <source>Randomly partition points into test/train sets.</source>
         <translation>Punkte zufällig in Test-/Trainingsdatensätze aufteilen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="432"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
         <source>Takes vector stream data, transforms it to raster and subtracts depth from the output DEM.</source>
         <translation>Nimm Vektordaten, wandle sie in Rasterdaten-und subtrahiere Tiefe aus der Ausgabe DEM.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="487"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="405"/>
         <source>Building contour determination and Region Growing algorithm for determining the building inside</source>
         <translation>Bestimmung des Gebäudeumriß und Anwendung des 'Region Growing' Verfahrens zu Ermittelung des Gebäudeinneren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
         <source>Overland flow hydrologic simulation using path sampling method (SIMWE).</source>
         <translation>Hydrologische Simulation des Oberflächenabfluß mittels der "path sampling"-Methode (SIMWE).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
         <source>Makes each output cell value a function of the values assigned to the corresponding cells in the input raster layers.</source>
         <translation>Jede Ausgabezelle zur Funktion der korrespondierenden Zellen des Eingaberasters machen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="387"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="520"/>
         <source>Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="473"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
         <source>Rescales the range of category values in a raster layer.</source>
         <translation>Reskaliert die Spanne der Kategoriewerte einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="494"/>
         <source>Solar irradiance and irradiation model.</source>
         <translation>Solar- und Bestrahlungsmodell.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="555"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
         <source>Computes the viewshed of a point on an elevation raster map.</source>
         <translation>Berechnet den Sichtbarkeitsbereich eines Punkt auf einer Rasterhöhenkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="504"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="572"/>
         <source>A simple utility for converting bearing and distance measurements to coordinates and vice versa. It assumes a cartesian coordinate system </source>
         <translation>Ein einfaches Hilfsprogramm, dass Kurs- und Distanzwert in Koordinaten umrechnet und umgekehrt.  Es setzt ein kartesisches Koordinatensystem voraus </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="435"/>
         <source>Calculates the volume of data "clumps".</source>
         <translation>Berechnet das Volumen Daten-"Klumpen".</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="528"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
         <source>Inverse Fast Fourier Transform (IFFT) for image processing.</source>
         <translation>Inverse schnelle Fourier-Transformation (IFFT) zur Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="562"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="447"/>
         <source>Vector based generalization.</source>
         <translation>Vektorbasierte Generalisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="375"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="564"/>
         <source>Surface generation program from rasterized contours.</source>
         <translation>Oberflächeerzeugung aus Rasterkonturen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="419"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="394"/>
         <source>Create random raster</source>
         <translation>Zufälliges Raster erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="391"/>
         <source>Converts to POV-Ray format, GRASS x,y,z -> POV-Ray x,z,y</source>
         <translation>Wandelt in das POV-Ray-Format, GRASS x,y,z -> POV-Ray x,z,y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="514"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="553"/>
         <source>Surface interpolation utility for raster layers.</source>
         <translation>Oberflächeninterpolationswerkzeug für Rasterlayer.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="495"/>
         <source>Makes each cell value a function of attribute values and stores in an output raster map.</source>
         <translation>Jede Zelle zur Funktion von Attributwerten machen und in eine Ausgaberasterkarte speichern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
         <source>Converts files in DXF format to GRASS vector map format.</source>
         <translation>Konvertiert Dateien im DXF-Format in das GRASS-Vektorkartenformat.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="488"/>
         <source>Fast Fourier Transform (FFT) for image processing.</source>
         <translation>Schnelle Fourier-Transformation (FFT) für Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="434"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="493"/>
         <source>Performs atmospheric correction using the 6S algorithm.</source>
         <translation>Führt atmospherische Korrektur mit dem 6S-Algorithmus aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="455"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="421"/>
         <source>Export a raster layer to the Virtual Reality Modeling Language (VRML)</source>
         <translation>Raster in Virtual-Reality-Modeling-Language (VRML) exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="510"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
         <source>r.flow.aspect.barrier - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect.barrier - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="393"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="492"/>
         <source>Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.</source>
         <translation>Numerisches Berechnungsprogramm für transienten, beschränkten und unbeschränkte Grundwasserfluß in zwei Dimensionen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="443"/>
         <source>v.surf.rst.cvdev - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.cvdev - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
@@ -12254,32 +12264,32 @@ Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
 <context>
     <name>GrassAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1186"/>
         <source>GRASS folder</source>
         <translation>GRASS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1187"/>
         <source>Msys folder</source>
         <translation>MSYS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1188"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1189"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1190"/>
         <source>Could not open GRASS algorithm: %s</source>
         <translation>Kann GRASS-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1189"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1191"/>
         <source>GRASS commands</source>
         <translation>GRASS-Befehle</translation>
     </message>
@@ -12287,26 +12297,26 @@ Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
 <context>
     <name>GrassUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1195"/>
         <source>GRASS folder is not configured.
 Please configure it before running GRASS algorithms.</source>
         <translation>GRASS-Verzeichnis nicht richtig konfiguriert.
 Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1196"/>
         <source>The specified GRASS folder "{}" does not contain a valid set of GRASS modules. Please, go to the Processing settings dialog, and check that the GRASS folder is correctly configured</source>
         <translation>Das angegebene GRASS-Verzeichnis "{}" enthält keine gültige Zusammenstellung von GRASS-Modulen. Bitte in den Processing-Einstellungen das GRASS-Verzeichnis überprüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1197"/>
         <source>It seems that GRASS is not correctly installed and configured in your system.
 Please install it before running GRASS algorithms.</source>
         <translation>GRASS scheint nicht richtig installiert oder konfiguriert zu sein.
 Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1198"/>
         <source>Error while checking GRASS installation. GRASS might not be correctly configured.
 </source>
         <translation>Fehler beim Prüfen der GRASS-Installation. GRASS könnte nicht richtig konfiguriert sein.
@@ -12316,72 +12326,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Grid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
         <source>Create grid</source>
         <translation>Gitter erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1203"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1204"/>
         <source>Rectangle (line)</source>
         <translation>Rechteck (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1205"/>
         <source>Rectangle (polygon)</source>
         <translation>Rechteck (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1206"/>
         <source>Diamond (polygon)</source>
         <translation>Raute (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1207"/>
         <source>Hexagon (polygon)</source>
         <translation>Hexagon (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1208"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1209"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1210"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1211"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1212"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1213"/>
         <source>Invalid grid spacing: %s/%s</source>
         <translation>Ungültiger Gitterabstand: %s/%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1214"/>
         <source>Horizontal spacing is too small for the covered area</source>
         <translation>Horizontaler Abstand ist für den abgedeckten Bereich zu klein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1215"/>
         <source>Vertical spacing is too small for the covered area</source>
         <translation>Vertikaler Abstand ist zu klein für abgedeckten Bereich</translation>
     </message>
@@ -12389,57 +12399,57 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridAverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
         <source>Grid (Moving average)</source>
         <translation>Gitter (Beweglicher Mittelwert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1226"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1227"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1228"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1229"/>
         <source>Interpolated moving average</source>
         <translation>Interpolierter beweglicher Mittelwert</translation>
     </message>
@@ -12447,62 +12457,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridDataMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1231"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
         <source>Grid (Data metrics)</source>
         <translation>Gitter (Datenkriterien)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
         <source>Metrics</source>
         <translation>Kriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1242"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1243"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1244"/>
         <source>Interpolated metrics</source>
         <translation>Interpolierte Maße</translation>
     </message>
@@ -12510,72 +12520,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridInvDist</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
         <source>Grid (Inverse distance to a power)</source>
         <translation>Gitter (Inverse Distanz zu einer Potenz)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1251"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1252"/>
         <source>Power</source>
         <translation>Potenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
         <source>Max points</source>
         <translation>Max. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1257"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1258"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1259"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1260"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1261"/>
         <source>Interpolated IDW</source>
         <translation>Interpolierte IDW</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1253"/>
         <source>Smoothing</source>
         <translation>Glättung</translation>
     </message>
@@ -12583,62 +12593,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
         <source>Grid Metrics</source>
         <translation>Datenkriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1264"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
         <source>Height break</source>
         <translation>Höhen Unterbrechung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
         <source>Output table with grid metrics</source>
         <translation>Ausgabetabelle mit Gittermaßen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
         <source>OUTPUT CSV INTENSITY</source>
         <translation>Ausgabe CSV Intensität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
         <source>Outlier:low,high</source>
         <translation>Ausreißer:niedrig,hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1274"/>
         <source>First</source>
         <translation>Erster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1275"/>
         <source>Htmin</source>
         <translation>Htmin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1276"/>
         <source>Class (set blank if not used)</source>
         <translation>Klasse (leer setzen, wenn nicht verwendet)</translation>
     </message>
@@ -12646,52 +12656,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNearest</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
         <source>Grid (Nearest neighbor)</source>
         <translation>Gitter (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1288"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1289"/>
         <source>Interpolated nearest neighbor</source>
         <translation>Interpolierter nächster Nachbar</translation>
     </message>
@@ -12699,52 +12709,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNet</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1293"/>
         <source>Grid Network</source>
         <translation>Gitternetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1301"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1302"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -12752,52 +12762,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNetMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1304"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1306"/>
         <source>Grid Network (multifile)</source>
         <translation>Gitternetzwerk (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1305"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1313"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1314"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1315"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -12805,72 +12815,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1319"/>
         <source>Grid Surface Create</source>
         <translation>Gitteroberfläche erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
         <source>DTM Output Surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
         <source>Spike (set blank if not used)</source>
         <translation>Impuls (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1328"/>
         <source>Smooth</source>
         <translation>Glatt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1329"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1330"/>
         <source>Minimum (set blank if not used)</source>
         <translation>Minimum (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1331"/>
         <source>Class(es)</source>
         <translation>Klasse(n)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1332"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -12878,42 +12888,42 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Gridify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1339"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
         <source>Snapped</source>
         <translation>Gefangen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1342"/>
         <source>Invalid grid spacing: %s/%s</source>
         <translation>Ungültiger Gitterabstand: %s/%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1343"/>
         <source>Failed to gridify feature with FID %s</source>
         <translation>Fehler in der Objektvernetzung mit FID %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
         <source>Snap points to grid</source>
         <translation>Punkte auf Gitter fangen</translation>
     </message>
@@ -12921,32 +12931,32 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GroundFilter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1347"/>
         <source>Ground Filter</source>
         <translation>Bodenfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1348"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1349"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
         <source>Cellsize for intermediate surfaces</source>
         <translation>Zellengröße für Zwischenfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1351"/>
         <source>Output ground LAS file</source>
         <translation>LAS-Datei mit Bodenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1352"/>
         <source>Create .dtm surface</source>
         <translation>DTM-Ausgabeoberfläche erzeugen</translation>
     </message>
@@ -13201,55 +13211,55 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HelpEditionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1356"/>
         <source>Cannot open help file: %s</source>
         <translation>Die Hilfe-Datei %s konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1357"/>
         <source><h2>Algorithm description</h2>
 </source>
         <translation><h2>Algorithmus Beschreibung</h2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1358"/>
         <source><h2>Input parameters</h2>
 </source>
         <translation><h2>Eingangsparameter</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1359"/>
         <source><h2>Outputs</h2>
 </source>
         <translation><h2>Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1360"/>
         <source>Algorithm description</source>
         <translation>Algorithmus Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
         <source>Input parameters</source>
         <translation>Eingangs Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
         <source>Outputs</source>
         <translation>Ausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1363"/>
         <source>Algorithm created by</source>
         <translation>Algorithmus erstellt von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1364"/>
         <source>Algorithm help written by</source>
         <translation>Algorithmus Hilfe Datei geschrieben von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1365"/>
         <source>Algorithm version</source>
         <translation>Alorithmus Version</translation>
     </message>
@@ -13257,47 +13267,47 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HistoryDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1369"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
         <source>Save As...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
         <source>Clear history</source>
         <translation>Historie leeren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
         <source>Save history</source>
         <translation>Historie speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
         <source>Are you sure you want to clear the history?</source>
         <translation>Soll die Historie wirklich geleert werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1376"/>
         <source>Log files (*.log *.LOG)</source>
         <translation>Log Dateien (*.log *.LOG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1377"/>
         <source>Create test</source>
         <translation>Test erzeugen</translation>
     </message>
@@ -13326,72 +13336,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1382"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
         <source>Meters</source>
         <translation>Meter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
         <source>Feet</source>
         <translation>Fuß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
         <source>Miles</source>
         <translation>Meilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
         <source>Kilometers</source>
         <translation>Kilometer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1387"/>
         <source>Layer units</source>
         <translation>Layereinheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
         <source>Source points layer</source>
         <translation>Quellpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
         <source>Destination hubs layer</source>
         <translation>Zielnabenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1390"/>
         <source>Hub layer name attribute</source>
         <translation>Nabenlayernamenattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1391"/>
         <source>Output shape type</source>
         <translation>Ausgabe-Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1392"/>
         <source>Measurement unit</source>
         <translation>Maßeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1393"/>
         <source>Hub distance</source>
         <translation>Knotenabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1394"/>
         <source>Same layer given for both hubs and spokes</source>
         <translation>Gleicher Name für Naben- und Speichenlayer gewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1381"/>
         <source>Distance to nearest hub</source>
         <translation>Abstand zum nächsten Knoten</translation>
     </message>
@@ -13399,37 +13409,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
         <source>Hub point layer</source>
         <translation>Nabenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
         <source>Hub ID field</source>
         <translation>Nabenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
         <source>Spoke point layer</source>
         <translation>Speichenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1403"/>
         <source>Spoke ID field</source>
         <translation>Speichenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
         <source>Hub lines</source>
         <translation>Knotenlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1404"/>
         <source>Same layer given for both hubs and spokes</source>
         <translation>Gleicher Name für Naben- und Speichenlayer gewählt</translation>
     </message>
@@ -13437,52 +13447,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HypsometricCurves</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1410"/>
         <source>DEM to analyze</source>
         <translation>Zu analysierendes DEM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1411"/>
         <source>Boundary layer</source>
         <translation>Begrenzungslayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
         <source>Step</source>
         <translation>Schrittweite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
         <source>Use % of area instead of absolute value</source>
         <translation>Prozentsatz der Fläche statt absolutem Wert verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1408"/>
         <source>Hypsometric curves</source>
         <translation>Höhenschichtenkurven</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1409"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
         <source>Feature %d does not intersect raster or entirely located in NODATA area</source>
         <translation>Objekt %d schneidet das Raster nicht oder ist komplett im leeren Bereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1416"/>
         <source>Area</source>
         <translation>Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1417"/>
         <source>Elevation</source>
         <translation>Geländehöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
         <source>Feature %d is smaller than raster cell size</source>
         <translation>Objekt %d ist kleiner als Rasterzellengröße</translation>
     </message>
@@ -13490,81 +13500,81 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>ImportIntoPostGIS</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1433"/>
         <source>Wrong database connection name: %s</source>
         <translation>Falscher Datenbankverbindungsname: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1434"/>
         <source>Couldn't connect to database:
 %s</source>
         <translation>Keine Datenbankverbindung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1435"/>
         <source>Error importing to PostGIS
 %s</source>
         <translation>Fehler beim PostGIS-Import
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
         <source>Layer to import</source>
         <translation>Zu importierender Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
         <source>Schema (schema name)</source>
         <translation>Schema (Schemaname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
         <source>Table to import to (leave blank to use layer name)</source>
         <translation>Importieren in Tabelle (leer lassen um den Layername zu verwenden)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
         <source>Primary key field</source>
         <translation>Primärschlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1428"/>
         <source>Geometry column</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1430"/>
         <source>Create spatial index</source>
         <translation>Räumlichen Index erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1431"/>
         <source>Convert field names to lowercase</source>
         <translation>Feldnamen in Kleinschreibung umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1432"/>
         <source>Drop length constraints on character fields</source>
         <translation>Längenbeschränkungen auf Textfeld verwerfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1421"/>
         <source>Import into PostGIS</source>
         <translation>In PostGIS importieren</translation>
     </message>
@@ -13580,12 +13590,12 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>InputLayerSelectorPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1439"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1440"/>
         <source>All files (*.*);;</source>
         <translation>Alle Dateien (*.*);;</translation>
     </message>
@@ -13593,37 +13603,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Intersection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1450"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>Objektgeometriefehler: Ein oder mehrere Objekte wegen ungültiger Geometrie ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1445"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1448"/>
         <source>Input layer has unsupported geometry type {}</source>
         <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1449"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1444"/>
         <source>Intersection</source>
         <translation>Verschneidung</translation>
     </message>
@@ -13631,37 +13641,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>JoinAttributes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1457"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1458"/>
         <source>Table field</source>
         <translation>Tabellenspalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1459"/>
         <source>Table field 2</source>
         <translation>Tabellenfeld 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1460"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
         <source>Join attributes table</source>
         <translation>Attributtabellen verknüpfen</translation>
     </message>
@@ -13685,184 +13695,184 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>LAStoolsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1464"/>
         <source>LAStools folder is not configured.
 Please configure it before running LAStools algorithms.</source>
         <translation>LAStools-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1465"/>
         <source>verbose</source>
         <translation>ausführlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1466"/>
         <source>open LAStools GUI</source>
         <translation>LAStools-GUI öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1467"/>
         <source>number of cores</source>
         <translation>Kernanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1468"/>
         <source>input LAS/LAZ file</source>
         <translation>LAS/LAZ-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
         <source>input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
         <source>input wildcard(s)</source>
         <translation>Eingabeplatzhalter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
         <source>merge all input files on-the-fly into one</source>
         <translation>Alle Eingabedateien spontan in einer zusammenfassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
         <source>horizontal feet</source>
         <translation>Fuß horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
         <source>vertical feet</source>
         <translation>Fuß vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
         <source>files are flightlines</source>
         <translation>Dateien sind Fluglinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1475"/>
         <source>apply file source ID</source>
         <translation>Dateiquellekennung anwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1476"/>
         <source>step size / pixel size</source>
         <translation>Schrittweite/Pixelgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1477"/>
         <source>output LAS/LAZ file</source>
         <translation>LAS/LAZ-Ausgabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1478"/>
         <source>output format</source>
         <translation>Ausgabeformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1479"/>
         <source>Output raster file</source>
         <translation>Ausgaberasterdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
         <source>Output vector file</source>
         <translation>Ausgabevektordatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
         <source>output directory</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
         <source>output appendix</source>
         <translation>Ausgabe Anhang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
         <source>empty temporary directory</source>
         <translation>Leeres Temporärverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1484"/>
         <source>additional command line parameter(s)</source>
         <translation>Weitere(r) Kommandozeilenparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1485"/>
         <source>filter (by return, classification, flags)</source>
         <translation>filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1486"/>
         <source>second filter (by return, classification, flags)</source>
         <translation>zweiter Filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1487"/>
         <source>third filter (by return, classification, flags)</source>
         <translation>dritter Filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1488"/>
         <source>filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Filtern (nach Koordinaten, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
         <source>value for filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Wert für Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
         <source>second filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Zweiter Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
         <source>value for second filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Wert für zweiten Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
         <source>transform (coordinates)</source>
         <translation>Umwandeln (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
         <source>value for transform (coordinates)</source>
         <translation>Wert für Transformation (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1494"/>
         <source>second transform (coordinates)</source>
         <translation>zweite Umwandlung (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1495"/>
         <source>value for second transform (coordinates)</source>
         <translation>Wert für zweite Umwandlung (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1496"/>
         <source>transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1497"/>
         <source>value for transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Wert für Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1498"/>
         <source>second transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Zweite Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1499"/>
         <source>value for second transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Wert für zweite Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
@@ -13870,12 +13880,12 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LAStoolsUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1503"/>
         <source>LAStools command line</source>
         <translation>LAStools Kommandozeile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1504"/>
         <source>LAStools console output</source>
         <translation>LAStools-Konsolenausgabe</translation>
     </message>
@@ -13901,42 +13911,42 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LengthArea</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
         <source>Length Area Stream Source</source>
         <translation>Länge Fläche Strom Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1513"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1514"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1515"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -13944,42 +13954,42 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LengthAreaMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1519"/>
         <source>Length Area Stream Source (multifile)</source>
         <translation>Länge Fläche Strom Quelle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1520"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1521"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1522"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1523"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1524"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1525"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1526"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -13987,22 +13997,22 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LidarToolsAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1530"/>
         <source>LAStools folder</source>
         <translation>LAStools-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1531"/>
         <source>Fusion folder</source>
         <translation>Fusion-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1532"/>
         <source>Wine folder</source>
         <translation>Wine-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1533"/>
         <source>Tools for LiDAR data</source>
         <translation>Werkzeuge für LiDAR-Daten</translation>
     </message>
@@ -14010,37 +14020,37 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LinesIntersection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1538"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1539"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1540"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1541"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1542"/>
         <source>Intersect unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Schnitts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1543"/>
         <source>Intersections</source>
         <translation>Schnittpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1537"/>
         <source>Line intersections</source>
         <translation>Linienschnittpunkte</translation>
     </message>
@@ -14048,22 +14058,22 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LinesToPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1548"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1549"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1550"/>
         <source>Polygons from lines</source>
         <translation>Polygon aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
         <source>Lines to polygons</source>
         <translation>Linien zu Polygonen</translation>
     </message>
@@ -15507,69 +15517,69 @@ Funktioniert auf allen ändernbaren Layern</translation>
     <name>ManageConnectionsDialog</name>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/manageconnectionsdialog.ui" line="14"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="21"/>
         <source>Manage connections</source>
         <translation>Verbindungen verwalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/manageconnectionsdialog.ui" line="22"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="12"/>
         <source>Save to file</source>
         <translation>In Datei speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/manageconnectionsdialog.ui" line="32"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="22"/>
         <source>Browse</source>
         <translation>Durchsuchen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="10"/>
         <source>Load from file</source>
         <translation>Aus Datei laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="11"/>
         <source>Load</source>
         <translation>Laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="13"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="14"/>
         <source>eXtensible Markup Language (*.xml *.XML)</source>
         <translation>eXtensible Markup Language (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="15"/>
         <source>Save connections</source>
         <translation>Verbindungen speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="16"/>
         <source>Load connections</source>
         <translation>Verbindungen laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="17"/>
         <source>Save Connections</source>
         <translation>Verbindungen speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="18"/>
         <source>Saved to %s</source>
         <translation>In %s gespeichert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="19"/>
         <source>File %s exists. Overwrite?</source>
         <translation>Datei %s vorhanden! Überschreiben?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="20"/>
         <source>Loading Connections</source>
         <translation>Verbindungen laden</translation>
     </message>
@@ -15577,37 +15587,37 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MeanAndStdDevPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1555"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1558"/>
         <source>Mean field</source>
         <translation>Durchschnittswert Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1559"/>
         <source>StdDev field</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1560"/>
         <source>Plot</source>
         <translation>Plot</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1554"/>
         <source>Mean and standard deviation plot</source>
         <translation>Mittel- und Standardabweichungsplott</translation>
     </message>
@@ -15615,32 +15625,32 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MeanCoords</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1563"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1565"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1566"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1567"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1568"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1569"/>
         <source>Mean coordinates</source>
         <translation>Mittlere Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1564"/>
         <source>Mean coordinate(s)</source>
         <translation>Mittlere Koordinate(n)</translation>
     </message>
@@ -15648,37 +15658,37 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>Merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
         <source>Layers to merge</source>
         <translation>Zusammenzuführende Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1577"/>
         <source>All layers must have same geometry type!</source>
-        <translation>Alle Layer müssen den gleichen Geometrietyp haben</translation>
+        <translation>Alle Layer müssen den gleichen Geometrietyp haben!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1578"/>
         <source>{} field in layer {} has different data type than in other layers.</source>
         <translation>Feld {} im Layer {} hat einen anderen Datentyp als in anderen Layern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1579"/>
         <source>Attribute type mismatch</source>
         <translation>Attributtyp nicht passend</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1573"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
@@ -15686,22 +15696,22 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MergeData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1581"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1583"/>
         <source>Merge LAS Files</source>
         <translation>LAS-Dateien zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1584"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1585"/>
         <source>Input LAS files</source>
         <translation>LAS-Eingabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1586"/>
         <source>Output merged LAS file</source>
         <translation>Zusammengefasste LAS-Ausgabedatei</translation>
     </message>
@@ -15709,12 +15719,12 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MessageBarProgress</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1588"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1590"/>
         <source>Executing algorithm <i>{0}</i></source>
         <translation>Führe Algorithmus aus <i>{0}</i></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1591"/>
         <source>Problem executing algorithm</source>
         <translation>Problem bei Algorithmus-Ausführung</translation>
     </message>
@@ -15746,367 +15756,367 @@ Funktioniert auf allen ändernbaren Layern</translation>
     <name>MetaSearchDialog</name>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="14"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="59"/>
         <source>MetaSearch</source>
         <translation>MetaSearch</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="24"/>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="66"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="60"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="36"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="61"/>
         <source>Find</source>
         <translation>Finden</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="73"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="64"/>
         <source>Set global</source>
         <translation>Welt setzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="59"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="63"/>
         <source>Map extent</source>
         <translation>Kartenausmaße</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="148"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="70"/>
         <source>-180</source>
         <translation>-180</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="128"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="68"/>
         <source>90</source>
         <translation>90</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="168"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="72"/>
         <source>-90</source>
         <translation>-90</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="108"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="66"/>
         <source>180</source>
         <translation>180</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="177"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="73"/>
         <source>        From</source>
         <translation>        Von</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="52"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="62"/>
         <source>Keywords</source>
         <translation>Schlüsselworte</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="92"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="65"/>
         <source>Xmax</source>
         <translation>X-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="115"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="67"/>
         <source>Ymax</source>
         <translation>Y-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="135"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="69"/>
         <source>Xmin</source>
         <translation>X-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="155"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="71"/>
         <source>Ymin</source>
         <translation>Y-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="193"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="74"/>
         <source>Results</source>
         <translation>Ergebnisse</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="335"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="85"/>
         <source>></source>
         <translation>></translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="264"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="80"/>
         <source><<</source>
         <translation><<</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="322"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="84"/>
         <source>Add WCS</source>
         <translation>WCS hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="277"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="81"/>
         <source>Add WMS/WMTS</source>
         <translation>WMS/WMTS hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="250"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="78"/>
         <source><</source>
         <translation><</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="296"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="82"/>
         <source>Add WFS</source>
         <translation>WFS hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="206"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="75"/>
         <source>Double click to see full record information</source>
         <translation>Doppelklicken, um vollständige Datensatzinformation anzuzeigen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="231"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="76"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="236"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="77"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="257"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="79"/>
         <source>View search results as XML</source>
         <translation>Sucheergebnisse als XML betrachten</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="309"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="83"/>
         <source>>></source>
         <translation>>></translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="356"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="86"/>
         <source>Services</source>
         <translation>Dienste</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="365"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="87"/>
         <source>Service info</source>
         <translation>Dienstinformation</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="372"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="88"/>
         <source>GetCapabilities response</source>
         <translation>GetCapabilities-Antwort</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="379"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="89"/>
         <source>New</source>
         <translation>Neu</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="386"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="90"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="393"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="91"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="400"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="92"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="414"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="93"/>
         <source>Add default services</source>
         <translation>Vordefinierte Dienste ergänzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="421"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="94"/>
         <source>Load</source>
         <translation>Laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="429"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="95"/>
         <source>Settings</source>
         <translation>Einstellungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="487"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="101"/>
         <source>Results paging</source>
         <translation>Ergebnisseiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="499"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="102"/>
         <source>Show</source>
         <translation>Anzeigen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="522"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="103"/>
         <source>results at a time</source>
         <translation>Ergebnisse auf einmal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="33"/>
         <source>No services/connections defined. To get started with MetaSearch, create a new connection by clicking 'New' or click 'Add default services'.</source>
         <translation>Keine Dienste/Verbindungen definiert. Für den Einstieg in MetaSearch erzeugen Sie eine neue Verbindung mit 'Neu' oder klicken Sie auf 'Vordefinierte Dienste hinzufügen'.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="34"/>
         <source>New Catalogue service</source>
         <translation>Neuer Katalogdienst</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="35"/>
         <source>Edit Catalogue service</source>
         <translation>Katalogdienst bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="36"/>
         <source>Remove service %s?</source>
         <translation>Dienst %s entfernen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="37"/>
         <source>Confirm delete</source>
         <translation>Löschen bestätigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="38"/>
         <source>%s exists.  Overwrite?</source>
         <translation>%s vorhanden. Überschreiben?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="39"/>
         <source>Loading connections</source>
         <translation>Verbindungen laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="40"/>
         <source>Search error</source>
         <translation>Suchfehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="41"/>
         <source>Search error: %s</source>
         <translation>Suchfehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="42"/>
         <source>Connection error</source>
         <translation>Verbindungsfehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="43"/>
         <source>Connection error: %s</source>
         <translation>Verbindungsfehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="44"/>
         <source>0 results</source>
         <translation>Keine Ergebnisse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="47"/>
         <source>Coordinate Transformation Error</source>
         <translation>Koordinatentransformationsfehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="48"/>
         <source>End of results. Go to start?</source>
         <translation>Ende der Ergebnisse.  Zum Start gehen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="49"/>
         <source>Navigation</source>
         <translation>Navigation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="50"/>
         <source>Start of results. Go to end?</source>
         <translation>Anfang der Ergebnisse. Zum Ende gehen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="51"/>
         <source>Connection %s exists. Overwrite?</source>
         <translation>Verbindung %s vorhanden. Überschreiben?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="52"/>
         <source>Saving server</source>
         <translation>Server wird gespeichert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="53"/>
         <source>GetRecords error</source>
         <translation>GetRecords-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="54"/>
         <source>Error getting response: %s</source>
         <translation>Fehler beim Empfang der Antwort: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="55"/>
         <source>Error connecting to service: %s</source>
         <translation>Fehler bei Dienstverbindung: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="56"/>
         <source>Value Error: %s</source>
         <translation>Wert-Fehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="57"/>
         <source>Unknown Error: %s</source>
         <translation>Unbekannter Fehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="58"/>
         <source>CSW Connection error</source>
         <translation>CSW-Verbindungsfehler</translation>
     </message>
     <message numerus="yes">
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="45"/>
         <source>Showing %d - %d of %n result(s)</source>
         <translation>
             <numerusform>Zeige %d - %d von einem Ergebnis</numerusform>
@@ -16115,48 +16125,48 @@ Funktioniert auf allen ändernbaren Layern</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="539"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="104"/>
         <source>Server timeout</source>
         <translation>Server-Timeout</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="564"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="105"/>
         <source>seconds</source>
         <translation>Sekunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="46"/>
         <source>Record parsing error</source>
         <translation>Datensatzinterpretationsfehler</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="441"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="96"/>
         <source>Connection naming</source>
         <translation>Verbindungsbenennung</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="447"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="97"/>
         <source>When saving the connection of an OWS service</source>
         <translation>Wenn die Verbindung eines OWS-Dienst gespeichert wird</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="454"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="98"/>
         <source>Use the OWS Service Title and ask before overwriting</source>
         <translation>OWS-Diensttitel verwenden und vor dem Überschreiben nachfragen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="464"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="99"/>
         <source>Use the OWS Service Title and always overwrite if already available</source>
         <translation>OWS-Diensttitel verwenden und immer überschreiben, wenn bereits verfügbar</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/maindialog.ui" line="471"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="100"/>
         <source>Use a temporary name, which you can change later</source>
         <translation>Temporären Namen verwenden, der später geändert werden kann</translation>
     </message>
@@ -16164,77 +16174,81 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>ModelerAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
         <source>Model</source>
         <translation>Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1596"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1597"/>
         <source>Parameter %s in algorithm %s in the model is run with default value! Edit the model to make sure that this is correct.</source>
         <translation>Parameter %s in Algorithmus %s im Modell wird mit Vorgabewert ausgeführt! Bitte Modell bearbeiten, um sicherzustellen, dass dies richtig ist.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1596"/>
         <source>Wrong value: %s</source>
-        <translation>Falscher Wert: %s</translation>
+        <translation type="obsolete">Falscher Wert: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
         <source>Prepare algorithm: %s</source>
         <translation>Bereite Algorithmus vor: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
         <source>Running %s [%i/%i]</source>
         <translation>Verarbeite %s [%i/%i]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
         <source>OK. Execution took %0.3f ms (%i outputs).</source>
         <translation>OK. Ausführung dauerte %0.3f ms (%i Ausgaben).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1602"/>
         <source>Failed</source>
         <translation>Fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1603"/>
         <source>Error executing algorithm %s
 %s</source>
         <translation>Fehler in Algorithmusausführung %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1604"/>
         <source>Model processed ok. Executed %i algorithms total</source>
         <translation>Modellverarbeitung OK. Ausgeführte Anzahl der Algorithmen: %i</translation>
     </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1598"/>
+        <source>Wrong value %s for %s %s</source>
+        <translation>Falscher Wert %s für %s %s</translation>
+    </message>
 </context>
 <context>
     <name>ModelerAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
         <source>Models folder</source>
         <translation>Modellverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1609"/>
         <source>Models</source>
         <translation>Modelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1610"/>
         <source>Could not load model %s</source>
         <translation>Konnte Modell %s nicht laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1611"/>
         <source>Could not load model %s
 %s</source>
         <translation>Konnte Modell nicht laden %s
@@ -16244,153 +16258,153 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>ModelerDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1615"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1616"/>
         <source>[Enter model name here]</source>
         <translation>[Modellname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1617"/>
         <source>[Enter group name here]</source>
         <translation>[Gruppenname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
         <source>Empty model</source>
         <translation>Leeres Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1622"/>
         <source>Save Model As Image</source>
         <translation>Modell als Bild speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1623"/>
         <source>PNG files (*.png *.PNG)</source>
         <translation>PNG-Dateien (*.png *.PNG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1624"/>
         <source>Save Model As Python Script</source>
         <translation>Modell als Pythonskript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
         <source>Python files (*.py *.PY)</source>
         <translation>Python-Dateien (*.py *.PY)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1626"/>
         <source>Model exported</source>
         <translation>Modell exportiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1627"/>
         <source>Model was correctly exported.</source>
         <translation>Modell wurde korrekt exportiert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1628"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1629"/>
         <source>Please enter group and model names before saving</source>
         <translation>Bitte Gruppen- und Modellnamen vor dem Speichern angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1630"/>
         <source>Save Model</source>
         <translation>Modell speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
         <source>Processing models (*.model)</source>
         <translation>Verarbeitungsmodelle (*.model)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1633"/>
         <source>Unable to save edits. Reason:
  %s</source>
         <translation>Änderung konnten nicht gespeichert werden. Grund:
  %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1634"/>
         <source>Can't save model</source>
         <translation>Konnte Modell nicht speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1639"/>
         <source>Processing models (*.model *.MODEL)</source>
         <translation>Auswertungsmodelle (*.model *.MODEL)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1640"/>
         <source>Could not load model %s
 %s</source>
         <translation>Konnte Modell %s nicht laden
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1642"/>
         <source>The selected model could not be loaded.
 See the log for more information.</source>
         <translation>Das gewählte Modell konnte nicht geladen werden.
 Mehr Informationen.im Protokoll.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1621"/>
         <source>Model doesn't contains any algorithms and/or parameters and can't be executed</source>
         <translation>Model beinhaltet keine Algorithmen und/oder Parameter und kann deshalb nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1635"/>
         <source>This model can't be saved in its original location (probably you do not have permission to do it). Please, use the 'Save as...' option.</source>
         <translation>Dieses Modell kann nicht an seiner ursprünglichen Stelle gespeichert werden (wahrscheinlich haben Sie keine Berechtigung dazu). Bitte 'Speichern als...' verwenden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
         <source>Model saved</source>
         <translation>Modell gespeichert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1637"/>
         <source>Model was correctly saved.</source>
         <translation>Modell wurde korrekt gespeichert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
         <source>Open Model</source>
         <translation>Modell öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1641"/>
         <source>Could not open model</source>
         <translation>Konnte Modell nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1643"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
         <source>There are unsaved changes in model. Continue?</source>
         <translation>Ungesicherte Änderung am Modell. Fortfahren?</translation>
     </message>
@@ -16398,7 +16412,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerOnlyAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1647"/>
         <source>Modeler-only tools</source>
         <translation>Nur-Modellierungswerkzeuge</translation>
     </message>
@@ -16406,142 +16420,142 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParameterDefinitionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
         <source>Parameter definition</source>
         <translation>Parameter Definitionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
         <source>Parameter name</source>
         <translation>Parameter Namen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1653"/>
         <source>Checked</source>
         <translation>Überprüft</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1654"/>
         <source>Parent layer</source>
         <translation>Übergeordneter Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
         <source>Required</source>
         <translation>Erforderlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1655"/>
         <source>Shape type</source>
         <translation>Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1656"/>
         <source>Any</source>
         <translation>Jeder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
         <source>Point</source>
         <translation>Punkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
         <source>Polygon</source>
         <translation>Polygon</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
         <source>Data type</source>
         <translation>Daten Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
         <source>Vector (any)</source>
         <translation>Vector (jeder)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
         <source>Vector (point)</source>
         <translation>Vector (Punkt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
         <source>Vector (line)</source>
         <translation>Vektor (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
         <source>Vector (polygon)</source>
         <translation>Vektor (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1665"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
         <source>Min/Max values</source>
         <translation>Min/Max Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
         <source>Default value</source>
         <translation>Vorgabewert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1669"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1670"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1671"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
         <source>Folder</source>
         <translation>Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1676"/>
         <source>Unable to define parameter</source>
         <translation>Nicht in der Lage Parameter zu definieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1677"/>
         <source>Invalid parameter name</source>
         <translation>Ungültiger Parameter Name</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1678"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -16549,52 +16563,52 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParametersDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1683"/>
         <source>Show advanced parameters</source>
         <translation>Zeige erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1684"/>
         <source>Parent algorithms</source>
         <translation>Übergeordneter Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1685"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1686"/>
         <source><h2>Sorry, no help is available for this algorithm.</h2></source>
         <translation><h2>Sorry, keine Hilfe für diesen Algorithmus verfügbar.</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1687"/>
         <source><h2>Could not open help file :-( </h2></source>
         <translation><h2>Hilfedatei konnte nicht geöffnet werden :-( </h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
         <source>Hide advanced parameters</source>
         <translation>Verstecke erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1689"/>
         <source>'%s' from algorithm '%s'</source>
         <translation>'%s' von Algorithmus '%s'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1690"/>
         <source>Unable to add algorithm</source>
         <translation>Nicht in der Lage Algorithmus hinzuzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1691"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -16602,7 +16616,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultilineTextPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1695"/>
         <source>[Use text below]</source>
         <translation>[Benutze Text unterhalb]</translation>
     </message>
@@ -16610,22 +16624,22 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipartToSingleparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1701"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1702"/>
         <source>Single parts</source>
         <translation>Einzelteile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
         <source>Multipart to singleparts</source>
         <translation>Mehr- zu einteilig</translation>
     </message>
@@ -16633,27 +16647,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleFileInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1710"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
         <source>Add file</source>
         <translation>Datei hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
         <source>Remove file(s)</source>
         <translation>Datei(en) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1709"/>
         <source>Select file(s)</source>
         <translation>Datei(en) wählen</translation>
     </message>
@@ -16661,17 +16675,17 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1715"/>
         <source>Clear selection</source>
         <translation>Auswahl aufheben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1716"/>
         <source>Toggle selection</source>
         <translation>Auswahl umschalten</translation>
     </message>
@@ -16679,12 +16693,12 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1718"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1720"/>
         <source>0 elements selected</source>
         <translation>0 Elemente ausgewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1719"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1721"/>
         <source>%d elements selected</source>
         <translation>%d Elemente ausgewählt</translation>
     </message>
@@ -16692,47 +16706,47 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NearestNeighbourAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
         <source>Nearest neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
         <source>Observed mean distance</source>
         <translation>Beobachtete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
         <source>Expected mean distance</source>
         <translation>Erwartete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1731"/>
         <source>Nearest neighbour index</source>
         <translation>Nächster Nachbar Index</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1732"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1733"/>
         <source>Z-Score</source>
         <translation>Z-Wertung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1725"/>
         <source>Nearest neighbour analysis</source>
         <translation>Nächster Nachbaranalyse</translation>
     </message>
@@ -16741,39 +16755,39 @@ Mehr Informationen.im Protokoll.</translation>
     <name>NewConnectionDialog</name>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/newconnectiondialog.ui" line="14"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="113"/>
         <source>Create a new Catalogue connection</source>
         <translation>Eine neue Katalogverbindung erstellen</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/newconnectiondialog.ui" line="20"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="114"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
         <location filename="../python/plugins/MetaSearch/ui/newconnectiondialog.ui" line="30"/>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="115"/>
         <source>URL</source>
         <translation>URL</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="109"/>
         <source>Save connection</source>
         <translation>Verbindung speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="110"/>
         <source>Both Name and URL must be provided</source>
         <translation>Sowohl Name als auch URL muß angegeben werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="112"/>
         <source>Overwrite %s?</source>
         <translation>%s überschreiben?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/MetaSearch/python-i18n.cpp" line="111"/>
         <source>Name cannot contain '/'</source>
         <translation>Name darf kein '/' enthalten</translation>
     </message>
@@ -16789,87 +16803,87 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NumberInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1737"/>
         <source>[Enter your formula here]</source>
         <translation>[Formel hier eingeben]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1738"/>
         <source>Values from data layers extents</source>
         <translation>Werte aus den Layerausmaßen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1739"/>
         <source>Min X</source>
         <translation>Min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
         <source>Max X</source>
         <translation>Max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1741"/>
         <source>Min Y</source>
         <translation>Min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1742"/>
         <source>Max Y</source>
         <translation>Max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1743"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1744"/>
         <source>Values from raster layers statistics</source>
         <translation>Werte aus Rasterlayerstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
         <source>Mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1746"/>
         <source>Std. deviation</source>
         <translation>Std.-abweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1747"/>
         <source>Max value</source>
         <translation>Max. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1748"/>
         <source>Min value</source>
         <translation>Min. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1749"/>
         <source>Values from QGIS map canvas</source>
         <translation>Werte aus QGIS-Kartefenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1750"/>
         <source>Current extent</source>
         <translation>Aktuelle Ausmaße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
         <source>Full extent of all layers in map canvas</source>
         <translation>Volles Ausmaß aller Layer der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1752"/>
         <source>Wrong expression</source>
         <translation>Falscher Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1753"/>
         <source>The expression entered is not correct</source>
         <translation>Der eingegebene Ausdruck ist ungültig</translation>
     </message>
@@ -16877,19 +16891,19 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
         <source>Could not open OTB algorithm: %s
 %s</source>
         <translation>Kann OTB-Algorithmus nicht öffnen: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1758"/>
         <source>OTB execution command</source>
         <translation>OTB-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1759"/>
         <source>Adapter for %s not found</source>
         <translation>Adapter für %s nicht gefunden</translation>
     </message>
@@ -16897,42 +16911,42 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
         <source>Problem with OTB installation: OTB was not found or is not correctly installed</source>
         <translation>Problem mit OTB-Installation: OTB wurde nicht gefunden oder ist nicht richtig installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1765"/>
         <source>Problem with OTB installation: installed OTB version (%s) is not supported</source>
         <translation>Problem mit OTB-Installation: Installierte OTB-Version (%s) wird nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1766"/>
         <source>Could not open OTB algorithm: %s</source>
         <translation>Konnte OTB-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1767"/>
         <source>OTB command line tools folder</source>
         <translation>OTB Kommandozeilen Werkzeuge Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1768"/>
         <source>OTB applications folder</source>
         <translation>OTB Anwendungsordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1769"/>
         <source>SRTM tiles folder</source>
         <translation>SRTM Kachel Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1770"/>
         <source>Geoid file</source>
         <translation>Geoid Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
         <source>Orfeo Toolbox (Image analysis)</source>
         <translation>Orfeo Toolbox (Bildanalyse)</translation>
     </message>
@@ -16940,32 +16954,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2Ogr</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
         <source>[OGR] Conversion</source>
         <translation>[OGR] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1777"/>
         <source>Destination Format</source>
         <translation>Zielformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1778"/>
         <source>Creation options</source>
         <translation>Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1779"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
         <source>Convert format</source>
         <translation>Format konvertieren</translation>
     </message>
@@ -16973,52 +16987,52 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1784"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1785"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1786"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltenname ("geometry" bei Shapedateien, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1787"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1788"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1789"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
         <source>Output as singlepart geometries (only used when dissolving by attribute)</source>
         <translation>Als einteilige Geometrien ausgaben (wird nur verwendet, wenn nach Attribute aufgelöst wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1791"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1792"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1783"/>
         <source>Buffer vectors</source>
         <translation>Vektoren puffern</translation>
     </message>
@@ -17026,32 +17040,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1799"/>
         <source>Clip layer</source>
         <translation>Layer zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1800"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1801"/>
         <source>Clipped (polygon)</source>
         <translation>Abgeschnitten (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
         <source>Clip vectors by polygon</source>
         <translation>Vektoren durch Polygon zuschneiden</translation>
     </message>
@@ -17059,32 +17073,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClipExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1806"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1807"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1808"/>
         <source>Clip extent</source>
         <translation>Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1809"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1810"/>
         <source>Clipped (extent)</source>
         <translation>Abgeschnitten (Grenze)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1805"/>
         <source>Clip vectors by extent</source>
         <translation>Vektoren auf Ausmaße zuschneiden</translation>
     </message>
@@ -17092,67 +17106,67 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrDissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1816"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1817"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1818"/>
         <source>Dissolve field</source>
         <translation>Auflösungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1819"/>
         <source>Output as multipart geometries</source>
         <translation>Ausgabe als mehrteilige Geometrien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
         <source>Keep input attributes</source>
         <translation>Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
         <source>Count dissolved features</source>
         <translation>Aufgelöste Objekte zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
         <source>Compute area and perimeter of dissolved features</source>
         <translation>Fläche und Umfang der aufgelösten Objekte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1823"/>
         <source>Compute min/max/sum/mean for the following numeric attribute</source>
         <translation>Min/Max/Summe/Durchschnitt der folgenden nummerischen Attribute berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1824"/>
         <source>Numeric attribute to compute dissolved features stats</source>
         <translation>Nummerische Attribute um Statistik zu ausgelösten Objekten zu berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1823"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1825"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1824"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1826"/>
         <source>Dissolved</source>
         <translation>Aufgelöst</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
         <source>Dissolve polygons</source>
         <translation>Polygone auflösen</translation>
     </message>
@@ -17160,62 +17174,62 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrOneSideBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1831"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1832"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1833"/>
         <source>Operation</source>
         <translation>Operation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1834"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1833"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
         <source>Buffer side</source>
         <translation>Pufferseite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1838"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1839"/>
         <source>Output as singlepart geometries (only used when dissolving by attribute)</source>
         <translation>Als einteilige Geometrien ausgaben (wird nur verwendet, wenn nach Attribute aufgelöst wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1840"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1841"/>
         <source>Single sided buffer</source>
         <translation>Doppelseitiger Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1830"/>
         <source>Single sided buffers (and offset lines) for lines</source>
         <translation>Einseitige Puffer (und Versatzlinien) für Linien</translation>
     </message>
@@ -17223,37 +17237,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrPointsOnLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1846"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1847"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
         <source>Distance from line start represented as fraction of line length</source>
         <translation>Abstand vom Linienanfang als Bruchteil der Linienlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1850"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1851"/>
         <source>Points along lines</source>
         <translation>Punkte entlang Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1845"/>
         <source>Create points along lines</source>
         <translation>Punkte entlang von Linien erzeugen</translation>
     </message>
@@ -17261,87 +17275,87 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrTableToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1860"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1861"/>
         <source>Primary key</source>
         <translation>Primärschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1862"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandene Feld, wird genutzt, wenn obige Option leergelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1864"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1865"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1869"/>
         <source>Continue after a failure, skipping the failed record</source>
         <translation>Nach Fehler fortsetzen und fehlerhaften Datensatz überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1870"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1871"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1855"/>
         <source>Import layer/table as geometryless table into PostgreSQL database</source>
         <translation>Layer/Tabelle als geometrielose Tabelle in PostgreSQL importieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1856"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1863"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17349,167 +17363,167 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1877"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1878"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
         <source>Host</source>
         <translation>Host</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
         <source>Port</source>
         <translation>Port</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
         <source>Username</source>
         <translation>Benutzername</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1885"/>
         <source>Database name</source>
         <translation>Datenbankname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1886"/>
         <source>Password</source>
         <translation>Passwort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1887"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1892"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1893"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1894"/>
         <source>Maximum distance between 2 nodes (densification)</source>
         <translation>Maximaler Abstand zwischen zwei Knoten (Verdichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1895"/>
         <source>Select features by extent (defined in input layer CRS)</source>
         <translation>Wähle Objekte nach Ausdehnung (definiert in Eingabelayer KBS)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1896"/>
         <source>Clip the input layer using the above (rectangle) extent</source>
         <translation>Eingabelayer auf obige (rechteckigen) Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1900"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1901"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1902"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1903"/>
         <source>Do not create spatial index</source>
         <translation>Keinen räumlichen Index erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1902"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1904"/>
         <source>Continue after a failure, skipping the failed feature</source>
         <translation>Nach Fehler fortsetzen und fehlerhaftes Objekt überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1907"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1875"/>
         <source>Import Vector into PostGIS database (new connection)</source>
         <translation>Vektor in PostGIS-Datenbank importieren (neue Verbindung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1876"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1879"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1880"/>
         <source>Reproject to this CRS on output </source>
         <translation>Bei Ausgabe auf dieses KBS reprojizieren </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1881"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandenes Feld, wird verwendet, wenn obige Option leer gelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1905"/>
         <source>Promote to Multipart</source>
         <translation>In Mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1904"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1906"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17517,147 +17531,147 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1912"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1914"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1923"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1924"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1925"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1926"/>
         <source>Maximum distance between 2 nodes (densification)</source>
         <translation>Maximaler Abstand zwischen zwei Knoten (Verdichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1927"/>
         <source>Select features by extent (defined in input layer CRS)</source>
         <translation>Wähle Objekte nach Ausdehnung (definiert in Eingabelayer KBS)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1926"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
         <source>Clip the input layer using the above (rectangle) extent</source>
         <translation>Eingabelayer auf obige (rechteckigen) Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1931"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1932"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1933"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1935"/>
         <source>Do not create spatial index</source>
         <translation>Keinen räumlichen Index erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
         <source>Continue after a failure, skipping the failed feature</source>
         <translation>Nach Fehler fortsetzen und fehlerhaftes Objekt überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1939"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1911"/>
         <source>Import Vector into PostGIS database (available connections)</source>
         <translation>Vektor in PostGIS-Datenbank importieren (vorhandene Verbindungen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1912"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1916"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1917"/>
         <source>Reproject to this CRS on output </source>
         <translation>Bei Ausgabe auf dieses KBS reprojizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1918"/>
         <source>Override source CRS</source>
         <translation>Quell-CRS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1921"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (Neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1922"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandene Feld, wird genutzt, wenn obige Option leergelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
         <source>Promote to Multipart</source>
         <translation>In mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1938"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1929"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17665,27 +17679,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1945"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1946"/>
         <source>Summary output only</source>
         <translation>Nur Zusammenfassung ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1947"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -17693,37 +17707,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrSql</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1951"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1952"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1953"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
         <source>SQL</source>
         <translation>SQL</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
         <source>Dialect</source>
         <translation>Dialekt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1956"/>
         <source>SQL result</source>
         <translation>SQL-Ergebnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1957"/>
         <source>Empty SQL. Please enter valid SQL expression and try again.</source>
         <translation>Leerer SQL-Ausdruck. Bitte einen gültigen SQL-Ausdruck eingeben und wiederholen.</translation>
     </message>
@@ -17731,22 +17745,22 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OpenViewerAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1961"/>
         <source>Open Fusion LAS viewer</source>
         <translation>OpenFusion-LAS-Ansicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1962"/>
         <source>Visualization</source>
         <translation>Visualisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1963"/>
         <source>Unable to open viewer</source>
         <translation>Konnte Anzeige nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1964"/>
         <source>The current Fusion folder does not contain the viewer executable.
 Please check the configuration in the Processing settings dialog.</source>
         <translation>Das aktuelle Fusion-Verzeichnis enthält das Anzeigeprogramm nicht.
@@ -17825,37 +17839,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OrientedMinimumBoundingBox</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1968"/>
         <source>Oriented minimum bounding box</source>
         <translation>Minimaler gerichteter Umgrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1969"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1970"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
         <source>Calculate OMBB for each feature separately</source>
         <translation>Minimaler gerichteter Umgrenzungsrahmen für jedes Objekt einzeln berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
         <source>Oriented_MBBox</source>
         <translation>Minimale orientierte Umrandungsgrenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1973"/>
         <source>Can't calculate an OMBB for each point, it's a point. The number of points must be greater than 2</source>
         <translation>Kann MOUG für jeden Punkt nicht berechnen. es ist ein Punkt. Die Anzahl der Punkt muß größer als 2 sein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1974"/>
         <source>Can't calculate an OMBB for feature {0}.</source>
         <translation>Kann MOUG für Objekt {0} nicht bestimmen.</translation>
     </message>
@@ -17863,12 +17877,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputFile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1978"/>
         <source>All files(*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1979"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien(*.%s)</translation>
     </message>
@@ -17876,7 +17890,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputHTML</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1983"/>
         <source>HTML files(*.html)</source>
         <translation>HTML Dateien (*.html)</translation>
     </message>
@@ -17884,7 +17898,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1987"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17892,47 +17906,47 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1991"/>
         <source>[Save to temporary file]</source>
         <translation>[In temporärer Datei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1992"/>
         <source>Save to a temporary file</source>
         <translation>In temporärer Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
         <source>Save to file...</source>
         <translation>In Datei speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1994"/>
         <source>Save to memory layer</source>
         <translation>In Memory-Layer speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1995"/>
         <source>Save to Spatialite table...</source>
         <translation>In Spatialite-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1996"/>
         <source>Save to PostGIS table...</source>
         <translation>In PostGIS-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1997"/>
         <source>Save Spatialite</source>
         <translation>Speichere Spatialite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1998"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1999"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
@@ -17940,7 +17954,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2003"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17974,12 +17988,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterMultipleInput</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2007"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2008"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17987,7 +18001,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2012"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17995,7 +18009,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2016"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18003,7 +18017,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2020"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18011,32 +18025,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2022"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2024"/>
         <source>[Not selected]</source>
         <translation>[nicht gewählt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2026"/>
         <source> [optional]</source>
         <translation> [optional]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2027"/>
         <source>Iterate over this layer</source>
         <translation>Iteriere über diesen Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2028"/>
         <source>Open output file after running algorithm</source>
         <translation>Öffne Ausgabedatei nach erfolgreicher Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2029"/>
         <source>[not set]</source>
         <translation>[nicht gesetzt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2025"/>
         <source> (xmin, xmax, ymin, ymax)</source>
         <translation> (xmin, xmax, ymin, ymax)</translation>
     </message>
@@ -18044,42 +18058,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglas</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2033"/>
         <source>Peuker Douglas</source>
         <translation>Peuker-Douglas</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2032"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2034"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2035"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2036"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2037"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2038"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2039"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2040"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -18087,42 +18101,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglasMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2044"/>
         <source>Peuker Douglas (multifile)</source>
         <translation>Peuker-Douglas (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2045"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2046"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2047"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2048"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2049"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2050"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2051"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -18130,57 +18144,57 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2056"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2057"/>
         <source>Linear (N*k x 3) distance matrix</source>
         <translation>Lineare (N*k x 3) Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
         <source>Standard (N x T) distance matrix</source>
         <translation>Standard (N x T) Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2059"/>
         <source>Summary distance matrix (mean, std. dev., min, max)</source>
         <translation>Zusammenfassende Distanzmatrix (mtl, std.abw., min, max.)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2060"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2061"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2062"/>
         <source>Target point layer</source>
         <translation>Zielpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2063"/>
         <source>Target unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Ziels</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2064"/>
         <source>Output matrix type</source>
         <translation>Typ der Ausgabematrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2065"/>
         <source>Use only the nearest (k) target points</source>
         <translation>Nur (k) nächste Zielpunkte verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2055"/>
         <source>Distance matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
@@ -18188,32 +18202,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsDisplacement</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2068"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2070"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2071"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2072"/>
         <source>Displacement distance</source>
         <translation>Verlagerungsdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2073"/>
         <source>Horizontal distribution for two point case</source>
         <translation>Horizontale Verteilung für Zweipunktefall</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2074"/>
         <source>Displaced</source>
         <translation>Versetzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2069"/>
         <source>Points displacement</source>
         <translation>Punktversatz</translation>
     </message>
@@ -18221,27 +18235,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2077"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2079"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2080"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2081"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2082"/>
         <source>Points along line</source>
         <translation>Punkte entlang Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2076"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2078"/>
         <source>Generate points (pixel centroids) along line</source>
         <translation>Punkte (Pixelzentren) entlang einer Linie erzeugen</translation>
     </message>
@@ -18249,27 +18263,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2087"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2086"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2088"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2089"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2088"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2090"/>
         <source>Points from polygons</source>
         <translation>Punkte aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2084"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2086"/>
         <source>Generate points (pixel centroids) inside polygons</source>
         <translation>Punkte (Pixelzentren) in Polygonen erzeugen</translation>
     </message>
@@ -18277,32 +18291,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygon</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2097"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2098"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2099"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2092"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2094"/>
         <source>Count points in polygon</source>
         <translation>Punkte in Polygon zählen</translation>
     </message>
@@ -18318,37 +18332,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonUnique</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2104"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2105"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2108"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2109"/>
         <source>Unique count</source>
         <translation>Eindeutige Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2103"/>
         <source>Count unique points in polygon</source>
         <translation>Eindeutige Punkte in Polygon zählen</translation>
     </message>
@@ -18356,37 +18370,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonWeighted</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2114"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2115"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2116"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2118"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2119"/>
         <source>Weighted count</source>
         <translation>Gewichtete Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
         <source>Count points in polygon(weighted)</source>
         <translation>Punkte in Polygon zählen (gewichtet)</translation>
     </message>
@@ -18394,37 +18408,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsLayerFromTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2122"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2124"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
         <source>X field</source>
         <translation>X-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
         <source>Y field</source>
         <translation>Y-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2128"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2129"/>
         <source>Points from table</source>
         <translation>Punkte aus Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2121"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2123"/>
         <source>Points layer from table</source>
         <translation>Punktlayer aus Tabelle</translation>
     </message>
@@ -18432,42 +18446,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsToPaths</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
         <source>Group field</source>
         <translation>Gruppierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2137"/>
         <source>Order field</source>
         <translation>Sortierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2138"/>
         <source>Date format (if order field is DateTime)</source>
         <translation>Datumsformat (wenn Sortierungsfeld DateTime ist)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2139"/>
         <source>Paths</source>
         <translation>Pfade</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2140"/>
         <source>Directory</source>
         <translation>Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2131"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2133"/>
         <source>Points to path</source>
         <translation>Punkte zu Weg</translation>
     </message>
@@ -18475,27 +18489,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolarPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2145"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2146"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2147"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2148"/>
         <source>Value field</source>
         <translation>Wertfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
         <source>Polar plot</source>
         <translation>Polarplot</translation>
     </message>
@@ -18503,42 +18517,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolyClipData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2155"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2154"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
         <source>Poly Clip Data</source>
         <translation>Poly-Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2153"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2156"/>
         <source>Output clipped LAS file</source>
         <translation>Zugeschnittene LAS-Datei ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2157"/>
         <source>Use Shape attribute</source>
         <translation>Shapeattribut nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2158"/>
         <source>Shape field index</source>
         <translation>Shapefeldindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2159"/>
         <source>Shape value</source>
         <translation>Shapewert</translation>
     </message>
@@ -18546,52 +18560,52 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
         <source>Processing lines...</source>
         <translation>Verarbeite Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
         <source>Noding lines...</source>
         <translation>Bestimme Knoten in Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2171"/>
         <source>Polygonizing...</source>
         <translation>Polygonisiert...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2172"/>
         <source>No polygons were created!</source>
         <translation>Es wurden keine Polygone erzeugt!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2164"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2166"/>
         <source>Keep table structure of line layer</source>
         <translation>Tabellenstruktur des Linienlayers beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2167"/>
         <source>Create geometry columns</source>
         <translation>Geometriespalten erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2168"/>
         <source>Polygons from lines</source>
         <translation>Polygone aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2163"/>
         <source>Polygonize</source>
         <translation>Polygonbildung</translation>
     </message>
@@ -18599,22 +18613,22 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolygonsToLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2177"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2178"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2177"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2179"/>
         <source>Lines from polygons</source>
         <translation>Linien aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2176"/>
         <source>Polygons to lines</source>
         <translation>Polygone zu Linien</translation>
     </message>
@@ -18622,36 +18636,36 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PostGISExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2186"/>
         <source>Wrong database connection name: %s</source>
         <translation>Falscher Datenbankverbindungsname: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2187"/>
         <source>Couldn't connect to database:
 %s</source>
         <translation>Keine Datenbankverbindung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2188"/>
         <source>Error executing SQL:
 %s</source>
         <translation>Fehler bei SQL-Ausführung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2184"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2183"/>
         <source>PostGIS execute SQL</source>
         <translation>PostGIS-SQL-Ausführen</translation>
     </message>
@@ -18667,7 +18681,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Postprocessing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2190"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2192"/>
         <source>Loading resulting layers</source>
         <translation>Lade Ergebnis Layer</translation>
     </message>
@@ -18688,75 +18702,75 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Processing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
         <source>Could not load provider: %s
 %s</source>
         <translation>Konnte Datenanbieter nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2197"/>
         <source>Error: Algorithm {0} not found
 </source>
         <translation>Fehler: Algorithmus {0} nicht gefunden
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2198"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2199"/>
         <source>Error: Wrong parameter value {0} for parameter {1}.</source>
         <translation>Fehler: Falscher Wert {0} für Parameter {1}.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
         <source>Error in %s. Wrong parameter value %s for parameter %s.</source>
         <translation>Fehler in %s. Falscher Parameterwert %s für Parameter %s.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
         <source>Error: Missing parameter value for parameter {0}.</source>
         <translation>Fehler: Fehlender Wert für Parameter {0}.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
         <source>Error in %s. Missing parameter value for parameter %s.</source>
         <translation>Fehler in %s. Fehlender Parameterwert for Parameter %s.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2203"/>
         <source>Error: Wrong number of parameters</source>
         <translation>Fehler: Falsche Parameteranzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2204"/>
         <source>Error: Wrong parameter value: </source>
         <translation>Fehler: Falscher Parameterwert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2205"/>
         <source>Error: Wrong output value: </source>
         <translation>Fehler: Falscher Ausgabewert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2206"/>
         <source>Unable to execute algorithm
 {0}</source>
         <translation>Kann Algorithmus nicht ausführen
 {0}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2207"/>
         <source>Warning: Not all input layers use the same CRS.
 This can cause unexpected results.</source>
         <translation>Warnung: Nicht alle Eingabelayer verwenden das gleiche KBS.
 Dies kann zu unerwarteten Ergebnissen führen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2208"/>
         <source>There were errors executing the algorithm.</source>
         <translation>Fehler bei der Ausführung des Algorithmus.</translation>
     </message>
@@ -18764,97 +18778,97 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingConfig</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2212"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2213"/>
         <source>Show extra info in Log panel</source>
         <translation>Zeige Extrainformation im Log Panel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
         <source>Keep dialog open after running an algorithm</source>
         <translation>Behalte Dialog nach Abschluss des Algorithmus offen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
         <source>Use only selected features</source>
         <translation>Nur gewählte Objekte nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2216"/>
         <source>Use filename as layer name</source>
         <translation>Benutze Dateinamen als Layernamen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2217"/>
         <source>Show recently executed algorithms</source>
         <translation>Zeige zuletzt ausgeführte Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2218"/>
         <source>Show tooltip when there are disabled providers</source>
         <translation>Tooltip anzeigen, wenn es abgeschaltete Anbieter gibt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
         <source>Output folder</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
         <source>Show layer CRS definition in selection boxes</source>
         <translation>Zeige Layer Koordinatensystem in Auswahlboxen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
         <source>Warn before executing if layer CRS's do not match</source>
         <translation>Zeige Warnung wenn Layer Koordinatensysteme nicht übereinstimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2222"/>
         <source>Style for raster layers</source>
         <translation>Stil für Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2223"/>
         <source>Style for point layers</source>
         <translation>Stil für Punktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2224"/>
         <source>Style for line layers</source>
         <translation>Stil für Linienlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
         <source>Style for polygon layers</source>
         <translation>Stil für Polygonlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
         <source>Pre-execution script</source>
         <translation>Skript zur Ausführung vor dem Run</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
         <source>Post-execution script</source>
         <translation>Skript zur Ausführung nach dem Run</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
         <source>Recent algs</source>
         <translation>Kürzliche verwendete Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2229"/>
         <source>Default output vector layer extension</source>
         <translation>Erweiterungsvoreingestellung für Vektorlayerausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2230"/>
         <source>Default output raster layer extension</source>
         <translation>Erweiterungsvoreingestellung für Rasterlayerausgaben</translation>
     </message>
@@ -18862,7 +18876,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingLog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2234"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
@@ -18870,42 +18884,42 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingPlugin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2238"/>
         <source>Pro&cessing</source>
         <translation>&Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
         <source>&Toolbox</source>
         <translation>&Werkzeugkiste</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2240"/>
         <source>Graphical &Modeler...</source>
         <translation>Grafische &Modellierung...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
         <source>&History...</source>
         <translation>&Historie...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2242"/>
         <source>&Options...</source>
         <translation>&Optionen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2243"/>
         <source>&Results Viewer...</source>
         <translation>&Ergebnisanzeige...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2244"/>
         <source>&Commander</source>
         <translation>&Commander</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2245"/>
         <source>Ctrl+Alt+M</source>
         <translation>Strg+Alt+M</translation>
     </message>
@@ -18914,62 +18928,62 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
     <name>ProcessingToolbox</name>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2256"/>
         <source>Processing Toolbox</source>
         <translation>Verarbeitungswerkzeuge</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="27"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
         <source>Enter algorithm name to filter list</source>
         <translation>Algorithmenname eingeben, um Liste zu filtern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="61"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2258"/>
         <source>There are disabled providers that contain algorithms including your text string. Click <a href="view">to view them.</a></source>
         <translation>Es gibt deaktivierte Anbieter, die passende Algorithmen enthalten (siehe <a href="view">Anzeige</a>).</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="84"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2259"/>
         <source><html><head/><body><p>You can add more algorithms to the toolbox, <a href="enable"><span style=" text-decoration: underline; color:#0000ff;">enable additional providers.</span></a>&nbsp;&nbsp;&nbsp;<a href="close"><span style=" text-decoration: underline; color:#0000ff;">[close]</span></a></p></body></html></source>
         <translation><html><head/><body><p>Durch <a href="enable"><span style=" text-decoration: underline; color:#0000ff;">Einschalten weiterer Anbieter</span> können der Werkzeugleiste mehr Algorithmen hinzugefügt werden.</a>&nbsp;&nbsp;&nbsp;<a href="close"><span style=" text-decoration: underline; color:#0000ff;">[schließen]</span></a></p></body>< [...]
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2249"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2250"/>
         <source>Execute</source>
         <translation>Ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2251"/>
         <source>Execute as batch process</source>
         <translation>Als Stapelprozeß ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
         <source>Edit rendering styles for outputs</source>
         <translation>Darstellungsstile zur Ausgabe bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2253"/>
         <source>Error executing algorithm</source>
         <translation>Fehler bei Algorithmenausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2254"/>
         <source><h3>This algorithm cannot be run :-( </h3>
 %s</source>
         <translation><h3>Dieser Algorithmus kann nicht ausgeführt werden run :-( </h3>
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2255"/>
         <source>Recently used algorithms</source>
         <translation>Zuletzt verwendete Algorithmen</translation>
     </message>
@@ -19027,7 +19041,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
         <translation>Stacktrace</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2263"/>
         <location filename="../python/python-i18n.cpp" line="30"/>
         <source>View message log</source>
         <translation>Protokoll anzeigen</translation>
@@ -19507,7 +19521,7 @@ QGIS-API ist über iface zu benutzen. Geben Sie help(iface) ein, um mehr Informa
 <context>
     <name>QGISAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2267"/>
         <source>QGIS geoalgorithms</source>
         <translation>QGIS-Geo-Algorithmen</translation>
     </message>
@@ -19646,27 +19660,27 @@ QGIS-API ist über iface zu benutzen. Geben Sie help(iface) ein, um mehr Informa
         <translation>Schätze Normalenableitungen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11295"/>
+        <location filename="../src/app/qgisapp.cpp" line="11321"/>
         <source>minidump written to %1</source>
         <translation>Minidump in %1 geschrieben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11299"/>
+        <location filename="../src/app/qgisapp.cpp" line="11325"/>
         <source>writing of minidump to %1 failed (%2)</source>
         <translation>Speichern des Minidumps in %1 gescheitert (%2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11306"/>
+        <location filename="../src/app/qgisapp.cpp" line="11332"/>
         <source>creation of minidump to %1 failed (%2)</source>
         <translation>Erzeugung des Minidump in %1 gescheitert (%2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11309"/>
+        <location filename="../src/app/qgisapp.cpp" line="11335"/>
         <source>Crash dumped</source>
         <translation>Absturz abgebildet</translation>
     </message>
     <message>
-        <location filename="../src/app/main.cpp" line="741"/>
+        <location filename="../src/app/main.cpp" line="752"/>
         <source>QGIS starting in non-interactive mode not supported.
 You are seeing this message most likely because you have no DISPLAY environment variable set.
 </source>
@@ -19707,7 +19721,7 @@ Diese Meldung erscheint höchstwahrscheinlich, weil die Umgebungsvariable DISPLA
     </message>
     <message>
         <location filename="../src/app/qgspluginregistry.cpp" line="267"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="404"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="408"/>
         <source>Python is not enabled in QGIS.</source>
         <translation>Python ist in QGIS nicht aktiviert.</translation>
     </message>
@@ -19715,15 +19729,15 @@ Diese Meldung erscheint höchstwahrscheinlich, weil die Umgebungsvariable DISPLA
         <location filename="../src/app/qgspluginregistry.cpp" line="267"/>
         <location filename="../src/app/qgspluginregistry.cpp" line="280"/>
         <location filename="../src/app/qgspluginregistry.cpp" line="294"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="321"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="347"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="387"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="394"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="404"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="561"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="593"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="323"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="349"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="391"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="398"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="408"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="565"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="597"/>
         <location filename="../src/plugins/compass/qgscompassplugin.cpp" line="37"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="78"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="82"/>
         <location filename="../src/plugins/grass/qgsgrassplugin.cpp" line="62"/>
         <source>Plugins</source>
         <translation>Erweiterungen</translation>
@@ -19741,65 +19755,65 @@ Sie wird deaktiviert.</translation>
         <translation>%1 geladen (Paket: %2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="316"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="318"/>
         <source>Library name is %1
 </source>
         <translation>Bibiliotheksname is %1
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="321"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="561"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="323"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="565"/>
         <source>Failed to load %1 (Reason: %2)</source>
         <translation>Konnte %1 nicht laden (Grund: %2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="325"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="327"/>
         <source>Attempting to resolve the classFactory function
 </source>
         <translation>Versuche die Funktion classFactory aufzulösen
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="347"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="349"/>
         <source>Loaded %1 (Path: %2)</source>
         <translation>%1 geladen (Pfad: %2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="377"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="381"/>
         <source>Error Loading Plugin</source>
         <translation>Fehler beim Laden der Erweiterung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="378"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="382"/>
         <source>There was an error loading a plugin.The following diagnostic information may help the QGIS developers resolve the issue:
 %1.</source>
         <translation>Beim Laden einer Erweiterung trat ein Fehler auf. Die folgenden Informationen könnten den QGIS-Entwicklern bei der Lösung des Problem helfen: %1.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="387"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="391"/>
         <source>Unable to find the class factory for %1.</source>
         <translation>Konnte die Klassenfabrik für %1 nicht finden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="394"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="398"/>
         <source>Plugin %1 did not return a valid type and cannot be loaded</source>
         <translation>Erweiterung %1 gab keinen gültigen Typ zurück und kann nicht geladen werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="474"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="528"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="478"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="532"/>
         <source>Plugin %1</source>
         <translation>Erweiterung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="474"/>
-        <location filename="../src/app/qgspluginregistry.cpp" line="528"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="478"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="532"/>
         <source>The plugin will be disabled because it crashed QGIS during last startup. Please report an issue and re-enable the plugin when the problem has been solved.</source>
         <translation>Diese Erweiterung wird deaktiviert weil es QGIS beim letzten Start zum Absturz gebracht hat. Bitte diese Problem melden und wieder aktivieren, wenn es gelöst wurde.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgspluginregistry.cpp" line="592"/>
+        <location filename="../src/app/qgspluginregistry.cpp" line="596"/>
         <source>Error when reading metadata of plugin %1</source>
         <translation>Fehler beim Lesen der Metadaten der Erweiterung %1</translation>
     </message>
@@ -19823,7 +19837,7 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1253"/>
         <location filename="../src/core/qgsdistancearea.cpp" line="239"/>
         <location filename="../src/providers/grass/qgsgrassgislib.cpp" line="231"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3293"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3309"/>
         <location filename="../src/server/qgssldconfigparser.cpp" line="1699"/>
         <source>Generated CRS</source>
         <comment>A CRS automatically generated from layer info get this prefix for description</comment>
@@ -19835,7 +19849,7 @@ Fehler(%2): %3</translation>
         <translation>Benutzer-KBS gespeichert [%1]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1810"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1814"/>
         <source>Imported from GDAL</source>
         <translation>Importiert aus GDAL</translation>
     </message>
@@ -20062,61 +20076,61 @@ Fehler(%2): %3</translation>
         <translation>Funktion make_polygon erfordert ein Argument</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="1607"/>
+        <location filename="../src/core/qgsexpression.cpp" line="1610"/>
         <source>Index is out of range</source>
         <translation>Index außerhalb des Bereichs</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2076"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2081"/>
         <source>Function `azimuth` requires exactly two parameters. %1 given.</source>
         <translation>Funktion `azimuth` erfordert genau zwei Parameter. %1 angegeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2088"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2093"/>
         <source>Function `azimuth` requires two points as arguments.</source>
         <translation>Funktion `azimuth` erfordert zwei Punkte als Argumente.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2278"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2283"/>
         <source>Number of places must be positive</source>
         <translation>Anzahl der Stellen muß positiv sein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2299"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2371"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2411"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2304"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2376"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2416"/>
         <source>Cannot convert '%1:%2:%3' to color</source>
         <translation>Kann %1:%2:%3 nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2338"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2392"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2432"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2453"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2343"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2397"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2437"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2458"/>
         <source>Cannot convert '%1:%2:%3:%4' to color</source>
         <translation>Kann %1:%2:%3:%4 nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2350"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2355"/>
         <source>"%1" is not a valid color ramp</source>
         <translation>"%1" ist kein gültiger Farbverlauf</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2476"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2481"/>
         <source>Cannot convert '%1:%2:%3:%4:%5' to color</source>
         <translation>Kann '%1:%2:%3:%4:%5' nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2487"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2530"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2577"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2591"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2492"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2535"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2582"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2596"/>
         <source>Cannot convert '%1' to color</source>
-        <translation>Kann '%1:%2:%3:%4:%5' nicht in Farbe umwandeln</translation>
+        <translation>Kann '%1' nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2521"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2566"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2526"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2571"/>
         <source>Unknown color component '%1'</source>
         <translation>Unbekannter Farbteil '%1'</translation>
     </message>
@@ -20405,33 +20419,33 @@ Fehler(%2): %3</translation>
         <translation>Layererzeugung schlug fehl (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="417"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="424"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="380"/>
         <source>unsupported type for field %1</source>
         <translation>Feldtyp für %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="470"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="477"/>
         <source>creation of field %1 failed (OGR error: %2)</source>
         <translation>Erzeugung des Felds %1 gescheitert (OGR-Fehler: %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="506"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="513"/>
         <source>created field %1 not found (OGR error: %2)</source>
         <translation>Erzeugtes Feld %1 nicht gefunden (OGR-Fehler: %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1839"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1846"/>
         <source>Invalid variant type for field %1[%2]: received %3 with type %4</source>
         <translation>Ungültiger Typ für Feld %1[%2]: %3 mit Typ %4 empfangen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="447"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1844"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1902"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1913"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1929"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1952"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="454"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1851"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1909"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1920"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1936"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1959"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="66"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1647"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2159"/>
@@ -20445,68 +20459,68 @@ Fehler(%2): %3</translation>
         <translation>OGR</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="442"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="449"/>
         <source>no available replacement for internal fieldname ogc_fid found</source>
         <translation>Keinen verfügbaren Ersatz für den internen Feldnamen ogc_fid gefunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="447"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="454"/>
         <source>Reserved attribute name ogc_fid replaced with %1</source>
         <translation>Reservierten Attributnamen ogc_fid durch %1 ersetzt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="574"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="581"/>
         <source>By default, BNA files are created in multi-line format. For each record, the first line contains the identifiers and the type/number of coordinates to follow. Each following line contains a pair of coordinates.</source>
         <translation>Voreingestellt ist, dass BNA-Dateien in mehrzeiligem Format erzeugt werden.  Jeder Datensatz enthält in der ersten Zeile die Bezeichner und den Typ/Anzahl der Koordinaten. Jede folgende Zeile enthält ein Koordinatenpaar.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1899"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1910"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1926"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1906"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1917"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1933"/>
         <source>Feature geometry not imported (OGR error: %1)</source>
         <translation>Objektgeometrie nicht importiert (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1950"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1957"/>
         <source>Feature creation error (OGR error: %1)</source>
         <translation>Objekterzeugungsfehler (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2202"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2209"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="377"/>
         <source>Failed to transform a point while drawing a feature with ID '%1'. Writing stopped. (Exception: %2)</source>
         <translation>Transformation eines Punkts schlug beim Zeichnen eines Objekts mit der ID '%1' fehl. Schreiben beendet (Ausnahme %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2227"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2234"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="328"/>
         <source>Feature write errors:</source>
         <translation>Objektschreibfehler:</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2237"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2244"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="355"/>
         <source>Stopping after %1 errors</source>
         <translation>Abbruch nach %1 Fehlern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2260"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2826"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2267"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2833"/>
         <source>
 Only %1 of %2 features written.</source>
         <translation>
 Nur %1 von %2 Objekten geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="550"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2447"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="557"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2454"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1659"/>
         <source>Arc/Info ASCII Coverage</source>
         <translation>Arc/Info ASCII Coverage</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="615"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2454"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="622"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2461"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1664"/>
         <source>Atlas BNA</source>
         <translation>Atlas BNA</translation>
@@ -20517,19 +20531,19 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Komma-separierte Werte [CSV]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="730"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2468"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="737"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2475"/>
         <source>ESRI Shapefile</source>
         <translation>ESRI-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2475"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2482"/>
         <source>DBF file</source>
         <translation>DBF-Datei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="760"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2482"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="767"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2489"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1701"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1703"/>
         <source>FMEObjects Gateway</source>
@@ -20541,552 +20555,552 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Leerer Dateiname angegeben</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="563"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="570"/>
         <source>New BNA files are created by the systems default line termination conventions. This may be overridden here.</source>
         <translation>Neue BNA-Dateien werden normalerweise mit systemüblichen Zeilenenden erzeugt. Dies kann hier geändert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="582"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="589"/>
         <source>BNA records may contain from 2 to 4 identifiers per record. Some software packages only support a precise number of identifiers. You can override the default value (2) by a precise value</source>
         <translation>BNA-Datensätze enthalten 2 bis 4 Bezeichner je Datensatz.  Einige Softwarepakete unterstützen nur eine bestimmte Bezeichneranzahl. Sie können hier die voreingestellte Anzahl (2) durch einen bestimmten Wert ersetzen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="594"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="601"/>
         <source>The BNA writer will try to recognize ellipses and circles when writing a polygon. This will only work if the feature has previously been read from a BNA file. As some software packages do not support ellipses/circles in BNA data file, it may be useful to tell the writer by specifying ELLIPSES_AS_ELLIPSES=NO not to export them as such, but keep them as polygons.</source>
         <translation>Die BNA-Ausgabe versucht Ellipsen und Kreise beim Schreiben eines Polygons zu erkennen. Die funktioniert nur, wenn das Objekt vorher aus einer BNA-Datei gelesen wurde. Da mansche Software Ellipsen/Kreise in BNA-Dateien nicht unterstützt, kann es sinnvoll sein der Ausgabe über ELLIPSES_AS_ELLIPSES=NO mitzuteilen, dies nicht als solche zu schreiben, sondern als Polygone zu belassen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="603"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="610"/>
         <source>Limit the number of coordinate pairs per line in multiline format.</source>
         <translation>Die Anzahl der Koordinaten je Zeile im mehrzeiligen Format beschränken.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="608"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="615"/>
         <source>Set the number of decimal for coordinates. Default value is 10.</source>
         <translation>Die Anzahl der Nachkommastellen für Koordinaten. Voreinstellung 10.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="640"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="647"/>
         <source>By default, the geometry of a feature written to a .csv file is discarded. It is possible to export the geometry in its WKT representation by specifying GEOMETRY=AS_WKT. It is also possible to export point geometries into their X,Y,Z components by specifying GEOMETRY=AS_XYZ, GEOMETRY=AS_XY or GEOMETRY=AS_YX.</source>
         <translation>Die Geometrie eines Objekts wird normalerweise nicht ausgegeben.  Durch die Angabe von GEOMETRY_ASWKT ist es allerdings möglich eine WKT-Darstellung zu exportieren. Für Punkte kann man mit GEOMETRY=AS_XYZ, GEOMETRY=AS_XY or GEOMETRY=AS_YX kann man auch die einzelnen X,Y,Z-Komponenten ausgeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="655"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="662"/>
         <source>Create the associated .csvt file to describe the type of each column of the layer and its optional width and precision.</source>
         <translation>Eine zugehörigte .csvt-Datei erzeugen, um die den Typ und ggf. Breite und Genauigkeit der Spalte anzugeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="670"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="677"/>
         <source>Write a UTF-8 Byte Order Mark (BOM) at the start of the file.</source>
         <translation>UTF-8-Byte-Order-Mark (BOM) am Dateianfang schreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="677"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2461"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="684"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2468"/>
         <source>Comma Separated Value [CSV]</source>
         <translation>Komma-getrennte Werte [CSV]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="690"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="697"/>
         <source>Override the type of shapefile created. Can be one of NULL for a simple .dbf file with no .shp file, POINT, ARC, POLYGON or MULTIPOINT for 2D, or POINTZ, ARCZ, POLYGONZ or MULTIPOINTZ for 3D. Shapefiles with measure values are not supported, nor are MULTIPATCH files.</source>
         <translation>Typ der Shapedatei ändern. Kann NULL für eine einfache DBF-Datei ohne .shp-Datei sein, POINT, ARC, POLYGON oder MULTIPOINT für 2D oder POINTZ, ARCZ, POLYGONZ oder MULTIPOINTZ für 3D.  Shapedateien mit Maßwerten oder MULTIPATCH-Dateien werden nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="713"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="720"/>
         <source>set the encoding value in the DBF file. The default value is LDID/87. It is not clear what other values may be appropriate.</source>
         <translation>DBF-Zeichenkodierung der DBF-Datei festlegen. Die Voreinstellung ist LDID/87. Es ist unklar welche anderen Werte geeignet sind.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="723"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="730"/>
         <source>Set to YES to resize fields to their optimal size.</source>
         <translation>Auf YES setzen, um die Felder auf ihre optimale Größe zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="745"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="752"/>
         <source>DBF File</source>
         <translation>DBF-Datei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="773"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="780"/>
         <source>Set to YES to write a bbox property with the bounding box of the geometries at the feature and feature collection level.</source>
         <translation>Auf YES setzten, um die BBOX-Eigenschaft mit den Abmessungen der Geometrie auf Objekt- und Objektsammlungsebene zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="779"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="786"/>
         <source>Maximum number of figures after decimal separator to write in coordinates. Default to 15. Truncation will occur to remove trailing zeros.</source>
         <translation>Maximalzahl der zuschreibenden Nachkommastellen der Koordinaten. Voreingestellt ist 15. Schließende Nullen werden abgeschnitten.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="787"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2489"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="794"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2496"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1709"/>
         <source>GeoJSON</source>
         <translation>GeoJSON</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="800"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="807"/>
         <source>whether the document must be in RSS 2.0 or Atom 1.0 format. Default value : RSS</source>
         <translation>Ob das Dokument RSS 2.0- oder Atom 1.0-Format haben soll.  Voreingestellung: RSS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="809"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="816"/>
         <source>The encoding of location information. Default value : SIMPLE. W3C_GEO only supports point geometries. SIMPLE or W3C_GEO only support geometries in geographic WGS84 coordinates.</source>
         <translation>Die Kodierung der Positionsinformation. Voreinstellung: SIMPLE. W3C_GEO unterstützt nur Punktgeomtrie. SIMPLE oder W3C_GEO unterstützen nur Geometrien ins geographischen WGS84-Koordinaten.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="829"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="836"/>
         <source>If defined to NO, only <entry> or <item> elements will be written. The user will have to provide the appropriate header and footer of the document.</source>
         <translation>Wenn auf NO gesetzt werden nur <entry> oder <item>-Elemente geschrieben. Der Benutzer muß die passenden Kopf- und Fußzeilen des Dokuments bereitstellen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="835"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="842"/>
         <source>XML content that will be put between the <channel> element and the first <item> element for a RSS document, or between the xml tag and the first <entry> element for an Atom document. </source>
         <translation>XML-Inhalt der zwischen <channel>-Element und das erste <item>-Element des RSS-Dokuments bzw. zwischen das XML-Tag und das erste <entry>-Element des Atom-Dokuments gesetzt wird. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="842"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="849"/>
         <source>Value put inside the <title> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <title>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="848"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="855"/>
         <source>Value put inside the <description> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <description>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="854"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="861"/>
         <source>Value put inside the <link> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <link>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="860"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="867"/>
         <source>Value put inside the <updated> element in the header. Should be formatted as a XML datetime. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <updated>-Element im Kopf gesetzt wird. Sollte als XML-datetime formatiert werden. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="867"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="874"/>
         <source>Value put inside the <author><name> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <author><name>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="873"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="880"/>
         <source>Value put inside the <id> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <id>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="881"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2503"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="888"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2510"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1714"/>
         <source>GeoRSS</source>
         <translation>GeoRSS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="894"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="901"/>
         <source>If provided, this URI will be inserted as the schema location. Note that the schema file isn't actually accessed by OGR, so it is up to the user to ensure it will match the schema of the OGR produced GML data file.</source>
         <translation>Wenn angegeben wird dies URI als Schemaort angegeben. Zu beachten ist, dass die Schemadatei nicht von OGR gelesen wird, daher obliegt es dem Benutzer sicherzustellen, dass es der durch OGR erzeugten GML-Datendatei entspricht.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="902"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="909"/>
         <source>This writes a GML application schema file to a corresponding .xsd file (with the same basename). If INTERNAL is used the schema is written within the GML file, but this is experimental and almost certainly not valid XML. OFF disables schema generation (and is implicit if XSISCHEMAURI is used).</source>
         <translation>Dies schreibt eine GML-Applikationschemadatei in die korrespondierende .xsd-Datei (mit dem gleichen Namensbasis). Wenn INTERNAL verwendet wird, wird das Schema in die GML-Datei geschrieben, aber dies ist experimentell und mit Sicherheit kein gültiges XML. OFF schaltet die Schemagenerierung ab (und wird implizit angenommen, wenn XSISCHEMAUIR verwendet wird).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="915"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="922"/>
         <source>This is the prefix for the application target namespace.</source>
         <translation>Dies ist das Präfix für den Applikationszielnamensraum.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="920"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="927"/>
         <source>Can be set to TRUE to avoid writing the prefix of the application target namespace in the GML file.</source>
         <translation>Kann TRUE sein, um das Schreiben des Applikationsnamensraumspräfix in die GML-Dateien zu vermeiden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="926"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="933"/>
         <source>Defaults to 'http://ogr.maptools.org/'. This is the application target namespace.</source>
         <translation>Voreinstellung: 'http://ogr.maptools.org/'. Dies ist der Applikationszielnamensraum.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="932"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="939"/>
         <source>If not specified, GML2 will be used.</source>
         <translation>Wenn nicht angegeben, wird GML2 genutzt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="942"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="949"/>
         <source>only valid when FORMAT=GML3/GML3Degree/GML3.2) Default to YES. If YES, SRS with EPSG authority will be written with the 'urn:ogc:def:crs:EPSG::' prefix. In the case, if the SRS is a geographic SRS without explicit AXIS order, but that the same SRS authority code imported with ImportFromEPSGA() should be treated as lat/long, then the function will take care of coordinate order swapping. If set to NO, SRS with EPSG authority will be written with the 'EPSG:&ap [...]
         <translation>nur gültig wenn FORMAT=GML3/GML3Degree/GML3.2). Voreingestellt ist YES. Wenn auf YES gesetzt, werden KBS mit EPSG-Autorität mit dem Präfix 'urn:ogc:def:crs:EPSG::' geschrieben. Wenn das KBS ein geographisches KBS mit expliziter Achsenreihenfolge ist, aber gleiche mit importFromEPSGA() importierte SRS-Autoritätscode als lat/long behandelt werden soll, sorgt die Funktion für den Koordinatentausch. Wenn auf NO gesetzt, werden KBS mit EPSG-Autorität mit dem &ap [...]
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="954"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="961"/>
         <source>only valid when FORMAT=GML3/GML3Degree/GML3.2) Default to YES. If set to NO, the <gml:boundedBy> element will not be written for each feature.</source>
         <translation>Nur gültig, wenn FORMAT=GML3/GML3Degree/GML3.2.  Voreingestellt YES.  Wenn auf NO gesetzt wird das Element <gml:boundedBy> nicht für jedes Objekt geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="961"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="968"/>
         <source>Default to YES. If YES, the output will be indented with spaces for more readability, but at the expense of file size.</source>
         <translation>Voreingestellt auf YES. Wenn YES, wird die Ausgabe zur besseren Lesbarkeit mit Leerzeichen auf Kosten der Dateigröße eingerückt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="970"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2510"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="977"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2517"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1719"/>
         <source>Geography Markup Language [GML]</source>
         <translation>Geography Markup Language [GML]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="985"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2517"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="992"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2524"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1724"/>
         <source>Generic Mapping Tools [GMT]</source>
         <translation>Generic Mapping Tools [GMT]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="998"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1005"/>
         <source>By default when writing a layer whose features are of type wkbLineString, the GPX driver chooses to write them as routes. If FORCE_GPX_TRACK=YES is specified, they will be written as tracks.</source>
         <translation>Für das Schreiben von Layern mit Objekten vom Typ wkbLineString ist für den GPX-Treiber die Ausgabe als Routen voreingestellt. Wenn FORCE_GPX_TRACK=YES angegeben ist, werden sie als Spuren geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1006"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1013"/>
         <source>By default when writing a layer whose features are of type wkbMultiLineString, the GPX driver chooses to write them as tracks. If FORCE_GPX_ROUTE=YES is specified, they will be written as routes, provided that the multilines are composed of only one single line.</source>
         <translation>Für das Schreiben von Layern mit Objekten vom Typ wkbMultiLineString ist für den GPX-Treiber die Ausgabe als Spuren voreingestellt. Wenn FORCE_GPX_ROUTE=YES angegeben ist, werden sie als Routen geschrieben, vorausgesetzt sie bestehen aus einer einzigen Linie.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1015"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1022"/>
         <source>If GPX_USE_EXTENSIONS=YES is specified, extra fields will be written inside the <extensions> tag.</source>
         <translation>Wenn GPS_USE_EXTENSIONS=YES angegeben ist, werden zusätztliche Felder in das <extension>-Tag geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1021"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1028"/>
         <source>Only used if GPX_USE_EXTENSIONS=YES and GPX_EXTENSIONS_NS_URL is set. The namespace value used for extension tags. By default, 'ogr'.</source>
         <translation>Nur genutzt, wenn GPX_USE_EXTENSIONS=YES und GPX_EXTENSIONS_NS_URI gesetzt ist, Der für Extentiontags genutzte Namensraumwert. Voreingestellt: 'ogr'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1027"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1034"/>
         <source>Only used if GPX_USE_EXTENSIONS=YES and GPX_EXTENSIONS_NS is set. The namespace URI. By default, 'http://osgeo.org/gdal'.</source>
         <translation>Nur genutzt, wenn GPX_USE_EXTENSIONS=YES und GPX_EXTENSIONS_NS gesetzt ist, Die Namensraum-URI. Voreingestellt: 'http://osgeo.org/gdal'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1033"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1040"/>
         <source>By default files are created with the line termination conventions of the local platform (CR/LF on win32 or LF on all other systems). This may be overridden through use of the LINEFORMAT layer creation option which may have a value of CRLF (DOS format) or LF (Unix format).</source>
         <translation>Wenn neue Dateien erzeugt werden, werden diese normalerweise mit den Zeilenendekonvention der lokalen Plattform geschrieben (CR/LF unter Windows oder LF auf anderen Systemen). Dies kann mit der LINEFORMAT-Layererzeugungsoptionen festgelegt werden, der den Wert CRLF (DOS-Format) oder LF (Unix-Format) haben kann.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1048"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2524"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1055"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2531"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1729"/>
         <source>GPS eXchange Format [GPX]</source>
         <translation>GPS-Austauschformat [GPX]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1063"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2531"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1070"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2538"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1747"/>
         <source>INTERLIS 1</source>
         <translation>INTERLIS 1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1078"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2538"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1085"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2545"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1752"/>
         <source>INTERLIS 2</source>
         <translation>INTERLIS 2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1091"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1098"/>
         <source>Allows you to specify the field to use for the KML <name> element. </source>
         <translation>Erlaubt die Angabe des Felds zur Verwendung als KML-Element <name>. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1096"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1103"/>
         <source>Allows you to specify the field to use for the KML <description> element.</source>
         <translation>Erlaubt die Angabe des Felds zur Verwendung als KML-Element <description>. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1101"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1108"/>
         <source>Allows you to specify the AltitudeMode to use for KML geometries. This will only affect 3D geometries and must be one of the valid KML options.</source>
         <translation>Erlaubt die Angebe des AltitudeMode für KML-Geometrien. Dies wirkt sich nur auf 3D-Geometrien aus und muss einer gültige KML-Einstellung entsprechen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1113"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2545"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1120"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2552"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1761"/>
         <source>Keyhole Markup Language [KML]</source>
         <translation>Keyhole Markup Language [KML]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1126"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1133"/>
         <source>Use this to turn on 'quick spatial index mode'. In this mode writing files can be about 5 times faster, but spatial queries can be up to 30 times slower.</source>
         <translation>Zum Einschalten des schnellen räumlichen Indizierungsmodus. In diesem Modus werden die Dateien etwa fünfmal schneller geschrieben, aber räumliche Abfragen können dreizigmal langsamer sein.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1138"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2552"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1145"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2559"/>
         <source>Mapinfo TAB</source>
         <translation>Mapinfo-TAB</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1150"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2560"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1157"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2567"/>
         <source>Mapinfo MIF</source>
         <translation>Mapinfo-MIF</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1163"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1170"/>
         <source>Determine whether 2D (seed_2d.dgn) or 3D (seed_3d.dgn) seed file should be used. This option is ignored if the SEED option is provided.</source>
         <translation>Legt fest, ob die 2D- (seed_2d.dgn) oder 3D-Vorlagedatei (seed_3d.dgn) benutzt werden soll. Diese Option wird ignoriert, wenn die SEED-Option angegeben ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1169"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1176"/>
         <source>Override the seed file to use.</source>
         <translation>Zu verwendende Vorlagendatei vorgeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1174"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1181"/>
         <source>Indicate whether the whole seed file should be copied. If not, only the first three elements will be copied.</source>
         <translation>Festlegen, ob die ganze Vorlagendatei kopiert werden soll. Wenn nicht werden nur die ersten drei Element kopiert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1180"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1187"/>
         <source>Indicates whether the color table should be copied from the seed file.</source>
         <translation>Gibt an, ob die Farbtabelle aus der Vorlagendatei kopiert werden soll.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1185"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1192"/>
         <source>Override the master unit name from the seed file with the provided one or two character unit name.</source>
         <translation>Haupteinheitennamen aus der Vorlagendatei mit den angegebenen ein- oder zweistelligen Einheitenname überschreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1191"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1198"/>
         <source>Override the sub unit name from the seed file with the provided one or two character unit name.</source>
         <translation>Untereinheitennamen aus der Vorlagendatei mit den angegebenen ein- oder zweistelligen Einheitenname überschreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1197"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1204"/>
         <source>Override the number of subunits per master unit. By default the seed file value is used.</source>
         <translation>Anzahl der Untereinheiten pro Haupteinheit. Voreingestellt wird der Wert der Vorlagendatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1203"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1210"/>
         <source>Override the number of UORs (Units of Resolution) per sub unit. By default the seed file value is used.</source>
         <translation>Anzahl der UORs (Auflösungseinheiten) pro Untereinheit überschreiben. Voreingestellt wird der Wert aus der Vorlagedatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1209"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1216"/>
         <source>ORIGIN=x,y,z: Override the origin of the design plane. By default the origin from the seed file is used.</source>
         <translation>ORIGIN=x,y,z: Ursprung der Entwurfsebene überschreiben. Voreingestellt wird der Ursprung aus der Vorlagedatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1217"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1232"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2567"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1224"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1239"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2574"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1771"/>
         <source>Microstation DGN</source>
         <translation>Microstation DGN</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1245"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1252"/>
         <source>Should update files be incorporated into the base data on the fly. </source>
         <translation>Sollen Aktualisierungsdateien unmittelbar in die Basisdaten integriert werden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1261"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1268"/>
         <source>Should a DEPTH attribute be added on SOUNDG features and assign the depth of the sounding. This should only be enabled with SPLIT_MULTIPOINT is also enabled.</source>
         <translation>Soll ein DEPTH-Attribut den SOUNDG-Objekten hinzugefügt und die Tiefe der Peilung zugewiesen werden? Dies sollte nur eingeschaltet werden, wenn SPLIT_MULTIPOINT auch eingeschaltet ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1268"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1275"/>
         <source>Should all the low level geometry primitives be returned as special IsolatedNode, ConnectedNode, Edge and Face layers.</source>
         <translation>Sollten alle primitiven Geometrien als spezielle IsolatedNode-, ConnectedNode-, Edge- oder Face-Layer zurückgegeben werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1274"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1281"/>
         <source>If enabled, numeric attributes assigned an empty string as a value will be preserved as a special numeric value. This option should not generally be needed, but may be useful when translated S-57 to S-57 losslessly.</source>
         <translation>Wenn aktiviert werden numerischen Attributen, die eine leere Zeichenkette enthalten, als spezielle numerische Werte erhalten. Diese Option sollte nicht grundsätzlich notwendig sein, kann aber sinnvoll sein, wenn S-57 in S-57 verlustfrei übersetzt wird.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1281"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1288"/>
         <source>Should LNAM and LNAM_REFS fields be attached to features capturing the feature to feature relationships in the FFPT group of the S-57 file.</source>
         <translation>Sollen den Objekten LNMA- und LNAM_REFS-Felder zugeordnet werden, die die Beziehungen in der FFPT-Gruppe der S-57-Datei abbilden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1287"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1294"/>
         <source>Should additional attributes relating features to their underlying geometric primitives be attached. These are the values of the FSPT group, and are primarily needed when doing S-57 to S-57 translations.</source>
         <translation>Sollten zusätzliche Attribute hinzugefügt werden, die die Objekt mit den darunterliegenden Geometrieprimitiven in Beziehung bringen. Dies sind die Werte der FSPT-Gruppe und werden hauptsächlich für die S-57 nach S-57 Übersetzung benötigt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1294"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1301"/>
         <source>Should attribute values be recoded to UTF-8 from the character encoding specified in the S57 DSSI record.</source>
         <translation>Sollten Attributwerte von der im S57-DSSI-Datensatz angegebenen Kodierung in UTF-8 umkodiert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1304"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2574"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1311"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2581"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1804"/>
         <source>S-57 Base file</source>
         <translation>S-57 Base-Datei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1319"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2581"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1326"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2588"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1810"/>
         <source>Spatial Data Transfer Standard [SDTS]</source>
         <translation>Spatial Data Transfer Standard [SDTS]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1332"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1406"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1339"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1413"/>
         <source>Can be used to avoid creating the geometry_columns and spatial_ref_sys tables in a new database. By default these metadata tables are created when a new database is created.</source>
         <translation>Kann verwendet werden, um die Erzeugung Tabellen geometry_columns und spatial_ref_sys in der neuen Datenbank zu vermeiden. Normalerweise werden diese Tabellen in einer neuen Datenbank immer erstellt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1349"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1356"/>
         <source>Controls the format used for the geometry column. Defaults to WKB.This is generally more space and processing efficient, but harder to inspect or use in simple applications than WKT (Well Known Text).</source>
         <translation>Steuert das Format der Geometriespalten. Voreingestellt ist WKB. Diese ist grundsätzlich platz- und verarbeitungseffizient, aber schwerer als WKT (Well-Known-Text) zu lesen und in einfachen Applikation zu verwenden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1378"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1459"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1385"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1466"/>
         <source>column_name1[,column_name2, ...] A list of (String) columns that must be compressed with ZLib DEFLATE algorithm. This might be beneficial for databases that have big string blobs. However, use with care, since the value of such columns will be seen as compressed binary content with other SQLite utilities (or previous OGR versions). With OGR, when inserting, modifying or queryings compressed columns, compression/decompression is done transparently. However, such columns ca [...]
         <translation>column_name1[,column_name2, ...] Eine Liste von (Zeichenketten-)Spalten, die mit dem Zlib-DEFLATE-Algorithmus komprimiert werden müssen.  Dies kann bei Datenbanken mit langen Zeichenkette nützlich sein. Ist jedoch mit Sorgfalt zu verwenden, da solche Splaten in anderen SQLite-Werkzeugen (oder älteren OGR-Version) als komprimierten Binärdaten dargestellt werden. 'Mit OGR wird die (De-)Kompression beim Einfügen, Ändern und Abfragen der Spalten transparent vorgenom [...]
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="628"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="635"/>
         <source>By default when creating new .csv files they are created with the line termination conventions of the local platform (CR/LF on Win32 or LF on all other systems). This may be overridden through the use of the LINEFORMAT option.</source>
         <translation>Wenn neue Dateien erzeugt werden, werden diese normalerweise mit den Zeilenendekonvention der lokalen Plattform geschrieben (CR/LF unter Windows oder LF auf anderen Systemen). Dies kann mit der LINEFORMAT-Layererzeugungsoptionen geändert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="661"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="668"/>
         <source>Field separator character.</source>
         <translation>Feldtrennzeichen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="820"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="827"/>
         <source>If defined to YES, extension fields will be written. If the field name not found in the base schema matches the foo_bar pattern, foo will be considered as the namespace of the element, and a <foo:bar> element will be written. Otherwise, elements will be written in the <ogr:> namespace.</source>
         <translation>Wenn auf YES gesetzt, werten Erweiterungsfelder geschrieben. Wenn der im Grundschema nicht vorhandene Feldname dem foo_bar-Muster entspricht, wird foo als Namensraum des Elements angesehen und eine Element <foo:bar> geschrieben. Anderenfalls werden die Element in den <ogr:>-Namensraum gelegt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1253"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1260"/>
         <source>Should multipoint soundings be split into many single point sounding features. Multipoint geometries are not well handled by many formats, so it can be convenient to split single sounding features with many points into many single point features.</source>
         <translation>Ob Mehrpunktpeilungs- in Einzelpunktpeilungsobjekte geteilt werden sollen. Mehrpunktgeometrien werden in vielen Formaten nicht gut unterstützt, daher kann es bequem sein die Einzelpeilungsobjekt mit vielen Punkt in viele Einzelpunktobjekte zu teilen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1359"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1427"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1366"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1434"/>
         <source>Controls whether layer and field names will be laundered for easier use in SQLite. Laundered names will be converted to lower case and some special characters(' - #) will be changed to underscores.</source>
         <translation>Steuert ob Layer- und Feldnamen für die einfachere Verwendung in SQLite bereinigt werden sollen.  Bereinigte Feldnamen werden in Kleinschreibung umgewandelt und einige Sonderzeichen (' - #) werden in Unterstriche geändert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1393"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2588"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1400"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2595"/>
         <source>SQLite</source>
         <translation>SQLite</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1417"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1424"/>
         <source>Insert the content of the EPSG CSV files into the spatial_ref_sys table. Set to NO for regular SQLite databases.</source>
         <translation>Den Inhalt der EPSG-CSV-Dateien in die Tabelle spatial_ref_sys einfügen. Für normale SQLite-Datenbanken auf NO setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1434"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1441"/>
         <source>If the database is of the SpatiaLite flavour, and if OGR is linked against libspatialite, this option can be used to control if a spatial index must be created.</source>
         <translation>Wenn es sich um eine SpatiaLite-Datenbank handelt und OGR gegen libspatialite gelinkt ist, kann diese Option verwendet werden, um zu steuern ob ein räumlicher Index erzeugt werden muß.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1441"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1448"/>
         <source>If the format of the geometry BLOB is of the SpatiaLite flavour, this option can be used to control if the compressed format for geometries (LINESTRINGs, POLYGONs) must be used</source>
         <translation>Wenn das Geometrieformat SpatiaLite ist, kann diese Option verwendet werden, um das Kompressionsformat für Geometrien (LINESTRINGs, POLYGONe) zu steuern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1448"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1455"/>
         <source>Used to force the SRID number of the SRS associated with the layer. When this option isn't specified and that a SRS is associated with the layer, a search is made in the spatial_ref_sys to find a match for the SRS, and, if there is no match, a new entry is inserted for the SRS in the spatial_ref_sys table. When the SRID option is specified, this search (and the eventual insertion of a new entry) will not be done: the specified SRID is used as such.</source>
         <translation>Wird benutzt, um die SRID des dem Layer zugeordneten KBS festzulegen. Wenn diese Option nicht angegeben ist und dem Layer ein KBS zugeordnet ist, wird eine Suche in spatial_ref_sys nach dem KBS durchgeführt und das KBS in spatial_ref_sys eingefügt, wenn es keinen Treffer gibt.  Wenn die SRID-Option angegeben ist, wird diese Suche (und ggf. die Erzeugung eines neuen Eintrags) nicht durchgeführt und die SRID direkt verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1474"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2596"/>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="307"/>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="434"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1481"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2603"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="313"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="440"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1487"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1494"/>
         <source>Override the header file used - in place of header.dxf.</source>
         <translation>Anderen Dateikopf statt header.dxf verwenden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1492"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1499"/>
         <source>Override the trailer file used - in place of trailer.dxf.</source>
         <translation>Anderen Dateifuß statt trailer.dxf verwenden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1500"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2603"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1507"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2610"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1856"/>
         <source>AutoCAD DXF</source>
         <translation>AutoCAD DXF</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1513"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1520"/>
         <source>Indicates the GeoConcept export file extension. TXT was used by earlier releases of GeoConcept. GXT is currently used.</source>
         <translation>Legt die GeoConcept-Exportdateierweiterung fest. TXT wurde für frühere GeoConcept-Versionen verwendet. GXT wird derzeit verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1523"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1530"/>
         <source>path to the GCT : the GCT file describe the GeoConcept types definitions: In this file, every line must start with //# followed by a keyword. Lines starting with // are comments.</source>
         <translation>Pfad zu GCT : die GCT-Datei beschreit die GeoConcept-Typdefinitionen: In dieser Datei muß jede Zeile mit //# gefolgt von einem Schlüsselwort beginnen. Zeilen die mit // beginnen sind Kommentare.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1533"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2610"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1540"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2617"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1851"/>
         <source>Geoconcept</source>
         <translation>Geoconcept</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1546"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1553"/>
         <source>When this option is set, the new layer will be created inside the named FeatureDataset folder. If the folder does not already exist, it will be created.</source>
         <translation>Wenn die Option gesetzt ist, wird der neue Layer innerhalb des angegebenen FeatureDataset-Verzeichnis erzeugt. Wenn das Verzeichnis nicht vorhanden ist, wird es angelegt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1552"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1559"/>
         <source>Set name of geometry column in new layer. Defaults to 'SHAPE'.</source>
         <translation>Name der Geometriespalte des neuen Layers. Voreingestellt: 'SHAPE'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1557"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1564"/>
         <source>Name of the OID column to create. Defaults to 'OBJECTID'.</source>
         <translation>Name der anzulegenden OID-Spalte. Voreingestellt 'OBJECTID'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1564"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2617"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1571"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2624"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1682"/>
         <source>ESRI FileGDB</source>
         <translation>ESRI-FileGDB</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1577"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1602"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1584"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1609"/>
         <source>By default, the driver will try to detect the data type of fields. If set to STRING, all fields will be of String type.</source>
         <translation>Normalerweise versucht der Treiber die Datentyp festzustellen.  STRING bewirkt, dass alle Felder Zeichenketten sind.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2067"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2074"/>
         <source>Cannot overwrite a OGR layer in place</source>
         <translation>Kann OGR-Layer nicht mit sich selbst überschreiben</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2624"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2631"/>
         <source>MS Office Open XML spreadsheet [XLSX]</source>
         <translation>MS Office Open XML Tabelle [XLSX]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2631"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2638"/>
         <source>Open Document Spreadsheet [ODS]</source>
         <translation>Open-Dokument-Tabelle [ODS]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2732"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2739"/>
         <source>Failed to transform, writing stopped. (Exception: %1)</source>
         <translation>Transformation fehlgeschlagen, Schreiben gestoppt. (Ausnahme %1)</translation>
     </message>
@@ -21383,7 +21397,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/plugins/coordinate_capture/coordinatecapture.cpp" line="54"/>
         <location filename="../src/plugins/dxf2shp_converter/dxf2shpconverter.cpp" line="39"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="79"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="83"/>
         <location filename="../src/plugins/gps_importer/qgsgpsplugin.cpp" line="54"/>
         <location filename="../src/plugins/offline_editing/offline_editing_plugin.cpp" line="34"/>
         <location filename="../src/plugins/oracle_raster/qgsoracle_plugin.cpp" line="24"/>
@@ -21443,7 +21457,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="760"/>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="791"/>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="802"/>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2931"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2937"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
@@ -21514,13 +21528,13 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Anpassung an eine projektive Transformation benötigt mindestens 4 Punktzuordnungen.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="76"/>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="100"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="80"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="104"/>
         <source>Globe</source>
         <translation>Globus</translation>
     </message>
     <message>
-        <location filename="../src/plugins/globe/globe_plugin.cpp" line="77"/>
+        <location filename="../src/plugins/globe/globe_plugin.cpp" line="81"/>
         <source>Overlay data on a 3D globe</source>
         <translation>Daten auf einem 3D-Globus überlagern</translation>
     </message>
@@ -21827,12 +21841,12 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Kann GISRC-Datei nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2098"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2104"/>
         <source>Cannot run module</source>
         <translation>Kann Modul nicht ausführen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2099"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2105"/>
         <source>command: %1 %2
 stdout: %3
 stderr: %4</source>
@@ -21841,37 +21855,37 @@ stdout: %3
 stderr: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2381"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2387"/>
         <source>Attempt to copy from different location.</source>
         <translation>Kopie von anderer Location versuchen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2435"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2441"/>
         <source>Delete confirmation</source>
         <translation>Löschbestätigung</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2436"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2442"/>
         <source>Are you sure you want to delete %1 %2?</source>
         <translation>Soll %1 %2 wirklich gelöscht werden?</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2524"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2530"/>
         <source>Cannot create table</source>
         <translation>Konnte Tabelle nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2586"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2592"/>
         <source>Cannot insert, statement</source>
         <translation>Konnte nicht einfügen, Anweisung</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2587"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2593"/>
         <source>error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2624"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2630"/>
         <source>Cannot adjust region</source>
         <translation>Kann Region nicht anpassen</translation>
     </message>
@@ -21946,7 +21960,7 @@ stderr: %4</translation>
         <translation>ESRI-Shapedateien</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2496"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2503"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1734"/>
         <source>GeoPackage</source>
         <translation>GeoPackage</translation>
@@ -22038,13 +22052,13 @@ stderr: %4</translation>
         <translation>X-Plane/Flightgear</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1614"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1621"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1861"/>
         <source>Open Document Spreadsheet</source>
         <translation>Open-Dokument-Tabelle</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1589"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1596"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1866"/>
         <source>MS Office Open XML spreadsheet</source>
         <translation>MS-Office-Open-XML-Tabelle</translation>
@@ -22203,11 +22217,11 @@ Fehler:%2</translation>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3812"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3958"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="139"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5136"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5217"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5406"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5461"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5573"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5160"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5241"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5430"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5485"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5597"/>
         <source>Connection to database failed</source>
         <translation>Verbindung zur Datenbank schlug fehl</translation>
     </message>
@@ -22309,13 +22323,13 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3890"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5322"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5346"/>
         <source>Save style in database</source>
         <translation>Stil in Datenbank speichern</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3891"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5323"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5347"/>
         <source>A style named "%1" already exists in the database for this layer. Do you want to overwrite it?</source>
         <translation>Ein Stil "%1" für diesen Layer ist bereits in der Datenbank vorhanden. Soll er überschrieben werden?</translation>
     </message>
@@ -22339,14 +22353,14 @@ Datenbankfehler: %2</translation>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4015"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4041"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4082"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5230"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5314"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5374"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5429"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5474"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5510"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5537"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5591"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5254"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5338"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5398"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5453"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5498"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5534"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5561"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5615"/>
         <source>Error executing query: %1</source>
         <translation>Fehler bei Abfrageausführung: %1</translation>
     </message>
@@ -22357,31 +22371,31 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4042"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5538"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5562"/>
         <source>Error executing the select query for unrelated styles. The query was logged</source>
         <translation>Fehler beim Abfragen von unzusammenhängenden Stilen.  Die Abfragen wurde protokolliert</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4083"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5592"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5616"/>
         <source>Error executing the select query. The query was logged</source>
         <translation>Fehler bei Abfrage.  Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4078"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5587"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5611"/>
         <source>Consistency error in table '%1'. Style id should be unique</source>
         <translation>Konsistenzfehler in Tabelle '%1'. Stilkennung sollte eindeutig sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="307"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="313"/>
         <source>SQLite error: %2
 SQL: %1</source>
         <translation>SQLite-Fehler:%2
 SQL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="434"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="440"/>
         <source>SQLite error getting feature: %1</source>
         <translation>SQLite-Fehler beim Objektladen: %1</translation>
     </message>
@@ -22401,67 +22415,67 @@ SQL: %1</translation>
         <translation>Erzeugung der Felder gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5078"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5102"/>
         <source>Unable to initialize SpatialMetadata:
 </source>
         <translation>Konnte räumliche Metadaten nicht initialisieren:
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5104"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5128"/>
         <source>Could not create a new database
 </source>
         <translation>Konnte neue Datenbank nicht anlegen
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5114"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5138"/>
         <source>Unable to activate FOREIGN_KEY constraints [%1]</source>
         <translation>Konnte Fremdschlüssel-Constraint nicht aktivieren [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5148"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5172"/>
         <source>Unable to delete table %1
 </source>
         <translation>Konnte Tabelle %1 nicht löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5160"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5184"/>
         <source>Unable to delete table %1:
 </source>
         <translation>Konnte Tabelle %1 nicht löschen:</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5231"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5315"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5375"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5475"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5255"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5339"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5399"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5499"/>
         <source>Error looking for style. The query was logged</source>
         <translation>Fehler bei der Stilsuche. Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5266"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5290"/>
         <source>Unable to save layer style. It's not possible to create the destination table on the database.</source>
         <translation>Konnte Layerstil nicht speichern. Es war nicht möglich die Zieltabelle in der Datenbank anzulegen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5328"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5352"/>
         <source>Operation aborted</source>
         <translation>Operation abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5430"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5454"/>
         <source>Error executing loading style. The query was logged</source>
         <translation>Fehler beim Laden des Stils. Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5489"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5490"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5513"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5514"/>
         <source>No styles available on DB</source>
         <translation>Keine Stil in der Datenbank verfügbar</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5511"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5535"/>
         <source>Error loading styles. The query was logged</source>
         <translation>Fehler beim Laden des Stils. Die Abfrage wurde protokolliert</translation>
     </message>
@@ -23627,7 +23641,7 @@ Soll das Schema inkl. dieser Objekte wirklich gelöscht werden?</translation>
     <message>
         <location filename="../src/core/auth/qgsauthcertutils.cpp" line="866"/>
         <source>Authority Issuer Serial Number Mismatch</source>
-        <translation>Seriennummer des Autoritätsausstellers paßt nicht.</translation>
+        <translation>Seriennummer des Autoritätsausstellers paßt nicht</translation>
     </message>
     <message>
         <location filename="../src/core/auth/qgsauthcertutils.cpp" line="868"/>
@@ -23728,7 +23742,7 @@ Soll das Schema inkl. dieser Objekte wirklich gelöscht werden?</translation>
     <message>
         <location filename="../src/gui/auth/qgsauthguiutils.cpp" line="70"/>
         <source>DISABLED. Resources authenticating via the system can not be accessed</source>
-        <translation>DEAKTIVIERT. Über das System autorisierte Resourcen sind nicht zugreifbar.</translation>
+        <translation>DEAKTIVIERT. Über das System autorisierte Resourcen sind nicht zugreifbar</translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthguiutils.cpp" line="85"/>
@@ -24091,129 +24105,129 @@ Operation kann nicht zurückgenommen werden!
         <translation>&Raster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="573"/>
+        <location filename="../src/app/qgisapp.cpp" line="572"/>
         <source>Multiple Instances of QgisApp</source>
         <translation>Mehrere QgisApp-Instanzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="587"/>
+        <location filename="../src/app/qgisapp.cpp" line="586"/>
         <source>Checking database</source>
         <translation>Überprüfe die Datenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="607"/>
+        <location filename="../src/app/qgisapp.cpp" line="606"/>
         <source>Reading settings</source>
         <translation>Lese Einstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="610"/>
+        <location filename="../src/app/qgisapp.cpp" line="609"/>
         <source>Setting up the GUI</source>
         <translation>Richte die Oberfläche ein</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="630"/>
+        <location filename="../src/app/qgisapp.cpp" line="629"/>
         <source>Map canvas. This is where raster and vector layers are displayed when added to the map</source>
         <translation>Kartenansicht. Hier werden Raster- und Vektorlayer angezeigt, wenn sie der Karte hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="796"/>
+        <location filename="../src/app/qgisapp.cpp" line="795"/>
         <source>QGIS starting...</source>
         <translation>QGIS startet...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="812"/>
+        <location filename="../src/app/qgisapp.cpp" line="811"/>
         <source>Checking provider plugins</source>
         <translation>Datenanbieter-Erweiterungen werden geprüft</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="816"/>
+        <location filename="../src/app/qgisapp.cpp" line="815"/>
         <source>Starting Python</source>
         <translation>Python wird gestartet</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="822"/>
+        <location filename="../src/app/qgisapp.cpp" line="821"/>
         <source>Restoring loaded plugins</source>
         <translation>Stelle die geladenen Erweiterungen wieder her</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="859"/>
+        <location filename="../src/app/qgisapp.cpp" line="858"/>
         <source>Initializing file filters</source>
         <translation>Initialisiere Dateifilter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="887"/>
+        <location filename="../src/app/qgisapp.cpp" line="886"/>
         <source>Restoring window state</source>
         <translation>Stelle Fensterstatus wieder her</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="894"/>
-        <location filename="../src/app/qgisapp.cpp" line="898"/>
+        <location filename="../src/app/qgisapp.cpp" line="893"/>
+        <location filename="../src/app/qgisapp.cpp" line="897"/>
         <source>QGIS Ready!</source>
         <translation>QGIS ist startklar!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1480"/>
+        <location filename="../src/app/qgisapp.cpp" line="1479"/>
         <source>Minimize</source>
         <translation>Minimieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1481"/>
+        <location filename="../src/app/qgisapp.cpp" line="1480"/>
         <source>Ctrl+M</source>
         <comment>Minimize Window</comment>
         <translation>Strg+M</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1482"/>
+        <location filename="../src/app/qgisapp.cpp" line="1481"/>
         <source>Minimizes the active window to the dock</source>
         <translation>Minimiert das aktive Fenster ins Dock</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1485"/>
+        <location filename="../src/app/qgisapp.cpp" line="1484"/>
         <source>Zoom</source>
         <translation>Zoom</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1486"/>
+        <location filename="../src/app/qgisapp.cpp" line="1485"/>
         <source>Toggles between a predefined size and the window size set by the user</source>
         <translation>Schaltet zwischen voreingestellter und vom Benutzer bestimmten Fenstergröße um</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1489"/>
+        <location filename="../src/app/qgisapp.cpp" line="1488"/>
         <source>Bring All to Front</source>
         <translation>Alle in den Vordergrund bringen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1490"/>
+        <location filename="../src/app/qgisapp.cpp" line="1489"/>
         <source>Bring forward all open windows</source>
         <translation>Alle geöffneten Fenster vorholen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1498"/>
+        <location filename="../src/app/qgisapp.cpp" line="1497"/>
         <source>Current Edits</source>
         <translation>Aktuelle Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1602"/>
-        <location filename="../src/app/qgisapp.cpp" line="5615"/>
-        <location filename="../src/app/qgisapp.cpp" line="7307"/>
-        <location filename="../src/app/qgisapp.cpp" line="7387"/>
-        <location filename="../src/app/qgisapp.cpp" line="10359"/>
+        <location filename="../src/app/qgisapp.cpp" line="1601"/>
+        <location filename="../src/app/qgisapp.cpp" line="5624"/>
+        <location filename="../src/app/qgisapp.cpp" line="7317"/>
+        <location filename="../src/app/qgisapp.cpp" line="7397"/>
+        <location filename="../src/app/qgisapp.cpp" line="10369"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1596"/>
-        <location filename="../src/app/qgisapp.cpp" line="1602"/>
+        <location filename="../src/app/qgisapp.cpp" line="1595"/>
+        <location filename="../src/app/qgisapp.cpp" line="1601"/>
         <source>Failed to open Python console:</source>
         <translation>Konnte Python-Konsole nicht öffnen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="364"/>
+        <location filename="../src/app/qgisapp.cpp" line="363"/>
         <source>QGIS </source>
         <translation>QGIS </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="574"/>
+        <location filename="../src/app/qgisapp.cpp" line="573"/>
         <source>Multiple instances of QGIS application object detected.
 Please contact the developers.
 </source>
@@ -24221,276 +24235,276 @@ Please contact the developers.
 Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="793"/>
+        <location filename="../src/app/qgisapp.cpp" line="792"/>
         <source>QGIS - %1 ('%2')</source>
         <translation>QGIS - %1 ('%2')</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1715"/>
-        <location filename="../src/app/qgisapp.cpp" line="11187"/>
+        <location filename="../src/app/qgisapp.cpp" line="1714"/>
+        <location filename="../src/app/qgisapp.cpp" line="11213"/>
         <source>Panels</source>
         <translation>Bedienfelder</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1717"/>
-        <location filename="../src/app/qgisapp.cpp" line="11198"/>
+        <location filename="../src/app/qgisapp.cpp" line="1716"/>
+        <location filename="../src/app/qgisapp.cpp" line="11224"/>
         <source>Toolbars</source>
         <translation>Werkzeugkästen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1776"/>
+        <location filename="../src/app/qgisapp.cpp" line="1775"/>
         <source>Window</source>
         <translation>Fenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1791"/>
+        <location filename="../src/app/qgisapp.cpp" line="1790"/>
         <source>&Database</source>
         <translation>Da&tenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1795"/>
+        <location filename="../src/app/qgisapp.cpp" line="1794"/>
         <source>&Web</source>
         <translation>&Web</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2017"/>
+        <location filename="../src/app/qgisapp.cpp" line="2016"/>
         <source>Progress bar that displays the status of rendering layers and other time-intensive operations</source>
         <translation>Fortschrittsanzeige für das Zeichnen von Layern und andere zeitintensive Operationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2046"/>
+        <location filename="../src/app/qgisapp.cpp" line="2045"/>
         <source>Current map scale</source>
         <translation>Aktueller Kartenmaßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2057"/>
+        <location filename="../src/app/qgisapp.cpp" line="2056"/>
         <source>Displays the current map scale</source>
         <translation>Zeigt den momentanen Kartenmaßstab an</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2058"/>
+        <location filename="../src/app/qgisapp.cpp" line="2057"/>
         <source>Current map scale (formatted as x:y)</source>
         <translation>Aktueller Kartenmaßstab (x:y formatiert)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2099"/>
+        <location filename="../src/app/qgisapp.cpp" line="2098"/>
         <source>Render</source>
         <translation>Zeichnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2103"/>
+        <location filename="../src/app/qgisapp.cpp" line="2102"/>
         <source>When checked, the map layers are rendered in response to map navigation commands and other events. When not checked, no rendering is done. This allows you to add a large number of layers and symbolize them before rendering.</source>
         <translation>Wenn angewählt, werden die Kartenlayer abhängig von der Bedienung der Navigationsinstrumente, gezeichnet. Anderenfalls werden die Layer nicht gezeichnet. Dies erlaubt es, eine große Layeranzahl hinzuzufügen und das Aussehen der Layer vor dem Zeichnen zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2107"/>
+        <location filename="../src/app/qgisapp.cpp" line="2106"/>
         <source>Toggle map rendering</source>
         <translation>Zeichnen der Karte einschalten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2120"/>
+        <location filename="../src/app/qgisapp.cpp" line="2119"/>
         <source>This icon shows whether on the fly coordinate reference system transformation is enabled or not. Click the icon to bring up the project properties dialog to alter this behaviour.</source>
         <translation>Diese Icon zeigt an, ob Spontantransformation des Koordinatenbezugssystem aktiv ist. Anklicken, um dies in den Projektionseigenschaften zu ändern.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2124"/>
+        <location filename="../src/app/qgisapp.cpp" line="2123"/>
         <source>CRS status - Click to open coordinate reference system dialog</source>
         <translation>KBS-Status - Klicken um den Dialog zum Koordinatenbezugssystem zu öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2129"/>
+        <location filename="../src/app/qgisapp.cpp" line="2128"/>
         <source>Ready</source>
         <translation>Fertig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2578"/>
+        <location filename="../src/app/qgisapp.cpp" line="2577"/>
         <source>Map overview canvas. This canvas can be used to display a locator map that shows the current extent of the map canvas. The current extent is shown as a red rectangle. Any layer on the map can be added to the overview canvas.</source>
         <translation>Übersichtsfenster. Dieses Fenster kann benutzt werden um die momentane Ausdehnung des Kartenfensters darzustellen. Der momentane Ausschnitt ist als rotes Rechteck dargestellt. Jeder Layer in der Karte kann zum Übersichtsfenster hinzugefügt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2699"/>
+        <location filename="../src/app/qgisapp.cpp" line="2698"/>
         <source>Map legend that displays all the layers currently on the map canvas. Click on the check box to turn a layer on or off. Double click on a layer in the legend to customize its appearance and set other properties.</source>
         <translation>Legende, die alle im Kartenfenster angezeigten Layer enthält. Bitte auf die Kontrollkästchen klicken, um einen Layer an- oder auszuschalten. Mit einem Doppelklick in der Legende kann die Erscheinung und sonstige Eigenschaften eines Layers festgelegt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2791"/>
+        <location filename="../src/app/qgisapp.cpp" line="2790"/>
         <source>Map layer list that displays all layers in drawing order.</source>
         <translation>Layerliste, die alle Layer in Zeichenreihenfolge anzeigt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="593"/>
+        <location filename="../src/app/qgisapp.cpp" line="592"/>
         <source>Private qgis.db</source>
         <translation>Benutzer qgis.db</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3029"/>
-        <location filename="../src/app/qgisapp.cpp" line="4258"/>
+        <location filename="../src/app/qgisapp.cpp" line="3028"/>
+        <location filename="../src/app/qgisapp.cpp" line="4267"/>
         <source>< Blank ></source>
         <translation>< Leer ></translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3084"/>
+        <location filename="../src/app/qgisapp.cpp" line="3083"/>
         <source>QGIS version</source>
         <translation>QGIS-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3085"/>
+        <location filename="../src/app/qgisapp.cpp" line="3093"/>
         <source>QGIS code revision</source>
         <translation>QGIS-Codeversion</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3089"/>
+        <location filename="../src/app/qgisapp.cpp" line="3098"/>
         <source>Compiled against Qt</source>
         <translation>Kompiliert gegen Qt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3090"/>
+        <location filename="../src/app/qgisapp.cpp" line="3099"/>
         <source>Running against Qt</source>
         <translation>Laufendes Qt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3094"/>
+        <location filename="../src/app/qgisapp.cpp" line="3103"/>
         <source>Compiled against GDAL/OGR</source>
         <translation>Kompiliert mit GDAL/OGR</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3095"/>
+        <location filename="../src/app/qgisapp.cpp" line="3104"/>
         <source>Running against GDAL/OGR</source>
         <translation>Läuft mit GDAL/OGR</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3104"/>
+        <location filename="../src/app/qgisapp.cpp" line="3113"/>
         <source>PostgreSQL Client Version</source>
         <translation>PostgreSQL-Client-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3108"/>
+        <location filename="../src/app/qgisapp.cpp" line="3117"/>
         <source>No support.</source>
         <translation>Keine Unterstützung.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3112"/>
+        <location filename="../src/app/qgisapp.cpp" line="3121"/>
         <source>SpatiaLite Version</source>
         <translation>SpatiaLite-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3118"/>
+        <location filename="../src/app/qgisapp.cpp" line="3127"/>
         <source>QWT Version</source>
         <translation>QWT-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3119"/>
+        <location filename="../src/app/qgisapp.cpp" line="3128"/>
         <source>PROJ.4 Version</source>
         <translation>PROJ.4-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3123"/>
+        <location filename="../src/app/qgisapp.cpp" line="3132"/>
         <source>QScintilla2 Version</source>
         <translation>QScintilla2-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3126"/>
+        <location filename="../src/app/qgisapp.cpp" line="3135"/>
         <source>This copy of QGIS writes debugging output.</source>
         <translation>Diese QGIS-Kopie schreibt Debugausgaben.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3289"/>
+        <location filename="../src/app/qgisapp.cpp" line="3298"/>
         <source>%1 doesn't have any layers</source>
         <translation>%1 hat keine Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3290"/>
-        <location filename="../src/app/qgisapp.cpp" line="3297"/>
-        <location filename="../src/app/qgisapp.cpp" line="3666"/>
+        <location filename="../src/app/qgisapp.cpp" line="3299"/>
+        <location filename="../src/app/qgisapp.cpp" line="3306"/>
+        <location filename="../src/app/qgisapp.cpp" line="3675"/>
         <source>Invalid Data Source</source>
         <translation>Ungültige Datenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3296"/>
-        <location filename="../src/app/qgisapp.cpp" line="3665"/>
+        <location filename="../src/app/qgisapp.cpp" line="3305"/>
+        <location filename="../src/app/qgisapp.cpp" line="3674"/>
         <source>%1 is not a valid or recognized data source</source>
         <translation>%1 ist keine gültige Datenquelle oder wird nicht erkannt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3396"/>
+        <location filename="../src/app/qgisapp.cpp" line="3405"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3694"/>
+        <location filename="../src/app/qgisapp.cpp" line="3703"/>
         <source>PostgreSQL</source>
         <translation>PostgreSQL</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3694"/>
+        <location filename="../src/app/qgisapp.cpp" line="3703"/>
         <source>Cannot get PostgreSQL select dialog from provider.</source>
         <translation>Kann PostgreSQL-Auswahldialog des Datenanbieters nicht bestimmen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3750"/>
+        <location filename="../src/app/qgisapp.cpp" line="3759"/>
         <source>%1 is an invalid layer - not loaded</source>
         <translation>%1 ist ein ungültiger Layer - nicht geladen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3751"/>
+        <location filename="../src/app/qgisapp.cpp" line="3760"/>
         <source>%1 is an invalid layer and cannot be loaded. Please check the <a href="#messageLog">message log</a> for further info.</source>
         <translation>%1 ist ein ungültiger Layer und kann nicht geladen werden. Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4389"/>
-        <location filename="../src/app/qgisapp.cpp" line="4572"/>
-        <location filename="../src/app/qgisapp.cpp" line="4649"/>
+        <location filename="../src/app/qgisapp.cpp" line="4398"/>
+        <location filename="../src/app/qgisapp.cpp" line="4581"/>
+        <location filename="../src/app/qgisapp.cpp" line="4658"/>
         <source>QGIS files</source>
         <translation>QGIS-Dateien</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6510"/>
-        <location filename="../src/app/qgisapp.cpp" line="6561"/>
+        <location filename="../src/app/qgisapp.cpp" line="6519"/>
+        <location filename="../src/app/qgisapp.cpp" line="6570"/>
         <source>An error occurred during the merge operation</source>
         <translation>Beim Zusammenführen trat ein Fehler auf</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6957"/>
+        <location filename="../src/app/qgisapp.cpp" line="6966"/>
         <source>New temporary scratch layer name</source>
         <translation>Name des neuen Temporärlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7124"/>
+        <location filename="../src/app/qgisapp.cpp" line="7134"/>
         <source>Cannot copy style</source>
         <translation>Kann Stil nicht kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7154"/>
+        <location filename="../src/app/qgisapp.cpp" line="7164"/>
         <source>Cannot parse style</source>
         <translation>Kann Stil nicht interpretieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7162"/>
+        <location filename="../src/app/qgisapp.cpp" line="7172"/>
         <source>Cannot paste style</source>
         <translation>Kann Stil nicht einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7579"/>
+        <location filename="../src/app/qgisapp.cpp" line="7589"/>
         <source>Filter on joined fields</source>
         <translation>Filter auf verknüpften Feldern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7736"/>
+        <location filename="../src/app/qgisapp.cpp" line="7746"/>
         <source>No legend entries selected</source>
         <translation>Keine Einträge der Legende gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7737"/>
+        <location filename="../src/app/qgisapp.cpp" line="7747"/>
         <source>Select the layers and groups you want to remove in the legend.</source>
         <translation>Zu löschende Layer oder Gruppen in der Legende wählen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7744"/>
+        <location filename="../src/app/qgisapp.cpp" line="7754"/>
         <source>Remove layers and groups</source>
         <translation>Layer und Gruppen löschen</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="7744"/>
+        <location filename="../src/app/qgisapp.cpp" line="7754"/>
         <source>Remove %n legend entries?</source>
         <comment>number of legend items to remove</comment>
         <translation>
@@ -24499,7 +24513,7 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="7756"/>
+        <location filename="../src/app/qgisapp.cpp" line="7766"/>
         <source>%n legend entries removed.</source>
         <comment>number of removed legend entries</comment>
         <translation>
@@ -24508,404 +24522,404 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7863"/>
+        <location filename="../src/app/qgisapp.cpp" line="7873"/>
         <source>%1 (%2 type unsupported)</source>
         <translation>%1 (Typ %2 nicht unterstützt)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7897"/>
+        <location filename="../src/app/qgisapp.cpp" line="7907"/>
         <source>Cannot copy style to duplicated layer.</source>
         <translation>Kann Stil nicht in kopierten Layer anwenden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8824"/>
+        <location filename="../src/app/qgisapp.cpp" line="8834"/>
         <source>Do you want to save the current project? %1</source>
         <translation>Wollen Sie das aktuelle Projekt speichern? %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10339"/>
+        <location filename="../src/app/qgisapp.cpp" line="10349"/>
         <source>Invalid Layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3784"/>
+        <location filename="../src/app/qgisapp.cpp" line="3793"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3784"/>
+        <location filename="../src/app/qgisapp.cpp" line="3793"/>
         <source>Cannot get SpatiaLite select dialog from provider.</source>
         <translation>Kann SpatiaLite-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3799"/>
+        <location filename="../src/app/qgisapp.cpp" line="3808"/>
         <source>Delimited Text</source>
         <translation>Getrennte Texte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3799"/>
+        <location filename="../src/app/qgisapp.cpp" line="3808"/>
         <source>Cannot get Delimited Text select dialog from provider.</source>
         <translation>Konnte Auswahldialog für getrennte Texte nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3856"/>
+        <location filename="../src/app/qgisapp.cpp" line="3865"/>
         <source>MSSQL</source>
         <translation>MSSQL</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3856"/>
+        <location filename="../src/app/qgisapp.cpp" line="3865"/>
         <source>Cannot get MSSQL select dialog from provider.</source>
         <translation>Konnte den MSSQL-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3873"/>
+        <location filename="../src/app/qgisapp.cpp" line="3882"/>
         <source>Oracle</source>
         <translation>Oracle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3873"/>
+        <location filename="../src/app/qgisapp.cpp" line="3882"/>
         <source>Cannot get Oracle select dialog from provider.</source>
         <translation>Konnte den Oracle-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3896"/>
+        <location filename="../src/app/qgisapp.cpp" line="3905"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3896"/>
+        <location filename="../src/app/qgisapp.cpp" line="3905"/>
         <source>Cannot get WMS select dialog from provider.</source>
         <translation>Konnte den WMS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3913"/>
+        <location filename="../src/app/qgisapp.cpp" line="3922"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3913"/>
+        <location filename="../src/app/qgisapp.cpp" line="3922"/>
         <source>Cannot get WCS select dialog from provider.</source>
         <translation>Konnte den WCS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3935"/>
+        <location filename="../src/app/qgisapp.cpp" line="3944"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3935"/>
+        <location filename="../src/app/qgisapp.cpp" line="3944"/>
         <source>Cannot get WFS select dialog from provider.</source>
         <translation>Konnte WFS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4124"/>
+        <location filename="../src/app/qgisapp.cpp" line="4133"/>
         <source>Default failed to open: %1</source>
         <translation>Öffnen der Vorgabe fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4128"/>
+        <location filename="../src/app/qgisapp.cpp" line="4137"/>
         <source>Default not found: %1</source>
         <translation>Vorgabe nicht gefunden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4130"/>
+        <location filename="../src/app/qgisapp.cpp" line="4139"/>
         <source>Open Template Project</source>
         <translation>Vorlageprojekt öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4155"/>
+        <location filename="../src/app/qgisapp.cpp" line="4164"/>
         <source>Auto-open Project</source>
         <translation>Automatisch zu öffnendes Projekt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4192"/>
+        <location filename="../src/app/qgisapp.cpp" line="4201"/>
         <source>Failed to open: %1</source>
         <translation>Öffnen gescheitert: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4215"/>
+        <location filename="../src/app/qgisapp.cpp" line="4224"/>
         <source>Not valid project file: %1</source>
         <translation>Ungültige Projektdatei: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4228"/>
+        <location filename="../src/app/qgisapp.cpp" line="4237"/>
         <source>Project failed to open: %1</source>
         <translation>Projektöffnen fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4235"/>
+        <location filename="../src/app/qgisapp.cpp" line="4244"/>
         <source>Default template has been reopened: %1</source>
         <translation>Vorgabevorlage wurde wiedergeöffnet: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4242"/>
+        <location filename="../src/app/qgisapp.cpp" line="4251"/>
         <source>File not found: %1</source>
         <translation>Datei nicht gefunden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4324"/>
+        <location filename="../src/app/qgisapp.cpp" line="4333"/>
         <source>Calculating...</source>
         <translation>Berechne...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4324"/>
-        <location filename="../src/app/qgisapp.cpp" line="5540"/>
+        <location filename="../src/app/qgisapp.cpp" line="4333"/>
+        <location filename="../src/app/qgisapp.cpp" line="5549"/>
         <source>Abort...</source>
         <translation>Abbrechen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4387"/>
+        <location filename="../src/app/qgisapp.cpp" line="4396"/>
         <source>Choose a QGIS project file to open</source>
         <translation>QGIS-Projektdatei zum Öffnen wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4423"/>
+        <location filename="../src/app/qgisapp.cpp" line="4432"/>
         <source>Loading project: %1</source>
         <translation>Lade Projekt: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4450"/>
+        <location filename="../src/app/qgisapp.cpp" line="4459"/>
         <source>Unable to open project</source>
         <translation>Kann das Projekt nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4526"/>
+        <location filename="../src/app/qgisapp.cpp" line="4535"/>
         <source>Security warning</source>
         <translation>Sicherheitswarnung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4527"/>
+        <location filename="../src/app/qgisapp.cpp" line="4536"/>
         <source>project macros have been disabled.</source>
         <translation>Projektmakros wurden abgeschaltet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4518"/>
+        <location filename="../src/app/qgisapp.cpp" line="4527"/>
         <source>Enable macros</source>
         <translation>Makros aktivieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4550"/>
+        <location filename="../src/app/qgisapp.cpp" line="4559"/>
         <source>Project loaded</source>
         <translation>Projekt geladen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4570"/>
+        <location filename="../src/app/qgisapp.cpp" line="4579"/>
         <source>Choose a QGIS project file</source>
         <translation>Eine QGIS-Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4616"/>
-        <location filename="../src/app/qgisapp.cpp" line="4668"/>
+        <location filename="../src/app/qgisapp.cpp" line="4625"/>
+        <location filename="../src/app/qgisapp.cpp" line="4677"/>
         <source>Saved project to: %1</source>
         <translation>Projekt in %1 gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4626"/>
-        <location filename="../src/app/qgisapp.cpp" line="4676"/>
+        <location filename="../src/app/qgisapp.cpp" line="4635"/>
+        <location filename="../src/app/qgisapp.cpp" line="4685"/>
         <source>Unable to save project %1</source>
         <translation>Konnte Projekt %1 nicht speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4647"/>
+        <location filename="../src/app/qgisapp.cpp" line="4656"/>
         <source>Choose a file name to save the QGIS project file as</source>
         <translation>Name für zu speichernden QGIS-Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4836"/>
+        <location filename="../src/app/qgisapp.cpp" line="4845"/>
         <source>Unable to load %1</source>
         <translation>%1 kann nicht geladen werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4958"/>
+        <location filename="../src/app/qgisapp.cpp" line="4967"/>
         <source>Choose a file name to save the map image as</source>
         <translation>Name für Datei zum Speichern des Kartenabbilds wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4963"/>
+        <location filename="../src/app/qgisapp.cpp" line="4972"/>
         <source>Saved map image to %1</source>
         <translation>Kartenabbild als %1 gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5348"/>
+        <location filename="../src/app/qgisapp.cpp" line="5357"/>
         <source>Default system font substituted.</source>
         <translation>Durch voreingestellten Systemfont ersetzt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5367"/>
+        <location filename="../src/app/qgisapp.cpp" line="5376"/>
         <source>Labeling</source>
         <translation>Beschriftung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5368"/>
+        <location filename="../src/app/qgisapp.cpp" line="5377"/>
         <source>Font for layer <b><u>%1</u></b> was not found (<i>%2</i>). %3</source>
         <translation>Schriftart <i>%2</i> für Layer <b><u>%1</u></b> nicht gefunden. %3</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5359"/>
+        <location filename="../src/app/qgisapp.cpp" line="5368"/>
         <source>Open labeling dialog</source>
         <translation>Beschriftungseinstelllungen öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="514"/>
-        <location filename="../src/app/qgisapp.cpp" line="521"/>
+        <location filename="../src/app/qgisapp.cpp" line="513"/>
+        <location filename="../src/app/qgisapp.cpp" line="520"/>
         <source>CRS was undefined</source>
         <translation>CRS war undefiniert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="514"/>
+        <location filename="../src/app/qgisapp.cpp" line="513"/>
         <source>defaulting to project CRS %1 - %2</source>
         <translation>Auf Projekt-KBS %1 - %2 voreingestellt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="521"/>
+        <location filename="../src/app/qgisapp.cpp" line="520"/>
         <source>defaulting to CRS %1 - %2</source>
         <translation>Auf CRS %1 - %2 voreingestellt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="596"/>
+        <location filename="../src/app/qgisapp.cpp" line="595"/>
         <source>Initializing authentication</source>
         <translation>Authentifikationsinitialisierung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="722"/>
+        <location filename="../src/app/qgisapp.cpp" line="721"/>
         <source>Browser Panel</source>
         <translation>Browser-Fenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="727"/>
+        <location filename="../src/app/qgisapp.cpp" line="726"/>
         <source>Browser Panel (2)</source>
         <translation>Browser-Fenster (2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="747"/>
+        <location filename="../src/app/qgisapp.cpp" line="746"/>
         <source>GPS Information Panel</source>
         <translation>GPS-Informationsfenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="760"/>
+        <location filename="../src/app/qgisapp.cpp" line="759"/>
         <source>Log Messages Panel</source>
         <translation>Protokoll-Fenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2045"/>
+        <location filename="../src/app/qgisapp.cpp" line="2044"/>
         <source>Scale</source>
         <translation>Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2074"/>
+        <location filename="../src/app/qgisapp.cpp" line="2073"/>
         <source>Rotation</source>
         <translation>Drehung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2585"/>
+        <location filename="../src/app/qgisapp.cpp" line="2584"/>
         <source>Overview Panel</source>
         <translation>Übersichtsfenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2701"/>
+        <location filename="../src/app/qgisapp.cpp" line="2700"/>
         <source>Layers Panel</source>
         <translation>Layerfenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2727"/>
-        <location filename="../src/app/qgisapp.cpp" line="2729"/>
+        <location filename="../src/app/qgisapp.cpp" line="2726"/>
+        <location filename="../src/app/qgisapp.cpp" line="2728"/>
         <source>Add Group</source>
         <translation>Gruppe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2735"/>
+        <location filename="../src/app/qgisapp.cpp" line="2734"/>
         <source>Manage Layer Visibility</source>
         <translation>Layersichtberkeitseinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2741"/>
-        <location filename="../src/app/qgisapp.cpp" line="2743"/>
+        <location filename="../src/app/qgisapp.cpp" line="2740"/>
+        <location filename="../src/app/qgisapp.cpp" line="2742"/>
         <source>Filter Legend By Map Content</source>
         <translation>Legende nach Karteninhalt filtern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2748"/>
+        <location filename="../src/app/qgisapp.cpp" line="2747"/>
         <source>Filter legend by expression</source>
         <translation>Legende nach Ausdruck filtern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2752"/>
-        <location filename="../src/app/qgisapp.cpp" line="2754"/>
+        <location filename="../src/app/qgisapp.cpp" line="2751"/>
+        <location filename="../src/app/qgisapp.cpp" line="2753"/>
         <source>Expand All</source>
         <translation>Alle ausklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2756"/>
-        <location filename="../src/app/qgisapp.cpp" line="2758"/>
+        <location filename="../src/app/qgisapp.cpp" line="2755"/>
+        <location filename="../src/app/qgisapp.cpp" line="2757"/>
         <source>Collapse All</source>
         <translation>Alle einklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2792"/>
+        <location filename="../src/app/qgisapp.cpp" line="2791"/>
         <source>Layer Order Panel</source>
         <translation>Layerreihenfolgefenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3099"/>
+        <location filename="../src/app/qgisapp.cpp" line="3108"/>
         <source>Compiled against GEOS</source>
         <translation>Kompiliert mit GEOS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3100"/>
+        <location filename="../src/app/qgisapp.cpp" line="3109"/>
         <source>Running against GEOS</source>
         <translation>Läuft mit GEOS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3814"/>
+        <location filename="../src/app/qgisapp.cpp" line="3823"/>
         <source>Virtual layer</source>
         <translation>Virtueller Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3814"/>
+        <location filename="../src/app/qgisapp.cpp" line="3823"/>
         <source>Cannot get virtual layer select dialog from provider.</source>
         <translation>Kann Auswahldialog für virtuelle Layer nicht vom  Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4287"/>
+        <location filename="../src/app/qgisapp.cpp" line="4296"/>
         <source>Layer creation failed. Please check the <a href="#messageLog">message log</a> for further information.</source>
         <translation>Layererzeugung fehlgeschlagen. Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4334"/>
-        <location filename="../src/app/qgisapp.cpp" line="4340"/>
-        <location filename="../src/app/qgisapp.cpp" line="4346"/>
+        <location filename="../src/app/qgisapp.cpp" line="4343"/>
+        <location filename="../src/app/qgisapp.cpp" line="4349"/>
         <location filename="../src/app/qgisapp.cpp" line="4355"/>
-        <location filename="../src/app/qgisapp.cpp" line="4361"/>
+        <location filename="../src/app/qgisapp.cpp" line="4364"/>
+        <location filename="../src/app/qgisapp.cpp" line="4370"/>
         <source>Raster calculator</source>
         <translation>Rasterrechner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4335"/>
+        <location filename="../src/app/qgisapp.cpp" line="4344"/>
         <source>Calculation complete.</source>
         <translation>Berechnung beendet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4341"/>
+        <location filename="../src/app/qgisapp.cpp" line="4350"/>
         <source>Could not create destination file.</source>
         <translation>Kann die Zieldatei nicht erzeugen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4347"/>
+        <location filename="../src/app/qgisapp.cpp" line="4356"/>
         <source>Could not read input layer.</source>
         <translation>Konnte Eingabelayer nicht lesen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4356"/>
+        <location filename="../src/app/qgisapp.cpp" line="4365"/>
         <source>Could not parse raster formula.</source>
         <translation>Rasterformel konnte nicht interpretiert werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4362"/>
+        <location filename="../src/app/qgisapp.cpp" line="4371"/>
         <source>Insufficient memory available for operation.</source>
         <translation>Nicht genug Speicher für Operation verfügbar.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4438"/>
+        <location filename="../src/app/qgisapp.cpp" line="4447"/>
         <source>Do you want to open the backup file
 %1
 instead?</source>
@@ -24914,165 +24928,165 @@ instead?</source>
 geöffnet werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4606"/>
+        <location filename="../src/app/qgisapp.cpp" line="4615"/>
         <source>Insufficient permissions</source>
         <translation>Ungenügende Zugriffsrechte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4607"/>
+        <location filename="../src/app/qgisapp.cpp" line="4616"/>
         <source>The project file is not writable.</source>
         <translation>Die Projektdatei ist schreibgeschützt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4710"/>
+        <location filename="../src/app/qgisapp.cpp" line="4719"/>
         <source>DXF export completed</source>
         <translation>DXF-Export abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4714"/>
+        <location filename="../src/app/qgisapp.cpp" line="4723"/>
         <source>DXF export failed</source>
         <translation>DXF-Export fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5379"/>
-        <location filename="../src/app/qgisapp.cpp" line="5400"/>
+        <location filename="../src/app/qgisapp.cpp" line="5388"/>
+        <location filename="../src/app/qgisapp.cpp" line="5409"/>
         <source>Commit errors</source>
         <translation>Fehler beim Festschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5380"/>
-        <location filename="../src/app/qgisapp.cpp" line="5401"/>
+        <location filename="../src/app/qgisapp.cpp" line="5389"/>
+        <location filename="../src/app/qgisapp.cpp" line="5410"/>
         <source>Could not commit changes to layer %1</source>
         <translation>Konnte Änderungen am Layer %1 nicht festschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5382"/>
+        <location filename="../src/app/qgisapp.cpp" line="5391"/>
         <source>Errors: %1
 </source>
         <translation>Fehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5389"/>
+        <location filename="../src/app/qgisapp.cpp" line="5398"/>
         <source>Show more</source>
         <translation>Mehr zeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5439"/>
+        <location filename="../src/app/qgisapp.cpp" line="5448"/>
         <source>Labeling Options</source>
         <translation>Beschriftungsoptionen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5440"/>
+        <location filename="../src/app/qgisapp.cpp" line="5449"/>
         <source>Please select a vector layer first</source>
         <translation>Bitte wählen zur zuvor einen Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5448"/>
+        <location filename="../src/app/qgisapp.cpp" line="5457"/>
         <source>Layer labeling settings</source>
         <translation>Layerbeschriftungseinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5542"/>
+        <location filename="../src/app/qgisapp.cpp" line="5551"/>
         <source>Reading raster</source>
         <translation>Lade Raster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5543"/>
+        <location filename="../src/app/qgisapp.cpp" line="5552"/>
         <source>Saving raster</source>
         <translation>Speichere Raster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5616"/>
+        <location filename="../src/app/qgisapp.cpp" line="5625"/>
         <source>Cannot write raster error code: %1</source>
         <translation>Rasterschreibfehlercode: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5627"/>
-        <location filename="../src/app/qgisapp.cpp" line="5760"/>
+        <location filename="../src/app/qgisapp.cpp" line="5636"/>
+        <location filename="../src/app/qgisapp.cpp" line="5769"/>
         <source>Saving done</source>
         <translation>Speichern abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5628"/>
+        <location filename="../src/app/qgisapp.cpp" line="5637"/>
         <source>Export to raster file has been completed</source>
         <translation>Rasterdateiexport abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5761"/>
+        <location filename="../src/app/qgisapp.cpp" line="5770"/>
         <source>Export to vector file has been completed</source>
         <translation>Export in Vektordatei ist abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5767"/>
+        <location filename="../src/app/qgisapp.cpp" line="5776"/>
         <source>Save error</source>
         <translation>Fehler beim Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5768"/>
+        <location filename="../src/app/qgisapp.cpp" line="5777"/>
         <source>Export to vector file failed.
 Error: %1</source>
         <translation>Export in Vektordatei schlug fehl.
 Fehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5831"/>
-        <location filename="../src/app/qgisapp.cpp" line="8409"/>
-        <location filename="../src/app/qgisapp.cpp" line="8418"/>
-        <location filename="../src/app/qgisapp.cpp" line="8479"/>
-        <location filename="../src/app/qgisapp.cpp" line="8488"/>
+        <location filename="../src/app/qgisapp.cpp" line="5840"/>
+        <location filename="../src/app/qgisapp.cpp" line="8419"/>
+        <location filename="../src/app/qgisapp.cpp" line="8428"/>
+        <location filename="../src/app/qgisapp.cpp" line="8489"/>
+        <location filename="../src/app/qgisapp.cpp" line="8498"/>
         <source>No Layer Selected</source>
         <translation>Keinen Layer ausgewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5832"/>
+        <location filename="../src/app/qgisapp.cpp" line="5841"/>
         <source>To delete features, you must select a vector layer in the legend</source>
         <translation>Zum Löschen von Objekte zu muss ein Vektorlayer in der Legende gewählt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5840"/>
+        <location filename="../src/app/qgisapp.cpp" line="5849"/>
         <source>No Vector Layer Selected</source>
         <translation>Es wurde kein Vektorlayer gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5841"/>
+        <location filename="../src/app/qgisapp.cpp" line="5850"/>
         <source>Deleting features only works on vector layers</source>
         <translation>Löschen von Objekten ist nur von Vektorlayern möglich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5848"/>
+        <location filename="../src/app/qgisapp.cpp" line="5857"/>
         <source>Provider does not support deletion</source>
         <translation>Datenanbieter unterstützt keine Löschoperationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5849"/>
+        <location filename="../src/app/qgisapp.cpp" line="5858"/>
         <source>Data provider does not support deleting features</source>
         <translation>Der Datenanbieter hat nicht die Möglichkeit Objekte zu löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5856"/>
-        <location filename="../src/app/qgisapp.cpp" line="6364"/>
+        <location filename="../src/app/qgisapp.cpp" line="5865"/>
         <location filename="../src/app/qgisapp.cpp" line="6373"/>
-        <location filename="../src/app/qgisapp.cpp" line="6474"/>
+        <location filename="../src/app/qgisapp.cpp" line="6382"/>
+        <location filename="../src/app/qgisapp.cpp" line="6483"/>
         <source>Layer not editable</source>
         <translation>Der Layer kann nicht bearbeitet werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5857"/>
+        <location filename="../src/app/qgisapp.cpp" line="5866"/>
         <source>The current layer is not editable. Choose 'Start editing' in the digitizing toolbar.</source>
         <translation>Der aktuelle Layer kann nicht bearbeitet werden. Bitte 'Bearbeitungsstatus umschalten' aus der Digitalisierwerkzeugleiste wählen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5866"/>
+        <location filename="../src/app/qgisapp.cpp" line="5875"/>
         <source>No Features Selected</source>
         <translation>Keine Objekte gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5872"/>
+        <location filename="../src/app/qgisapp.cpp" line="5881"/>
         <source>Delete features</source>
         <translation>Objekte löschen</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="5872"/>
+        <location filename="../src/app/qgisapp.cpp" line="5881"/>
         <source>Delete %n feature(s)?</source>
         <comment>number of features to delete</comment>
         <translation>
@@ -25081,22 +25095,22 @@ Fehler: %1</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5877"/>
+        <location filename="../src/app/qgisapp.cpp" line="5886"/>
         <source>Features deleted</source>
         <translation>Objekt gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5881"/>
+        <location filename="../src/app/qgisapp.cpp" line="5890"/>
         <source>Problem deleting features</source>
         <translation>Problem beim Löschen der Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5882"/>
+        <location filename="../src/app/qgisapp.cpp" line="5891"/>
         <source>A problem occurred during deletion of %1 feature(s)</source>
         <translation>Ein Problem trat bei der Löschung von %1 Objekt(en) auf</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="5887"/>
+        <location filename="../src/app/qgisapp.cpp" line="5896"/>
         <source>%n feature(s) deleted.</source>
         <comment>number of features deleted</comment>
         <translation>
@@ -25105,225 +25119,229 @@ Fehler: %1</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5933"/>
+        <location filename="../src/app/qgisapp.cpp" line="5942"/>
         <source>Merging features...</source>
         <translation>Objekte werden verschmolzen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5933"/>
+        <location filename="../src/app/qgisapp.cpp" line="5942"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5986"/>
+        <location filename="../src/app/qgisapp.cpp" line="5995"/>
         <source>Create unique print composer title</source>
         <translation>Eindeutigen Druckzusammenstellungstitel erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5989"/>
+        <location filename="../src/app/qgisapp.cpp" line="5998"/>
         <source>(title generated if left empty)</source>
         <translation>(Leergelassene Titel werden generiert)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6003"/>
+        <location filename="../src/app/qgisapp.cpp" line="6012"/>
         <source>Composer title</source>
         <translation>Titel der Druckzusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6018"/>
+        <location filename="../src/app/qgisapp.cpp" line="6027"/>
         <source>Title can not be empty!</source>
         <translation>Titel kann nicht leer sein!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6028"/>
+        <location filename="../src/app/qgisapp.cpp" line="6037"/>
         <source>Title already exists!</source>
         <translation>Titel bereits vorhanden!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6047"/>
-        <location filename="../src/app/qgisapp.cpp" line="6148"/>
+        <location filename="../src/app/qgisapp.cpp" line="6056"/>
+        <location filename="../src/app/qgisapp.cpp" line="6157"/>
         <source>Composer %1</source>
         <translation>Druckzusammenstellung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6104"/>
+        <location filename="../src/app/qgisapp.cpp" line="6113"/>
         <source> copy</source>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6142"/>
+        <location filename="../src/app/qgisapp.cpp" line="6151"/>
         <source>Loading composer %1</source>
         <translation>Lade Zusammenstellung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6354"/>
-        <location filename="../src/app/qgisapp.cpp" line="6457"/>
+        <location filename="../src/app/qgisapp.cpp" line="6363"/>
+        <location filename="../src/app/qgisapp.cpp" line="6466"/>
         <source>No active layer</source>
         <translation>Kein aktiver Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6355"/>
+        <location filename="../src/app/qgisapp.cpp" line="6364"/>
         <source>No active layer found. Please select a layer in the layer list</source>
         <translation>Keinen aktiven Layer gefunden. Bitte einen Layer aus der Liste wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6385"/>
-        <location filename="../src/app/qgisapp.cpp" line="6493"/>
-        <location filename="../src/app/qgisapp.cpp" line="6541"/>
+        <location filename="../src/app/qgisapp.cpp" line="6394"/>
+        <location filename="../src/app/qgisapp.cpp" line="6502"/>
+        <location filename="../src/app/qgisapp.cpp" line="6550"/>
         <source>Not enough features selected</source>
         <translation>Nicht genug Objekte gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6386"/>
-        <location filename="../src/app/qgisapp.cpp" line="6494"/>
-        <location filename="../src/app/qgisapp.cpp" line="6542"/>
+        <location filename="../src/app/qgisapp.cpp" line="6395"/>
+        <location filename="../src/app/qgisapp.cpp" line="6503"/>
+        <location filename="../src/app/qgisapp.cpp" line="6551"/>
         <source>The merge tool requires at least two selected features</source>
         <translation>Das Verschmelzungswerkzeug erfordert mindestens zwei gewählte Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6403"/>
+        <location filename="../src/app/qgisapp.cpp" line="6412"/>
         <source>Merged feature attributes</source>
         <translation>Objektattribute vereinen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6429"/>
-        <location filename="../src/app/qgisapp.cpp" line="6596"/>
+        <location filename="../src/app/qgisapp.cpp" line="6438"/>
+        <location filename="../src/app/qgisapp.cpp" line="6605"/>
         <source>Invalid result</source>
         <translation>Ungültiges Ergebnis</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6430"/>
-        <location filename="../src/app/qgisapp.cpp" line="6597"/>
+        <location filename="../src/app/qgisapp.cpp" line="6439"/>
+        <location filename="../src/app/qgisapp.cpp" line="6606"/>
         <source>Could not store value '%1' in field of type %2</source>
         <translation>Konnte Wert '%1' nicht im Feld des Typs %2 speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6509"/>
-        <location filename="../src/app/qgisapp.cpp" line="6560"/>
+        <location filename="../src/app/qgisapp.cpp" line="6518"/>
+        <location filename="../src/app/qgisapp.cpp" line="6569"/>
         <source>Merge failed</source>
         <translation>Zusammenführung fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6578"/>
+        <location filename="../src/app/qgisapp.cpp" line="6587"/>
         <source>Merged features</source>
         <translation>Objekte verschmelzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6713"/>
-        <location filename="../src/app/qgisapp.cpp" line="6738"/>
-        <location filename="../src/app/qgisapp.cpp" line="6763"/>
+        <location filename="../src/app/qgisapp.cpp" line="6722"/>
+        <location filename="../src/app/qgisapp.cpp" line="6747"/>
+        <location filename="../src/app/qgisapp.cpp" line="6772"/>
         <source>No active vector layer</source>
         <translation>Kein aktiver Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6714"/>
+        <location filename="../src/app/qgisapp.cpp" line="6723"/>
         <source>To invert selection, choose a vector layer in the legend</source>
         <translation>Um die Objektauswahl umzukehren einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6739"/>
+        <location filename="../src/app/qgisapp.cpp" line="6748"/>
         <source>To select all, choose a vector layer in the legend</source>
         <translation>Um alle Objekte zu wählen einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6764"/>
+        <location filename="../src/app/qgisapp.cpp" line="6773"/>
         <source>To select features, choose a vector layer in the legend</source>
         <translation>Um Objekte zu wählen einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6801"/>
+        <location filename="../src/app/qgisapp.cpp" line="6810"/>
         <source>Features cut</source>
         <translation>Objekte ausgeschnitten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6827"/>
+        <location filename="../src/app/qgisapp.cpp" line="6836"/>
         <source>Features pasted</source>
         <translation>Objekte eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6915"/>
-        <location filename="../src/app/qgisapp.cpp" line="6922"/>
-        <location filename="../src/app/qgisapp.cpp" line="6928"/>
+        <location filename="../src/app/qgisapp.cpp" line="6924"/>
+        <location filename="../src/app/qgisapp.cpp" line="6931"/>
+        <location filename="../src/app/qgisapp.cpp" line="6937"/>
+        <location filename="../src/app/qgisapp.cpp" line="7040"/>
+        <location filename="../src/app/qgisapp.cpp" line="7047"/>
+        <location filename="../src/app/qgisapp.cpp" line="7053"/>
+        <location filename="../src/app/qgisapp.cpp" line="7066"/>
+        <location filename="../src/app/qgisapp.cpp" line="7080"/>
         <source>Paste features</source>
         <translation>Objekte einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6916"/>
+        <location filename="../src/app/qgisapp.cpp" line="6925"/>
         <source>no features could be successfully pasted.</source>
         <translation>Es wurden keine Objekte erfolgreich eingefügt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6923"/>
+        <location filename="../src/app/qgisapp.cpp" line="6932"/>
         <source>%1 features were successfully pasted.</source>
         <translation>%1 Objekte wurden erfolgreich eingefügt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6929"/>
+        <location filename="../src/app/qgisapp.cpp" line="6938"/>
         <source>%1 of %2 features could be successfully pasted.</source>
         <translation>%1 von %2 Objekte konnte erfolgreich eingefügt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6956"/>
+        <location filename="../src/app/qgisapp.cpp" line="6965"/>
         <source>Pasted</source>
         <translation>Eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6958"/>
+        <location filename="../src/app/qgisapp.cpp" line="6967"/>
         <source>Layer name</source>
         <translation>Layername</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7036"/>
+        <location filename="../src/app/qgisapp.cpp" line="7041"/>
         <source>No features in clipboard.</source>
         <translation>Keine Objekte in der Zwischenablage.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7040"/>
+        <location filename="../src/app/qgisapp.cpp" line="7048"/>
         <source>No features with geometry found, point type layer will be created.</source>
         <translation>Keine Objekte mit Geometrie gefunden. Ein Punktlayer wird erzeugt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7044"/>
+        <location filename="../src/app/qgisapp.cpp" line="7054"/>
         <source>Multiple geometry types found, features with geometry different from %1 will be created without geometry.</source>
         <translation>Mehrere Geometriearten gefunden, Objekte mit einer anderen Geometrieart als %1 werden ohne Geometrie erzeugt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7058"/>
         <source>Cannot create new layer</source>
-        <translation>Konnte neuen Layer nicht erzeugen</translation>
+        <translation type="obsolete">Konnte neuen Layer nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7071"/>
+        <location filename="../src/app/qgisapp.cpp" line="7081"/>
         <source>Cannot create field %1 (%2,%3)</source>
         <translation>Konnte Feld %1 (%2,%3) nicht anlegen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7250"/>
+        <location filename="../src/app/qgisapp.cpp" line="7260"/>
         <source>Start editing failed</source>
         <translation>Bearbeitungsbeginn schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7251"/>
+        <location filename="../src/app/qgisapp.cpp" line="7261"/>
         <source>Provider cannot be opened for editing</source>
         <translation>Datenanbieter kann nicht zum Bearbeiten geöffnet werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7276"/>
+        <location filename="../src/app/qgisapp.cpp" line="7286"/>
         <source>Stop editing</source>
         <translation>Bearbeitung beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7277"/>
+        <location filename="../src/app/qgisapp.cpp" line="7287"/>
         <source>Do you want to save the changes to layer %1?</source>
         <translation>Sollen die Änderungen am Layer %1 gespeichert werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7308"/>
+        <location filename="../src/app/qgisapp.cpp" line="7318"/>
         <source>Problems during roll back</source>
         <translation>Probleme beim Zurücknehmen der Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7388"/>
+        <location filename="../src/app/qgisapp.cpp" line="7398"/>
         <source>Could not %1 changes to layer %2
 
 Errors: %3
@@ -25334,234 +25352,234 @@ Fehler: %3
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7389"/>
+        <location filename="../src/app/qgisapp.cpp" line="7399"/>
         <source>rollback</source>
         <translation>verworfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7389"/>
+        <location filename="../src/app/qgisapp.cpp" line="7399"/>
         <source>cancel</source>
         <translation>abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7419"/>
+        <location filename="../src/app/qgisapp.cpp" line="7429"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7419"/>
-        <location filename="../src/app/qgisapp.cpp" line="7445"/>
-        <location filename="../src/app/qgisapp.cpp" line="7471"/>
+        <location filename="../src/app/qgisapp.cpp" line="7429"/>
+        <location filename="../src/app/qgisapp.cpp" line="7455"/>
+        <location filename="../src/app/qgisapp.cpp" line="7481"/>
         <source>all</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7445"/>
+        <location filename="../src/app/qgisapp.cpp" line="7455"/>
         <source>Rollback</source>
         <translation>Verwerfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7471"/>
+        <location filename="../src/app/qgisapp.cpp" line="7481"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7487"/>
+        <location filename="../src/app/qgisapp.cpp" line="7497"/>
         <source>Current edits</source>
         <translation>Aktuelle Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7488"/>
+        <location filename="../src/app/qgisapp.cpp" line="7498"/>
         <source>%1 current changes for %2 layer(s)?</source>
         <translation>Aktuelle Änderungen für %2 Layer %1?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7580"/>
+        <location filename="../src/app/qgisapp.cpp" line="7590"/>
         <source>You are about to set a subset filter on a layer that has joined fields. Joined fields cannot be filtered, unless you convert the layer to a virtual layer first. Would you like to create a virtual layer out of this layer first?</source>
         <translation>Es soll eine Filter auf einen Layer mit verknüpften Feldern gesetzt werden. Verknüpfte Felder können nur gefiltert werden, wenn sie zuvor in einen virtuellen Layer umgewandelt werden.  Soll aus diesem Layer ein virtueller Layer erzeugt werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7783"/>
+        <location filename="../src/app/qgisapp.cpp" line="7793"/>
         <source>copy</source>
         <translation>Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7787"/>
+        <location filename="../src/app/qgisapp.cpp" line="7797"/>
         <source>Plugin layer</source>
         <translation>Erweiterungslayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7799"/>
+        <location filename="../src/app/qgisapp.cpp" line="7809"/>
         <source>Memory layer</source>
         <translation>Speicherlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7851"/>
-        <location filename="../src/app/qgisapp.cpp" line="7862"/>
+        <location filename="../src/app/qgisapp.cpp" line="7861"/>
+        <location filename="../src/app/qgisapp.cpp" line="7872"/>
         <source>Duplicate layer: </source>
         <translation>Layerduplizierung:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7852"/>
+        <location filename="../src/app/qgisapp.cpp" line="7862"/>
         <source>%1 (duplication resulted in invalid layer)</source>
         <translation>%1 (Kopieren führt zu ungültigem Layer)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7922"/>
+        <location filename="../src/app/qgisapp.cpp" line="7932"/>
         <source>Set scale visibility for selected layers</source>
         <translation>Maßstabsabhängige Sichtbarkeit der gewählten Layer setzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8215"/>
+        <location filename="../src/app/qgisapp.cpp" line="8225"/>
         <source>Couldn't load Python support library: %1</source>
         <translation>Konnte Python-Unterstützungsbibliothek nicht laden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8226"/>
+        <location filename="../src/app/qgisapp.cpp" line="8236"/>
         <source>Couldn't resolve python support library's instance() symbol.</source>
         <translation>Konnte Symbol instance() nicht in Python-Unterstützungsbibliothek finden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8244"/>
+        <location filename="../src/app/qgisapp.cpp" line="8254"/>
         <source>Python support ENABLED :-) </source>
         <translation>Python-Unterstützung aktiviert :-) </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8270"/>
+        <location filename="../src/app/qgisapp.cpp" line="8280"/>
         <source>There is a new version of QGIS available</source>
         <translation>Eine neue Version von QGIS ist verfügbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8274"/>
+        <location filename="../src/app/qgisapp.cpp" line="8284"/>
         <source>You are running a development version of QGIS</source>
         <translation>Sie verwenden eine Entwicklungsversion von QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8278"/>
+        <location filename="../src/app/qgisapp.cpp" line="8288"/>
         <source>You are running the current version of QGIS</source>
         <translation>Sie verwenden die aktuelle Version von QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8285"/>
-        <location filename="../src/app/qgisapp.cpp" line="8291"/>
+        <location filename="../src/app/qgisapp.cpp" line="8295"/>
+        <location filename="../src/app/qgisapp.cpp" line="8301"/>
         <source>QGIS Version Information</source>
         <translation>QGIS-Versionsinformationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8291"/>
+        <location filename="../src/app/qgisapp.cpp" line="8301"/>
         <source>Unable to get current version information from server</source>
         <translation>Kann Informationen zu aktuellen Version nicht vom Server holen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8410"/>
-        <location filename="../src/app/qgisapp.cpp" line="8419"/>
+        <location filename="../src/app/qgisapp.cpp" line="8420"/>
+        <location filename="../src/app/qgisapp.cpp" line="8429"/>
         <source>To perform a full histogram stretch, you need to have a raster layer selected.</source>
         <translation>Um eine volle Histogrammstreckung durchzuführen, muß ein Rasterlayer gewählt sein.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8480"/>
-        <location filename="../src/app/qgisapp.cpp" line="8489"/>
+        <location filename="../src/app/qgisapp.cpp" line="8490"/>
+        <location filename="../src/app/qgisapp.cpp" line="8499"/>
         <source>To change brightness or contrast, you need to have a raster layer selected.</source>
         <translation>Um Helligkeit oder Kontrast zu ändern, muß ein Rasterlayer gewählt sein.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8515"/>
+        <location filename="../src/app/qgisapp.cpp" line="8525"/>
         <source>en</source>
         <comment>documentation language</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8533"/>
+        <location filename="../src/app/qgisapp.cpp" line="8543"/>
         <source>https://qgis.org/en/site/getinvolved/development/index.html#bugs-features-and-issues</source>
         <translation>https://qgis.org/de/site/getinvolved/development/index.html#bugs-features-and-issues</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8537"/>
+        <location filename="../src/app/qgisapp.cpp" line="8547"/>
         <source>https://qgis.org/en/site/forusers/commercial_support.html</source>
         <translation>https://qgis.org/de/site/forusers/commercial_support.html</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8661"/>
-        <location filename="../src/app/qgisapp.cpp" line="8704"/>
+        <location filename="../src/app/qgisapp.cpp" line="8671"/>
+        <location filename="../src/app/qgisapp.cpp" line="8714"/>
         <source>Layer is not valid</source>
         <translation>Layer ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11243"/>
+        <location filename="../src/app/qgisapp.cpp" line="11269"/>
         <source>Layer %1</source>
         <translation>Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8660"/>
+        <location filename="../src/app/qgisapp.cpp" line="8670"/>
         <source>The layer %1 is not a valid layer and can not be added to the map</source>
         <translation>Der Layer %1 ist ungültig und kann der Karte nicht hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6365"/>
-        <location filename="../src/app/qgisapp.cpp" line="6467"/>
+        <location filename="../src/app/qgisapp.cpp" line="6374"/>
+        <location filename="../src/app/qgisapp.cpp" line="6476"/>
         <source>The merge features tool only works on vector layers.</source>
         <translation>Das Verschmeldungswerkzeug funktioniert nur mit Vektorlayern.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6374"/>
-        <location filename="../src/app/qgisapp.cpp" line="6475"/>
+        <location filename="../src/app/qgisapp.cpp" line="6383"/>
+        <location filename="../src/app/qgisapp.cpp" line="6484"/>
         <source>Merging features can only be done for layers in editing mode.</source>
         <translation>Verschmelzung von Objekten kann nur auf Layern im Bearbeitungsmodus erfolgen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6458"/>
+        <location filename="../src/app/qgisapp.cpp" line="6467"/>
         <source>Please select a layer in the layer list</source>
         <translation>Einen Layer in der Liste wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6466"/>
+        <location filename="../src/app/qgisapp.cpp" line="6475"/>
         <source>Invalid layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6520"/>
-        <location filename="../src/app/qgisapp.cpp" line="6570"/>
+        <location filename="../src/app/qgisapp.cpp" line="6529"/>
+        <location filename="../src/app/qgisapp.cpp" line="6579"/>
         <source>Merge cancelled</source>
         <translation>Verschmelzung abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6521"/>
-        <location filename="../src/app/qgisapp.cpp" line="6571"/>
+        <location filename="../src/app/qgisapp.cpp" line="6530"/>
+        <location filename="../src/app/qgisapp.cpp" line="6580"/>
         <source>The union operation would result in a geometry type that is not compatible with the current layer.</source>
         <translation>Die Vereinigungsoperation würde einen Geometrietyp ergeben, der nicht zum aktuellen Layer paßt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8703"/>
+        <location filename="../src/app/qgisapp.cpp" line="8713"/>
         <source>The layer is not a valid layer and can not be added to the map</source>
         <translation>Der Layer ist ungültig und kann daher nicht zum Kartenfenster hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8799"/>
+        <location filename="../src/app/qgisapp.cpp" line="8809"/>
         <source>Project has layer(s) in edit mode with unsaved edits, which will NOT be saved!</source>
         <translation>Projekt hat Layer im Bearbeitungsmodus mit nicht gespeicherten Bearbeitungen, die NICHT gespeichert werden!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8823"/>
+        <location filename="../src/app/qgisapp.cpp" line="8833"/>
         <source>Save?</source>
         <translation>Speichern?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9446"/>
+        <location filename="../src/app/qgisapp.cpp" line="9456"/>
         <source>Current CRS: %1 (OTFR enabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aktiv)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9452"/>
+        <location filename="../src/app/qgisapp.cpp" line="9462"/>
         <source>Current CRS: %1 (OTFR disabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aus)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9684"/>
+        <location filename="../src/app/qgisapp.cpp" line="9694"/>
         <source>Maptips require an active layer</source>
         <translation>Kartentipps erfordern einen aktuellen Layer</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="9751"/>
+        <location filename="../src/app/qgisapp.cpp" line="9761"/>
         <source>%n feature(s) selected on layer %1.</source>
         <comment>number of selected features</comment>
         <translation>
@@ -25570,101 +25588,98 @@ Fehler: %3
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10252"/>
+        <location filename="../src/app/qgisapp.cpp" line="10262"/>
         <source>Open a GDAL Supported Raster Data Source</source>
         <translation>Öffnen einer GDAL-Rasterdatenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10357"/>
+        <location filename="../src/app/qgisapp.cpp" line="10367"/>
         <source>Error adding valid layer to map canvas</source>
         <translation>Fehler beim Hinzufügen eines gültigen Layers zur Karte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10358"/>
+        <location filename="../src/app/qgisapp.cpp" line="10368"/>
         <source>Raster layer</source>
         <translation>Raster-Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10484"/>
+        <location filename="../src/app/qgisapp.cpp" line="10494"/>
         <source>%1 is not a supported raster data source</source>
         <translation>%1 ist keine unterstützte Rasterdatenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10488"/>
+        <location filename="../src/app/qgisapp.cpp" line="10498"/>
         <source>Unsupported Data Source</source>
         <translation>Nicht unterstütztes Datenformat</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10545"/>
+        <location filename="../src/app/qgisapp.cpp" line="10555"/>
         <source>Exit QGIS</source>
         <translation>QGIS beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10546"/>
+        <location filename="../src/app/qgisapp.cpp" line="10556"/>
         <source>Do you really want to quit QGIS?</source>
         <translation>Soll QGIS wirklich beendet werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10631"/>
+        <location filename="../src/app/qgisapp.cpp" line="10641"/>
         <source>This project file was saved by an older version of QGIS. When saving this project file, QGIS will update it to the latest version, possibly rendering it useless for older versions of QGIS.</source>
         <translation>Dieses Projekt wurde mit einer älteren Version von QGIS gespeichert. Erneutes Speichern der Projektdatei bringt die Datei auf den aktuellen Stand, verursacht u.U. das es mit älteren Versionen von QGIS nicht mehr verwendet werden kann.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10635"/>
+        <location filename="../src/app/qgisapp.cpp" line="10645"/>
         <source><p>This project file was saved by an older version of QGIS. When saving this project file, QGIS will update it to the latest version, possibly rendering it useless for older versions of QGIS.<p>Even though QGIS developers try to maintain backwards compatibility, some of the information from the old project file might be lost. To improve the quality of QGIS, we appreciate if you file a bug report at %3. Be sure to include the old project file, and state the ver [...]
         <translation><p>Diese Projektdatei wurde mit einer älteren QGIS-Version gespeichert. Beim Speichern dieser Projektdatei wird QGIS es auf die aktuelle Version aktualisieren und sie damit unter Umständen für ältere QGIS-Versionen unbrauchbar machen. <p>Obwohl die QGIS-Entwickler versuchen Rückwärtskompatibilität zu erhalten, könnten dabei einige Informationen der alten Projektdatei verloren gehen. Um die Qualität von QGIS zu verbessern, würden wir es begrüßen, wenn Sie  [...]
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10651"/>
+        <location filename="../src/app/qgisapp.cpp" line="10661"/>
         <source><tt>Settings:Options:General</tt></source>
         <comment>Menu path to setting options</comment>
         <translation><tt>Einstellungen:Optionen:Allgemein</tt></translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10652"/>
+        <location filename="../src/app/qgisapp.cpp" line="10662"/>
         <source>Warn me when opening a project file saved with an older version of QGIS</source>
         <translation>Beim Öffnen einer Projektdatei, die mit einer älteren QGIS-Version erstellt wurde, warnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10653"/>
+        <location filename="../src/app/qgisapp.cpp" line="10663"/>
         <source>Project file is older</source>
         <translation>Projektdatei ist älter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10657"/>
+        <location filename="../src/app/qgisapp.cpp" line="10667"/>
         <source>This project file was saved by an older version of QGIS</source>
         <translation>Die Projektdatei wurde mit einer älteren QGIS-Version gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11055"/>
+        <location filename="../src/app/qgisapp.cpp" line="11081"/>
         <source> Please check the <a href="#messageLog">message log</a> for further info.</source>
         <translation> Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11054"/>
+        <location filename="../src/app/qgisapp.cpp" line="11080"/>
         <source>A network request timed out, any data received is likely incomplete.</source>
         <translation>Zeitüberschreitung bei Netzwerkanfrage, empfangene Daten wahrscheinlich nicht vollständig.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7049"/>
-        <location filename="../src/app/qgisapp.cpp" line="7058"/>
-        <location filename="../src/app/qgisapp.cpp" line="7070"/>
-        <location filename="../src/app/qgisapp.cpp" line="10840"/>
+        <location filename="../src/app/qgisapp.cpp" line="10850"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10841"/>
+        <location filename="../src/app/qgisapp.cpp" line="10851"/>
         <source>This layer doesn't have a properties dialog.</source>
         <translation>Dieser Layer hat keine Eigenschaftendialog.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10896"/>
+        <location filename="../src/app/qgisapp.cpp" line="10909"/>
         <source>Authentication required</source>
         <translation>Authentifikation erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10944"/>
+        <location filename="../src/app/qgisapp.cpp" line="10964"/>
         <source>Proxy authentication required</source>
         <translation>Proxy-Authentifikation erforderlich</translation>
     </message>
@@ -25677,54 +25692,54 @@ Fehler: %3
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4756"/>
+        <location filename="../src/app/qgisapp.cpp" line="4765"/>
         <source>Failed to run Python script:</source>
         <translation>Konnte Python-Skript nicht ausführen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5867"/>
+        <location filename="../src/app/qgisapp.cpp" line="5876"/>
         <source>The current layer has no selected features</source>
         <translation>Der aktuelle Layer hat keine gewählten Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2075"/>
-        <location filename="../src/app/qgisapp.cpp" line="2091"/>
+        <location filename="../src/app/qgisapp.cpp" line="2074"/>
+        <location filename="../src/app/qgisapp.cpp" line="2090"/>
         <source>Current clockwise map rotation in degrees</source>
         <translation>Derzeitge Kartendrehung in Grad im Uhrzeigersinn</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2088"/>
+        <location filename="../src/app/qgisapp.cpp" line="2087"/>
         <source>Shows the current map clockwise rotation in degrees. It also allows editing to set the rotation</source>
         <translation>Zeigt die aktuelle Karte im einen Winkel in Grad im Uhrzeigersinn gedreht an.  Der Winkel kann auch eingegeben werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9444"/>
+        <location filename="../src/app/qgisapp.cpp" line="9454"/>
         <source>%1 (OTF)</source>
         <translation>%1 (SRP)</translation>
     </message>
     <message>
+        <location filename="../src/app/qgisapp.cpp" line="2133"/>
         <location filename="../src/app/qgisapp.cpp" line="2134"/>
-        <location filename="../src/app/qgisapp.cpp" line="2135"/>
         <source>Messages</source>
         <translation>Meldungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4727"/>
+        <location filename="../src/app/qgisapp.cpp" line="4736"/>
         <source>Error loading layer definition</source>
         <translation>Fehler beim Laden der Layerdefinition</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5662"/>
+        <location filename="../src/app/qgisapp.cpp" line="5671"/>
         <source>Error saving layer definintion file</source>
         <translation>Fehler beim Speichern der Layerdefinitionsdatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4594"/>
+        <location filename="../src/app/qgisapp.cpp" line="4603"/>
         <source>Project file was changed</source>
         <translation>Projektdatei wurde geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4595"/>
+        <location filename="../src/app/qgisapp.cpp" line="4604"/>
         <source>The loaded project file on disk was meanwhile changed.  Do you want to overwrite the changes?
 
 Last modification date on load was: %1
@@ -25734,6 +25749,16 @@ Current last modification date is: %2</source>
 Letztes Änderungsdatum beim Laden war: %1
 Aktuelles letztes Änderungsdateum ist: %2</translation>
     </message>
+    <message>
+        <location filename="../src/app/qgisapp.cpp" line="3088"/>
+        <source>QGIS code branch</source>
+        <translation>QGIS-Codezweig</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgisapp.cpp" line="7067"/>
+        <source>Cannot create new layer.</source>
+        <translation>Kann neuen Layer nicht erzeugen.</translation>
+    </message>
 </context>
 <context>
     <name>QgisAppInterface</name>
@@ -25875,17 +25900,17 @@ p, li { white-space: pre-wrap; }
         <translation>http://www.gnu.org/licenses</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsabout.ui" line="259"/>
+        <location filename="../src/ui/qgsabout.ui" line="269"/>
         <source>QGIS Home Page</source>
         <translation>QGIS-Homepage</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsabout.ui" line="269"/>
+        <location filename="../src/ui/qgsabout.ui" line="279"/>
         <source>Join our user mailing list</source>
         <translation>Unsere Mailingliste abonnieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsabout.ui" line="387"/>
+        <location filename="../src/ui/qgsabout.ui" line="397"/>
         <source>about:blank</source>
         <translation>about:blank</translation>
     </message>
@@ -25955,10 +25980,15 @@ p, li { white-space: pre-wrap; }
         <translation>Entwicklerkarte</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsabout.ui" line="345"/>
+        <location filename="../src/ui/qgsabout.ui" line="355"/>
         <source>Essen (Germany), Developer meeting 2014</source>
         <translation>Essen (Deutschland), Entwicklertreffen 2014</translation>
     </message>
+    <message>
+        <location filename="../src/ui/qgsabout.ui" line="244"/>
+        <source><p>QGIS Splash screen map courtesy of Stadt Essen</p><p>Thanks to the Linux hotel (Essen) for hosting the 2012 and 2014 developer meetings</p></source>
+        <translation><p>Karte auf QGIS-Startschirm mit freundlicher Genehmigung der Stadt Essen</p><p>Danke dem Linuxhotel (Essen) für die Beherbergung von Entwicklertreffen 2012 und 2014</p></translation>
+    </message>
 </context>
 <context>
     <name>QgsActionMenu</name>
@@ -27660,7 +27690,7 @@ Ausdruckfehler:
     <message>
         <location filename="../src/gui/auth/qgsauthauthoritieseditor.cpp" line="119"/>
         <source>Serial #</source>
-        <translation>Seriennr.</translation>
+        <translation>Seriennr. </translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthauthoritieseditor.cpp" line="120"/>
@@ -27699,7 +27729,7 @@ Operation kann nicht zurückgenommen werden!</translation>
     <message>
         <location filename="../src/gui/auth/qgsauthauthoritieseditor.cpp" line="526"/>
         <source>Certificate could not found in database for id %1:</source>
-        <translation>Zertifikat für %1 wurde nicht in der Datenbank gefunden</translation>
+        <translation>Zertifikat für %1 wurde nicht in der Datenbank gefunden:</translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthauthoritieseditor.cpp" line="533"/>
@@ -28059,7 +28089,7 @@ Operation kann nicht zurückgenommen werden!</translation>
     <message>
         <location filename="../src/gui/auth/qgsauthcertificateinfo.cpp" line="664"/>
         <source>Serial #</source>
-        <translation>Seriennr.</translation>
+        <translation>Seriennr. </translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthcertificateinfo.cpp" line="667"/>
@@ -28561,7 +28591,7 @@ Operation kann nicht zurückgenommen werden!</translation>
     <message>
         <location filename="../src/gui/auth/qgsauthidentitieseditor.cpp" line="95"/>
         <source>Serial #</source>
-        <translation>Seriennr.</translation>
+        <translation>Seriennr. </translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthidentitieseditor.cpp" line="96"/>
@@ -28889,7 +28919,7 @@ Autoritäten/Aussteller: %1%2</translation>
     <message>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="152"/>
         <source>No authentication method plugins found</source>
-        <translation>Keine Erweiterungen mit Authentifizierungsmethoden verfügbar.</translation>
+        <translation>Keine Erweiterungen mit Authentifizierungsmethoden verfügbar</translation>
     </message>
     <message>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="159"/>
@@ -28905,7 +28935,7 @@ Autoritäten/Aussteller: %1%2</translation>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="186"/>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="1297"/>
         <source>Auth db is not readable or writable by user</source>
-        <translation>Auth-DB ist nicht durch Benutzer les- oder schreibbar.</translation>
+        <translation>Auth-DB ist nicht durch Benutzer les- oder schreibbar</translation>
     </message>
     <message>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="273"/>
@@ -29099,7 +29129,7 @@ Autoritäten/Aussteller: %1%2</translation>
     <message>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="1949"/>
         <source>Authentication database contains duplicate SSL cert custom configs for host:port: %1</source>
-        <translation>Authentifizierungdatenbank enthält doppelte SSL-Zertifikatsbenutzerkonfigurationen for host:port, id: %1, %2</translation>
+        <translation>Authentifizierungdatenbank enthält doppelte SSL-Zertifikatsbenutzerkonfigurationen für Host:Port: %1</translation>
     </message>
     <message>
         <location filename="../src/core/auth/qgsauthmanager.cpp" line="2288"/>
@@ -29570,7 +29600,7 @@ Operation kann nicht zurückgenommen werden!</translation>
     <message>
         <location filename="../src/ui/auth/qgsauthsslerrorsdialog.ui" line="231"/>
         <source>WARNING: Only save SSL configurations when necessary.</source>
-        <translation>WARNUNG: Nur SSL-Konfiguration speichern wenn nötig</translation>
+        <translation>WARNUNG: Nur SSL-Konfiguration speichern wenn nötig.</translation>
     </message>
 </context>
 <context>
@@ -29740,7 +29770,7 @@ Operation kann nicht zurückgenommen werden!</translation>
     <message>
         <location filename="../src/gui/auth/qgsauthtrustedcasdialog.cpp" line="90"/>
         <source>Serial #</source>
-        <translation>Seriennr.</translation>
+        <translation>Seriennr. </translation>
     </message>
     <message>
         <location filename="../src/gui/auth/qgsauthtrustedcasdialog.cpp" line="91"/>
@@ -30753,7 +30783,7 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     <message>
         <location filename="../src/gui/qgscolorbutton.cpp" line="350"/>
         <source>Pick color</source>
-        <translation>Farbe wählen</translation>
+        <translation>Farbe abgreifen</translation>
     </message>
 </context>
 <context>
@@ -30794,7 +30824,7 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     <message>
         <location filename="../src/gui/qgscolorbuttonv2.cpp" line="451"/>
         <source>Pick color</source>
-        <translation>Farbe wählen</translation>
+        <translation>Farbe abgreifen</translation>
     </message>
     <message>
         <location filename="../src/gui/qgscolorbuttonv2.cpp" line="455"/>
@@ -35034,7 +35064,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerMapGrid</name>
     <message>
-        <location filename="../src/core/composer/qgscomposermapgrid.cpp" line="2238"/>
+        <location filename="../src/core/composer/qgscomposermapgrid.cpp" line="2240"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
@@ -36076,7 +36106,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerPicture</name>
     <message>
-        <location filename="../src/core/composer/qgscomposerpicture.cpp" line="322"/>
+        <location filename="../src/core/composer/qgscomposerpicture.cpp" line="333"/>
         <source>Picture expression eval error</source>
         <translation>Bildausdrucksfehler</translation>
     </message>
@@ -36084,58 +36114,83 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerPictureWidget</name>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="93"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="101"/>
         <source>Select svg or image file</source>
         <translation>SVG oder Rasterbild wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="116"/>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="132"/>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="158"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="125"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="138"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="165"/>
         <source>Picture changed</source>
         <translation>Bild geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="143"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="150"/>
         <source>Picture rotation changed</source>
         <translation>Bilddrehung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="168"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="176"/>
         <source>Select new preview directory</source>
         <translation>Neues Vorschauverzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="223"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="231"/>
         <source>Picture resize mode changed</source>
         <translation>Bilddgrößenanpassungmethode geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="250"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="258"/>
         <source>Picture placement changed</source>
         <translation>Bildplatzierung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="262"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="270"/>
         <source>Rotation synchronisation toggled</source>
         <translation>Drehungssynchronisation umgeschaltet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="322"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="330"/>
         <source>Rotation map changed</source>
         <translation>Kartendrehung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="346"/>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="396"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="354"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="407"/>
         <source>Map %1</source>
         <translation>Karte %1</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="458"/>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="564"/>
         <source>Creating icon for file %1</source>
         <translation>Icon für Datei %1 wird erzeugt</translation>
     </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="41"/>
+        <source>Select fill color</source>
+        <translation>Füllfarbe wählen</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="44"/>
+        <source>Select outline color</source>
+        <translation>Umrandungsfarbe wählen</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="701"/>
+        <source>Picture fill color changed</source>
+        <translation>Bildfüllfarbe geändert</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="709"/>
+        <source>Picture border color changed</source>
+        <translation>Bildrandfarbe geändert</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerpicturewidget.cpp" line="717"/>
+        <source>Picture border width changed</source>
+        <translation>Bildrandstärke geändert</translation>
+    </message>
 </context>
 <context>
     <name>QgsComposerPictureWidgetBase</name>
@@ -36145,146 +36200,171 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Bild-Optionen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="41"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="50"/>
         <source>Picture</source>
         <translation>Bild</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="66"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="75"/>
         <source>Main properties</source>
         <translation>Haupteigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="78"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="87"/>
         <source>Image source</source>
         <translation>Bildquelle</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="102"/>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="109"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="111"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="118"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="118"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="127"/>
         <source>Resize mode</source>
         <translation>Größenanpassungsmodus</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="154"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="163"/>
         <source>Placement</source>
         <translation>Platzierung</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="126"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="135"/>
         <source>Zoom</source>
         <translation>Zoom</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="131"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="140"/>
         <source>Stretch</source>
         <translation>Strecken</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="136"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="145"/>
         <source>Clip</source>
         <translation>Zuschneiden</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="141"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="150"/>
         <source>Zoom and resize frame</source>
         <translation>Rahmen zoomen und Größe anpassen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="146"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="155"/>
         <source>Resize frame to image size</source>
         <translation>Rahmen auf Bildgröße setzen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="162"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="171"/>
         <source>Top left</source>
         <translation>Oben links</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="167"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="176"/>
         <source>Top center</source>
         <translation>Oben Mitte</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="172"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="181"/>
         <source>Top right</source>
         <translation>Oben rechts</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="177"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="186"/>
         <source>Middle left</source>
         <translation>Mitte links</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="182"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="191"/>
         <source>Middle</source>
         <translation>Mitte</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="187"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="196"/>
         <source>Middle right</source>
         <translation>Mitte rechts</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="192"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="201"/>
         <source>Bottom left</source>
         <translation>Unten links</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="197"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="206"/>
         <source>Bottom center</source>
         <translation>Unten Mitte</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="202"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="211"/>
         <source>Bottom right</source>
         <translation>Unten rechts</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="222"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="231"/>
         <source>Search directories</source>
         <translation>Verzeichnisse durchsuchen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="239"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="248"/>
         <source>Loading previews...</source>
         <translation>Lade Vorschauen...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="283"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="292"/>
         <source>Image search paths</source>
         <translation>Bildsuchpfade</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="299"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="308"/>
         <source>Remove</source>
         <translation>Entfernen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="306"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="315"/>
         <source>Add...</source>
         <translation>Hinzufügen...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="321"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="451"/>
         <source>Image rotation</source>
         <translation>Bilddrehung</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="333"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="463"/>
         <source>Sync with map</source>
         <translation>Mit Karte abgleichen</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="343"/>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="473"/>
         <source> °</source>
         <translation> °</translation>
     </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="327"/>
+        <source>SVG Parameters</source>
+        <translation>SVG-Parameter</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="339"/>
+        <source> mm</source>
+        <translation> mm</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="405"/>
+        <source>Outline color</source>
+        <translation>Umrandungsfarbe</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="412"/>
+        <source>Outline width</source>
+        <translation>Umrandungsstärke</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerpicturewidgetbase.ui" line="425"/>
+        <source>Fill color</source>
+        <translation>Füllfarbe</translation>
+    </message>
 </context>
 <context>
     <name>QgsComposerScaleBar</name>
@@ -36417,7 +36497,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
     <message>
         <location filename="../src/app/composer/qgscomposerscalebarwidget.cpp" line="76"/>
         <source>Select line color</source>
-        <translation>Lienienfarbe wählen</translation>
+        <translation>Linienfarbe wählen</translation>
     </message>
     <message>
         <location filename="../src/app/composer/qgscomposerscalebarwidget.cpp" line="79"/>
@@ -37863,7 +37943,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
     </message>
     <message>
         <location filename="../src/ui/qgsconfigureshortcutsdialog.ui" line="45"/>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="385"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="386"/>
         <source>Change</source>
         <translation>Ändern</translation>
     </message>
@@ -37954,27 +38034,27 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Die Datei enthält Tastenkürzel aus einem anderen Zeichensatz und ist nicht verwendbar.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="280"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="281"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="281"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="282"/>
         <source>Set default (%1)</source>
         <translation>Voreinstellung (%1)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="374"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="375"/>
         <source>Input: </source>
         <translation>Eingabe: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="406"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="407"/>
         <source>Shortcut conflict</source>
         <translation>Tastenkürzelkonflikt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="407"/>
+        <location filename="../src/app/qgsconfigureshortcutsdialog.cpp" line="408"/>
         <source>This shortcut is already assigned to action %1. Reassign?</source>
         <translation>Diese Tastenkürzel ist bereits der Aktion %1 zugeordnet.  Neu zuordnen?</translation>
     </message>
@@ -38225,7 +38305,7 @@ und aktuelle Datei ist [%3]</translation>
     <message>
         <location filename="../src/ui/qgscredentialdialog.ui" line="182"/>
         <source>Saved for session, until app is quit.</source>
-        <translation>Für Sitzung gespeichert bis Applikation beendet wird</translation>
+        <translation>Für Sitzung gespeichert bis Applikation beendet wird.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgscredentialdialog.ui" line="192"/>
@@ -38254,19 +38334,19 @@ und aktuelle Datei ist [%3]</translation>
         <translation>Erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="122"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="123"/>
         <source>Enter CURRENT master authentication password</source>
         <translation>Aktuelles Hauptpaßwort für Authentifikation eingeben</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="122"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="123"/>
         <source>Set NEW master authentication password</source>
         <translation>Neues Hauptpaßwort für Authentifikation setzen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="139"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="140"/>
         <source>Password attempts: %1</source>
-        <translation>Paßwortversuche: #</translation>
+        <translation>Paßwortversuche: %1</translation>
     </message>
 </context>
 <context>
@@ -40740,9 +40820,8 @@ nicht angezeigt</translation>
         <translation>Balkenbreite</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsdiagrampropertiesbase.ui" line="768"/>
         <source>Start Angle</source>
-        <translation>Startwinkel</translation>
+        <translation type="obsolete">Startwinkel</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsdiagrampropertiesbase.ui" line="865"/>
@@ -40977,6 +41056,11 @@ nicht angezeigt</translation>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
+    <message>
+        <location filename="../src/ui/qgsdiagrampropertiesbase.ui" line="768"/>
+        <source>Start angle</source>
+        <translation>Startwinkel</translation>
+    </message>
 </context>
 <context>
     <name>QgsDirectoryParamWidget</name>
@@ -41612,47 +41696,47 @@ p, li { white-space: pre-wrap; }
         <translation>jahr|jahre</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3314"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3326"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3365"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3377"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3319"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3331"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3370"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3382"/>
         <source>No root node! Parsing failed?</source>
         <translation>Kein Wurzelknoten! Parsen gescheitert?</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3409"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3414"/>
         <source>(no root)</source>
         <translation>(Keine Wurzel)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3605"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3610"/>
         <source>Unary minus only for numeric values.</source>
         <translation>Negatives Vorzeichen nur für nummerische Werte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3677"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3682"/>
         <source>Can't preform /, *, or % on DateTime and Interval</source>
         <translation>Kann /, * or % nicht auf Daten oder Intervallen ausführen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4238"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4243"/>
         <source>[unsupported type;%1; value:%2]</source>
         <translation>[nicht unterstützter Typ;%1; Wert:%2]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4277"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4282"/>
         <source>Column '%1' not found</source>
         <translation>Spalte '%1' nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4393"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4398"/>
         <source>function help for %1 missing</source>
         <translation>Funktionshilfe für %1 fehlt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4398"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4418"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4434"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4403"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4423"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4439"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="282"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="293"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="304"/>
@@ -41674,17 +41758,17 @@ p, li { white-space: pre-wrap; }
         <translation>Gruppe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4408"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4413"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4419"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4424"/>
         <source>Syntax</source>
         <translation>Syntax</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4421"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4426"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="254"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="405"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="425"/>
@@ -41710,7 +41794,7 @@ p, li { white-space: pre-wrap; }
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4438"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4443"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="11"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="23"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="35"/>
@@ -41885,139 +41969,139 @@ p, li { white-space: pre-wrap; }
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4464"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4469"/>
         <source>Arguments</source>
         <translation>Argumente</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4479"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4484"/>
         <source>Examples</source>
         <translation>Beispiele</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4496"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4501"/>
         <source>Notes</source>
         <translation>Hinweise</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4598"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4603"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="385"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4599"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4604"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="549"/>
         <source>Operators</source>
         <translation>Operatoren</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4600"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4605"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="295"/>
         <source>Conditionals</source>
         <translation>Bedingungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4601"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4606"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="362"/>
         <source>Fields and Values</source>
         <translation>Felder und Werte</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4602"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4607"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="495"/>
         <source>Math</source>
         <translation>Mathematik</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4603"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4608"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="317"/>
         <source>Conversions</source>
         <translation>Umwandlungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4604"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4609"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="339"/>
         <source>Date and Time</source>
         <translation>Datum und Zeit</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4605"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4610"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="582"/>
         <source>String</source>
         <translation>Zeichenketten</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4606"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4611"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="284"/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4607"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4612"/>
         <source>Geometry</source>
         <translation>Geometrie</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4608"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4613"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="571"/>
         <source>Record</source>
         <translation>Datensatz</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4609"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4614"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="593"/>
         <source>Variables</source>
         <translation>Variablen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4610"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4615"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="374"/>
         <source>Fuzzy Matching</source>
         <translation>Unscharfer Vergleich</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4611"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4616"/>
         <source>Recent (%1)</source>
         <translation>Letztes (%1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4627"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4632"/>
         <source><i>&lt;empty geometry&gt;</i></source>
         <translation><i>&lt;leere Geometrie&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4629"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4634"/>
         <source><i>&lt;geometry: %1&gt;</i></source>
         <translation><i>&lt;Geometrie: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4635"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4640"/>
         <source><i>&lt;feature: %1&gt;</i></source>
         <translation><i>&lt;Objekt: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4641"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4646"/>
         <source><i>&lt;interval: %1 days&gt;</i></source>
         <translation><i>&lt;Intervall: %1 Tage&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4646"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4651"/>
         <source><i>&lt;date: %1&gt;</i></source>
         <translation><i>&lt;date: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4651"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4656"/>
         <source><i>&lt;time: %1&gt;</i></source>
         <translation><i>&lt;time: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4656"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4661"/>
         <source><i>&lt;datetime: %1&gt;</i></source>
         <translation><i>&lt;datetime: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4663"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4668"/>
         <source>'%1...'</source>
         <translation>'%1...'</translation>
     </message>
@@ -42532,8 +42616,8 @@ p, li { white-space: pre-wrap; }
         <translation>4 = 2+2 AND 1 = 1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4418"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4434"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4423"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4439"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="271"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="842"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1207"/>
@@ -43996,7 +44080,7 @@ p, li { white-space: pre-wrap; }
         <location filename="../src/core/qgsexpression_texts.cpp" line="949"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="951"/>
         <source>Returns a specific component from a color string, eg the red component or alpha component.</source>
-        <translation>Gibt eine bestimmte Komponente einer Farbzeichnekette zurück, z.B. rote oder Alpha-Komponente</translation>
+        <translation>Gibt eine bestimmte Komponente einer Farbzeichnekette zurück, z.B. rote oder Alpha-Komponente.</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="951"/>
@@ -45832,7 +45916,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <location filename="../src/core/qgsexpression_texts.cpp" line="1705"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1707"/>
         <source>Creates a line geometry from a series of point geometries.</source>
-        <translation>Erzeugt eine Liniengeometrie aus  einer Reihe von Punktgeometrien</translation>
+        <translation>Erzeugt eine Liniengeometrie aus  einer Reihe von Punktgeometrien.</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1707"/>
@@ -45878,7 +45962,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <location filename="../src/core/qgsexpression_texts.cpp" line="1721"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1723"/>
         <source>Creates a point geometry from an x and y (and optional z and m) value.</source>
-        <translation>Erzeugt eine Punktgeometrie aus einem X- und Y-Wert und ggf. Z- und M-Wert)</translation>
+        <translation>Erzeugt eine Punktgeometrie aus einem X- und Y-Wert und ggf. Z- und M-Wert).</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="2326"/>
@@ -45889,7 +45973,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <location filename="../src/core/qgsexpression_texts.cpp" line="2362"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="2364"/>
         <source>Reverses the direction of a line string by reversing the order of its vertices.</source>
-        <translation>Kehrt die Richtung einer Linien durch die Umkehrung der Stützpunktreihenfolge um</translation>
+        <translation>Kehrt die Richtung einer Linien durch die Umkehrung der Stützpunktreihenfolge um.</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="2364"/>
@@ -46057,7 +46141,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1758"/>
         <source>closed line geometry for polygon's outer ring</source>
-        <translation>Geschlossene Liniengeometrie des äußeren Rings des Polygons.</translation>
+        <translation>Geschlossene Liniengeometrie des äußeren Rings des Polygons</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1759"/>
@@ -47655,7 +47739,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <location filename="../src/core/qgsexpression_texts.cpp" line="2491"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="2493"/>
         <source>Sets a specific color component for a color string, eg the red component or alpha component.</source>
-        <translation>Setzt eine bestimmte Komponente einer Farbzeichenkette, z.B. rote oder Alpha-Komponente</translation>
+        <translation>Setzt eine bestimmte Komponente einer Farbzeichenkette, z.B. rote oder Alpha-Komponente.</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="2493"/>
@@ -51259,7 +51343,7 @@ Bitte wählen Sie eine gültige Datei.</translation>
     <message>
         <location filename="../src/providers/postgres/qgscolumntypethread.cpp" line="112"/>
         <source>Table retrieval stopped.</source>
-        <translation>Laden der Tabelle gestoppt</translation>
+        <translation>Laden der Tabelle gestoppt.</translation>
     </message>
 </context>
 <context>
@@ -51661,7 +51745,7 @@ Bitte wählen Sie eine gültige Datei.</translation>
     <message>
         <location filename="../src/plugins/geometry_checker/ui/qgsgeometrycheckerresulttab.cpp" line="595"/>
         <source>The layer has been removed.</source>
-        <translation>Der Layer wurde entfernt</translation>
+        <translation>Der Layer wurde entfernt.</translation>
     </message>
 </context>
 <context>
@@ -51874,7 +51958,7 @@ Bitte wählen Sie eine gültige Datei.</translation>
     <message>
         <location filename="../src/plugins/geometry_checker/ui/qgsgeometrycheckersetuptab.cpp" line="188"/>
         <source>The input layer is not allowed to be in editing mode.</source>
-        <translation>Der Eingabelayer darf nicht im Bearbeitungsmodus sein</translation>
+        <translation>Der Eingabelayer darf nicht im Bearbeitungsmodus sein.</translation>
     </message>
     <message>
         <location filename="../src/plugins/geometry_checker/ui/qgsgeometrycheckersetuptab.cpp" line="196"/>
@@ -52234,7 +52318,7 @@ Bitte wählen Sie eine gültige Datei.</translation>
         <location filename="../src/plugins/geometry_snapper/qgsgeometrysnapper.cpp" line="64"/>
         <location filename="../src/plugins/geometry_snapper/qgsgeometrysnapper.cpp" line="90"/>
         <source>Failed to read feature %1 of input layer.</source>
-        <translation>Konnte Objekt %1 nicht aus Eingabelayer lesen</translation>
+        <translation>Konnte Objekt %1 nicht aus Eingabelayer lesen.</translation>
     </message>
 </context>
 <context>
@@ -54022,38 +54106,38 @@ Press cancel to abort breaks calculation or OK to continue.</source>
         <translation>Befehl: %1 %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2176"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2182"/>
         <source>Cannot get projection </source>
         <translation>Kann Projektion nicht bestimmen </translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2240"/>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2265"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2246"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2271"/>
         <source>Cannot get raster extent</source>
         <translation>Kann Rastergrenzen nicht bestimmen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2302"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2308"/>
         <source>Cannot get map info</source>
         <translation>Konnte Karteninfo nicht bekommen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2333"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2339"/>
         <source>Cannot get colors</source>
         <translation>Konnte Farben nicht bekommen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2356"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2362"/>
         <source>Cannot query raster </source>
         <translation>Kann Raster nicht abfragen </translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2425"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2431"/>
         <source>Cannot delete</source>
         <translation>Kann nicht löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/grass/qgsgrass.cpp" line="2463"/>
+        <location filename="../src/providers/grass/qgsgrass.cpp" line="2469"/>
         <source>Cannot create new vector: %1</source>
         <translation>Kann neuen Vektor nicht erzeugen: %1</translation>
     </message>
@@ -56250,7 +56334,7 @@ in Zeile %2, Spalte %3</translation>
         <location filename="../src/ui/qgsgroupwmsdatadialogbase.ui" line="56"/>
         <location filename="../src/ui/qgsgroupwmsdatadialogbase.ui" line="59"/>
         <source>A name used to identify the group layer. The short name is a text string used for machine-to-machine communication.</source>
-        <translation>Name zur Identifikation der Layergruppe. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird</translation>
+        <translation>Name zur Identifikation der Layergruppe. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsgroupwmsdatadialogbase.ui" line="66"/>
@@ -57981,6 +58065,11 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <source>Millimeter</source>
         <translation>Millimeter</translation>
     </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1719"/>
+        <source>Select SVG file</source>
+        <translation>SVG-Datei wählen</translation>
+    </message>
 </context>
 <context>
     <name>QgsLabelingGuiBase</name>
@@ -58293,7 +58382,7 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
     <message>
         <location filename="../src/ui/qgslabelingguibase.ui" line="3735"/>
         <source>Labels are placed in an equal radius circle around point features.</source>
-        <translation>Beschriftungen werden auf einem Kreis um das Punktobjekt plaziert</translation>
+        <translation>Beschriftungen werden auf einem Kreis um das Punktobjekt plaziert.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgslabelingguibase.ui" line="3748"/>
@@ -59384,28 +59473,28 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <translation>Karte</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="715"/>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="735"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="716"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="736"/>
         <source>Rendering</source>
         <translation>Darstellung</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="734"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="735"/>
         <source>Canvas refresh: %1 ms</source>
         <translation>Kartenaktualisierung: %1 ms</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="1100"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1101"/>
         <source>Feature does not have a geometry</source>
         <translation>Objekt hat keine Geometrie</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="1104"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1105"/>
         <source>Feature geometry is empty</source>
         <translation>Objektgeometrie ist leer</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="1108"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1109"/>
         <source>Zoom to feature id failed</source>
         <translation>Zoom auf Objektkennung gescheitert</translation>
     </message>
@@ -59626,14 +59715,14 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsMapRenderer</name>
     <message>
-        <location filename="../src/core/qgsmaprenderer.cpp" line="804"/>
-        <location filename="../src/core/qgsmaprenderer.cpp" line="833"/>
+        <location filename="../src/core/qgsmaprenderer.cpp" line="805"/>
+        <location filename="../src/core/qgsmaprenderer.cpp" line="834"/>
         <source>Transform error caught: %1</source>
         <translation>Transformationsfehler abgefangen: %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaprenderer.cpp" line="804"/>
-        <location filename="../src/core/qgsmaprenderer.cpp" line="833"/>
+        <location filename="../src/core/qgsmaprenderer.cpp" line="805"/>
+        <location filename="../src/core/qgsmaprenderer.cpp" line="834"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
@@ -61511,12 +61600,12 @@ verbesserung</translation>
 <context>
     <name>QgsNetworkAccessManager</name>
     <message>
-        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="224"/>
+        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="238"/>
         <source>Network request %1 timed out</source>
         <translation>Netzwerkanfrage %1 dauerte zu lange</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="224"/>
+        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="238"/>
         <source>Network</source>
         <translation>Netzwerk</translation>
     </message>
@@ -63947,7 +64036,7 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
     <message>
         <location filename="../src/app/qgsoptions.cpp" line="2201"/>
         <source>The text you entered is not a valid scale.</source>
-        <translation>Der eingegebene Text ist kein gültiger Maßstab</translation>
+        <translation>Der eingegebene Text ist kein gültiger Maßstab.</translation>
     </message>
     <message>
         <location filename="../src/app/qgsoptions.cpp" line="817"/>
@@ -64860,17 +64949,17 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="4446"/>
         <source>Automatically enable 'on the fly' reprojection if layers ha&ve different CRS</source>
-        <translation>Spontanreprojektion (SRP) automatisch aktivieren, wenn die Layer unterschiedliche KBS haben</translation>
+        <translation>&Spontanreprojektion (SRP) automatisch aktivieren, wenn die Layer unterschiedliche KBS haben</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="4594"/>
         <source>O&verride system locale</source>
-        <translation>System-Locale überschreiben</translation>
+        <translation>System-Locale &überschreiben</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="4613"/>
         <source><b>Note:</b> Enabling / changing override on local requires an application restart</source>
-        <translation><b>Note:</b> Einschalten/Änderung der Locale-Überschreibung erfordert einen Anwendungsneustart</translation>
+        <translation><b>Hinweis:</b> Einschalten/Änderung der Locale-Überschreibung erfordert einen Anwendungsneustart</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="4743"/>
@@ -64880,7 +64969,7 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="4855"/>
         <source>Use pro&xy for web access</source>
-        <translation>Proxy für Webzugriff benutzen</translation>
+        <translation>Pro&xy für Webzugriff benutzen</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="5060"/>
@@ -67952,73 +68041,78 @@ QGIS muß neugestartet werden, um sie erneut zu laden.</translation>
 <context>
     <name>QgsPluginInstallerInstallingDialog</name>
     <message>
-        <location filename="../python/python-i18n.cpp" line="196"/>
+        <location filename="../python/python-i18n.cpp" line="197"/>
         <source>Installing...</source>
         <translation>Installiere...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="197"/>
+        <location filename="../python/python-i18n.cpp" line="198"/>
         <source>Resolving host name...</source>
         <translation>Löse Servernamen auf...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="198"/>
+        <location filename="../python/python-i18n.cpp" line="199"/>
         <source>Connecting...</source>
         <translation>Verbinde...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="199"/>
+        <location filename="../python/python-i18n.cpp" line="200"/>
         <source>Host connected. Sending request...</source>
         <translation>Server verbunden. Sende Anfrage...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="200"/>
+        <location filename="../python/python-i18n.cpp" line="201"/>
         <source>Downloading data...</source>
         <translation>Daten werden heruntergeladen...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="201"/>
+        <location filename="../python/python-i18n.cpp" line="202"/>
         <source>Idle</source>
         <translation>Untätig</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="202"/>
+        <location filename="../python/python-i18n.cpp" line="203"/>
         <source>Closing connection...</source>
         <translation>Schließe Verbindung...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="203"/>
+        <location filename="../python/python-i18n.cpp" line="204"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="204"/>
+        <location filename="../python/python-i18n.cpp" line="205"/>
         <source>Failed to unzip the plugin package. Probably it's broken or missing from the repository. You may also want to make sure that you have write permission to the plugin directory:</source>
         <translation>Konnte Erweiterungspaket nicht entpacken.  Wahrscheinlich ist es defekt oder fehlt im Repositorium. Sie sollten auch überprüfen, ob Sie Schreibrecht auf das Erweiterungsverzeichnis haben:</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="205"/>
+        <location filename="../python/python-i18n.cpp" line="206"/>
         <source>Aborted by user</source>
         <translation>Durch Benutzer abgebrochen</translation>
     </message>
+    <message>
+        <location filename="../python/python-i18n.cpp" line="196"/>
+        <source>Update of network request with authentication credentials FAILED for configuration '{0}'</source>
+        <translation>Aktualisierung der Netzwerkanfrage mit den Authorisierungsparametern der Konfiguration '{0}' gescheitert</translation>
+    </message>
 </context>
 <context>
     <name>QgsPluginInstallerInstallingDialogBase</name>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerinstallingbase.ui" line="14"/>
-        <location filename="../python/python-i18n.cpp" line="209"/>
+        <location filename="../python/python-i18n.cpp" line="210"/>
         <source>QGIS Python Plugin Installer</source>
         <translation>QGIS-Python-Erweiterungsinstallation</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerinstallingbase.ui" line="38"/>
-        <location filename="../python/python-i18n.cpp" line="210"/>
+        <location filename="../python/python-i18n.cpp" line="211"/>
         <source>Installing plugin:</source>
         <translation>Erweiterung wird installiert:</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerinstallingbase.ui" line="60"/>
-        <location filename="../python/python-i18n.cpp" line="211"/>
+        <location filename="../python/python-i18n.cpp" line="212"/>
         <source>Connecting...</source>
         <translation>Verbinde...</translation>
     </message>
@@ -68026,7 +68120,7 @@ QGIS muß neugestartet werden, um sie erneut zu laden.</translation>
 <context>
     <name>QgsPluginInstallerPluginErrorDialog</name>
     <message>
-        <location filename="../python/python-i18n.cpp" line="215"/>
+        <location filename="../python/python-i18n.cpp" line="216"/>
         <source>no error message received</source>
         <translation>Keine Fehlermeldung empfangen</translation>
     </message>
@@ -68035,19 +68129,19 @@ QGIS muß neugestartet werden, um sie erneut zu laden.</translation>
     <name>QgsPluginInstallerPluginErrorDialogBase</name>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerpluginerrorbase.ui" line="20"/>
-        <location filename="../python/python-i18n.cpp" line="219"/>
+        <location filename="../python/python-i18n.cpp" line="220"/>
         <source>Error loading plugin</source>
         <translation>Fehler beim Laden der Erweiterung</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerpluginerrorbase.ui" line="32"/>
-        <location filename="../python/python-i18n.cpp" line="220"/>
+        <location filename="../python/python-i18n.cpp" line="221"/>
         <source>The plugin seems to be invalid or have unfulfilled dependencies. It has been installed, but can't be loaded. If you really need this plugin, you can contact its author or <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user">QGIS users group</a> and try to solve the problem. If not, you can just uninstall it. Here is the error message below:</source>
         <translation>Die Erweiterung scheint ungültig zu sein oder ihm fehlen Abhängigkeiten. Es wurde installiert, aber konnte nicht geladen werden. Wenn Sie die Erweiterung wirklich brauchen, kontaktieren Sie den Autor oder die <a href="http://lists.osgeo.org/mailman/listinfo/qgis-user">QGIS-Benutzergruppe</a>, um das Problem zu lösen. Anderenfalls können Sie es einfach wieder deinstallieren. Im folgenden die Fehlermeldung:</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerpluginerrorbase.ui" line="80"/>
-        <location filename="../python/python-i18n.cpp" line="221"/>
+        <location filename="../python/python-i18n.cpp" line="222"/>
         <source>Do you want to uninstall this plugin now? If you're unsure, probably you would like to do this.</source>
         <translation>Wollen Sie die Erweiterung jetzt deinstallieren? Im Zweifelsfall sollten Sie dies wahrscheinlich tun.</translation>
     </message>
@@ -68056,76 +68150,76 @@ QGIS muß neugestartet werden, um sie erneut zu laden.</translation>
     <name>QgsPluginInstallerRepositoryDetailsDialogBase</name>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="21"/>
-        <location filename="../python/python-i18n.cpp" line="225"/>
+        <location filename="../python/python-i18n.cpp" line="226"/>
         <source>Repository details</source>
         <translation>Repositoriendetails</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="69"/>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="72"/>
-        <location filename="../python/python-i18n.cpp" line="228"/>
+        <location filename="../python/python-i18n.cpp" line="229"/>
         <source>Enter a name for the repository</source>
         <translation>Name des Repositorium eingeben</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="105"/>
-        <location filename="../python/python-i18n.cpp" line="230"/>
+        <location filename="../python/python-i18n.cpp" line="231"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="212"/>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="215"/>
-        <location filename="../python/python-i18n.cpp" line="233"/>
+        <location filename="../python/python-i18n.cpp" line="234"/>
         <source>Enter the repository URL, beginning with "http://"</source>
         <translation>Repositorien-URL beginnend mit "http://" eingeben</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="238"/>
-        <location filename="../python/python-i18n.cpp" line="234"/>
+        <location filename="../python/python-i18n.cpp" line="235"/>
         <source>Authentication</source>
         <translation>Authentifizierung</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="263"/>
-        <location filename="../python/python-i18n.cpp" line="235"/>
+        <location filename="../python/python-i18n.cpp" line="236"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="276"/>
-        <location filename="../python/python-i18n.cpp" line="236"/>
+        <location filename="../python/python-i18n.cpp" line="237"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="196"/>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="199"/>
-        <location filename="../python/python-i18n.cpp" line="232"/>
+        <location filename="../python/python-i18n.cpp" line="233"/>
         <source>Enable or disable the repository (disabled repositories will be omitted)</source>
         <translation>Das Repositorium ein- oder abschalten (abgeschaltete Repositorien werden nicht angesprochen)</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="177"/>
-        <location filename="../python/python-i18n.cpp" line="231"/>
+        <location filename="../python/python-i18n.cpp" line="232"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="82"/>
-        <location filename="../python/python-i18n.cpp" line="229"/>
+        <location filename="../python/python-i18n.cpp" line="230"/>
         <source>?qgis=</source>
         <translation>?qgis=</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="49"/>
-        <location filename="../python/python-i18n.cpp" line="226"/>
+        <location filename="../python/python-i18n.cpp" line="227"/>
         <source>URL</source>
         <translation>URL</translation>
     </message>
     <message>
         <location filename="../python/pyplugin_installer/qgsplugininstallerrepositorybase.ui" line="59"/>
-        <location filename="../python/python-i18n.cpp" line="227"/>
+        <location filename="../python/python-i18n.cpp" line="228"/>
         <source>Enabled</source>
         <translation>Eingeschaltet</translation>
     </message>
@@ -69886,7 +69980,7 @@ Fortfahren?</translation>
     <message>
         <location filename="../src/app/qgsprojectproperties.cpp" line="2096"/>
         <source>The text you entered is not a valid scale.</source>
-        <translation>Der eingegebene Text ist kein gültiger Maßstab</translation>
+        <translation>Der eingegebene Text ist kein gültiger Maßstab.</translation>
     </message>
 </context>
 <context>
@@ -70428,7 +70522,7 @@ Fortfahren?</translation>
         <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1560"/>
         <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1563"/>
         <source>A name used to identify the root layer. The short name is a text string used for machine-to-machine communication.</source>
-        <translation>Name zur Identifikation des Wurzellayers. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird</translation>
+        <translation>Name zur Identifikation des Wurzellayers. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1953"/>
@@ -70458,7 +70552,7 @@ Fortfahren?</translation>
     <message>
         <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2057"/>
         <source>Last revision date</source>
-        <translation>Letztes Bearbeitungsdatum:</translation>
+        <translation>Letztes Bearbeitungsdatum</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2067"/>
@@ -72489,7 +72583,7 @@ Auf Hilfeknopf klicken um die gültigen Erzeugungsoptionen diese Formats zu erfa
         <location filename="../src/ui/qgsrasterlayerpropertiesbase.ui" line="1864"/>
         <location filename="../src/ui/qgsrasterlayerpropertiesbase.ui" line="1867"/>
         <source>A name used to identify the layer. The short name is a text string used for machine-to-machine communication.</source>
-        <translation>Name zur Identifikation des Layers. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird</translation>
+        <translation>Name zur Identifikation des Layers. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsrasterlayerpropertiesbase.ui" line="1349"/>
@@ -72689,42 +72783,42 @@ p, li { white-space: pre-wrap; }
         <translation>Nach</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="167"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="169"/>
         <source>Select output directory</source>
         <translation>Ausgabeverzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="180"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="182"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="181"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="183"/>
         <source>The directory %1 contains files which will be overwritten: %2</source>
         <translation>Das Verzeichnis %1 enthält Dateien die überschrieben werden: %2</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="201"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="203"/>
         <source>Select output file</source>
         <translation>Ausgabedatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="201"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="203"/>
         <source>GeoTIFF</source>
         <translation>GeoTIFF</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="419"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="421"/>
         <source>layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="422"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="424"/>
         <source>user defined</source>
         <translation>Benutzerdefiniert</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="427"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="429"/>
         <source>Resolution (current: %1)</source>
         <translation>Auflösung (aktuell: %1)</translation>
     </message>
@@ -74055,34 +74149,33 @@ standard deviation ×</source>
 <context>
     <name>QgsRuleBasedRendererV2Widget</name>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="53"/>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="62"/>
         <source>Add rule</source>
         <translation>Regel hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="67"/>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="76"/>
         <source>Edit current rule</source>
         <translation>Aktuelle Regel bearbeiten</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="81"/>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="90"/>
         <source>Remove selected rules</source>
         <translation>Gewählte Regeln löschen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="98"/>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="107"/>
         <source>Refine selected rules</source>
         <translation>Gewählte Regeln verfeinern</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="117"/>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="126"/>
         <source>Count features</source>
         <translation>Objektanzahl</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="137"/>
         <source>Rendering order...</source>
-        <translation>Zeichenreihenfolge...</translation>
+        <translation type="obsolete">Zeichenreihenfolge...</translation>
     </message>
     <message>
         <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="74"/>
@@ -74155,6 +74248,11 @@ standard deviation ×</source>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
+    <message>
+        <location filename="../src/ui/qgsrulebasedrendererv2widget.ui" line="146"/>
+        <source>Symbol levels...</source>
+        <translation>Symbolebenen...</translation>
+    </message>
 </context>
 <context>
     <name>QgsRunProcess</name>
@@ -74732,7 +74830,7 @@ standard deviation ×</source>
     <message>
         <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="177"/>
         <source>Select line color</source>
-        <translation>Lienienfarbe wählen</translation>
+        <translation>Linienfarbe wählen</translation>
     </message>
     <message>
         <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="192"/>
@@ -75459,87 +75557,87 @@ verbesserung</translation>
         <translation>Ganzzahl (integer)</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="699"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="705"/>
         <source>Retrieval of spatialite version failed</source>
         <translation>Bestimmen der SpatiaLite-Version schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="699"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="714"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="829"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3352"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3415"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3486"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3522"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4037"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4213"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4251"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4295"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4315"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4335"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4456"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4572"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4658"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4728"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4844"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4882"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4963"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4973"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="705"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="720"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="818"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3502"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3538"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4061"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4237"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4275"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4319"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4339"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4359"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4480"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4682"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4752"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4868"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4906"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4987"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4997"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="714"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="720"/>
         <source>Could not parse spatialite version string '%1'</source>
         <translation>Unverständliche SpatiaLite-Version '%1'</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="829"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3352"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3415"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3486"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3522"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3744"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3781"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3822"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3891"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3997"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4037"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4081"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4213"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4251"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4295"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4315"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4335"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4456"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4572"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4658"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4728"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4844"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4882"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4963"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="818"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3502"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3538"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3768"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3805"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3846"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3915"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4021"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4061"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4105"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4237"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4275"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4319"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4339"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4359"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4480"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4682"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4752"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4868"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4906"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4987"/>
         <source>SQLite error: %2
 SQL: %1</source>
         <translation>SQLite-Fehler:%2
 SQL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3352"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3415"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3744"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3822"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3891"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3997"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4081"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4572"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3768"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3846"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3915"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4021"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4105"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
         <source>unknown cause</source>
         <translation>unbekannte Ursache</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4973"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4997"/>
         <source>FAILURE: Field %1 not found.</source>
         <translation>FEHLER: Feld %1 nicht gefunden.</translation>
     </message>
@@ -75674,7 +75772,8 @@ aber führt danach zu größerer Geschwindigkeit.</translation>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="299"/>
         <source>A connection with the same name already exists,
 please provide a new name:</source>
-        <translation>Eine Verbindung namens '%1' ist bereits vorhanden.  Bitte einen neuen Namen angeben:</translation>
+        <translation>Eine Verbindung gleichen Namens ist bereits vorhanden.
+Bitte einen neuen Namen angeben:</translation>
     </message>
     <message>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="365"/>
@@ -79916,17 +80015,17 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsWFSConnectionItem</name>
     <message>
-        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="104"/>
+        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="95"/>
         <source>Edit...</source>
         <translation>Bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="108"/>
+        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="99"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="118"/>
+        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="109"/>
         <source>Modify WFS connection</source>
         <translation>WFS-Verbindung ändern</translation>
     </message>
@@ -80007,12 +80106,12 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsWFSRootItem</name>
     <message>
-        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="169"/>
+        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="160"/>
         <source>New Connection...</source>
         <translation>Neue Verbindung...</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="191"/>
+        <location filename="../src/providers/wfs/qgswfsdataitems.cpp" line="182"/>
         <source>Create a new WFS connection</source>
         <translation>Neue WFS-Verbindung anlegen</translation>
     </message>
@@ -80610,73 +80709,73 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsWcsCapabilities</name>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="188"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="173"/>
         <source>empty capabilities document</source>
         <translation>Leeres Capabilities-Dokument</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="286"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="347"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="274"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="338"/>
         <source>
 Tried URL: %1</source>
         <translation>
 Versuchte URL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="364"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="355"/>
         <source>Capabilities request redirected.</source>
         <translation>Eigenschaften-Abfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="391"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="382"/>
         <source>empty of capabilities: %1</source>
         <translation>Eigenschaften leer: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="412"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="403"/>
         <source>Download of capabilities failed: %1</source>
         <translation>Eigenschaften-Abfrage gescheitert: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="165"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="371"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="413"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="151"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="362"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="404"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="164"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="370"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="150"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="361"/>
         <source>Download of capabilities failed: network request update failed for authentication config</source>
         <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="423"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="416"/>
         <source>%1 of %2 bytes of capabilities downloaded.</source>
         <translation>%1 von %2 Bytes der Eigenschaften heruntergeladen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="461"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="454"/>
         <source>Exception</source>
         <translation>Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="463"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="456"/>
         <source>Could not get WCS capabilities: %1</source>
         <translation>Konnte WCS-Fähigkeiten nicht erfragen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="467"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="747"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="774"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="929"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="460"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="740"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="767"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="922"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="469"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="776"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="931"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="462"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="769"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="924"/>
         <source>Could not get WCS capabilities in the expected format (DTD): no %1 found.
 This might be due to an incorrect WCS Server URL.
 Tag:%3
@@ -80689,17 +80788,17 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="485"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="478"/>
         <source>Version not supported</source>
         <translation>Version nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="487"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="480"/>
         <source>WCS server version %1 is not supported by QGIS (supported versions: 1.0.0, 1.1.0, 1.1.2)</source>
         <translation>WCS-Serverversion %1 wird nicht von QGIS unterstützt (unterstützte Versionen: 1.0.0, 1.1.0, 1.1.2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="749"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="742"/>
         <source>Could not get WCS capabilities: %1 at line %2 column %3
 This is probably due to an incorrect WCS Server URL.
 Response was:
@@ -80715,84 +80814,84 @@ Antwort war:
 <context>
     <name>QgsWcsDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1742"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1722"/>
         <source>Map request error (Status: %1; Reason phrase: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Grund:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1687"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1726"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1745"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1783"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1668"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1706"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1725"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1763"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1781"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1791"/>
         <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1801"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1811"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1821"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1838"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1818"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1824"/>
         <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1844"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1864"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1903"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1907"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1883"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1887"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1686"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1725"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1667"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1705"/>
         <source>Network request update failed for authentication config</source>
         <translation>Netzwerkaktualisierung der Authentifikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1774"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1754"/>
         <source>Map request error:<br>Title: %1<br>Error: %2<br>URL: <a href='%3'>%3</a>)</source>
         <translation>Kartenabfrage-Fehler:<br>Titel: %1<br>Fehler:%2<br>URL: <a href='%3'>%3</a>)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1780"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1760"/>
         <source>Map request error (Status: %1; Response: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Antwort:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1801"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1781"/>
         <source>Cannot parse multipart response: %1</source>
         <translation>Unverständliche mehrteilige Antwort: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1811"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1791"/>
         <source>Expected 2 parts, %1 received</source>
         <translation>%1 statt zwei Teile empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1821"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1801"/>
         <source>More than 2 parts (%1) received</source>
         <translation>Mehr als 2 Teile (%1) empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1836"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1816"/>
         <source>Map request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kartenabfrage-Fehler (Titel: %1; Fehler:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1842"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1822"/>
         <source>Map request error (Response: %1; URL:%2)</source>
         <translation>Kartenabfrage-Fehler (Antwort:%1; URL: %2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1864"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1844"/>
         <source>Content-Transfer-Encoding %1 not supported</source>
         <translation>Content-Transfer-Encoding %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1903"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1883"/>
         <source>Map request failed [error:%1 url:%2]</source>
         <translation>Kartenabfrage-Fehler [Fehler:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1907"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1887"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1919"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1899"/>
         <source>%1 of %2 bytes of map downloaded.</source>
         <translation>%1 von %2 Bytes der Karte heruntergeladen.</translation>
     </message>
@@ -80800,78 +80899,78 @@ Antwort war:
 <context>
     <name>QgsWcsProvider</name>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="127"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="119"/>
         <source>Cannot describe coverage</source>
         <translation>Konnte Coverage nicht beschreiben</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="135"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="127"/>
         <source>Coverage not found</source>
         <translation>Coverage nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="192"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="184"/>
         <source>Cannot calculate extent</source>
         <translation>Konnte Ausdehnung nicht berechnen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="250"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="242"/>
         <source>Cannot get test dataset.</source>
         <translation>Konnte Testdatensatz nicht laden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="569"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="561"/>
         <source>Received coverage has wrong extent %1 (expected %2)</source>
         <translation>Empfangene Coverage hat falsche Ausdehnung %1 (erwartet %2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="569"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="619"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="784"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="806"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="816"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1046"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1190"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="561"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="611"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="776"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="798"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="808"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1038"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1182"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="588"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="580"/>
         <source>Rotating raster</source>
         <translation>Raster wird gedreht</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="613"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="605"/>
         <source>Block read OK</source>
         <translation>Blocklesung OK</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="619"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="611"/>
         <source>Received coverage has wrong size %1 x %2 (expected %3 x %4)</source>
         <translation>Empfangene Coverage hat die falsche Größe %1 x %2 (erwartet %3 x %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="776"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="768"/>
         <source>Getting map via WCS.</source>
         <translation>Lade Karte über WCS.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="784"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="776"/>
         <source>No data received</source>
         <translation>Keine Daten empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="806"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="798"/>
         <source>Cannot create memory file</source>
         <translation>Konnte Speicherdatei nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="946"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="938"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="947"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="939"/>
         <source>Could not get WCS Service Exception at %1 at line %2 column %3
 
 Response was:
@@ -80884,143 +80983,143 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="986"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="978"/>
         <source>Service Exception</source>
         <translation>Dienstausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="995"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="987"/>
         <source>Request contains a format not offered by the server.</source>
         <translation>Anfrage enthält ein Format, dass der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="996"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="988"/>
         <source>Request is for a Coverage not offered by the service instance.</source>
         <translation>Angefragte Coverage wird von Serverinstanz nicht angeboten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="997"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="989"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is equal to current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage entspricht dem aktuellen Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="998"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="990"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is greater than current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage ist größer als der aktuelle Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1000"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="992"/>
         <source>Request does not include a parameter value, and the server instance did not declare a default value for that dimension.</source>
         <translation>Anfrage enthält keinen Parameterwert, und die Serverinstanz selbst definiert auch keine Vorgabe dafür.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1001"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="993"/>
         <source>Request contains an invalid parameter value.</source>
         <translation>Anfrage enthält einen ungültigen Parameterwert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1003"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="995"/>
         <source>No other exceptionCode specified by this service and server applies to this exception.</source>
         <translation>Kein anderer Ausnahmecode des Dienstes und Servers trifft auf diese Ausnahme zu.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1004"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="996"/>
         <source>Operation request contains an output CRS that can not be used within the output format.</source>
         <translation>Operationsanfrage enthält ein Ausgabe-KBS, das nicht mit dem Ausgabeformat verwendet werden kann.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1005"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="997"/>
         <source>Operation request specifies to "store" the result, but not enough storage is available to do this.</source>
         <translation>Operationsanfrage gibt das "Speichern" des Ergebnisses vor, aber es ist nicht genügend Speicher dafür verfügbar.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1032"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1024"/>
         <source>(No error code was reported)</source>
         <translation>(Kein Fehlercode zurückgegeben)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1040"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1032"/>
         <source>(Unknown error code)</source>
         <translation>(Unbekannter Fehlercode)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1043"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1035"/>
         <source>The WCS vendor also reported: </source>
         <translation>Der WCS-Betreiber meldete folgendes: </translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1046"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1038"/>
         <source>composed error message '%1'.</source>
         <translation>Zusammengestellte Fehlermeldung '%1'.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1190"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1182"/>
         <source>Cannot verify coverage full extent: %1</source>
         <translation>Konnte Grenze der Coverage nicht überprüfen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1221"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1302"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1213"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1294"/>
         <source>Property</source>
         <translation>Eigenschaft</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1224"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1305"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1216"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1297"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1227"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1219"/>
         <source>Name (identifier)</source>
         <translation>Name (Kennung)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1228"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1309"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1220"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1301"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1229"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1310"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1221"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1302"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1232"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1224"/>
         <source>Fixed Width</source>
         <translation>Feste Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1233"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1225"/>
         <source>Fixed Height</source>
         <translation>Feste Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1234"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1226"/>
         <source>Native CRS</source>
         <translation>Natives KBS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1235"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1227"/>
         <source>Native Bounding Box</source>
         <translation>Native Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1238"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1230"/>
         <source>WGS 84 Bounding Box</source>
         <translation>WGS84-Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1246"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1251"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1238"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1243"/>
         <source>Available in CRS</source>
         <translation>Verfügbar in KBS</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1251"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1261"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1243"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1253"/>
         <source>(and %n more)</source>
         <comment>crs</comment>
         <translation>
@@ -81029,89 +81128,89 @@ Antwort war:
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1256"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1261"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1248"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1253"/>
         <source>Available in format</source>
         <translation>Verfügbar im Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1279"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1332"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1271"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1324"/>
         <source>Coverages</source>
         <translation>Coverages</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1285"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1277"/>
         <source>Cache Stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1293"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1285"/>
         <source>Server Properties</source>
         <translation>Server-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1313"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1305"/>
         <source>Keywords</source>
         <translation>Schlüsselworte</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1314"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1306"/>
         <source>Online Resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1315"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1307"/>
         <source>Contact Person</source>
         <translation>Kontaktperson</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1319"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1311"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1320"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1312"/>
         <source>Access Constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1321"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1313"/>
         <source>Image Formats</source>
         <translation>Bildformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1322"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1314"/>
         <source>GetCapabilitiesUrl</source>
         <translation>GetCapabilities-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1324"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1316"/>
         <source>Get Coverage Url</source>
         <translation>GetCoverage-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1324"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1316"/>
         <source>&nbsp;<font color="red">(advertised but ignored)</font></source>
         <translation>&nbsp;<font color="red">(gemeldet, aber ignoriert)</font></translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1346"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1338"/>
         <source>And %1 more coverages</source>
         <translation>Und %1 weitere Coverages</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1373"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1365"/>
         <source>Format not supported</source>
         <translation>Format nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1494"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1486"/>
         <source>Read data error</source>
         <translation>Datenlesefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1521"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1513"/>
         <source>RasterIO error: </source>
         <translation>Raster-E/A-Fehler: </translation>
     </message>
@@ -81168,41 +81267,41 @@ Antwort war:
 <context>
     <name>QgsWmsCapabilitiesDownload</name>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1988"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1949"/>
         <source>%1 of %2 bytes of capabilities downloaded.</source>
         <translation>%1 von %2 Bytes der Eigenschaften heruntergeladen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2004"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1965"/>
         <source>Capabilities request redirected.</source>
         <translation>Eigenschaften-Abfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2010"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1971"/>
         <source>Redirect loop detected: %1</source>
         <translation>Umleitungszyklus festgestellt: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1931"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2011"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2021"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2086"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1919"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1972"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1982"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2045"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1930"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2020"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1918"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1981"/>
         <source>Download of capabilities failed: network request update failed for authentication config</source>
         <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2079"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2038"/>
         <source>empty of capabilities: %1</source>
         <translation>Eigenschaften leer: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2085"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2044"/>
         <source>Download of capabilities failed: %1</source>
         <translation>Eigenschaften-Abfrage gescheitert: %1</translation>
     </message>
@@ -81210,47 +81309,47 @@ Antwort war:
 <context>
     <name>QgsWmsImageDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3242"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3222"/>
         <source>Map request error (Status: %1; Reason phrase: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Grund:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3245"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3267"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3276"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3284"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3306"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3310"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3225"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3247"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3256"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3264"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3286"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3290"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3266"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3246"/>
         <source>Returned image is flawed [Content-Type:%1; URL:%2]</source>
         <translation>Geladenes Bild ist defekt [Content-Type:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3274"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3254"/>
         <source>Map request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kartenabfrage-Fehler (Titel: %1; Fehler:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3280"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3260"/>
         <source>Map request error (Status: %1; Response: %2; Content-Type: %3; URL:%4)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Antwort:%2; Content-Type: %3; URL: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3306"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3286"/>
         <source>Map request failed [error:%1 url:%2]</source>
         <translation>Kartenabfrage-Fehler [Fehler:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3310"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3290"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3322"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3302"/>
         <source>%1 of %2 bytes of map downloaded.</source>
         <translation>%1 von %2 Bytes der Karte heruntergeladen.</translation>
     </message>
@@ -81258,29 +81357,29 @@ Antwort war:
 <context>
     <name>QgsWmsLegendDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3690"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3666"/>
         <source>Redirect loop detected: %1</source>
         <translation>Umleitungszyklus festgestellt: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3691"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3667"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3762"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3738"/>
         <source>GetLegendGraphic request error</source>
         <translation>GetLegendGraphic-Abfragefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3764"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3740"/>
         <source>Status: %1
 Reason phrase: %2</source>
         <translation>Status: %1
 Grund: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3772"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3748"/>
         <source>Returned legend image is flawed [URL: %1]</source>
         <translation>Geladenes Legendenbild ist defekt [URL: %1]</translation>
     </message>
@@ -81288,61 +81387,61 @@ Grund: %2</translation>
 <context>
     <name>QgsWmsProvider</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="121"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="109"/>
         <source>Cannot parse URI</source>
         <translation>Konnte URI nicht parsen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="148"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="136"/>
         <source>Cannot calculate extent</source>
         <translation>Konnte Ausdehnung nicht berechnen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="141"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="129"/>
         <source>Cannot set CRS</source>
         <translation>Konnte KBS nicht setzen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="274"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="262"/>
         <source>Number of layers and styles don't match</source>
         <translation>Anzahl von Layern und Stilen stimmt nicht überein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="274"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="851"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="860"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2408"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2824"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="262"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="835"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="844"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2392"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2808"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="363"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="351"/>
         <source>Number of tile layers must be one</source>
         <translation>Anzahl der Kachellayer muss eins sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="370"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="358"/>
         <source>Tile layer not found</source>
         <translation>Kachellayer nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="431"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="419"/>
         <source>Tile layer or tile matrix set not found</source>
         <translation>Kachellayer oder Kachelmatrixsatz nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="554"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="542"/>
         <source>Getting map via WMS.</source>
         <translation>Lade Karte über WMS.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="824"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="808"/>
         <source>Getting tiles.</source>
         <translation>Lade Kacheln.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="832"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="816"/>
         <source>%n tile requests in background</source>
         <comment>tile request count</comment>
         <translation>
@@ -81351,7 +81450,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="833"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="817"/>
         <source>, %n cache hits</source>
         <comment>tile cache hits</comment>
         <translation>
@@ -81360,7 +81459,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="834"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="818"/>
         <source>, %n cache misses.</source>
         <comment>tile cache missed</comment>
         <translation>
@@ -81369,7 +81468,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="835"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="819"/>
         <source>, %n errors.</source>
         <comment>errors</comment>
         <translation>
@@ -81378,205 +81477,205 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="851"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="835"/>
         <source>image is NULL</source>
         <translation>Bild ist NULL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="860"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="844"/>
         <source>unexpected image size</source>
         <translation>Unerwartete Bildgröße</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1025"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1009"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1080"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1064"/>
         <source>Service Exception</source>
         <translation>Dienstausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1085"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1069"/>
         <source>Request contains a format not offered by the server.</source>
         <translation>Anfrage enthält ein Format, dass der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1089"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1073"/>
         <source>Request contains a CRS not offered by the server for one or more of the Layers in the request.</source>
         <translation>Anfrage verlangt ein CRS für einen oder mehrere Layer, die der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1093"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1077"/>
         <source>Request contains a SRS not offered by the server for one or more of the Layers in the request.</source>
         <translation>Anfrage enthält ein SRS für einen oder mehrere Layer, die der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1097"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1081"/>
         <source>GetMap request is for a Layer not offered by the server, or GetFeatureInfo request is for a Layer not shown on the map.</source>
         <translation>GetMap-Anfrage für einen Layer, den der Server nicht anbietet oder GetFeature-Anfrage für einen Layer, der nicht auf der Karte angezeigt wird.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1102"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1086"/>
         <source>Request is for a Layer in a Style not offered by the server.</source>
         <translation>Anfrage für einen Layer in einem Stil, den der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1106"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1090"/>
         <source>GetFeatureInfo request is applied to a Layer which is not declared queryable.</source>
         <translation>GetFeatureInfo-Anfrage wird auf einen Layer bezogen, der nicht als abfragbar deklariert ist.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1110"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1094"/>
         <source>GetFeatureInfo request contains invalid X or Y value.</source>
         <translation>GetFeatureInfo-Anfrage enthält einen ungültigen X- oder Y-Wert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1114"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1098"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is equal to current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage entspricht dem aktuellen Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1119"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1103"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is greater than current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage ist größer als der aktuelle Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1124"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1108"/>
         <source>Request does not include a sample dimension value, and the server did not declare a default value for that dimension.</source>
         <translation>Anfrage enthält keinen beispielhaften Dimensionswert, und der Server selbst definiert auch keinen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1129"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1113"/>
         <source>Request contains an invalid sample dimension value.</source>
         <translation>Anfrage enthält einen ungültigen beispielhaften Dimensionswert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1133"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1117"/>
         <source>Request is for an optional operation that is not supported by the server.</source>
         <translation>Anfrage ist für eine optionale Operation, die der Server nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1137"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1121"/>
         <source>(No error code was reported)</source>
         <translation>(Kein Fehlercode zurückgegeben)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1141"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1125"/>
         <source>(Unknown error code)</source>
         <translation>(Unbekannter Fehlercode)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1144"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1128"/>
         <source>The WMS vendor also reported: </source>
         <translation>Der WMS-Betreiber meldete folgendes: </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1347"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1557"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1816"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2008"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1331"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1541"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1800"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1992"/>
         <source>Property</source>
         <translation>Eigenschaft</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1350"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1560"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1819"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2011"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1334"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1544"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1803"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1995"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1355"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1469"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1339"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1453"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1363"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1347"/>
         <source>Visibility</source>
         <translation>Sichtbarkeit</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1366"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1350"/>
         <source>Visible</source>
         <translation>Sichtbar</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1366"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1350"/>
         <source>Hidden</source>
         <translation>Versteckt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1371"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1477"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1573"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1355"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1461"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1557"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1379"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1485"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1581"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1363"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1469"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1565"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1387"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1371"/>
         <source>Can Identify</source>
         <translation>Kann abgefragt werden</translation>
     </message>
     <message>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1374"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1382"/>
         <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1390"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1398"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1406"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1826"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1810"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1374"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1382"/>
         <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1390"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1398"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1406"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1826"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1810"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1395"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1379"/>
         <source>Can be Transparent</source>
         <translation>Kann transparent sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1403"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1387"/>
         <source>Can Zoom In</source>
         <translation>Kann herangezoomt werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1411"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1395"/>
         <source>Cascade Count</source>
         <translation>Kaskadiere Anzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1419"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1403"/>
         <source>Fixed Width</source>
         <translation>Feste Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1427"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1411"/>
         <source>Fixed Height</source>
         <translation>Feste Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1437"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1447"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1421"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1431"/>
         <source>Available in CRS</source>
         <translation>Verfügbar in KBS</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1450"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1434"/>
         <source>(and %n more)</source>
         <comment>crs</comment>
         <translation>
@@ -81585,95 +81684,95 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1460"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1444"/>
         <source>Available in style</source>
         <translation>Verfügbar im Stil</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1495"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1479"/>
         <source>LegendURLs</source>
         <translation>LegendenURLs</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1548"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1532"/>
         <source>Server Properties</source>
         <translation>Server-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1528"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1746"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1512"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1730"/>
         <source>Selected Layers</source>
         <translation>Gewählte Layer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1530"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1763"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1514"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1747"/>
         <source>Other Layers</source>
         <translation>Andere Layer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1536"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1520"/>
         <source>Tile Layer Properties</source>
         <translation>Kachellayer-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1540"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1524"/>
         <source>Cache Stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1565"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1549"/>
         <source>WMS Version</source>
         <translation>WMS-Version</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1589"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1573"/>
         <source>Keywords</source>
         <translation>Schlüsselworte</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1597"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1581"/>
         <source>Online Resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1605"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1589"/>
         <source>Contact Person</source>
         <translation>Kontaktperson</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1617"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1601"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1625"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1609"/>
         <source>Access Constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1715"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1699"/>
         <source>Image Formats</source>
         <translation>Bildformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1705"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1723"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1689"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1707"/>
         <source>Identify Formats</source>
         <translation>Abfrageformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1731"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1715"/>
         <source>Layer Count</source>
         <translation>Layeranzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1663"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1647"/>
         <source>Tile Layer Count</source>
         <translation>Kachellayeranzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1026"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1010"/>
         <source>Could not get WMS Service Exception: %1 at line %2 column %3
 
 Response was:
@@ -81686,278 +81785,278 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1633"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1617"/>
         <source>GetCapabilitiesUrl</source>
         <translation>GetCapabilities-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1640"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1624"/>
         <source>GetMapUrl</source>
         <translation>GetMap-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1643"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1650"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1657"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1627"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1634"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1641"/>
         <source>&nbsp;<font color="red">(advertised but ignored)</font></source>
         <translation>&nbsp;<font color="red">(gemeldet, aber ignoriert)</font></translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1647"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1631"/>
         <source>GetFeatureInfoUrl</source>
         <translation>GetFeatureInfoUrl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1654"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1638"/>
         <source>GetLegendGraphic</source>
         <translation>GetLegendGraphic</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1670"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1654"/>
         <source>GetTileUrl</source>
         <translation>GetTileUrl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1679"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1663"/>
         <source>Tile templates</source>
         <translation>Kachelvorlagen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1691"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1675"/>
         <source>FeatureInfo templates</source>
         <translation>FeatureInfo-Vorlagen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1779"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1763"/>
         <source>Tileset Properties</source>
         <translation>Tileset-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1790"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1774"/>
         <source>Identifier</source>
         <translation>Kennung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1792"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1776"/>
         <source>Tile mode</source>
         <translation>Kachelmodus</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1801"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1785"/>
         <source>WMTS</source>
         <translation>WMTS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1805"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1789"/>
         <source>WMS-C</source>
         <translation>WMS-C</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1809"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1793"/>
         <source>Invalid tile mode</source>
         <translation>Ungültiger Kachelmodus</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1823"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1807"/>
         <source>Selected</source>
         <translation>Ausgewählt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1832"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1816"/>
         <source>Available Styles</source>
         <translation>Verfügbare Stile</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1845"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1850"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1829"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1834"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1853"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1837"/>
         <source>Bounding Box</source>
         <translation>Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1866"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1850"/>
         <source>Available Tilesets</source>
         <translation>Verfügbare Kachelsätze</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1902"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1886"/>
         <source>Selected tile matrix set </source>
         <translation>Gewählter Kachelmatrixsatz </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1904"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1888"/>
         <source>Scale</source>
         <translation>Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1905"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1889"/>
         <source>Tile size [px]</source>
         <translation>Kachengröße [px]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1906"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1890"/>
         <source>Tile size [mu]</source>
         <translation>Kachengröße [KE]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1907"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1891"/>
         <source>Matrix size</source>
         <translation>Matrixgröße</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1908"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1892"/>
         <source>Matrix extent [mu]</source>
         <translation>Matrixgrenzen [KE]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1909"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1893"/>
         <source>Bounds</source>
         <translation>Grenzen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1910"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1894"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1911"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1895"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1912"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1896"/>
         <source>Top</source>
         <translation>Oben</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1913"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1897"/>
         <source>Left</source>
         <translation>Links</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1914"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1898"/>
         <source>Bottom</source>
         <translation>Unten</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1915"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1899"/>
         <source>Right</source>
         <translation>Rechts</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1945"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1971"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1929"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1955"/>
         <source>%n missing row(s)</source>
         <translation>%n fehlende Zeilen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1946"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1930"/>
         <source>Layer's upper bound: %1</source>
         <translation>Obere Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1958"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1984"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1942"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1968"/>
         <source>%n missing column(s)</source>
         <translation>%n fehlende Spalten</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1959"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1943"/>
         <source>Layer's left bound: %1</source>
         <translation>Linke Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1972"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1956"/>
         <source>Layer's lower bound: %1</source>
         <translation>Untere Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1985"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1969"/>
         <source>Layer's right bound: %1</source>
         <translation>Rechte Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2002"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1986"/>
         <source>Cache stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2015"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1999"/>
         <source>Hits</source>
         <translation>Treffer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2021"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2005"/>
         <source>Misses</source>
         <translation>Fehlgriffe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2027"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2011"/>
         <source>Errors</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2050"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2034"/>
         <source>Format not supported</source>
         <translation>Format nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2070"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2054"/>
         <source>Context not fully specified (extent was defined but width and/or height was not).</source>
         <translation>Kontext nicht vollständig angegeben (Ausmaß wurde definiert, aber Breite und Höhe nicht).</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2406"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2390"/>
         <source>Get feature info request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Abfrageanfragefehler (Titel:%1; Fehler: %2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2528"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2512"/>
         <source>GML schema is not valid</source>
         <translation>GML-Schema ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2534"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2518"/>
         <source>GML is not valid</source>
         <translation>GML ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2548"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2623"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2532"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2607"/>
         <source>Cannot identify</source>
         <translation>Abfrage gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2624"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2608"/>
         <source>Result parsing failed. %1 feature types were guessed from gml (%2) but no features were parsed.</source>
         <translation>Ergebnisüberprüfung fehlgeschlagen. %1 Objekttypen wurden aus dem gml (%2) geraten aber keine Objekte wurden analysiert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2782"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2766"/>
         <source>identify request redirected.</source>
         <translation>Identify-Anfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2798"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2782"/>
         <source>Map getfeatureinfo error %1: %2</source>
         <translation>GetFeatureInfo-Fehler %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2807"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2791"/>
         <source>Cannot parse getfeatureinfo: %1</source>
         <translation>Konnte GetFeatureInfo nicht interpretieren: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2822"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2806"/>
         <source>Map getfeatureinfo error: %1 [%2]</source>
         <translation>GetFeatureInfo-Fehler %1 [%2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3150"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3134"/>
         <source>%1 of %2 bytes of GetLegendGraphic downloaded.</source>
         <translation>%1 von %2 Bytes der Legendengrafik heruntergeladen.</translation>
     </message>
@@ -81965,44 +82064,44 @@ Antwort war:
 <context>
     <name>QgsWmsTiledImageDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3464"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3440"/>
         <source>Tile request error</source>
         <translation>Tile-Anfragefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3464"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3440"/>
         <source>Status: %1
 Reason phrase: %2</source>
         <translation>Status: %1
 Grund: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3484"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3460"/>
         <source>Tile request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kachelabfrage-Fehler (Titel: %1; Fehler: %2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3486"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3494"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3547"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3595"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3613"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3622"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3462"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3470"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3523"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3571"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3589"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3598"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3490"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3466"/>
         <source>Tile request error (Status:%1; Content-Type:%2; Length:%3; URL: %4)</source>
         <translation>Kachelabfrage-Fehler (Status: %1; Content-Typ: %2; Länge: %3; URL: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3546"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3522"/>
         <source>Returned image is flawed [Content-Type:%1; URL: %2]</source>
         <translation>Geladenes Bild ist defekt [Content-Type:%1; URL: %2]</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3580"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3556"/>
         <source>%n tile requests in background</source>
         <comment>tile request count</comment>
         <translation>
@@ -82011,7 +82110,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3581"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3557"/>
         <source>, %n cache hits</source>
         <comment>tile cache hits</comment>
         <translation>
@@ -82020,7 +82119,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3582"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3558"/>
         <source>, %n cache misses.</source>
         <comment>tile cache missed</comment>
         <translation>
@@ -82029,7 +82128,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3583"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3559"/>
         <source>, %n errors.</source>
         <comment>errors</comment>
         <translation>
@@ -82038,17 +82137,17 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3595"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3571"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3612"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3588"/>
         <source>Tile request max retry error. Failed %1 requests for tile %2 of tileRequest %3 (url: %4)</source>
         <translation>Maximale Wiederholungen erreicht. %1 Abfragen der Kachel %2 der Kachelabfrage %3 (url: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3621"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3597"/>
         <source>repeat tileRequest %1 tile %2(retry %3)</source>
         <translation>Wiederhole Kachelabfrage %1, Kachel %2 (Wiederholung %3)</translation>
     </message>
@@ -82194,43 +82293,63 @@ Grund: %2</translation>
     </message>
 </context>
 <context>
+    <name>QwtPolarRenderer</name>
+    <message>
+        <location filename="../src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp" line="402"/>
+        <location filename="../src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp" line="405"/>
+        <location filename="../src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp" line="408"/>
+        <source>Documents</source>
+        <translation>Dokumente</translation>
+    </message>
+    <message>
+        <location filename="../src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp" line="413"/>
+        <source>Images</source>
+        <translation>Bilder</translation>
+    </message>
+    <message>
+        <location filename="../src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp" line="428"/>
+        <source>Export File Name</source>
+        <translation>Exportdateiname</translation>
+    </message>
+</context>
+<context>
     <name>RAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2272"/>
         <source>User R scripts</source>
         <translation>R-Benutzerskripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2273"/>
         <source>Could not load R script: %s.
  Problem with line %s</source>
         <translation>Konnte R-Skript nicht laden: %s.
 Problem mit Zeile %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
         <source>R Console Output</source>
         <translation>R-Konsolenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
         <source>R folder is not configured.
 Please configure it before running R scripts.</source>
         <translation>R-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von R-Skripten einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2276"/>
         <source>R execution commands</source>
         <translation>R-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2277"/>
         <source><p>This algorithm requires R to be run. Unfortunately it seems that R is not installed in your system or it is not correctly configured to be used from QGIS</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Click here</a> to know more about how to install and configure R to be used with QGIS</p></source>
         <translation><p>Dieser Algorithmus erfordert die Ausführung von R. Leider scheint R nicht richtig für die Verwendung in QGIS installiert oder konfiguriert zu sein</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Hier klicken</a> um mehr zur Installation und Konfiguration von R für QGIS zu erfahren</p></translation>
     </message>
@@ -82238,32 +82357,32 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
         <source>Create new R script</source>
         <translation>Neues R-Skript erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2282"/>
         <source>R Scripts folder</source>
         <translation>R-Skriptverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2283"/>
         <source>R folder</source>
         <translation>R-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2284"/>
         <source>R user library folder</source>
         <translation>R-Benutzerbibliotheksverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2285"/>
         <source>Use 64 bit version</source>
         <translation>64bit-Version verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2286"/>
         <source>Could not load R script: %s
 %s</source>
         <translation>Konnte R-Skript nicht laden: %s
@@ -82273,25 +82392,25 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
         <source>R execution console output</source>
         <translation>Konsolenausgabe aus R-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
         <source><h2>R Output</h2>
 </source>
         <translation><h2>R-Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2292"/>
         <source>R folder is not configured.
 Please configure it before running R scripts.</source>
         <translation>R-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von R-Skripten einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2293"/>
         <source><p>This algorithm requires R to be run. Unfortunately, it seems that R is not installed in your system, or it is not correctly configured to be used from QGIS</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Click here</a> to know more about how to install and configure R to be used with QGIS</p></source>
         <translation><p>Dieser Algorithmus erfordert die Ausführung von R. Leider scheint R nicht richtig für die Verwendung in QGIS installiert oder konfiguriert zu sein</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Hier klicken</a> um mehr zur Installation und Konfiguration von R für QGIS zu erfahren</p></translation>
     </message>
@@ -82299,52 +82418,52 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomExtract</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2300"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2301"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2304"/>
         <source>Extracted (random)</source>
         <translation>Extrahiert (zufällig)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2305"/>
         <source>Selected number is greater than feature count. Choose a lower value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2304"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2306"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
         <source>Random extract</source>
         <translation>Zufälliger Ausschnitt</translation>
     </message>
@@ -82352,57 +82471,57 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomExtractWithinSubsets</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2311"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2313"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2314"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2315"/>
         <source>ID field</source>
         <translation>Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
         <source>Extracted (random stratified)</source>
         <translation>Extrahiert (zufällig geschichtet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2319"/>
         <source>Selected number is greater that feature count. Choose lesser value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2320"/>
         <source>Percentage can't be greater than 100. Set correct value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2310"/>
         <source>Random extract within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -82410,38 +82529,38 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomPointsAlongLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2325"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2326"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2329"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2330"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2324"/>
         <source>Random points along line</source>
         <translation>Zufällige Punkte entlang einer Linie</translation>
     </message>
@@ -82449,38 +82568,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2335"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2337"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2338"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2339"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2340"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2334"/>
         <source>Random points in extent</source>
         <translation>Zufällige Punkte in Grenzen</translation>
     </message>
@@ -82488,38 +82607,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2346"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2347"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2348"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2349"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2350"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2344"/>
         <source>Random points in layer bounds</source>
         <translation>Zufällige Punkte in den Layergrenzen</translation>
     </message>
@@ -82527,53 +82646,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsFixed</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2356"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2357"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2358"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2359"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2360"/>
         <source>Number or density of points</source>
         <translation>Anzahl der Dichtepunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2361"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2362"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2363"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
         <source>Random points inside polygons (fixed)</source>
         <translation>Zufällige Punkte in Polygonen (festgelegt)</translation>
     </message>
@@ -82581,53 +82700,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsVariable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2368"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2369"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2370"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2371"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2372"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2373"/>
         <source>Number field</source>
         <translation>Nummernfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2375"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2376"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2367"/>
         <source>Random points inside polygons (variable)</source>
         <translation>Zufällige Punkte in Polygonen (variable)</translation>
     </message>
@@ -82635,52 +82754,52 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2381"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2382"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2383"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2384"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2385"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2386"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2388"/>
         <source>Selected number is greater than feature count. Choose a lower value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2389"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2380"/>
         <source>Random selection</source>
         <translation>Zufällige Auswahl</translation>
     </message>
@@ -82688,57 +82807,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelectionWithinSubsets</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2394"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2395"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2396"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2397"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2398"/>
         <source>ID Field</source>
         <translation>ID Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2399"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2400"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
         <source>Selection stratified</source>
         <translation>Geschichtete Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2402"/>
         <source>Selected number is greater that feature count. Choose lesser value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2403"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2393"/>
         <source>Random selection within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -82746,42 +82865,42 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
         <source>Raster layer bounds</source>
         <translation>Rasterlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2408"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2409"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2410"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2413"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2414"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -82789,32 +82908,32 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2417"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2419"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2418"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2420"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
         <source>Number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2422"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2423"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2418"/>
         <source>Raster layer histogram</source>
         <translation>Rasterlayerhistogramm</translation>
     </message>
@@ -82822,57 +82941,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2428"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2429"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2430"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
         <source>Minimum value</source>
         <translation>Minimalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
         <source>Maximum value</source>
         <translation>Maximalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
         <source>Mean value</source>
         <translation>Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
         <source>valid cells count</source>
         <translation>Anzahl von gültigen Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2436"/>
         <source>No-data cells count</source>
         <translation>Anzahl von NoData Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2437"/>
         <source>Standard deviation</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
         <source>Raster layer statistics</source>
         <translation>Rasterlayerstatistik</translation>
     </message>
@@ -82889,37 +83008,37 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RegularPoints</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2442"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2443"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
         <source>Point spacing/count</source>
         <translation>Punktabstände/-anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
         <source>Initial inset from corner (LH side)</source>
         <translation>Anfängliche Einsatz von Ecke (linke Seite)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2446"/>
         <source>Apply random offset to point spacing</source>
         <translation>Zufälligen Versatz auf Punktabstand anwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2447"/>
         <source>Use point spacing</source>
         <translation>Benutze Punktabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2441"/>
         <source>Regular points</source>
         <translation>Regelmäßige Punkte</translation>
     </message>
@@ -82927,12 +83046,12 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RenderingStyleFilePanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2451"/>
         <source>Select style file</source>
         <translation>Wähle Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2452"/>
         <source>QGIS Layer Style File (*.qml *.QML)</source>
         <translation>QGIS Layerstildatei (*.qml *.QML)</translation>
     </message>
@@ -82940,27 +83059,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReprojectLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2459"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2460"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2456"/>
         <source>Reproject layer</source>
         <translation>Layer reprojizieren</translation>
     </message>
@@ -82968,27 +83087,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReverseLineDirection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2464"/>
         <source>Reverse line direction</source>
         <translation>Linienrichtung umgekehren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2465"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2467"/>
         <source>Reversed</source>
         <translation>Umgekehrt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2468"/>
         <source>Error reversing line</source>
         <translation>Fehler bei Linienumkehrung</translation>
     </message>
@@ -83282,1222 +83401,1277 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SAGAAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
         <source>Slope Length</source>
         <translation>Hanglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
         <source>Shapes Buffer (Attribute distance)|Shapes Buffer</source>
         <translation>Shapepuffer (Attributabstand)|Shapepuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="120"/>
         <source>Representativeness|Representativeness (Grid)</source>
         <translation>Repräsentativität|Repräsentativität (Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
         <source>Gaussian Filter</source>
         <translation>Gauss'scher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
         <source>Flow Accumulation (Top-Down)</source>
         <translation>Flußdichte (Oben-Unten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
         <source>Convex Hull</source>
         <translation>Konvexe Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
         <source>Flow Accumulation (Recursive)</source>
         <translation>Flußdichte (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
         <source>Polygon Centroids</source>
         <translation>Polygonschwerpunkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="61"/>
         <source>Flow Accumulation (Flow Tracing)</source>
         <translation>Flußdichte (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
         <source>Point Statistics for Polygons</source>
         <translation>Polygon-Punktstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
         <source>Grid Values to Points (randomly)</source>
         <translation>Gitterwerte zu Punkten (zufällig)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
         <source>Clip Points with Polygons</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
         <source>Gradient Vectors from Direction and Length</source>
         <translation>Gradientenvektor aus Richtung und Länge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
         <source>Grid Statistics for Polygons</source>
         <translation>Gitterstatistik für Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
         <source>Layer of extreme value</source>
         <translation>Extrema-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
         <source>Create Graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
         <source>Difference</source>
         <translation>Unterschied</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="143"/>
         <source>Clip Grid with Polygon</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
         <source>Crop to Data</source>
         <translation>Auf Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="157"/>
         <source>Close Gaps</source>
         <translation>Lücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
         <source>Multiresolution Index of Valley Bottom Flatness (MRVBF)</source>
         <translation>Mehrauflösung-Talbodenebenheitsindex (MRVBF)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
         <source>Gradient Vectors from Surface</source>
         <translation>Gradientenvektor aus Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
         <source>GWR for Multiple Predictor Grids</source>
         <translation>GWR für mehrere Vorsagegitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
         <source>Multiple Regression Analysis (Points/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Punkt/Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="60"/>
         <source>Hypsometry</source>
         <translation>Hypsometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="51"/>
         <source>Aggregation Index</source>
         <translation>Aggregationsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="152"/>
         <source>Identity</source>
         <translation>Identität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
         <source>LS Factor</source>
         <translation>LS-Faktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
         <source>DTM Filter (slope-based)</source>
         <translation>DTM-Filter (Hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
         <source>Effective Air Flow Heights</source>
         <translation>Effektive Luftflußhöhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
+        <source>Confusion Matrix (Polygons / Grid)</source>
+        <translation>Wahrheitsmatrix (Polygone / Gitter)</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
+        <source>Multilevel B-Spline Interpolation for Categories</source>
+        <translation>Mehrstufen-B-Spline-Interpolation für Kategorien</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
         <source>Add Grid Values to Points</source>
         <translation>Gitterwerte zu Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
         <source>Kernel Density Estimation</source>
         <translation>Kerndichtenschätzung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
         <source>Grid Cell Index</source>
         <translation>Gitterzellenindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
         <source>Mass Balance Index</source>
         <translation>Gleichgewichtsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
         <source>Transform Shapes</source>
         <translation>Shapes transformieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
         <source>Regression analysis|Regression Analysis (Points/Grid)</source>
         <translation>Regressionanalyse|Regressionsanalyse (Punkte/Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
         <source>Polygon Properties</source>
         <translation>Polygoneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
         <source>Geographically Weighted Multiple Regression</source>
         <translation>Geografischgewichtete Mehrfach-Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
         <source>GWR for Multiple Predictors (Gridded Model Output)</source>
         <translation>GWR für mehrere Vorsagegitter (Gerasterte Modellausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
         <source>Directional Statistics for Single Grid</source>
         <translation>Richtungsstatistik für Einzelraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
         <source>Fill Sinks|Fill Sinks (Planchon/Darboux, 2001)</source>
         <translation>Senken füllen|Senken füllen (Planchon/Darboux, 2001)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
         <source>Grids Product</source>
         <translation>Rasterprodukte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
         <source>Fill Gaps in Records</source>
         <translation>Datensatzlücken füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
         <source>Topographic Correction</source>
         <translation>Topographische Korrektur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
         <source>Grid Buffer</source>
         <translation>Gitterpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
         <source>Catchment Area (Flow Tracing)</source>
         <translation>Einzugsbereich (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
         <source>User Defined Filter</source>
         <translation>Benutzerdefinierter Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
         <source>Watershed Segmentation</source>
         <translation>Niederschlagssegmentierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
         <source>Line Simplification</source>
         <translation>Linienvereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
         <source>Convergence Index (Search Radius)</source>
         <translation>Konvergenzindex (Suchradius)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
         <source>Topographic Wetness Index (TWI)</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
         <source>Upslope Area|4</source>
         <translation>Anstieg Areal4</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
         <source>Laplacian Filter</source>
         <translation>Laplace-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
         <source>Grid Proximity Buffer</source>
         <translation>Gitterannährungspuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
         <source>Aggregate Point Observations</source>
         <translation>Punktbeobachtung sammeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
         <source>Transpose Grids</source>
         <translation>Gitter transponieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
         <source>Topographic Position Index (TPI)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
         <source>Grid Masking</source>
         <translation>Gittermaskierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="92"/>
         <source>Channel Network and Drainage Basins</source>
         <translation>Kanalnetzwerk und Drainagebecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
         <source>Real Surface Area</source>
         <translation>Echte Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
         <source>Threshold Buffer</source>
         <translation>Schwellenpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
         <source>Add Grid Values to Shapes</source>
         <translation>Gitterwerte zu Shapes hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
         <source>QuadTree Structure to Shapes</source>
         <translation>Quad-Tree-Struktur zu Shapes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="174"/>
         <source>Analytical Hillshading</source>
         <translation>Analytische Schummerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
         <source>Surface Specific Points</source>
         <translation>Oberflächen spezifische Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
         <source>Transect through polygon shapefile</source>
         <translation>Durch Polygonshapedateien schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
         <source>Convert Lines to Polygons</source>
         <translation>Linien in Polygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="155"/>
         <source>Local Minima and Maxima</source>
         <translation>Lokale Minima und Maxima</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
         <source>Accumulated Cost (Isotropic)</source>
         <translation>Aufgelaufenen Kosten (isotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
         <source>Line Dissolve</source>
         <translation>Linien auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
         <source>Resampling</source>
         <translation>Abtastung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
         <source>Fuzzy Union (OR)</source>
         <translation>Fuzzy-Vereinigung (ODER)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="147"/>
         <source>Natural Neighbour</source>
         <translation>Natürlicher Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
         <source>Convert Lines to Points</source>
         <translation>Linien in Punkten umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="40"/>
         <source>Thin Plate Spline (Global)</source>
         <translation>Thin Plate Spline (global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
         <source>Polygon dissolve (by attribute)|Polygon Dissolve</source>
         <translation>Polygon auflösen (nach Attribut)|Polygon auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="139"/>
         <source>Stream Power Index</source>
         <translation>Stromstärkeindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
         <source>Global Moran's I for Grids</source>
         <translation>Global Moran I für Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
         <source>Polynomial Regression</source>
         <translation>Polynominalregression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
         <source>Multiple Regression Analysis (Grid/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="52"/>
         <source>Nearest Neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
         <source>Water Retention Capacity</source>
         <translation>Bodenwasserspannungskapazität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
         <source>Gradient Vectors from Directional Components</source>
         <translation>Gradientenvektoren aus gerichteten Komponenten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
         <source>Majority Filter</source>
         <translation>Mehrheitsfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
         <source>Flow Path Length</source>
         <translation>Fließweglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
         <source>Simple Region Growing</source>
         <translation>Einfaches Region-Growing</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
         <source>Simulation</source>
         <translation>Simulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
         <source>Get Shapes Extents</source>
         <translation>Shapeausmaße bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="17"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
         <source>Fill Sinks XXL (Wang & Liu)</source>
         <translation>Senken füllen XXL (Wang & Liu)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
         <source>B-Spline Approximation</source>
         <translation>B-Spline-Approximation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
         <source>Polygon Parts to Separate Polygons</source>
         <translation>Polygonteile in Einzelpolygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
         <source>Points Thinning</source>
         <translation>Punkte ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="199"/>
         <source>Change Date Format</source>
         <translation>Datumsformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
         <source>Gradient Vector from Cartesian to Polar Coordinates</source>
         <translation>Gradientenvektor aus kartesischen in Polar-Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
         <source>Fragmentation Classes from Density and Connectivity</source>
         <translation>Fragmentierungsklassen aus Dichte und Verbindungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
         <source>Ordinary Kriging</source>
         <translation>Normales Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="208"/>
         <source>Grid Volume</source>
         <translation>Rastervolumen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
         <source>Patching</source>
         <translation>Zusammenflicken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
         <source>Ordered Weighted Averaging|Ordered Weighted Averaging (OWA)</source>
         <translation>Sortiertes gewichtetes Mitteln|Sortiertes gewichtetes Mitteln (OWA)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
         <source>Thin Plate Spline (TIN)</source>
         <translation>Thin-Plate-Spline (TIN)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
         <source>SAGA Wetness Index</source>
         <translation>SAGA Feuchtigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
         <source>Histogram Surface</source>
         <translation>Histogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
         <source>Merge Layers</source>
         <translation>Layer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
         <source>Grid Skeletonization</source>
         <translation>Rasterskelettierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
         <source>Catchment Area|Catchment Area (Parallel)</source>
         <translation>Einzugsgebiet|Einzugsgebiet (Parallel)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="135"/>
         <source>Geometric Figures</source>
         <translation>Geometrische Figuren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
         <source>Spatial Point Pattern Analysis</source>
         <translation>Räumliche Punktmusteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
         <source>Sink Removal</source>
         <translation>Ablauf entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
         <source>Convert Points to Line(s)</source>
         <translation>Punkte in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
         <source>Change Grid Values</source>
         <translation>Gitterwert ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
         <source>Line Properties</source>
         <translation>Linieneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
         <source>Convert Multipoints to Points</source>
         <translation>Multipunkt zu Punkt umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
         <source>Cell Balance</source>
         <translation>Zellengleichgewicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
         <source>Fill Sinks (Wang & Liu)</source>
         <translation>Senken füllen (Wang & Liu)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
         <source>Convert Data Storage Type</source>
         <translation>Datenspeichertyp umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
         <source>Rank Filter</source>
         <translation>Rangfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
         <source>Change Detection</source>
         <translation>Erkennung ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
         <source>Strahler Order</source>
         <translation>Strahler-Reihenfolge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="150"/>
         <source>Inverse Distance Weighted</source>
         <translation>gewichtete inverse Distanz (IDW)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
         <source>Multilevel B-Spline Interpolation (from Grid)</source>
         <translation>Mehrstufen-B-Spline-Interpolation (aus Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
         <source>Geographically Weighted Multiple Regression (Points/Grids)</source>
         <translation>Geografischgewichtete Mehrfach-Regression (Punkt/Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
         <source>Fast Region Growing Algorithm</source>
         <translation>Schneller Regionswachstumalgorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="133"/>
         <source>Terrain Ruggedness Index (TRI)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="14"/>
         <source>GWR for Single Predictor Grid</source>
         <translation>GWR für einzelnes Vorsagegitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
         <source>Points Filter</source>
         <translation>Punktfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
         <source>Radius of Variance (Grid)</source>
         <translation>Radius der Varianz (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
         <source>Geographically Weighted Multiple Regression (Points)</source>
         <translation>Geografischgewichtete Mehrfach-Regression (Punkte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
         <source>Sink Drainage Route Detection</source>
         <translation>Ablaufdrainageweg bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="204"/>
         <source>GWR for Single Predictor (Gridded Model Output)</source>
         <translation>GWR für einzelnes Vorsagegitter (Gerasterte Modellausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
         <source>Cubic Spline Approximation</source>
         <translation>Kubische Spline-Nährung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
         <source>Overland Flow Distance to Channel Network</source>
         <translation>Überlandflußabstand zu Kanalnetzwerken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
         <source>Shapes Buffer (Fixed distance)|Shapes Buffer</source>
         <translation>Shapepuffer (fester Abstand)|Shapepuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
         <source>Line-Polygon Intersection</source>
         <translation>Linien-Polygon-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
         <source>Accumulated Cost (Anisotropic)</source>
         <translation>Aufgelaufenen Kosten (Anisotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
         <source>Fragmentation (Alternative)</source>
         <translation>Fragmentierung (Alternative)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
         <source>Principle Components Analysis</source>
         <translation>Hauptkomponentenanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
         <source>Ordinary Kriging (Global)</source>
         <translation>Normales Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
         <source>Multi-Band Variation</source>
         <translation>Mehrkanalvariation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
         <source>Universal Kriging (Global)</source>
         <translation>Universeles Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
         <source>Analytical Hierarchy Process</source>
         <translation>Analytischer Hierachieprozeß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
         <source>Diurnal Anisotropic Heating</source>
         <translation>Anisotrope Erwärmung über Tag</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
         <source>Variogram Surface</source>
         <translation>Variogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="15"/>
         <source>Multi Direction Lee Filter</source>
         <translation>Mehrrichtung-Lee-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="56"/>
         <source>Watershed Basins</source>
         <translation>Einzugsgebietsbecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="67"/>
         <source>Supervised Classification</source>
         <translation>Überwachte Klassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
         <source>Soil Texture Classification</source>
         <translation>Bodentexturklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
         <source>Vectorising Grid Classes</source>
         <translation>Vektorisierende Gitter-Klassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
         <source>Modified Quadratic Shepard</source>
         <translation>Modifizierte quadratische Shepard-Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
         <source>Variogram Cloud</source>
         <translation>Variogramm Wolke</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
         <source>Morphometric Protection Index</source>
         <translation>Morphometrischer Schutzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
         <source>Universal Kriging</source>
         <translation>Universeles Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
         <source>Raster calculator|Grid Calculator</source>
         <translation>Rasterrechner|Rasterrechner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
         <source>Grid Orientation</source>
         <translation>Gitterrichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
         <source>Convergence Index</source>
         <translation>Konvergenzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
         <source>Shapes to Grid</source>
         <translation>Shapes in Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
         <source>Land Surface Temperature</source>
         <translation>Landoberflächentemperatur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
         <source>Polygon dissolve (all polygons)|Polygon Dissolve</source>
         <translation>Polygon auflösen (alle Polygone)|Polygon auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
         <source>Flow Width and Specific Catchment Area</source>
         <translation>Flußbreite und spezifisches Einzugsgebiet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
         <source>Random Terrain Generation</source>
         <translation>Zufälliges Gelände erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="79"/>
         <source>Convert Polygons to Lines</source>
         <translation>Polygon in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="255"/>
         <source>Fuzzy Intersection (AND)</source>
         <translation>Fuzzy-Schnittmenge (UND)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
         <source>Polygon Shape Indices</source>
         <translation>Polygonshapeindizes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
         <source>Cluster Analysis for Grids</source>
         <translation>Häufungsanalyse für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
         <source>Burn Stream Network into DEM</source>
         <translation>Stromnetzwerk in DEM brennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
         <source>Relative Heights and Slope Positions</source>
         <translation>Relative Höhen und Hangpositionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
         <source>Regression Kriging</source>
         <translation>Regressionskrigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
         <source>Simple Kriging</source>
         <translation>Einfaches Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
         <source>Fuzzify</source>
         <translation>Fuzzifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
         <source>Catchment Area (Recursive)</source>
         <translation>Einzugsbereich (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
         <source>Convert Polygon/Line Vertices to Points</source>
         <translation>Polygon-/Linienstützpunkte in Punkte umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
         <source>Least Cost Paths</source>
         <translation>Pfad geringster Kosten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
         <source>Split Shapes Layer Randomly</source>
         <translation>Shapelayer zufällig aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="114"/>
         <source>Grid Standardisation</source>
         <translation>Gitterstandardisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
         <source>Proximity Grid</source>
         <translation>Näheraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
         <source>Contour Lines from Grid</source>
         <translation>Umrandungslinien aus Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
         <source>Fragmentation (Standard)</source>
         <translation>Fragmentierung (Standard)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
         <source>Invert Data/No-Data</source>
         <translation>Daten/Leerdaten invertieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
         <source>Vegetation Index (Slope Based)</source>
         <translation>Vegetationsindex (hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
         <source>Statistics for Grids</source>
         <translation>Statistik für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
         <source>Grids Sum</source>
         <translation>Gittersumme</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
         <source>Triangulation</source>
         <translation>Triangulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="7"/>
         <source>Grid Values to Points</source>
         <translation>Gitterwerte in Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
         <source>Add Coordinates to points</source>
         <translation>Koordinaten zu Punkten hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
         <source>Symmetrical Difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
         <source>Flat Detection</source>
         <translation>Flacherkennung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="113"/>
         <source>Aggregate</source>
         <translation>Aggregieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="11"/>
         <source>Sky View Factor</source>
         <translation>Himmelsichtfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="74"/>
         <source>Grid Difference</source>
         <translation>Gitterdifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
         <source>Vertical Distance to Channel Network</source>
         <translation>Vertikale Distanz in Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
         <source>Random Field</source>
         <translation>Zufälliges Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
         <source>Simple Filter</source>
         <translation>Einfacher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
         <source>Minimum Distance Analysis</source>
         <translation>Minimumdistanzanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
         <source>Shrink and Expand</source>
         <translation>Verkleinern und Vergrößern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
         <source>Cut Shapes Layer</source>
         <translation>Shapelayer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
         <source>TPI Based Landform Classification</source>
         <translation>TPI basierte Landformklassifikation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
         <source>Intersect</source>
         <translation>Schnittmengen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
         <source>Profile from points table|Profile from points</source>
         <translation>Profile aus Punkttabelle|Profil aus Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
         <source>Downslope Distance Gradient</source>
         <translation>Abwärtsabstandsgrendiente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
         <source>Channel Network</source>
         <translation>Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
         <source>Pattern Analysis</source>
         <translation>Musteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
         <source>Fit N Points to shape</source>
         <translation>N-Punkte in Shape einpassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
         <source>Remove Duplicate Points</source>
         <translation>Doppelte Punkte entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
         <source>Reclassify Grid Values</source>
         <translation>Gitterwert neuklassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="45"/>
         <source>Geographically Weighted Regression (Points/Grid)</source>
         <translation>Geografischgewichtete Regression (Punkt/Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
+        <source>Create Lines Graticule|Create Graticule</source>
+        <translation>Liniengradnetz erzeugen|Gradnetz erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
+        <source>Diffusive Hillslope Evolution (ADI)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
+        <source>Diffusive Hillslope Evolution (FTCS)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
+        <source>Flow Accumulation (QM of ESP)</source>
+        <translation>Flußdichte (QM von ESP)</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
         <source>Close One Cell Gaps</source>
         <translation>Einzellenlücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
+        <source>Successive Flow Routing</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
+        <source>Diversity of Categories</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
+        <source>Thin Plate Spline</source>
+        <translation>Thin Plate Spline</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
         <source>Slope, Aspect, Curvature</source>
         <translation>Neigung, Exposition, Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
+        <source>Create Polygons Graticule|Create Graticule</source>
+        <translation>Polygongradnetz erzeugen|Gradnetz erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
+        <source>Fill Sinks (QM of ESP)</source>
+        <translation>Senken füllen (QM von ESP)</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
         <source>Function</source>
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
         <source>GWR for Multiple Predictors</source>
         <translation>GWR für mehrere Vorhersagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
         <source>Wind effect|Wind Effect (Windward / Leeward Index)</source>
         <translation>Windeffekt|Wind Effekt (Windwärts / Leeindex)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
         <source>Close Gaps with Spline</source>
         <translation>Lücken mit Spline schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
         <source>Change Time Format</source>
         <translation>Zeitformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
         <source>Thin Plate Spline (Local)</source>
         <translation>Thin Plate Spline (Lokal)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="7"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
         <source>Grid Normalisation</source>
         <translation>Gitternormalisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
         <source>Seed Generation</source>
         <translation>Saaterzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="206"/>
         <source>Polygon-Line Intersection</source>
         <translation>Polygon-Linien-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
         <source>Running Average</source>
         <translation>Beweglicher Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="256"/>
         <source>Cross-Classification and Tabulation</source>
         <translation>Kreuzklassifizierung und Tabellierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
         <source>Gradient Vector from Polar to Cartesian Coordinates</source>
         <translation>Gradientenvektor aus Polar- zu kartesischen Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
         <source>Metric Conversions</source>
         <translation>Metrische Umwandlungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
         <source>RGB Composite</source>
         <translation>RGB-Composite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
         <source>Edge Contamination</source>
         <translation>Kantenverunreinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
         <source>Curvature Classification</source>
         <translation>Wölbungsklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
         <source>Filter Clumps</source>
         <translation>Klumpen filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
         <source>Overland Flow - Kinematic Wave D8</source>
         <translation>Überlandfluß - Kinematische Welle D8</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
         <source>Profiles from Lines</source>
         <translation>Profile aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
         <source>Distance Matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
         <source>Residual analysis|Residual Analysis (Grid)</source>
         <translation>Restanalyse|Restanalyse (Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
         <source>Zonal Grid Statistics</source>
         <translation>Zonengitterstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
         <source>Grid Division</source>
         <translation>Gitterteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
         <source>Lake Flood</source>
         <translation>Seeflut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
         <source>Add Polygon Attributes to Points</source>
         <translation>Polygonattribute zu Punkten hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
         <source>Multilevel B-Spline Interpolation</source>
         <translation>Mehrstufen-B-Spline-Interpolation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
         <source>Cross Profiles</source>
         <translation>Kreuzprofile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="235"/>
         <source>Polar to Cartesian Coordinates</source>
         <translation>Polar- zu kartesischen Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="84"/>
         <source>Mosaick raster layers|Mosaicking</source>
         <translation>Stitching von Rasterlayern|Stitching</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
         <source>Fire Risk Analysis</source>
         <translation>Feuerriskikoanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
         <source>Geographically Weighted Regression</source>
         <translation>Geografischgewichtete Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
         <source>Separate points by direction</source>
         <translation>Punkte nach Richtung aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
         <source>Polygons to Edges and Nodes</source>
         <translation>Polygone zu Kanten und Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
         <source>Morphological Filter</source>
         <translation>Morphologischer Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
         <source>Vector Ruggedness Measure (VRM)</source>
         <translation>Vektorrauhigkeitsmaß (VRM)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
         <source>Fast Representativeness</source>
         <translation>Schnelle Repräsentativität</translation>
     </message>
@@ -84523,24 +84697,24 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SagaAlgorithm212</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2473"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2474"/>
         <source>Input layer %s has more than one band.
 Multiband layers are not supported by SAGA</source>
         <translation>Eingabelayer %s hat mehr als einen Kanal.
 Mehrkanallayer werden von SAGA nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2475"/>
         <source>Input layers do not have the same grid extent.</source>
         <translation>Eingabelayer haben nicht die gleichen Gitterabmessungen.</translation>
     </message>
@@ -84548,12 +84722,12 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithm213</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2479"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2480"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
@@ -84561,47 +84735,47 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
         <source>SAGA folder</source>
         <translation>SAGA-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
         <source>Enable SAGA Import/Export optimizations</source>
         <translation>SAGA-Im-/Exportoptimierungen einschalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2487"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2488"/>
         <source>Activate</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2489"/>
         <source>Problem with SAGA installation: SAGA was not found or is not correctly installed</source>
         <translation>Problem mit SAGA-Installation: SAGA wurde nicht gefunden oder ist nicht richtig installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
         <source>Problem with SAGA installation: installed SAGA version (%s) is not supported</source>
         <translation>Problem mit SAGA-Installation: Installierte SAGA-Version (%s) ist nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2491"/>
         <source>Could not open SAGA algorithm: %s</source>
         <translation>Konnte SAGA-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2492"/>
         <source>Could not open SAGA algorithm: %s
 %s</source>
         <translation>Konnte SAGA-Algorithmus nicht öffnen: %s
@@ -84611,7 +84785,7 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2496"/>
         <source>SAGA execution console output</source>
         <translation>Konsolenausgabe der SAGA-Ausführung</translation>
     </message>
@@ -84619,22 +84793,22 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SaveSelectedFeatures</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2501"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2502"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2503"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2498"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
         <source>Save selected features</source>
         <translation>Gewählte Objekt speichern</translation>
     </message>
@@ -84642,36 +84816,36 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>ScriptAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
         <source>User scripts</source>
         <translation>Benutzer Skripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
         <source>Could not load script: %s
 Problem with line: %s</source>
         <translation>Konnte Skript nicht laden: %s
 Problem in Zeile: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
         <source>[Test scripts]</source>
         <translation>[Test Skripte]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2510"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2511"/>
         <source>Could not load script: %s.
 Problem with line "%s"</source>
         <translation>Konnte Skript nicht laden: %s
 Problem in Zeile: "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2512"/>
         <source>Could not load script: %s.
 Problem with line %d</source>
         <translation>Konnte Skript nicht laden: %s.
@@ -84681,17 +84855,17 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2516"/>
         <source>Create new script</source>
         <translation>Erzeuge neues Skript</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2517"/>
         <source>Scripts folder</source>
         <translation>Skript Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2518"/>
         <source>Scripts</source>
         <translation>Skripte</translation>
     </message>
@@ -84699,39 +84873,39 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptEditorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
         <source>Python scripts (*.py)</source>
         <translation>Python-Skripte (*.py)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2525"/>
         <source>Processing R script (*.rsx)</source>
         <translation>Verarbeitete R-Skript (*.rsx)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2526"/>
         <source>Save script</source>
         <translation>Skript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2525"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2527"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2528"/>
         <source>Unable to save edits. Reason:
  %s</source>
         <translation>Änderung konnten nicht gespeichert werden. Grund:
  %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
         <source>There are unsaved changes in script. Continue?</source>
         <translation>Es gibt ungesicherte Skriptänderungen.  Fortfahren?</translation>
     </message>
@@ -84787,57 +84961,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
         <source>begins with </source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
         <source>Selected (attribute)</source>
         <translation>Auswahl (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2541"/>
         <source>Operators %s can be used only with string fields.</source>
         <translation>Operatoren %s könnte nur in Textfeldern verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2542"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2532"/>
         <source>Select by attribute</source>
         <translation>Nach Attribut wählen</translation>
     </message>
@@ -84845,42 +85019,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttributeSum</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2547"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2548"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2549"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2550"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2551"/>
         <source>Selected (attribute sum)</source>
         <translation>Auswahl (Attributsumme)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2552"/>
         <source>There is no selection in the input layer. Select one feature and try again.</source>
         <translation>Im Eingabelayer ist nichts ausgewählt. Bitte ein Objekt wählen und nocheinmal versuchen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2553"/>
         <source>No adjacent features found.</source>
         <translation>Keine benachbarten Objekte gefunden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
         <source>Select by attribute sum</source>
         <translation>Nach Attributsumme wählen</translation>
     </message>
@@ -84888,47 +85062,47 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByExpression</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2558"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2559"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl wird erstellt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
         <source>adding to current selection</source>
         <translation>Füge zur aktuellen Auswahl hinzu</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2562"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2563"/>
         <source>Expression</source>
         <translation>Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2564"/>
         <source>Modify current selection by</source>
         <translation>Vorhandene Auswaähl ändern durch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2563"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2565"/>
         <source>Selected (expression)</source>
         <translation>Auswahl (Ausdruck)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2557"/>
         <source>Select by expression</source>
         <translation>Nach Ausdruck wählen</translation>
     </message>
@@ -84936,57 +85110,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2570"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2571"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2572"/>
         <source>adding to current selection</source>
         <translation>Füge zur aktuellen Auswahl hinzu</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2573"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2574"/>
         <source>Layer to select from</source>
         <translation>Layer von dem gewählt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2575"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2578"/>
         <source>Modify current selection by</source>
         <translation>Aktuelle Auswahl ändern mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2579"/>
         <source>Selected (location)</source>
         <translation>Auswahl (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
         <source>Select by location</source>
         <translation>Nach Position selektieren</translation>
     </message>
@@ -85047,27 +85221,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetRasterStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
         <source>Raster general tools</source>
         <translation>Allgemeine Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2585"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2586"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2587"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2581"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
         <source>Set style for raster layer</source>
         <translation>Setze Stil für Rasterlayer</translation>
     </message>
@@ -85075,27 +85249,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetVectorStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2590"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2592"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2594"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2595"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2591"/>
         <source>Set style for vector layer</source>
         <translation>Setze Stil für Vektorlayer</translation>
     </message>
@@ -85103,14 +85277,14 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Setting</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2599"/>
         <source>Wrong parameter value:
 %s</source>
         <translation>Falscher Parameterwert:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2600"/>
         <source>Specified path does not exist:
 %s</source>
         <translation>Angegebener Pfad existiert nicht:
@@ -85121,270 +85295,270 @@ Fehler in Zeile %d</translation>
     <name>SettingsDialogPythonConsole</name>
     <message>
         <location filename="../python/console/console_settings.ui" line="265"/>
-        <location filename="../python/python-i18n.cpp" line="246"/>
+        <location filename="../python/python-i18n.cpp" line="247"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="271"/>
-        <location filename="../python/python-i18n.cpp" line="247"/>
+        <location filename="../python/python-i18n.cpp" line="248"/>
         <source>Auto-save script before running</source>
         <translation>Skript vor Ausführung automatisch speichern</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="288"/>
         <location filename="../python/console/console_settings.ui" line="820"/>
-        <location filename="../python/python-i18n.cpp" line="249"/>
+        <location filename="../python/python-i18n.cpp" line="250"/>
         <source>Font and Colors</source>
         <translation>Schriftart und Farben</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="358"/>
         <location filename="../python/console/console_settings.ui" line="890"/>
-        <location filename="../python/python-i18n.cpp" line="252"/>
+        <location filename="../python/python-i18n.cpp" line="253"/>
         <source>Default:</source>
         <translation>Vorgabe:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="372"/>
         <location filename="../python/console/console_settings.ui" line="904"/>
-        <location filename="../python/python-i18n.cpp" line="253"/>
+        <location filename="../python/python-i18n.cpp" line="254"/>
         <source>Keyword:</source>
         <translation>Schlüsselwort:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="386"/>
         <location filename="../python/console/console_settings.ui" line="918"/>
-        <location filename="../python/python-i18n.cpp" line="254"/>
+        <location filename="../python/python-i18n.cpp" line="255"/>
         <source>Class name:</source>
         <translation>Klassenname:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="400"/>
         <location filename="../python/console/console_settings.ui" line="932"/>
-        <location filename="../python/python-i18n.cpp" line="255"/>
+        <location filename="../python/python-i18n.cpp" line="256"/>
         <source>Function:</source>
         <translation>Funktion:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="414"/>
         <location filename="../python/console/console_settings.ui" line="946"/>
-        <location filename="../python/python-i18n.cpp" line="256"/>
+        <location filename="../python/python-i18n.cpp" line="257"/>
         <source>Decorator:</source>
         <translation>Decorator:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="428"/>
         <location filename="../python/console/console_settings.ui" line="960"/>
-        <location filename="../python/python-i18n.cpp" line="257"/>
+        <location filename="../python/python-i18n.cpp" line="258"/>
         <source>Comment:</source>
         <translation>Kommentar:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="442"/>
         <location filename="../python/console/console_settings.ui" line="974"/>
-        <location filename="../python/python-i18n.cpp" line="258"/>
+        <location filename="../python/python-i18n.cpp" line="259"/>
         <source>Comment block:</source>
         <translation>Kommentarblock:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="456"/>
         <location filename="../python/console/console_settings.ui" line="988"/>
-        <location filename="../python/python-i18n.cpp" line="259"/>
+        <location filename="../python/python-i18n.cpp" line="260"/>
         <source>Cursor:</source>
         <translation>Cursor:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="470"/>
         <location filename="../python/console/console_settings.ui" line="1002"/>
-        <location filename="../python/python-i18n.cpp" line="260"/>
+        <location filename="../python/python-i18n.cpp" line="261"/>
         <source>Caretline:</source>
         <translation>Cursorzeile:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="484"/>
         <location filename="../python/console/console_settings.ui" line="1016"/>
-        <location filename="../python/python-i18n.cpp" line="261"/>
+        <location filename="../python/python-i18n.cpp" line="262"/>
         <source>Single quote:</source>
         <translation>Hochkomma:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="498"/>
         <location filename="../python/console/console_settings.ui" line="1030"/>
-        <location filename="../python/python-i18n.cpp" line="262"/>
+        <location filename="../python/python-i18n.cpp" line="263"/>
         <source>Double quote:</source>
         <translation>Anführungszeichen:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="512"/>
         <location filename="../python/console/console_settings.ui" line="1044"/>
-        <location filename="../python/python-i18n.cpp" line="263"/>
+        <location filename="../python/python-i18n.cpp" line="264"/>
         <source>Triple single quote:</source>
         <translation>Dreifachhochkomma:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="526"/>
         <location filename="../python/console/console_settings.ui" line="1058"/>
-        <location filename="../python/python-i18n.cpp" line="264"/>
+        <location filename="../python/python-i18n.cpp" line="265"/>
         <source>Triple double quote:</source>
         <translation>Dreifach-Anführungszeichen:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="540"/>
         <location filename="../python/console/console_settings.ui" line="1072"/>
-        <location filename="../python/python-i18n.cpp" line="265"/>
+        <location filename="../python/python-i18n.cpp" line="266"/>
         <source>Background:</source>
         <translation>Hintergrund:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="558"/>
         <location filename="../python/console/console_settings.ui" line="1104"/>
-        <location filename="../python/python-i18n.cpp" line="266"/>
+        <location filename="../python/python-i18n.cpp" line="267"/>
         <source>Reset to default colors</source>
         <translation>Auf Vorgabefarbe zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="589"/>
         <location filename="../python/console/console_settings.ui" line="709"/>
-        <location filename="../python/python-i18n.cpp" line="267"/>
+        <location filename="../python/python-i18n.cpp" line="268"/>
         <source>Typing</source>
         <translation>Tippen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="610"/>
         <location filename="../python/console/console_settings.ui" line="730"/>
-        <location filename="../python/python-i18n.cpp" line="269"/>
+        <location filename="../python/python-i18n.cpp" line="270"/>
         <source>Automatic insertion of the 'import' string on 'from xxx'</source>
         <translation>Automatisches Einfügen der Zeichenkette 'import' bei 'from xxx'</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="622"/>
         <location filename="../python/console/console_settings.ui" line="742"/>
-        <location filename="../python/python-i18n.cpp" line="270"/>
+        <location filename="../python/python-i18n.cpp" line="271"/>
         <source>Autocompletion</source>
         <translation>Autovervollständigung</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="645"/>
         <location filename="../python/console/console_settings.ui" line="805"/>
-        <location filename="../python/python-i18n.cpp" line="271"/>
+        <location filename="../python/python-i18n.cpp" line="272"/>
         <source>Get autocompletion from current document</source>
         <translation>Autovervollständigung aus aktuellem Dokument holen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="648"/>
         <location filename="../python/console/console_settings.ui" line="808"/>
-        <location filename="../python/python-i18n.cpp" line="272"/>
+        <location filename="../python/python-i18n.cpp" line="273"/>
         <source>from Document</source>
         <translation>aus Dokument</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="655"/>
         <location filename="../python/console/console_settings.ui" line="782"/>
-        <location filename="../python/python-i18n.cpp" line="273"/>
+        <location filename="../python/python-i18n.cpp" line="274"/>
         <source>Get autocompletion from current document and installed APIs</source>
         <translation>Autovervollständigung aus aktuellem Dokument und installierten APIs holen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="658"/>
         <location filename="../python/console/console_settings.ui" line="785"/>
-        <location filename="../python/python-i18n.cpp" line="274"/>
+        <location filename="../python/python-i18n.cpp" line="275"/>
         <source>from Doc and APIs</source>
         <translation>aus Doku und API</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="665"/>
         <location filename="../python/console/console_settings.ui" line="792"/>
-        <location filename="../python/python-i18n.cpp" line="275"/>
+        <location filename="../python/python-i18n.cpp" line="276"/>
         <source>Get autocompletion from installed APIs</source>
         <translation>Autovervollständigung aus installierten APIs</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="668"/>
         <location filename="../python/console/console_settings.ui" line="795"/>
-        <location filename="../python/python-i18n.cpp" line="276"/>
+        <location filename="../python/python-i18n.cpp" line="277"/>
         <source>from APIs files</source>
         <translation>aus API-Dateien</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="680"/>
         <location filename="../python/console/console_settings.ui" line="763"/>
-        <location filename="../python/python-i18n.cpp" line="277"/>
+        <location filename="../python/python-i18n.cpp" line="278"/>
         <source>Autocompletion threshold</source>
         <translation>Autokompletierungsschwellenwert</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="1086"/>
-        <location filename="../python/python-i18n.cpp" line="279"/>
+        <location filename="../python/python-i18n.cpp" line="280"/>
         <source>Error:</source>
         <translation>Fehler:</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="603"/>
         <location filename="../python/console/console_settings.ui" line="723"/>
-        <location filename="../python/python-i18n.cpp" line="268"/>
+        <location filename="../python/python-i18n.cpp" line="269"/>
         <source>Automatic parentheses insertion</source>
         <translation>Automatisch Klammern einfügen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="302"/>
         <location filename="../python/console/console_settings.ui" line="834"/>
-        <location filename="../python/python-i18n.cpp" line="250"/>
+        <location filename="../python/python-i18n.cpp" line="251"/>
         <source>Font</source>
         <translation>Schriftart</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="322"/>
         <location filename="../python/console/console_settings.ui" line="854"/>
-        <location filename="../python/python-i18n.cpp" line="251"/>
+        <location filename="../python/python-i18n.cpp" line="252"/>
         <source>Size</source>
         <translation>Größe</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="278"/>
-        <location filename="../python/python-i18n.cpp" line="248"/>
+        <location filename="../python/python-i18n.cpp" line="249"/>
         <source>Enable Object Inspector (switching between tabs may be slow)</source>
         <translation>Objektinspektor einschalten (Umschaltung zwischen Reitern kann langsam sein)</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="703"/>
-        <location filename="../python/python-i18n.cpp" line="278"/>
+        <location filename="../python/python-i18n.cpp" line="279"/>
         <source>Console</source>
         <translation>Konsole</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="69"/>
         <location filename="../python/console/console_settings.ui" line="206"/>
-        <location filename="../python/python-i18n.cpp" line="241"/>
+        <location filename="../python/python-i18n.cpp" line="242"/>
         <source>APIs</source>
         <translation>APIs</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="75"/>
-        <location filename="../python/python-i18n.cpp" line="242"/>
+        <location filename="../python/python-i18n.cpp" line="243"/>
         <source>Using preloaded APIs file</source>
         <translation>API-Dateien vorladen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="211"/>
-        <location filename="../python/python-i18n.cpp" line="243"/>
+        <location filename="../python/python-i18n.cpp" line="244"/>
         <source>Path</source>
         <translation>Pfad</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="221"/>
-        <location filename="../python/python-i18n.cpp" line="244"/>
+        <location filename="../python/python-i18n.cpp" line="245"/>
         <source>Using prepared APIs file</source>
         <translation>Vorbereitete API-Dateien benutzen</translation>
     </message>
     <message>
         <location filename="../python/console/console_settings.ui" line="242"/>
-        <location filename="../python/python-i18n.cpp" line="245"/>
+        <location filename="../python/python-i18n.cpp" line="246"/>
         <source>Compile APIs...</source>
         <translation>APIs werden erstellt...</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="240"/>
+        <location filename="../python/python-i18n.cpp" line="241"/>
         <source>Settings Python Console</source>
         <translation>Python-Konsoleneinstellungen</translation>
     </message>
@@ -85392,7 +85566,7 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ShowTestDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2604"/>
         <source>Unit test</source>
         <translation>Unit-Test</translation>
     </message>
@@ -85400,32 +85574,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SimplifyGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2609"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2610"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
         <source>Tolerance</source>
         <translation>Toleranz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2612"/>
         <source>Simplified</source>
         <translation>Vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2613"/>
         <source>Simplify: Input geometries have been simplified from %s to %s points</source>
         <translation>Vereinfachen: Eingabegeometrien wurden von %s auf %s Punkte vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2608"/>
         <source>Simplify geometries</source>
         <translation>Geometrien vereinfachen</translation>
     </message>
@@ -85466,32 +85640,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SinglePartsToMultiparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2618"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2619"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2621"/>
         <source>Multipart</source>
         <translation>Mehrteilig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2622"/>
         <source>Invalid unique ID field</source>
         <translation>Ungültiges eindeutiges Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2617"/>
         <source>Singleparts to multipart</source>
         <translation>Ein- zu mehrteilig</translation>
     </message>
@@ -85538,42 +85712,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeArea</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
         <source>Slope Area Combination</source>
         <translation>Neigungsflächenkombination</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2627"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2628"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2629"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2632"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2633"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -85581,42 +85755,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeAreaMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2637"/>
         <source>Slope Area Combination (multifile)</source>
         <translation>Neigungsflächenkombination (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2638"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2639"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2643"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2644"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -85624,37 +85798,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Smooth</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2646"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2648"/>
         <source>Smooth geometry</source>
         <translation>Geometrieglättung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2651"/>
         <source>Iterations</source>
         <translation>Wiederholungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2652"/>
         <source>Offset</source>
         <translation>Versatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2653"/>
         <source>Smoothed</source>
         <translation>Geglättet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2654"/>
         <source>Error smoothing geometry</source>
         <translation>Fehler bei Geometrieglättung</translation>
     </message>
@@ -85662,72 +85836,72 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SpatialJoin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2659"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
         <source>Take attributes of the first located feature</source>
         <translation>Attribute des ersten bestimmten Objekts verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
         <source>Take summary of intersecting features</source>
         <translation>Zusammenfassung der schneidenden Objekte erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2662"/>
         <source>Only keep matching records</source>
         <translation>Nur passende Datensätze erhalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2663"/>
         <source>Keep all records (including non-matching target records)</source>
         <translation>Alle Datensätze erhalten (einschließlich nicht zutreffender Zieldatensätzen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2664"/>
         <source>Target vector layer</source>
         <translation>Zielvektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
         <source>Join vector layer</source>
         <translation>Verknüpfter Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
         <source>Geometric predicate</source>
         <translation>Geometrische Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
         <source>Attribute summary</source>
         <translation>Attributzusammenfassung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
         <source>Statistics for summary (comma separated)</source>
         <translation>Statistik zur Zusammenfassung (kommasepariert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2670"/>
         <source>Joined table</source>
         <translation>Verknüpfte Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2671"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2658"/>
         <source>Join attributes by location</source>
         <translation>Attribute nach Position zusammenfügen</translation>
     </message>
@@ -85735,32 +85909,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitLinesWithLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2676"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2677"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
         <source>Split layer</source>
         <translation>Layer aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2679"/>
         <source>Splitted</source>
         <translation>Geteilt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2680"/>
         <source>Geometry exception while splitting</source>
         <translation>Geometrieausnahme während Aufteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2675"/>
         <source>Split lines with lines</source>
         <translation>Linien with Linien teilen</translation>
     </message>
@@ -85768,32 +85942,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitRGBBands</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2684"/>
         <source>Split RGB bands</source>
         <translation>RGB-Kanäle trennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2685"/>
         <source>Image tools</source>
         <translation>Bildwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2686"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
         <source>Output R band layer</source>
         <translation>R-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2688"/>
         <source>Output G band layer</source>
         <translation>G-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2689"/>
         <source>Output B band layer</source>
         <translation>B-Ausgabekanallayer</translation>
     </message>
@@ -85829,32 +86003,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>StatisticsByCategories</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2694"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2694"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
         <source>Field to calculate statistics on</source>
         <translation>Feld für Statistikberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2697"/>
         <source>Field with categories</source>
         <translation>Feld mit Kategorien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2698"/>
         <source>Statistics by category</source>
         <translation>Statistik nach Kategorie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2693"/>
         <source>Statistics by categories</source>
         <translation>Statistik nach Kategorien</translation>
     </message>
@@ -85862,37 +86036,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SumLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2701"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
         <source>Lines</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2705"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2706"/>
         <source>Lines length field name</source>
         <translation>Linienlängenfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2707"/>
         <source>Lines count field name</source>
         <translation>Linienzählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2708"/>
         <source>Line length</source>
         <translation>Linienlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2702"/>
         <source>Sum line lengths</source>
         <translation>Linienlängen summieren</translation>
     </message>
@@ -85993,38 +86167,38 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SymmetricalDifference</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2711"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2714"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2715"/>
         <source>Difference layer</source>
         <translation>Differenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2716"/>
         <source>Input layer has unsupported geometry type {}</source>
         <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2717"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2718"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2712"/>
         <source>Symmetrical difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
@@ -86032,222 +86206,222 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TAUDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
         <source>D-Infinity Avalanche Runout (multifile)</source>
         <translation>D-Unendlich Lawinenauslauf (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
         <source>Move Outlets To Streams</source>
         <translation>Abläufe zu Strömem verschieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="283"/>
         <source>D8 Flow Directions (multifile)</source>
         <translation>D8 Flußrichtungen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
         <source>Topographic Wetness Index</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
         <source>Move Outlets To Streams (multifile)</source>
         <translation>Abläufe zu Strömem verschieben (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
         <source>Stream Reach and Watershed</source>
         <translation>Flußausdehnung und Wasserscheiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
         <source>D-Infinity Reverse Accumulation</source>
         <translation>D-Unendlich umgekehrte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="297"/>
         <source>Slope Over Area Ratio</source>
         <translation>Gefälle-über-Flächenverhältnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
         <source>Select GT Threshold (multifile)</source>
         <translation>GT-Schwelle wählen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
         <source>D-Infinity Contributing Area (multifile)</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
         <source>D-Infinity Concentration Limited Accumulation (multifile)</source>
         <translation>D-Infinity konzentrationsbegrenzte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="303"/>
         <source>D8 Distance To Streams</source>
         <translation>D8 Abstand zu Strömen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="345"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
         <source>D-Infinity Decaying Accumulation</source>
         <translation>D-Unendlich abnehmende Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
         <source>D-Infinity Flow Directions (multifile)</source>
         <translation>D-Unendlich Flußrichtungen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="327"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
         <source>Select GT Threshold</source>
         <translation>GT-Schwelle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="287"/>
         <source>D8 Contributing Area</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
         <source>Stream Reach and Watershed (multifile)</source>
         <translation>Flußausdehnung und Wasserscheiden (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
         <source>Gage Watershed - 2 (multifile)</source>
         <translation>Einzugsgebiet messen - 2 (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="284"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
         <source>D-Infinity Concentration Limited Accumulation</source>
         <translation>D-Unendlich konzentrationsbegrenzte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
         <source>D-Infinity Flow Directions</source>
         <translation>D-Infinity Fließrichtungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="334"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
         <source>Gage Watershed - 2</source>
         <translation>Einzugsgebiet messen - 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
         <source>D-Infinity Contributing Area</source>
         <translation>D-Unendlich beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
         <source>Slope Over Area Ratio (multifile)</source>
         <translation>Gefälle-über-Flächenverhältnis (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="269"/>
         <source>D8 Extreme Upslope Value (multifile)</source>
         <translation>D8 Extremer Aufwärtswert (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
         <source>D-Infinity Reverse Accumulation (multifile)</source>
         <translation>D-Unendlich umgekehrte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
         <source>Pit Remove</source>
         <translation>Löcher entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="281"/>
         <source>Gage Watershed</source>
         <translation>Einzugsgebiet messen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="346"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="270"/>
         <source>Stream Definition By Threshold</source>
         <translation>Stromdefinition nach Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="275"/>
         <source>D8 Extreme Upslope Value</source>
         <translation>D8 Extremer Aufwärtswert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
         <source>Slope Average Down</source>
         <translation>Gemitteltes Gefälle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="338"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
         <source>D8 Contributing Area (multifile)</source>
         <translation>D8 beitragende Fläche (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="299"/>
         <source>D8 Distance To Streams (multifile)</source>
         <translation>D8 Abstand zu Strömen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
         <source>Gage Watershed (multifile)</source>
         <translation>Einzugsgebiet messen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
         <source>D-Infinity Avalanche Runout</source>
         <translation>D-Unendlich Lawinenauslauf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
         <source>Slope Average Down (multifile)</source>
         <translation>Gemitteltes Gefälle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
         <source>Pit Remove (multifile)</source>
         <translation>Löcher entfernen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="357"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="291"/>
         <source>D-Infinity Upslope Dependence (multifile)</source>
         <translation>D-Unendlich Auswärtsabhängigkeit (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
         <source>D-Infinity Upslope Dependence</source>
         <translation>D-Unendlich Aufwärtsabhängigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
         <source>Topographic Wetness Index (multifile)</source>
         <translation>Topographischer Niederschlagsindex (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
         <source>Stream Definition By Threshold (multifile)</source>
         <translation>Stromdefinition nach Schwelle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
         <source>D8 Flow Directions</source>
         <translation>D8 Flußrichtungen</translation>
     </message>
@@ -86255,14 +86429,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2722"/>
         <source>Could not load TauDEM algorithm: %s
 %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2723"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -86270,47 +86444,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2728"/>
         <source>TauDEM command line tools folder</source>
         <translation>Verzeichnis der TauDEM-Kommandozeilenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2732"/>
         <source>MPICH2/OpenMPI bin directory</source>
         <translation>MPICH2/OpenMPI-Programmverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2733"/>
         <source>Number of MPI parallel processes to use</source>
         <translation>Anzahl zu verwendender paralleler MPI-Prozesse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2734"/>
         <source>Could not open TauDEM algorithm: %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2727"/>
         <source>TauDEM (hydrologic analysis)</source>
         <translation>TauDEM (hydrologische Analyse)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2729"/>
         <source>TauDEM multifile command line tools folder</source>
         <translation>TauDEM-Mehrdateibefehlszeilenwerkzeugverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
         <source>Enable singlefile TauDEM tools</source>
         <translation>TauDEM-Einzeldateibefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
         <source>Enable multifile TauDEM tools</source>
         <translation>TauDEM-Mehrdateienbefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2735"/>
         <source>Could not open TauDEM algorithm %s:
 %s</source>
         <translation>Konnte TauDEM-Algorithmus %s nicht öffnen:
@@ -86320,14 +86494,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMMultifileAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2739"/>
         <source>Could not load TauDEM algorithm: %s
 %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2740"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -86335,12 +86509,12 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2744"/>
         <source>TauDEM execution console output</source>
         <translation>Konsolenausgabe der TauDEM-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2745"/>
         <source>TauDEM command:</source>
         <translation>TauDEM-Befehl:</translation>
     </message>
@@ -86348,27 +86522,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TextToFloat</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2750"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2751"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2752"/>
         <source>Text attribute to convert to float</source>
         <translation>In Fließkomma umzuwandelndes Textattribut </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2753"/>
         <source>Float from text</source>
         <translation>Fließkomma aus Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2749"/>
         <source>Text to float</source>
         <translation>Text zu Fließkomma</translation>
     </message>
@@ -86376,47 +86550,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TinSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
         <source>Tin Surface Create</source>
         <translation>TIN-Oberflächenerzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2759"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2760"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2761"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2763"/>
         <source>.dtm output surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2765"/>
         <source>Select specific return</source>
         <translation>Bestimmtes Ergebnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2764"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
@@ -86438,7 +86612,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TreeProviderItem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2769"/>
         <source> [{0} geoalgorithms]</source>
         <translation> [{0} Geo-Algorithmen]</translation>
     </message>
@@ -86446,38 +86620,38 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Union</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2774"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2775"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2776"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2777"/>
         <source>Input layer has unsupported geometry type {}</source>
         <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2778"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2779"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2773"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
@@ -86485,42 +86659,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>UniqueValues</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2785"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2786"/>
         <source>Target field</source>
         <translation>Zielfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2787"/>
         <source>Unique values</source>
         <translation>Eindeutige Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2788"/>
         <source>Total unique values</source>
         <translation>Gesamtzahl eindeutiger Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2789"/>
         <source><p>Total unique values: </source>
         <translation><p>Gesamte eindeutige Werte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2790"/>
         <source><p>Unique values:</p></source>
         <translation><p>Eindeutige Werte:</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
         <source>List unique values</source>
         <translation>Eindeutige Werte auflisten</translation>
     </message>
@@ -86528,12 +86702,12 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>UserExpressions</name>
     <message>
-        <location filename="../python/python-i18n.cpp" line="283"/>
+        <location filename="../python/python-i18n.cpp" line="284"/>
         <source>User expressions</source>
         <translation>Benutzerausdrücke</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="284"/>
+        <location filename="../python/python-i18n.cpp" line="285"/>
         <source>The user expression {0} is not valid</source>
         <translation>Benutzerausdruck {0} ist ungültig</translation>
     </message>
@@ -86615,37 +86789,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VariableDistanceBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2795"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2796"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2797"/>
         <source>Distance field</source>
         <translation>Distanzfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2798"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2799"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2800"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2794"/>
         <source>Variable distance buffer</source>
         <translation>Puffer variabler Distanz</translation>
     </message>
@@ -86666,47 +86840,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorGrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2805"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
         <source>Output grid as polygons</source>
         <translation>Gitter als Polygone ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
         <source>Output grid as lines</source>
         <translation>Gitter als Linien ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2808"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2809"/>
         <source>X spacing</source>
         <translation>X-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2810"/>
         <source>Y spacing</source>
         <translation>Y-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2811"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2812"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2804"/>
         <source>Vector grid</source>
         <translation>Vektorraster</translation>
     </message>
@@ -86714,42 +86888,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
         <source>Vector layer bounds</source>
         <translation>Vektorlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2817"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2818"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2819"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2820"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2821"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2822"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2823"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -86757,32 +86931,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2828"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2829"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2830"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2831"/>
         <source>number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2832"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2827"/>
         <source>Vector layer histogram</source>
         <translation>Vektorlayerhistogramm</translation>
     </message>
@@ -86790,32 +86964,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerScatterplot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2837"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2838"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2839"/>
         <source>X attribute</source>
         <translation>X-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2840"/>
         <source>Y attribute</source>
         <translation>Y-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2841"/>
         <source>Scatterplot</source>
         <translation>Streudiagramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2836"/>
         <source>Vector layer scatterplot</source>
         <translation>Vektorlayerstreuungsplott</translation>
     </message>
@@ -86823,27 +86997,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorSplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2846"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2847"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2848"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2849"/>
         <source>Output directory</source>
         <translation>Ausgabeverzeichniss</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
         <source>Split vector layer</source>
         <translation>Vektorlayer teilen</translation>
     </message>
@@ -86919,27 +87093,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VoronoiPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2855"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2856"/>
         <source>Buffer region</source>
         <translation>Region puffern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2851"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2853"/>
         <source>Voronoi polygons</source>
         <translation>Voronoipolygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2854"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2857"/>
         <source>Input file should contain at least 3 points. Choose another file and try again.</source>
         <translation>Eingabedatei sollte mindestens 3 Punkte enthalten. Eine andere Datei wählen und nochmal versuchen.</translation>
     </message>
@@ -88366,42 +88540,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ZonalStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2863"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2864"/>
         <source>Raster band</source>
         <translation>Rasterkanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2865"/>
         <source>Vector layer containing zones</source>
         <translation>Zonenvektorlayer </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2866"/>
         <source>Output column prefix</source>
         <translation>Ausgabespaltenpräfix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2867"/>
         <source>Load whole raster in memory</source>
         <translation>Ganzes Raster in Speicher laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2868"/>
         <source>Zonal statistics</source>
         <translation>Zonenstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
         <source>Zonal Statistics</source>
         <translation>Räumliche Statistik</translation>
     </message>
@@ -88422,12 +88596,12 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>alg</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2873"/>
         <source>You need to set at least source/sink_where or source/sink_cats parameters for each set!</source>
         <translation>Es muß zumindest der source/sink_where oder source/sink_cats Parameter für jeden Satz gesetzt sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2874"/>
         <source>You need to set at least setX_where or setX_cats parameters for each set!</source>
         <translation>Es muß zumindest die setX_where oder setX_cats  Parameter für jeden Satz gesetzt sein!</translation>
     </message>
@@ -88440,42 +88614,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>aspect</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2879"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2880"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2882"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2883"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2884"/>
         <source>Return trigonometric angle (instead of azimuth)</source>
         <translation>Trigonometrischen Winkel (statt Azimut) zurückgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2885"/>
         <source>Return 0 for flat (instead of -9999)</source>
         <translation>0 (statt -9999) für Ebene zurückgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2878"/>
         <source>Aspect</source>
         <translation>Perspektive</translation>
     </message>
@@ -88483,27 +88657,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2889"/>
         <source>blast2dem</source>
         <translation>blast2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2890"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2891"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2892"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2893"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -88511,27 +88685,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2897"/>
         <source>blast2demPro</source>
         <translation>blast2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2898"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2899"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2900"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2901"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -88539,37 +88713,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
         <source>blast2iso</source>
         <translation>blast2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2904"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2907"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2908"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2909"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Iso-Linien bereinigen, wenn kürzer als (0 = keine Bereinigung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2910"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2911"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -88577,37 +88751,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2isoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
         <source>blast2isoPro</source>
         <translation>blast2isoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2917"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2918"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2919"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Iso-Linien vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2920"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2921"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -88615,37 +88789,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>buildvrt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2926"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2926"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2928"/>
         <source>Resolution</source>
         <translation>Auflösung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2929"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2930"/>
         <source>Allow projection difference</source>
         <translation>Unterschiedliche Projektionen zulassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2931"/>
         <source>Virtual</source>
         <translation>Virtuell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2925"/>
         <source>Build Virtual Raster</source>
         <translation>Virtuelles Raster generieren</translation>
     </message>
@@ -89297,8 +89471,7 @@ Für eine einfache Suche nach Attribute einer Spalte kann das <label>Suche
 </a>
 Der Knopf <label>Feldrechner</label> in der Attributtabelle ermöglicht Berechnungen auf mit vorhandenen Attributwerten oder definierten Funktionen.  Z.B.  kann die Länge oder Fläche von Geometrieobjekten berechnet werden.<br/>
 Die Ergebnisse können in eine neue Attributspalte geschrieben oder eine vorhandene Spalte damit überschrieben werden.<br/>
-Um den Feldrechner zu öffnen, müssen Sie den Vektorlayer zuvor in den Bearbeitungsmodus versetzen.
-</translation>
+Um den Feldrechner zu öffnen, müssen Sie den Vektorlayer zuvor in den Bearbeitungsmodus versetzen.</br></translation>
     </message>
     <message>
         <location filename="../src/core/qgscontexthelp_texts.cpp" line="287"/>
@@ -91761,37 +91934,37 @@ Durch Klick auf <label>Berechnen</label> wird der kürzeste Weg mit
 <context>
     <name>contour</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2935"/>
         <source>Contour</source>
         <translation>Kontur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2936"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2937"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2938"/>
         <source>Interval between contour lines</source>
         <translation>Intervall zwischen Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2939"/>
         <source>Attribute name (if not set, no elevation attribute is attached)</source>
         <translation>Attributname (wenn nicht angegeben, wird kein Höhenattribut zugefügt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2940"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2941"/>
         <source>Contours</source>
         <translation>Konturen</translation>
     </message>
@@ -92663,17 +92836,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>expressions</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2738"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2743"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2740"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2745"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2742"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2747"/>
         <source>Plugin</source>
         <translation>Plugin</translation>
     </message>
@@ -92946,47 +93119,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>fillnodata</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2946"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
         <source>Search distance</source>
         <translation>Suchdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2949"/>
         <source>Smooth iterations</source>
         <translation>Glättungsiterationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2950"/>
         <source>Band to operate on</source>
         <translation>Zu bearbeitender Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2951"/>
         <source>Validity mask</source>
         <translation>Gültigkeitsmaske</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2952"/>
         <source>Do not use default validity mask</source>
         <translation>Voreingestellte Gültigkeitsmaske nicht verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2953"/>
         <source>Filled</source>
         <translation>Gefüllt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2945"/>
         <source>Fill nodata</source>
         <translation>"Leerwert" füllen</translation>
     </message>
@@ -92994,37 +93167,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToCHM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2955"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
         <source>flightlinesToCHM</source>
         <translation>flightlinesToCHM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2958"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2959"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2960"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2961"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2962"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2963"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -93032,32 +93205,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToDTMandDSM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2967"/>
         <source>flightlinesToDTMandDSM</source>
         <translation>flightlinesToDTMandDSM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2968"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2969"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2970"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2971"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2972"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -93065,32 +93238,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToSingleCHMpitFree</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2976"/>
         <source>flightlinesToSingleCHMpitFree</source>
         <translation>flightlinesToSingleCHMpitFree</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2978"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2979"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2980"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2981"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
@@ -93098,92 +93271,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdal2tiles</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2985"/>
         <source>gdal2tiles</source>
         <translation>gdal2tiles</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2986"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2987"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
         <source>Tile cutting profile</source>
         <translation>Kachelschneideprofil</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
         <source>The spatial reference system used for the source input data</source>
         <translation>Das räumliche Bezugssystem der Eingabedaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2991"/>
         <source>Zoom levels to render</source>
         <translation>Darzustellende Zoomstufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
         <source>Resume mode, generate only missing files</source>
         <translation>Wiederaufnahmemodus, nur fehlende Dateien erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
         <source>NODATA transparency value to assign to the input data</source>
         <translation>Den Eingabedaten zuzuweisender Leer-Transparenzwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
         <source>Generate KML for Google Earth - default for "geodetic" profile and "raster" in EPSG:4326</source>
         <translation>KML für Google-Earth erzeugen - voreingestellt auf "geodätisches" Profil und "Raster" in EPSG:4326</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
         <source>Avoid automatic generation of KML files for EPSG:4326</source>
         <translation>Automatische Erzeugung von KML-Dateien für EPSG:4326 vermeiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
         <source>URL address where the generated tiles are going to be published</source>
         <translation>URL unter der die generierten Kacheln veröffentlich werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
         <source>Web viewer to generate</source>
         <translation>Zu erzeugende Webanzeige</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
         <source>Title of the map</source>
         <translation>Kartentitel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2999"/>
         <source>Copyright for the map</source>
         <translation>Urheberrecht der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3000"/>
         <source>Google Maps API key from http://code.google.com/apis/maps/signup.html</source>
         <translation>Google-Maps-API-Schlüssel von http://code.google.com/apis/maps/signup.html</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3001"/>
         <source>Bing Maps API key from https://www.bingmapsportal.com/</source>
         <translation>Bing-Maps-API-Schlüssel von https://www.bingmapsportal.com/</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3000"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3002"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -93191,27 +93364,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdal2xyz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3007"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3008"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3009"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3010"/>
         <source>xyz</source>
         <translation>xyz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3004"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
         <source>gdal2xyz</source>
         <translation>gdal2xyz</translation>
     </message>
@@ -93219,42 +93392,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdaladdo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3013"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3015"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3017"/>
         <source>Overview levels</source>
         <translation>Übersichtsebenen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3018"/>
         <source>Remove all existing overviews</source>
         <translation>Alle Übersichten entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3019"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3020"/>
         <source>Overview format</source>
         <translation>Übersichtsformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3019"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3021"/>
         <source>Pyramidized</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3012"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3014"/>
         <source>Build overviews (pyramids)</source>
         <translation>Übersichten erzeugen (Pyramiden)</translation>
     </message>
@@ -93262,97 +93435,97 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdalcalc</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
         <source>Input layer A</source>
         <translation>Eingabelayer A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3028"/>
         <source>Number of raster band for raster A</source>
         <translation>Kanalnummer für Raster A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3029"/>
         <source>Input layer B</source>
         <translation>Eingabelayer B</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3030"/>
         <source>Number of raster band for raster B</source>
         <translation>Kanalnummer für Raster B</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3031"/>
         <source>Input layer C</source>
         <translation>Eingabelayer C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3030"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3032"/>
         <source>Number of raster band for raster C</source>
         <translation>Kanalnummer für Raster C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3033"/>
         <source>Input layer D</source>
         <translation>Eingabelayer D</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3032"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
         <source>Number of raster band for raster D</source>
         <translation>Kanalnummer für Raster D</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
         <source>Input layer E</source>
         <translation>Eingabelayer E</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3036"/>
         <source>Number of raster band for raster E</source>
         <translation>Kanalnummer für Raster E</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3037"/>
         <source>Input layer F</source>
         <translation>Eingabelayer F</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3038"/>
         <source>Number of raster band for raster F</source>
         <translation>Kanalnummer für Raster F</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3039"/>
         <source>Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())</source>
         <translation>Berechnung in Syntax von gdalnumeric mit +-/* oder anderen Numpy-Feldfunktionen (z.B. logical_end()) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3040"/>
         <source>Set output nodata value</source>
         <translation>Ausgabeleerwert festlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3039"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3041"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3040"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3042"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3041"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3043"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3025"/>
         <source>Raster calculator</source>
         <translation>Rasterrechner</translation>
     </message>
@@ -93360,32 +93533,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdaltindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3048"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3049"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3050"/>
         <source>Tile index field</source>
         <translation>Kachelindexfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3051"/>
         <source>Skip files with different projection reference</source>
         <translation>Dateien mit anderer Projektion überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3052"/>
         <source>Tile index</source>
         <translation>Kachelindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3047"/>
         <source>Tile Index</source>
         <translation>Kachelindex</translation>
     </message>
@@ -96004,52 +96177,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hillshade</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3057"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3058"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3059"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3060"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3061"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3062"/>
         <source>Z factor (vertical exaggeration)</source>
         <translation>Z-Faktor (Vertikale Überhöhung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3063"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3064"/>
         <source>Azimuth of the light</source>
         <translation>Azimut des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3065"/>
         <source>Altitude of the light</source>
         <translation>Höhe des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3056"/>
         <source>Hillshade</source>
         <translation>Schummerung</translation>
     </message>
@@ -96057,37 +96230,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3069"/>
         <source>hugeFileClassify</source>
         <translation>hugeFileClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3068"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3070"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3071"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3072"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3073"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3074"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3075"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96095,37 +96268,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileGroundClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3077"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3079"/>
         <source>hugeFileGroundClassify</source>
         <translation>hugeFileGroundClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3080"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3081"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3082"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3083"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3084"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3085"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96133,37 +96306,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileNormalize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
         <source>hugeFileNormalize</source>
         <translation>hugeFileNormalize</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3088"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3090"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3091"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3092"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3091"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3093"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3092"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3094"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3095"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96171,32 +96344,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>information</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3098"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3101"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3102"/>
         <source>Suppress GCP info</source>
         <translation>Paßpunktinformation unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3103"/>
         <source>Suppress metadata info</source>
         <translation>Metadateninfo unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3104"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -96204,27 +96377,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3108"/>
         <source>las2dem</source>
         <translation>las2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3109"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3110"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3111"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3110"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3112"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96232,27 +96405,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3116"/>
         <source>las2demPro</source>
         <translation>las2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3117"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3118"/>
         <source>attribute (what to interpolate)</source>
         <translation>Attribute (zu Interpolieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3119"/>
         <source>product (how to output per pixel)</source>
         <translation>Produkt (Pixelausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3120"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96260,37 +96433,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3122"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3124"/>
         <source>las2iso</source>
         <translation>las2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3125"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3126"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3127"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3128"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3129"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3130"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -96298,12 +96471,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3134"/>
         <source>las2lasPro_filter</source>
         <translation>las2lasPro_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3135"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -96311,42 +96484,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3139"/>
         <source>las2lasPro_project</source>
         <translation>las2lasPro_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3140"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3141"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3142"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3143"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3144"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3145"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3146"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -96354,22 +96527,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3148"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3150"/>
         <source>las2lasPro_transform</source>
         <translation>las2lasPro_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3149"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3151"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3152"/>
         <source>operations (first 8 need an argument)</source>
         <translation>Operationen (die ersten 8 brauchen ein Argument)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3153"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -96377,12 +96550,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3157"/>
         <source>las2las_filter</source>
         <translation>las2las_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3158"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96390,42 +96563,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3160"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
         <source>las2las_project</source>
         <translation>las2las_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3164"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3165"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3166"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3167"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3168"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3169"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -96433,22 +96606,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3173"/>
         <source>las2las_transform</source>
         <translation>las2las_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3174"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3175"/>
         <source>operations (first 8 need an argument)</source>
         <translation>Operationen (die ersten 8 brauchen ein Argument)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3176"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -96456,27 +96629,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2shp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
         <source>las2shp</source>
         <translation>las2shp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3181"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3182"/>
         <source>use PointZ instead of MultiPointZ</source>
         <translation>PointZ statt MultiPointZ nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3183"/>
         <source>number of points per record</source>
         <translation>Anzahl der Punkte je Datensatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3184"/>
         <source>Output SHP file</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
@@ -96484,12 +96657,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2tin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3188"/>
         <source>las2tin</source>
         <translation>las2tin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3189"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96497,22 +96670,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2txt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3191"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3193"/>
         <source>las2txt</source>
         <translation>las2txt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3192"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3194"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3195"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3196"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -96520,17 +96693,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2txtPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3200"/>
         <source>las2txtPro</source>
         <translation>las2txtPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3201"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3202"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
@@ -96538,32 +96711,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasboundary</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
         <source>lasboundary</source>
         <translation>lasboundary</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3208"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3209"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3210"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3211"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -96571,32 +96744,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasboundaryPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3215"/>
         <source>lasboundaryPro</source>
         <translation>lasboundaryPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3217"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3218"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3219"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3220"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -96604,47 +96777,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascanopy</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3224"/>
         <source>lascanopy</source>
         <translation>lascanopy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3225"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
         <source>square plot size</source>
         <translation>Quadratische Plottgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3228"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3229"/>
         <source>count rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Rasteranzahl (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3230"/>
         <source>density rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Dichteraster (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3229"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3231"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3230"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3232"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist ein einzelner Plott</translation>
     </message>
@@ -96652,47 +96825,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascanopyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
         <source>lascanopyPro</source>
         <translation>lascanopyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3238"/>
         <source>square plot size</source>
         <translation>Quadratische Plattgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3239"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3240"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3241"/>
         <source>count rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Rasteranzahl (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3242"/>
         <source>density rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Dichteraster (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3243"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3244"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist einzelner Plott</translation>
     </message>
@@ -96700,12 +96873,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3248"/>
         <source>lasclassify</source>
         <translation>lasclassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3249"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96713,12 +96886,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclassifyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3253"/>
         <source>lasclassifyPro</source>
         <translation>lasclassifyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3254"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -96726,32 +96899,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3258"/>
         <source>lasclip</source>
         <translation>lasclip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3259"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3260"/>
         <source>Input polygon(s)</source>
         <translation>Eingabepolygon(e)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3261"/>
         <source>interior</source>
         <translation>Innenbereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3262"/>
         <source>what to do with points</source>
         <translation>Was mit Punkten zu tun ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3263"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -96759,17 +96932,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascolor</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3267"/>
         <source>lascolor</source>
         <translation>lascolor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3268"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3269"/>
         <source>Input ortho</source>
         <translation>Eingabe Ortho</translation>
     </message>
@@ -96777,32 +96950,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascontrol</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3273"/>
         <source>lascontrol</source>
         <translation>lascontrol</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3274"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3275"/>
         <source>Input polygon(s)</source>
         <translation>Eingabepolygon(e)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3276"/>
         <source>interior</source>
         <translation>Innenbereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3277"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3278"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -96810,32 +96983,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasduplicate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
         <source>lasduplicate</source>
         <translation>lasduplicate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3284"/>
         <source>keep duplicate with lowest z coordinate</source>
         <translation>Duplikat mit niedrigster Z-Koordinate halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3285"/>
         <source>only remove duplicates in x y and z</source>
         <translation>entferne nur Duplikate in x y und z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3286"/>
         <source>mark surviving duplicate as single return</source>
         <translation>Markiere überlebendes Duplikat als Single Return</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3287"/>
         <source>record removed duplicates to LAS/LAZ file</source>
         <translation>Speichere entfernte Duplikate in die LAS/LAZ Datei</translation>
     </message>
@@ -96843,32 +97016,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasduplicatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3291"/>
         <source>lasduplicatePro</source>
         <translation>lasduplicatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3292"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3293"/>
         <source>keep duplicate with lowest z coordinate</source>
         <translation>Duplikat mit niedrigster Z-Koordinate halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3294"/>
         <source>only remove duplicates in x y and z</source>
         <translation>entferne nur Duplikate in x y und z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3295"/>
         <source>mark surviving duplicate as single return</source>
         <translation>Markiere überlebendes Duplikat als Single Return</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3296"/>
         <source>record removed duplicates</source>
         <translation>Gelöschte Duplikate aufzeichnen</translation>
     </message>
@@ -96876,27 +97049,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
         <source>lasgrid</source>
         <translation>lasgrid</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3301"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3302"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3303"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3304"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96904,27 +97077,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgridPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3308"/>
         <source>lasgridPro</source>
         <translation>lasgridPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3309"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3310"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3311"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3312"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96932,27 +97105,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasground</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3316"/>
         <source>lasground</source>
         <translation>lasground</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3317"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3318"/>
         <source>no triangle bulging during TIN refinement</source>
         <translation>keine Dreieckswölbung während TIN Verfeinerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3319"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3320"/>
         <source>preprocessing</source>
         <translation>Vorbereitung</translation>
     </message>
@@ -96960,27 +97133,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgroundPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3324"/>
         <source>lasgroundPro</source>
         <translation>lasgroundPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3325"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3326"/>
         <source>no triangle bulging during TIN refinement</source>
         <translation>keine Dreieckswölbung während TIN Verfeinerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3327"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3328"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96988,37 +97161,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasheight</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3332"/>
         <source>lasheight</source>
         <translation>lasheight</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3333"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3334"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3335"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3336"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3337"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3338"/>
         <source>drop below height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
@@ -97026,37 +97199,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasheightPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3342"/>
         <source>lasheightPro</source>
         <translation>lasheightPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3345"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3346"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3347"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3348"/>
         <source>drop below height</source>
         <translation>ausscheiden unter Höhe</translation>
     </message>
@@ -97064,22 +97237,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3352"/>
         <source>lasindex</source>
         <translation>lasindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3351"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3353"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3354"/>
         <source>append *.lax file to *.laz file</source>
         <translation>LAX-Datei an LAZ-Datei anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3355"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -97087,22 +97260,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasindexPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3359"/>
         <source>lasindexPro</source>
         <translation>lasindexPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3360"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3361"/>
         <source>append *.lax file to *.laz file</source>
         <translation>LAX-Datei an LAZ-Datei anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3362"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -97110,42 +97283,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasinfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
         <source>lasinfo</source>
         <translation>lasinfo</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3367"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3368"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3369"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3370"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3371"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3372"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3373"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -97153,37 +97326,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasinfoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3377"/>
         <source>lasinfoPro</source>
         <translation>lasinfoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3379"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3380"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3381"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3382"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3383"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
@@ -97191,42 +97364,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasmerge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3387"/>
         <source>lasmerge</source>
         <translation>lasmerge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3388"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3389"/>
         <source>2nd file</source>
         <translation>2. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
         <source>3rd file</source>
         <translation>3. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3391"/>
         <source>4th file</source>
         <translation>4. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3392"/>
         <source>5th file</source>
         <translation>5. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3393"/>
         <source>6th file</source>
         <translation>6. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3394"/>
         <source>7th file</source>
         <translation>7. Datei</translation>
     </message>
@@ -97234,12 +97407,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasmergePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3398"/>
         <source>lasmergePro</source>
         <translation>lasmergePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3399"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -97247,37 +97420,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasnoise</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3403"/>
         <source>lasnoise</source>
         <translation>lasnoise</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
         <source>isolated if surrounding cells have only</source>
         <translation>isoliert wenn umgebende Zellen haben nur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3406"/>
         <source>resolution of isolation grid in xy</source>
         <translation>Auflösung des Isolationsgitters in xy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3407"/>
         <source>resolution of isolation grid in z</source>
         <translation>Auflösung des Isolationsgitters in z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3408"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3409"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -97285,37 +97458,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasnoisePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3413"/>
         <source>lasnoisePro</source>
         <translation>lasnoisePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3414"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
         <source>isolated if surrounding cells have only</source>
         <translation>isoliert wenn umgebende Zellen haben nur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3416"/>
         <source>resolution of isolation grid in xy</source>
         <translation>Auflösung des Isolationsgitters in xy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3417"/>
         <source>resolution of isolation grid in z</source>
         <translation>Auflösung des Isolationsgitters in z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3418"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3417"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3419"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -97323,22 +97496,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3423"/>
         <source>lasoverage</source>
         <translation>lasoverage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3424"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3425"/>
         <source>size of grid used for scan angle check</source>
         <translation>Größe des Gitters zur Scanwinkel Überprüfung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3424"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3426"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -97346,22 +97519,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoveragePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3430"/>
         <source>lasoveragePro</source>
         <translation>lasoveragePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3431"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3432"/>
         <source>size of grid used for scan angle check</source>
         <translation>Größe des Gitters zur Scanwinkel Überprüfung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3433"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -97369,37 +97542,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverlap</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
         <source>lasoverlap</source>
         <translation>lasoverlap</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3436"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3438"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3439"/>
         <source>size of grid used for overlap check</source>
         <translation>Größe des Rasters das für Überlappungstest benutzt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3440"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3441"/>
         <source>operation on attribute per cell</source>
         <translation>Operation auf Attribut per Zelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3442"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3443"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -97407,37 +97580,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverlapPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3447"/>
         <source>lasoverlapPro</source>
         <translation>lasoverlapPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3448"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3449"/>
         <source>size of grid used for overlap check</source>
         <translation>Größe des Rasters welches für Überlappungstest benutzt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3450"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3451"/>
         <source>operation on attribute per cell</source>
         <translation>Operation auf Attribut per Zelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3452"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3453"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -97445,17 +97618,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasprecision</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3457"/>
         <source>lasprecision</source>
         <translation>lasprecision</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3458"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3459"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -97463,17 +97636,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasquery</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3461"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3463"/>
         <source>lasquery</source>
         <translation>lasquery</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3464"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3465"/>
         <source>area of interest</source>
         <translation>Interessensgebiet</translation>
     </message>
@@ -97481,22 +97654,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassort</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3469"/>
         <source>lassort</source>
         <translation>lassort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3470"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3471"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3472"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -97504,22 +97677,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassortPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3476"/>
         <source>lassortPro</source>
         <translation>lassortPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3477"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3478"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3479"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -97527,27 +97700,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
         <source>lassplit</source>
         <translation>lassplit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3484"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3485"/>
         <source>number of digits for file names</source>
         <translation>Anzahl der Stellen für Dateinamen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3486"/>
         <source>how to split</source>
         <translation>Wie zu teilen ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3487"/>
         <source>interval or number</source>
         <translation>Interval oder Nummer</translation>
     </message>
@@ -97555,37 +97728,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasthin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
         <source>lasthin</source>
         <translation>lasthin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3492"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3493"/>
         <source>size of grid used for thinning</source>
         <translation>Größe des Gitters zum Ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3494"/>
         <source>keep particular point per cell</source>
         <translation>Bestimmten Punkt je Zelle halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3495"/>
         <source>mark thinned-away points as withheld</source>
         <translation>Ausgedünnte Punkte als unterdrückt kennzeichnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3496"/>
         <source>classify surviving points as class</source>
         <translation>Verbleibende Punkte als Klasse ansehen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3497"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -97593,37 +97766,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasthinPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3501"/>
         <source>lasthinPro</source>
         <translation>lasthinPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
         <source>size of grid used for thinning</source>
         <translation>Gittergröße zum Ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3504"/>
         <source>keep particular point per cell</source>
         <translation>Bestimmten Punkt je Zelle halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3505"/>
         <source>mark thinned-away points as withheld</source>
         <translation>Ausgedünnten Punkt als unterdrückt kennzeichnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3506"/>
         <source>classify surviving points as class</source>
         <translation>Verbleibende Punkt als Klasse ansehen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3507"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -97631,27 +97804,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lastile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3511"/>
         <source>lastile</source>
         <translation>lastile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3512"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3513"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3514"/>
         <source>buffer around each tile</source>
         <translation>Puffer um einzelne Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3515"/>
         <source>make tiling reversible (advanced, usually not needed)</source>
         <translation>Kachelung umkehrbar machen (fortgeschritten, normalerweise nicht nötig)</translation>
     </message>
@@ -97659,32 +97832,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lastilePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3519"/>
         <source>lastilePro</source>
         <translation>lastilePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3520"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3521"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3522"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3523"/>
         <source>more than 2000 tiles</source>
         <translation>mehr als 2000 Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3524"/>
         <source>tile base name (using sydney.laz creates sydney_274000_4714000.laz)</source>
         <translation>Kachelbasisname ('sydney.laz' erzeugt sydney_274000_4714000.laz)</translation>
     </message>
@@ -97692,22 +97865,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasvalidate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3528"/>
         <source>lasvalidate</source>
         <translation>lasvalidate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3527"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3529"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3530"/>
         <source>save report to '*_LVS.xml'</source>
         <translation>Speichert Report unter '*_LVS.xml'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3531"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -97715,22 +97888,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasvalidatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3535"/>
         <source>lasvalidatePro</source>
         <translation>lasvalidatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3536"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3537"/>
         <source>generate one '*_LVS.xml' report per file</source>
         <translation>erzeugt einen '*_LVS.xml' Report pro Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3538"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -97738,27 +97911,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasview</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
         <source>lasview</source>
         <translation>lasview</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3543"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3544"/>
         <source>max number of points sampled</source>
         <translation>max. Anzahl von erzeugten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3545"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3546"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -97766,27 +97939,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasviewPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
         <source>lasviewPro</source>
         <translation>lasviewPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3551"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3552"/>
         <source>max number of points sampled</source>
         <translation>max. Anzahl von erzeugten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3553"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3554"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -97794,27 +97967,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>laszip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
         <source>laszip</source>
         <translation>laszip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3559"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3560"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3561"/>
         <source>create spatial indexing file (*.lax)</source>
         <translation>Räumlichen Index erzeugen (*.lax)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3562"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -97822,27 +97995,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>laszipPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3566"/>
         <source>laszipPro</source>
         <translation>laszipPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3567"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3568"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3569"/>
         <source>create spatial indexing file (*.lax)</source>
         <translation>Räumlichen Index erzeugen (*.lax)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3570"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -97850,37 +98023,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3574"/>
         <source>Merge</source>
         <translation>Verschmelzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3577"/>
         <source>Grab pseudocolor table from first layer</source>
         <translation>Pseudofarbtabelle aus erstem Bild entnehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3578"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3579"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3580"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
@@ -97888,32 +98061,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nearblack</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3586"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3587"/>
         <source>How far from black (white)</source>
         <translation>Entfernung von Schwarz (oder Weiß)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3588"/>
         <source>Search for nearly white pixels instead of nearly black</source>
         <translation>Suche nach fast weißen statt schwarzen Pixeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3589"/>
         <source>Nearblack</source>
         <translation>Fast Schwarz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3584"/>
         <source>Near black</source>
         <translation>Fast schwarz</translation>
     </message>
@@ -97921,37 +98094,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nviz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3594"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3595"/>
         <source>Raster file(s) for elevation</source>
         <translation>Rasterdatei(en) für Höhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3596"/>
         <source>Vector lines/areas overlay file(s)</source>
         <translation>Vektorlinien-/-flächenüberlagerungsdatei(en)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3597"/>
         <source>Raster file(s) for color</source>
         <translation>Rasterdatei(en) für Farbe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3598"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3599"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3593"/>
         <source>nviz</source>
         <translation>nviz</translation>
     </message>
@@ -97959,37 +98132,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nviz7</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3603"/>
         <source>nviz7</source>
         <translation>nviz7</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3604"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3603"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3605"/>
         <source>Raster file(s) for elevation</source>
         <translation>Rasterdatei(en) für Höhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3606"/>
         <source>Vector lines/areas overlay file(s)</source>
         <translation>Vektorlinien-/-flächenüberlagerungsdatei(en)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3605"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3607"/>
         <source>Raster file(s) for color</source>
         <translation>Rasterdatei(en) für Farbe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3608"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3609"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
@@ -97997,22 +98170,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>optionsDialog</name>
     <message>
-        <location filename="../python/python-i18n.cpp" line="288"/>
+        <location filename="../python/python-i18n.cpp" line="289"/>
         <source>Warning!</source>
         <translation>Warnung!</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="289"/>
+        <location filename="../python/python-i18n.cpp" line="290"/>
         <source>You need to add some APIs file in order to compile</source>
         <translation>Einige API-Dateien müssen zum Kompilieren hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="290"/>
+        <location filename="../python/python-i18n.cpp" line="291"/>
         <source>Please specify API file or check "Use preloaded API files"</source>
         <translation>Bitte eine API-Datei angeben oder "API-Dateien vorladen" wählen</translation>
     </message>
     <message>
-        <location filename="../python/python-i18n.cpp" line="291"/>
+        <location filename="../python/python-i18n.cpp" line="292"/>
         <source>The APIs file was not compiled, click on "Compile APIs..."</source>
         <translation>Die API-Datei wurde nicht kompiliert, klicken Sie auf "APIs kompilieren..."</translation>
     </message>
@@ -98043,22 +98216,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>pct2rgb</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3614"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3615"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3616"/>
         <source>Band to convert</source>
         <translation>Umzuwandelnder Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3613"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
@@ -98066,27 +98239,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3620"/>
         <source>Polygonize (raster to vector)</source>
         <translation>Vektorisieren (Raster nach Vektor)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3621"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3622"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3623"/>
         <source>Output field name</source>
         <translation>Ausgabefeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3624"/>
         <source>Vectorized</source>
         <translation>Vektorisiert</translation>
     </message>
@@ -98094,52 +98267,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>proximity</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3630"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3631"/>
         <source>Values</source>
         <translation>Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3632"/>
         <source>Distance units</source>
         <translation>Distanzeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3633"/>
         <source>Max distance (negative value to ignore)</source>
         <translation>Maximalabstand (negative Werte werden ignoriert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3634"/>
         <source>Nodata (negative value to ignore)</source>
         <translation>Leerwert (zu ignorierender negativer Wert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3635"/>
         <source>Fixed buf value (negative value to ignore)</source>
         <translation>Fester Pufferwert (negativer Werte werden ignoriert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3636"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3637"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
         <source>Proximity (raster distance)</source>
         <translation>Nähe (Rasterabstand)</translation>
     </message>
@@ -98147,92 +98320,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rasterize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3642"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3643"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3644"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
         <source>Set output raster size (ignored if above option is checked)</source>
         <translation>Ausgabelayergröße setzen (wird ignoriert, wenn Option oben gewählt ist)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3647"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3648"/>
         <source>Raster type</source>
         <translation>Rastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3649"/>
         <source>Nodata value</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3650"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3652"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3653"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3654"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3655"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3656"/>
         <source>Force the generation of an associated ESRI world file (.tfw)</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3657"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3658"/>
         <source>Rasterized</source>
         <translation>Gerastert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
         <source>Rasterize (vector to raster)</source>
         <translation>Rastern (Vektor nach Raster)</translation>
     </message>
@@ -98240,27 +98413,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rasterize_over</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3663"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3664"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3665"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3666"/>
         <source>Existing raster layer</source>
         <translation>Vorhandener Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
         <source>Rasterize (write over existing raster)</source>
         <translation>Rastern (vorhandenes Raster überschreiben)</translation>
     </message>
@@ -98268,82 +98441,82 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>retile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
         <source>Retile</source>
         <translation>Neukacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3673"/>
         <source>Pixel size to be used for the output file (XSIZE YSIZE like 512 512)</source>
         <translation>Größe für die Ausgabedateien in Pixel (XSIZE YSIZE wie 512 512)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3674"/>
         <source>Resampling algorithm</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3675"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
         <source>Number of pyramids levels to build</source>
         <translation>Anzahl der zu erzeugenden Pyramidenstufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
         <source>Build only the pyramids</source>
         <translation>Nur Pyramiden erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3678"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3679"/>
         <source>Output raster format</source>
         <translation>Ausgaberasterformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3680"/>
         <source>Use a directory for each row</source>
         <translation>Ein Verzeichnis je Zeile verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
         <source>Name of the csv file containing the tile(s) georeferencing information</source>
         <translation>Name der CSV-Datei, die die Georeferenzierungsinformation der Kacheln enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3682"/>
         <source>Column delimiter used in the CSV file</source>
         <translation>Spaltentrennzeichen der CSV-Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3683"/>
         <source>name of shape file containing the result tile(s) index</source>
         <translation>Name der Shapedatei für den Kachelindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3684"/>
         <source>name of the attribute containing the tile name in the result shape file</source>
         <translation>Name für das Attribut des Kachelnamens in der Ergebnis-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3685"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -98351,22 +98524,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rgb2pct</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3690"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3691"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3692"/>
         <source>Number of colors</source>
         <translation>Farbanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3689"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
@@ -98374,27 +98547,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>roughness</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3697"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3698"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3699"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3700"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3694"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3696"/>
         <source>Roughness</source>
         <translation>Rauhigkeit</translation>
     </message>
@@ -98484,7 +98657,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>self.output</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3704"/>
         <source>Spatialite files(*.sqlite)</source>
         <translation>Spatialite dateien(*.sqlite)</translation>
     </message>
@@ -98492,27 +98665,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>shp2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3708"/>
         <source>shp2las</source>
         <translation>shp2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3709"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3710"/>
         <source>Input SHP file</source>
         <translation>Eingabe shp Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3709"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3711"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3712"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
@@ -98520,32 +98693,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>sieve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3716"/>
         <source>Sieve</source>
         <translation>Sieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3717"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3718"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3717"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3719"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3718"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3720"/>
         <source>Pixel connection</source>
         <translation>Pixelverbindung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3719"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3721"/>
         <source>Sieved</source>
         <translation>Gesiebt</translation>
     </message>
@@ -98553,42 +98726,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>slope</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3726"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3727"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3728"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3729"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3730"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3731"/>
         <source>Slope expressed as percent (instead of degrees)</source>
         <translation>Steigung in Prozent (statt Grad)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3732"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3725"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
@@ -98596,7 +98769,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>symbol_angle</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4569"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4574"/>
         <source>Angle of symbol used to render the feature (valid for marker symbols only).</source>
         <translation>Winkel des Symbols zur Objektdarstellung (nur für Markierungssymbole gültig).</translation>
     </message>
@@ -98604,7 +98777,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>symbol_color</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4568"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4573"/>
         <source>Color of symbol used to render the feature.</source>
         <translation>Farbe des Symbols zur Objektdarstellung.</translation>
     </message>
@@ -98808,32 +98981,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>tpi</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3737"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3738"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3739"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3740"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3741"/>
         <source>Topographic Position Index</source>
         <translation>Topographischer Positionsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3736"/>
         <source>TPI (Topographic Position Index)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
@@ -98841,102 +99014,102 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>translate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3747"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3748"/>
         <source>Set the size of the output file (In pixels or %)</source>
         <translation>Größe der Ausgabedatei setzen (in Pixel oder %)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3749"/>
         <source>Output size is a percentage of input size</source>
         <translation>Ausgabegröße in Prozent der Eingabegröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
         <source>Expand</source>
         <translation>Ausdehnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3752"/>
         <source>Output projection for output file [leave blank to use input projection]</source>
         <translation>Projektion für Ausgabedatei [leer lassen um Eingabeprojektion zu verwenden]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3753"/>
         <source>Subset based on georeferenced coordinates</source>
         <translation>Auf georeferenzierten Koordinaten basierende Untermenge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3754"/>
         <source>Copy all subdatasets of this file to individual output files</source>
         <translation>Alle Unterdatensätze dieser Datei in einzelne Dateien kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3763"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3764"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3745"/>
         <source>Translate (convert format)</source>
         <translation>Umwandeln (Format konvertieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3754"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen. Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3757"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3758"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3759"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3761"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF- oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3762"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
@@ -98944,32 +99117,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>tri</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3769"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3770"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3771"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3772"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3773"/>
         <source>Terrain Ruggedness Index</source>
         <translation>Geländerauhigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
         <source>TRI (Terrain Ruggedness Index)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
@@ -98977,52 +99150,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>txt2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3777"/>
         <source>txt2las</source>
         <translation>txt2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3778"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3779"/>
         <source>Input ASCII file</source>
         <translation>ASCII-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3780"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3781"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeilen überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3783"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3784"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3785"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3786"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -99030,47 +99203,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>txt2lasPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
         <source>txt2lasPro</source>
         <translation>txt2lasPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3792"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3793"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeile überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3794"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3795"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3796"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3797"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3798"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -99078,217 +99251,217 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>variable_help</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4511"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4516"/>
         <source>Current QGIS version string.</source>
         <translation>Aktueller QGIS-Versionstext.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4512"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4517"/>
         <source>Current QGIS version number.</source>
         <translation>Aktuelle QGIS-Versionsnummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4513"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4518"/>
         <source>Current QGIS release name.</source>
         <translation>Aktueller QGIS-Releasename.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4514"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4519"/>
         <source>Operating system name, eg 'windows', 'linux' or 'osx'.</source>
         <translation>Betriebssystemname, z.B. 'windows', 'linux' oder 'osx'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4515"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4520"/>
         <source>QGIS platform, eg 'desktop' or 'server'.</source>
         <translation>QGIS-Plattform, z.B. 'desktop' oder 'server'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4516"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4521"/>
         <source>Current user's operating system account name.</source>
-        <translation>Betriebssystemkontoname des aktuellen Benutzers</translation>
+        <translation>Betriebssystemkontoname des aktuellen Benutzers.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4517"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4522"/>
         <source>Current user's operating system user name (if available).</source>
-        <translation>Benutzername des aktuellen Benutzers (wenn verfügbar)</translation>
+        <translation>Benutzername des aktuellen Benutzers (wenn verfügbar).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4520"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4525"/>
         <source>Title of current project.</source>
         <translation>Titel des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4521"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4526"/>
         <source>Full path (including file name) of current project.</source>
         <translation>Voller Pfad (mit Dateiname) des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4522"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4527"/>
         <source>Folder for current project.</source>
         <translation>Verzeichnis des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4523"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4528"/>
         <source>Filename of current project.</source>
         <translation>Dateiname des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4526"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4531"/>
         <source>Name of current layer.</source>
         <translation>Aktueller Rastername.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4527"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4532"/>
         <source>ID of current layer.</source>
         <translation>Kennung des aktuellen Layers.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4530"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4535"/>
         <source>Number of pages in composition.</source>
         <translation>Seitenanzahl in Zusammenstellung.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4531"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4536"/>
         <source>Composition page height in mm.</source>
         <translation>Zusammenstellungsseitenhöhe in mm.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4532"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4537"/>
         <source>Composition page width in mm.</source>
         <translation>Zusammenstellungsseitenbreite in mm.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4533"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4538"/>
         <source>Composition resolution (DPI).</source>
         <translation>Zusammenstellungsauflösung (DPI).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4536"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4541"/>
         <source>Total number of features in atlas.</source>
         <translation>Gesamtanzahl der Objekte in Atlas.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4537"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4542"/>
         <source>Current atlas feature number.</source>
         <translation>Aktuelle Atlasobjektnummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4538"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4543"/>
         <source>Current atlas file name.</source>
         <translation>Aktueller Atlas-Dateiname.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4539"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4544"/>
         <source>Current atlas page name.</source>
         <translation>Aktueller Atlas-Seitenname.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4540"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4545"/>
         <source>Current atlas feature (as feature object).</source>
         <translation>Aktuelles Atlas-Objekt (als Objekt).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4541"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4546"/>
         <source>Current atlas feature ID.</source>
         <translation>ID des aktuellen Atlasobjekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4542"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4547"/>
         <source>Current atlas feature geometry.</source>
         <translation>Geometrie des aktuellen Altas-Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4545"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4550"/>
         <source>Composer item user ID (not necessarily unique).</source>
         <translation>Benutzerkennung des aktuellen Zusammenstellungselement (nicht notwendigerweise eindeutig).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4546"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4551"/>
         <source>Composer item unique ID.</source>
         <translation>Eindeutiger ID des Zusammenstellungselements.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4547"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4552"/>
         <source>Left position of composer item (in mm).</source>
         <translation>Linke Position des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4548"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4553"/>
         <source>Top position of composer item (in mm).</source>
         <translation>Obere Position des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4549"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4554"/>
         <source>Width of composer item (in mm).</source>
         <translation>Breite des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4550"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4555"/>
         <source>Height of composer item (in mm).</source>
         <translation>Höhe des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4553"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4558"/>
         <source>ID of current map destination. This will be 'canvas' for canvas renders, and the item ID for composer map renders.</source>
         <translation>Kennung des aktuellen Kartenziels. 'canvas' für Darstellung in der Karte und Kennung der Zusammenstellung bei Druckzusammenstellungen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4554"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4559"/>
         <source>Current rotation of map.</source>
         <translation>Aktuelle Kartendrehung.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4555"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4560"/>
         <source>Current scale of map.</source>
         <translation>Aktueller Kartenmaßstab.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4556"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4561"/>
         <source>Center of map.</source>
         <translation>Mittelpunkt der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4557"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4562"/>
         <source>Width of map.</source>
         <translation>Breite der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4558"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4563"/>
         <source>Height of map.</source>
         <translation>Höhe der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4560"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4565"/>
         <source>Stores the number of the current row.</source>
         <translation>Aktuelle Zeilennummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4561"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4566"/>
         <source>Current grid annotation value.</source>
         <translation>Aktueller Gitteranmerkungswert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4562"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4567"/>
         <source>Current grid annotation axis (eg, 'x' for longitude, 'y' for latitude).</source>
         <translation>Aktuelle Kartenmerkungsachse (z.B. 'x' für Längengrad und 'y' für Breitengrad).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4565"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4570"/>
         <source>Number of parts in rendered feature's geometry.</source>
-        <translation>Anzahl der Teile der Geometrie des dargestellten Objekts</translation>
+        <translation>Anzahl der Teile der Geometrie des dargestellten Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4566"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4571"/>
         <source>Current geometry part number for feature being rendered.</source>
         <translation>Nummer des aktuellen Geometrieteils das dargestellten Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4581"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4586"/>
         <source>not set</source>
         <translation>nicht gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4587"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4592"/>
         <source><p>Current value: %1</p></source>
         <translation><p>Aktueller Wert: %1</p></translation>
     </message>
@@ -99394,92 +99567,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>warp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3804"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3805"/>
         <source>Source SRS</source>
         <translation>Quell-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
         <source>Destination SRS</source>
         <translation>Ziel-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3808"/>
         <source>Output file resolution in target georeferenced units (leave 0 for no change)</source>
         <translation>Auflösung der Ausgabedatei in georeferenzierten Zieleinheiten (0 bedeutet keine Änderung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3809"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3818"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3810"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3802"/>
         <source>Warp (reproject)</source>
         <translation>Transformieren (Reprojizieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3803"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3813"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3814"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3815"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3816"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3817"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3819"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
diff --git a/images/splash/splash.png b/images/splash/splash.png
index 70bcd27..8858bd1 100644
Binary files a/images/splash/splash.png and b/images/splash/splash.png differ
diff --git a/ms-windows/Installer-Files/WelcomeFinishPage.bmp b/ms-windows/Installer-Files/WelcomeFinishPage.bmp
index a21e89a..551f75f 100644
Binary files a/ms-windows/Installer-Files/WelcomeFinishPage.bmp and b/ms-windows/Installer-Files/WelcomeFinishPage.bmp differ
diff --git a/ms-windows/QGIS-Installer.nsi b/ms-windows/QGIS-Installer.nsi
index d6af09e..89a61b2 100644
--- a/ms-windows/QGIS-Installer.nsi
+++ b/ms-windows/QGIS-Installer.nsi
@@ -356,6 +356,7 @@ Section "QGIS" SecQGIS
 	GetFullPathName /SHORT $0 $INSTALL_DIR
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_ROOT", "$0").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_STARTMENU", "$SMPROGRAMS\${QGIS_BASE}").r0'
+	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_DESKTOP", "$DESKTOP\${QGIS_BASE}").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_MENU_LINKS", "1").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_DESKTOP_LINKS", "1").r0'
 
@@ -485,11 +486,12 @@ Section "Uninstall"
 	GetFullPathName /SHORT $0 $INSTDIR
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_ROOT", "$0").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_STARTMENU", "$SMPROGRAMS\${QGIS_BASE}").r0'
+	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_DESKTOP", "$DESKTOP\${QGIS_BASE}").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_MENU_LINKS", "1").r0'
 	System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("OSGEO4W_DESKTOP_LINKS", "1").r0'
 
 	ReadEnvStr $0 COMSPEC
-	nsExec::ExecToLog '"$0" /c "$INSTALL_DIR\preremove.bat"'
+	nsExec::ExecToLog '"$0" /c "$INSTDIR\preremove.bat"'
 
 	Delete "$INSTDIR\Uninstall-QGIS.exe"
 	Delete "$INSTDIR\*.bat.done"
diff --git a/ms-windows/osgeo4w/creatensis.pl b/ms-windows/osgeo4w/creatensis.pl
index 0a6eb8d..01bd33b 100755
--- a/ms-windows/osgeo4w/creatensis.pl
+++ b/ms-windows/osgeo4w/creatensis.pl
@@ -271,55 +271,69 @@ unless(-d $unpacked ) {
 
 open F, ">../Installer-Files/postinstall.bat";
 
+my $r = ">>postinstall.log 2>&1\r\n";
+
 print F "\@echo off\r\n";
-print F "del postinstall.log>>postinstall.log\r\n";
-print F "echo OSGEO4W_ROOT=%OSGEO4W_ROOT%>>postinstall.log 2>&1\r\n";
-print F "echo OSGEO4W_STARTMENU=%OSGEO4W_STARTMENU%>>postinstall.log 2>&1\r\n";
-print F "set OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT:\\=/%\r\n";
-print F "if \"%OSGEO4W_ROOT_MSYS:~1,1%\"==\":\" set OSGEO4W_ROOT_MSYS=/%OSGEO4W_ROOT_MSYS:~0,1%/%OSGEO4W_ROOT_MSYS:~3%\r\n";
-print F "echo OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT_MSYS%>>postinstall.log 2>&1\r\n";
-print F "PATH %OSGEO4W_ROOT%\\bin;%PATH%>>postinstall.log 2>&1\r\n";
-print F "cd %OSGEO4W_ROOT%>>postinstall.log 2>&1\r\n";
+print F "del postinstall.log\r\n";
+print F "set OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT:\\=/%$r";
+print F "if \"%OSGEO4W_ROOT_MSYS:~1,1%\"==\":\" set OSGEO4W_ROOT_MSYS=/%OSGEO4W_ROOT_MSYS:~0,1%/%OSGEO4W_ROOT_MSYS:~3%$r";
+
+print F "del preremove-conf.bat$r";
+my $c = ">>preremove-conf.bat\r\n";
+print F "echo set OSGEO4W_ROOT=%OSGEO4W_ROOT%$c";
+print F "echo set OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT_MSYS%$c";
+print F "echo set OSGEO4W_STARTMENU=%OSGEO4W_STARTMENU%$c";
+print F "echo set OSGEO4W_DESKTOP=%OSGEO4W_DESKTOP%$c";
+
+print F "echo OSGEO4W_ROOT=%OSGEO4W_ROOT%$r";
+print F "echo OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT_MSYS%$r";
+print F "echo OSGEO4W_STARTMENU=%OSGEO4W_STARTMENU%$r";
+print F "echo OSGEO4W_DESKTOP=%OSGEO4W_DESKTOP%$r";
+print F "PATH %OSGEO4W_ROOT%\\bin;%PATH%$r";
+print F "cd %OSGEO4W_ROOT%$r";
 
 chdir $unpacked;
 for my $p (<etc/postinstall/*.bat>) {
 	$p =~ s/\//\\/g;
 	my($dir,$file) = $p =~ /^(.+)\\([^\\]+)$/;
 
-	print F "echo Running postinstall $file...\r\n";
-	print F "%COMSPEC% /c $p>>postinstall.log 2>&1\r\n";
-	print F "ren $p $file.done>>postinstall.log 2>&1\r\n";
+	print F "echo Running postinstall $file...$r";
+	print F "%COMSPEC% /c $p$r";
+	print F "ren $p $file.done$r";
 }
 chdir "..";
 
-print F "ren postinstall.bat postinstall.bat.done\r\n";
+print F "ren postinstall.bat postinstall.bat.done$r";
 
 close F;
 
 open F, ">../Installer-Files/preremove.bat";
 
+$r = ">>%TEMP%\\$packagename-OSGeo4W-$version-$binary-preremove.log 2>&1\r\n";
+
 print F "\@echo off\r\n";
-print F "del preremove.log>>preremove.log\r\n";
-print F "echo OSGEO4W_ROOT=%OSGEO4W_ROOT%>>preremove.log 2>&1\r\n";
-print F "echo OSGEO4W_STARTMENU=%OSGEO4W_STARTMENU%>>preremove.log 2>&1\r\n";
-print F "set OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT:\\=/%\r\n";
-print F "if \"%OSGEO4W_ROOT_MSYS:~1,1%\"==\":\" set OSGEO4W_ROOT_MSYS=/%OSGEO4W_ROOT_MSYS:~0,1%/%OSGEO4W_ROOT_MSYS:~3%\r\n";
-print F "echo OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT_MSYS%>>preremove.log 2>&1\r\n";
-print F "PATH %OSGEO4W_ROOT%\\bin;%PATH%>>preremove.log 2>&1\r\n";
-print F "cd %OSGEO4W_ROOT%>>preremove.log 2>&1\r\n";
+print F "call \"%~dp0\\preremove-conf.bat\"$r";
+print F "echo OSGEO4W_ROOT=%OSGEO4W_ROOT%$r";
+print F "echo OSGEO4W_STARTMENU=%OSGEO4W_STARTMENU%$r";
+print F "echo OSGEO4W_DESKTOP=%OSGEO4W_DESKTOP%$r";
+print F "set OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT:\\=/%$r";
+print F "if \"%OSGEO4W_ROOT_MSYS:~1,1%\"==\":\" set OSGEO4W_ROOT_MSYS=/%OSGEO4W_ROOT_MSYS:~0,1%/%OSGEO4W_ROOT_MSYS:~3%$r";
+print F "echo OSGEO4W_ROOT_MSYS=%OSGEO4W_ROOT_MSYS%$r";
+print F "PATH %OSGEO4W_ROOT%\\bin;%PATH%$r";
+print F "cd %OSGEO4W_ROOT%$r";
 
 chdir $unpacked;
 for my $p (<etc/preremove/*.bat>) {
 	$p =~ s/\//\\/g;
 	my($dir,$file) = $p =~ /^(.+)\\([^\\]+)$/;
 
-	print F "echo Running preremove $file...\r\n";
-	print F "%COMSPEC% /c $p>>preremove.log 2>&1\r\n";
-	print F "ren $p $file.done>>preremove.log 2>&1\r\n";
+	print F "echo Running preremove $file...$r";
+	print F "%COMSPEC% /c $p$r";
+	print F "ren $p $file.done$r";
 }
 chdir "..";
 
-print F "ren preremove.bat preremove.bat.done\r\n";
+print F "ren preremove.bat preremove.bat.done$r";
 
 close F;
 
diff --git a/ms-windows/osgeo4w/postinstall-desktop.bat b/ms-windows/osgeo4w/postinstall-desktop.bat
index 03e500b..7bfb0d0 100644
--- a/ms-windows/osgeo4w/postinstall-desktop.bat
+++ b/ms-windows/osgeo4w/postinstall-desktop.bat
@@ -5,15 +5,17 @@ textreplace -std -t bin\python- at package@.bat
 
 REM get short path without blanks
 for %%i in ("%OSGEO4W_ROOT%") do set O4W_ROOT=%%~fsi
+if "%OSGEO4W_DESKTOP%"=="" set OSGEO4W_DESKTOP=~$folder.common_desktop$
 
 if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@" "exec hide %O4W_ROOT%\bin\@package at .bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Browser @version@" "exec hide %O4W_ROOT%\bin\@package at -browser.bat" "%O4W_ROOT%\apps\@package@\icons\browser.ico"
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets" "exec hide """%OSGEO4W_ROOT%\bin\@package at -designer.bat"" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
 
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Desktop @version@" "exec hide %O4W_ROOT%\bin\@package at .bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Browser @version@" "exec hide %O4W_ROOT%\bin\@package at -browser.bat" "%O4W_ROOT%\apps\@package@\icons\browser.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "Qt Designer with QGIS @version@ custom widgets" "exec hide %O4W_ROOT%\bin\@package at -designer.bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 mkdir "%OSGEO4W_DESKTOP%"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@" "exec hide %O4W_ROOT%\bin\@package at .bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Browser @version@" "exec hide %O4W_ROOT%\bin\@package at -browser.bat" "%O4W_ROOT%\apps\@package@\icons\browser.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets" "exec hide %O4W_ROOT%\bin\@package at -designer.bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
 
 set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\%
 textreplace -std -t "%O4W_ROOT%\apps\@package@\bin\qgis.reg"
diff --git a/ms-windows/osgeo4w/postinstall-dev.bat b/ms-windows/osgeo4w/postinstall-dev.bat
index 418c45f..3e6907f 100644
--- a/ms-windows/osgeo4w/postinstall-dev.bat
+++ b/ms-windows/osgeo4w/postinstall-dev.bat
@@ -1,20 +1,24 @@
 textreplace -std -t bin\@package at -designer.bat
 textreplace -std -t bin\python- at package@.bat
 
+if "%OSGEO4W_DESKTOP%"=="" set OSGEO4W_DESKTOP=~$folder.common_desktop$
+
+if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
+if not %OSGEO4W_DESKTOP_LINKS%==0 mkdir "%OSGEO4W_DESKTOP%"
+
 for %%g in (@grassversions@) do (
 	textreplace -std -t bin\@package at -g%%g.bat
 	textreplace -std -t bin\@package at -browser-g%%g.bat
 
-	if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
 	if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
 	if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Browser @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -browser-g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
 
-	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Desktop @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
-	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Browser @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -browser-g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
+	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
+	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Browser @version@ with GRASS %%g (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -browser-g%%g.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
 )
 
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package at -designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
 
 set O4W_ROOT=%OSGEO4W_ROOT%
 set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\%
diff --git a/ms-windows/osgeo4w/postinstall-grass.bat b/ms-windows/osgeo4w/postinstall-grass.bat
index 315f465..81b0554 100644
--- a/ms-windows/osgeo4w/postinstall-grass.bat
+++ b/ms-windows/osgeo4w/postinstall-grass.bat
@@ -1,9 +1,12 @@
 textreplace -std -t bin\@package at -grass@grassmajor at .bat
 textreplace -std -t bin\@package at -browser-grass@grassmajor at .bat
 
+if "%OSGEO4W_DESKTOP%"=="" set OSGEO4W_DESKTOP=~$folder.common_desktop$
+
 if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
 if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "QGIS Browser @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -browser-grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
 
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Desktop @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "~$folder.desktop$" "QGIS Browser @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -browser-grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 mkdir "%OSGEO4W_DESKTOP%"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "QGIS Browser @version@ with GRASS @grassversion@" "exec hide %OSGEO4W_ROOT%\bin\@package at -browser-grass@grassmajor at .bat" "%OSGEO4W_ROOT%\apps\@package@\icons\browser.ico"
diff --git a/ms-windows/osgeo4w/preremove-desktop.bat b/ms-windows/osgeo4w/preremove-desktop.bat
index 32c952f..31bb761 100644
--- a/ms-windows/osgeo4w/preremove-desktop.bat
+++ b/ms-windows/osgeo4w/preremove-desktop.bat
@@ -1,11 +1,13 @@
 del "%OSGEO4W_STARTMENU%\QGIS Desktop @version at .lnk"
 del "%OSGEO4W_STARTMENU%\QGIS Browser @version at .lnk"
 del "%OSGEO4W_STARTMENU%\Qt Designer with QGIS @version@ custom widgets.lnk"
-del "%ALLUSERSPROFILE%\Desktop\QGIS Desktop @version at .lnk"
-del "%ALLUSERSPROFILE%\Desktop\QGIS Browser @version at .lnk"
-del "%ALLUSERSPROFILE%\Desktop\Qt Designer with QGIS @version@ custom widgets.lnk"
-del "%OSGEO4W_ROOT%"\bin\@package at .bat
-del "%OSGEO4W_ROOT%"\bin\@package at -browser.bat
-del "%OSGEO4W_ROOT%"\bin\@package at -designer.bat
-del "%OSGEO4W_ROOT%"\apps\@package@\python\qgis\qgisconfig.py
-del "%OSGEO4W_ROOT%"\apps\@package@\bin\qgis.reg
+rmdir "%OSGEO4W_STARTMENU%"
+del "%OSGEO4W_DESKTOP%\QGIS Desktop @version at .lnk"
+del "%OSGEO4W_DESKTOP%\QGIS Browser @version at .lnk"
+del "%OSGEO4W_DESKTOP%\Qt Designer with QGIS @version@ custom widgets.lnk"
+rmdir "%OSGEO4W_DESKTOP%"
+del "%OSGEO4W_ROOT%\bin\@package at .bat"
+del "%OSGEO4W_ROOT%\bin\@package at -browser.bat"
+del "%OSGEO4W_ROOT%\bin\@package at -designer.bat"
+del "%OSGEO4W_ROOT%\apps\@package@\python\qgis\qgisconfig.py"
+del "%OSGEO4W_ROOT%\apps\@package@\bin\qgis.reg"
diff --git a/ms-windows/osgeo4w/preremove-dev.bat b/ms-windows/osgeo4w/preremove-dev.bat
index dd6ea43..040caf1 100644
--- a/ms-windows/osgeo4w/preremove-dev.bat
+++ b/ms-windows/osgeo4w/preremove-dev.bat
@@ -1,16 +1,18 @@
 for %%g in (@grassversions@) do (
 	del "%OSGEO4W_STARTMENU%\QGIS Desktop @version@ with GRASS %%g (Nightly).lnk"
 	del "%OSGEO4W_STARTMENU%\QGIS Browser @version@ with GRASS %%g (Nightly).lnk"
-	del "%ALLUSERSPROFILE%\Desktop\QGIS Desktop @version@ with GRASS %%g (Nightly).lnk"
-	del "%ALLUSERSPROFILE%\Desktop\QGIS Browser @version@ with GRASS %%g (Nightly).lnk"
-	del "%OSGEO4W_ROOT%"\bin\@package at -g%%g.bat
-	del "%OSGEO4W_ROOT%"\bin\@package at -browser-g%%g.bat
+	del "%OSGEO4W_DESKTOP%\QGIS Desktop @version@ with GRASS %%g (Nightly).lnk"
+	del "%OSGEO4W_DESKTOP%\QGIS Browser @version@ with GRASS %%g (Nightly).lnk"
+	del "%OSGEO4W_ROOT%\bin\@package at -g%%g.bat"
+	del "%OSGEO4W_ROOT%\bin\@package at -browser-g%%g.bat"
 )
 
 del "%OSGEO4W_STARTMENU%\Qt Designer with QGIS @version@ custom widgets (Nightly).lnk"
-del "%ALLUSERSPROFILE%\Desktop\Qt Designer with QGIS @version@ custom widgets (Nightly).lnk"
+rmdir "%OSGEO4W_STARTMENU%"
+del "%OSGEO4W_DESKTOP%\Qt Designer with QGIS @version@ custom widgets (Nightly).lnk"
+rmdir "%OSGEO4W_DESKTOP%"
 
-del "%OSGEO4W_ROOT%"\bin\@package at -designer.bat
-del "%OSGEO4W_ROOT%"\bin\python- at package@.bat
-del "%OSGEO4W_ROOT%"\apps\@package@\python\qgis\qgisconfig.py
-del "%OSGEO4W_ROOT%"\apps\@package@\bin\qgis.reg
+del "%OSGEO4W_ROOT%\bin\@package at -designer.bat"
+del "%OSGEO4W_ROOT%\bin\python- at package@.bat"
+del "%OSGEO4W_ROOT%\apps\@package@\python\qgis\qgisconfig.py"
+del "%OSGEO4W_ROOT%\apps\@package@\bin\qgis.reg"
diff --git a/ms-windows/osgeo4w/preremove-grass.bat b/ms-windows/osgeo4w/preremove-grass.bat
index 67803da..113a875 100644
--- a/ms-windows/osgeo4w/preremove-grass.bat
+++ b/ms-windows/osgeo4w/preremove-grass.bat
@@ -1,6 +1,8 @@
 del "%OSGEO4W_STARTMENU%\QGIS Desktop @version@ with GRASS @grassversion at .lnk"
 del "%OSGEO4W_STARTMENU%\QGIS Browser @version@ with GRASS @grassversion at .lnk"
-del "%ALLUSERSPROFILE%\Desktop\QGIS Desktop @version@ with GRASS @grassversion at .lnk"
-del "%ALLUSERSPROFILE%\Desktop\QGIS Browser @version@ with GRASS @grassversion at .lnk"
-del "%OSGEO4W_ROOT%"\bin\@package at -grass@grassmajor at .bat
-del "%OSGEO4W_ROOT%"\bin\@package at -browser-grass@grassmajor at .bat
+rmdir "%OSGEO4W_STARTMENU%"
+del "%OSGEO4W_DESKTOP%\QGIS Desktop @version@ with GRASS @grassversion at .lnk"
+del "%OSGEO4W_DESKTOP%\QGIS Browser @version@ with GRASS @grassversion at .lnk"
+rmdir "%OSGEO4W_DESKTOP%"
+del "%OSGEO4W_ROOT%\bin\@package at -grass@grassmajor at .bat"
+del "%OSGEO4W_ROOT%\bin\@package at -browser-grass@grassmajor at .bat"
diff --git a/ms-windows/osgeo4w/preremove-server.bat b/ms-windows/osgeo4w/preremove-server.bat
index 5b898b0..91f3f99 100644
--- a/ms-windows/osgeo4w/preremove-server.bat
+++ b/ms-windows/osgeo4w/preremove-server.bat
@@ -1 +1 @@
-del "%OSGEO4W_ROOT%"\httpd.d\httpd_ at package@.conf
+del "%OSGEO4W_ROOT%\httpd.d\httpd_ at package@.conf"
diff --git a/python/core/composer/qgscomposerpicture.sip b/python/core/composer/qgscomposerpicture.sip
index 2cd6d95..5588091 100644
--- a/python/core/composer/qgscomposerpicture.sip
+++ b/python/core/composer/qgscomposerpicture.sip
@@ -156,6 +156,57 @@ class QgsComposerPicture: QgsComposerItem
      */
     ItemPositionMode pictureAnchor() const;
 
+    /** Returns the fill color used for parameterized SVG files.
+     * @see setSvgFillColor()
+     * @see svgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    QColor svgFillColor() const;
+
+    /** Sets the fill color used for parameterized SVG files.
+     * @param color fill color.
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgFillColor()
+     * @see setSvgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgFillColor( const QColor& color );
+
+    /** Returns the border color used for parameterized SVG files.
+     * @see setSvgBorderColor()
+     * @see svgFillColor()
+     * @note added in QGIS 2.14.1
+     */
+    QColor svgBorderColor() const;
+
+    /** Sets the border color used for parameterized SVG files.
+     * @param color border color.
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgBorderlColor()
+     * @see setSvgFillColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgBorderColor( const QColor& color );
+
+    /** Returns the border width (in mm) used for parameterized SVG files.
+     * @see setSvgBorderWidth()
+     * @see svgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    double svgBorderWidth() const;
+
+    /** Sets the border width used for parameterized SVG files.
+     * @param width border width in mm
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgBorderWidth()
+     * @see setSvgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgBorderWidth( double width );
+
     /** Returns whether the picture item is using an expression for the image source.
      * @returns true if the picture is using an expression for the source, false if
      * it is using a single static file path for the source.
diff --git a/python/core/qgsnetworkaccessmanager.sip b/python/core/qgsnetworkaccessmanager.sip
index 744486b..b4e1e83 100644
--- a/python/core/qgsnetworkaccessmanager.sip
+++ b/python/core/qgsnetworkaccessmanager.sip
@@ -62,29 +62,10 @@ class QgsNetworkAccessManager : QNetworkAccessManager
 
     bool useSystemProxy();
 
-  public slots:
-    /** Send GET request, calls get().
-     * Emits requestSent().
-     * @param request request to be sent
-     */
-    void sendGet( const QNetworkRequest & request );
-    /** Abort and delete reply. This slot may be used to abort reply created by instance of this class
-     * (and which was not moved to another thread) from a different thread. Such reply cannot
-     * be aborted directly from a different thread. The reply must be also deleted
-     * in this slot, otherwise it could happen that abort signal comes after the reply was deleted.
-     * @param reply reply to be aborted.
-     */
-    void deleteReply( QNetworkReply * reply );
-
   signals:
     void requestAboutToBeCreated( QNetworkAccessManager::Operation, const QNetworkRequest &, QIODevice * );
     void requestCreated( QNetworkReply * );
     void requestTimedOut( QNetworkReply * );
-    /** Emitted when request was sent by request()
-     * @param reply request reply
-     * @param sender the object which called request() slot.
-     */
-    void requestSent( QNetworkReply * reply, QObject *sender );
 
   protected:
     virtual QNetworkReply *createRequest( QNetworkAccessManager::Operation op, const QNetworkRequest &req, QIODevice *outgoingData = 0 );
diff --git a/python/core/symbology-ng/qgsrendererv2.sip b/python/core/symbology-ng/qgsrendererv2.sip
index 71d520d..58916a9 100644
--- a/python/core/symbology-ng/qgsrendererv2.sip
+++ b/python/core/symbology-ng/qgsrendererv2.sip
@@ -48,6 +48,8 @@ class QgsFeatureRendererV2
     sipType = sipType_QgsInvertedPolygonRenderer;
   else if (sipCpp->type() == "pointDisplacement")
     sipType = sipType_QgsPointDisplacementRenderer;
+  else if (sipCpp->type() == "25dRenderer")
+    sipType = sipType_Qgs25DRenderer;
   else
     sipType = 0;
 %End
diff --git a/python/core/symbology-ng/qgssinglesymbolrendererv2.sip b/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
index b2ce594..bb44f0d 100644
--- a/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
+++ b/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
@@ -65,6 +65,8 @@ class QgsSingleSymbolRendererV2 : QgsFeatureRendererV2
 
     virtual QSet< QString > legendKeysForFeature( QgsFeature& feature, QgsRenderContext& context );
 
+    virtual void setLegendSymbolItem( const QString& key, QgsSymbolV2* symbol /Transfer/ );
+
     //! creates a QgsSingleSymbolRendererV2 from an existing renderer.
     //! @note added in 2.5
     //! @returns a new renderer if the conversion was possible, otherwise 0.
diff --git a/python/core/symbology-ng/qgsstylev2.sip b/python/core/symbology-ng/qgsstylev2.sip
index fb89010..15c09dc 100644
--- a/python/core/symbology-ng/qgsstylev2.sip
+++ b/python/core/symbology-ng/qgsstylev2.sip
@@ -59,6 +59,12 @@ class QgsStyleV2 : QObject
      */
     int addTag( const QString& tagName );
 
+    /** Returns a list of all tags in the style database
+     * @note added in QGIS 2.16
+     * @see addTag()
+     */
+    QStringList tags() const;
+
     //! return a map of groupid and names for the given parent group
     QMap<int, QString> childGroupNames( const QString& parent = "" );
 
diff --git a/python/plugins/db_manager/db_plugins/vlayers/data_model.py b/python/plugins/db_manager/db_plugins/vlayers/data_model.py
index 201f645..8b55b80 100644
--- a/python/plugins/db_manager/db_plugins/vlayers/data_model.py
+++ b/python/plugins/db_manager/db_plugins/vlayers/data_model.py
@@ -26,9 +26,7 @@ from .plugin import LVectorTable
 from ..plugin import DbError
 
 from PyQt4.QtCore import QUrl, QTime, QTemporaryFile
-from qgis.core import QgsProviderRegistry, QgsErrorMessage, QGis, QgsVectorLayer
-
-import os
+from qgis.core import QGis, QgsVectorLayer, QgsWKBTypes
 
 
 class LTableDataModel(TableDataModel):
@@ -48,7 +46,13 @@ class LTableDataModel(TableDataModel):
         # populate self.resdata
         self.resdata = []
         for f in self.layer.getFeatures():
-            self.resdata.append(f.attributes())
+            a = f.attributes()
+            # add the geometry type
+            if f.geometry():
+                a.append(QgsWKBTypes.displayString(QGis.fromOldWkbType(f.geometry().wkbType())))
+            else:
+                a.append('None')
+            self.resdata.append(a)
 
         self.fetchedFrom = 0
         self.fetchedCount = len(self.resdata)
diff --git a/python/plugins/processing/algs/grass/GrassAlgorithmProvider.py b/python/plugins/processing/algs/grass/GrassAlgorithmProvider.py
index cbc8906..45fc2d9 100644
--- a/python/plugins/processing/algs/grass/GrassAlgorithmProvider.py
+++ b/python/plugins/processing/algs/grass/GrassAlgorithmProvider.py
@@ -44,6 +44,7 @@ class GrassAlgorithmProvider(AlgorithmProvider):
 
     def __init__(self):
         AlgorithmProvider.__init__(self)
+        self.activate = False
         self.createAlgsList()  # Preloading algorithms to speed up
 
     def initializeSettings(self):
diff --git a/python/plugins/processing/algs/grass7/Grass7Algorithm.py b/python/plugins/processing/algs/grass7/Grass7Algorithm.py
index 3dff7f3..3bea7f9 100644
--- a/python/plugins/processing/algs/grass7/Grass7Algorithm.py
+++ b/python/plugins/processing/algs/grass7/Grass7Algorithm.py
@@ -30,7 +30,7 @@ import time
 import uuid
 import importlib
 
-from PyQt4.QtCore import QCoreApplication
+from PyQt4.QtCore import QCoreApplication, QUrl
 from PyQt4.QtGui import QIcon
 
 from qgis.core import QgsRasterLayer
@@ -87,6 +87,33 @@ class Grass7Algorithm(GeoAlgorithm):
         return QIcon(os.path.join(pluginPath, 'images', 'grass.png'))
 
     def help(self):
+        localDoc = None
+        html = self.grass7Name + '.html'
+        if system.isWindows():
+            # For MS-Windows, use the configured GRASS7 path
+            localPath = os.path.join(Grass7Utils.grassPath(), 'docs/html', html)
+            if os.path.exists(localPath):
+                localDoc = os.path.abspath(localPath)
+        elif system.isMac():
+            # For MacOSX official package
+            localPath = os.path.join('/Applications/GRASS-7.0.app/Contents/MacOS/docs/html', html)
+            if os.path.exists(localPath):
+                localDoc = os.path.abspath(localPath)
+        else:
+            # For GNU/Linux distributions
+            searchPaths = ['/usr/share/doc/grass-doc/html', '/opt/grass/docs/html',
+                           '/usr/share/doc/grass/docs/html']
+            for path in searchPaths:
+                localPath = os.path.join(path, html)
+                if os.path.exists(localPath):
+                    localDoc = os.path.abspath(localPath)
+
+        # Found the local documentation
+        if localDoc:
+            localDoc = QUrl.fromLocalFile(localDoc).toString()
+            return False, localDoc
+
+        # Return the URL if local doc is not found
         return False, 'http://grass.osgeo.org/grass70/manuals/' + self.grass7Name + '.html'
 
     def getParameterDescriptions(self):
diff --git a/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py b/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
index 2a9a8dc..c918247 100644
--- a/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
+++ b/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
@@ -43,7 +43,6 @@ class Grass7AlgorithmProvider(AlgorithmProvider):
 
     def __init__(self):
         AlgorithmProvider.__init__(self)
-        self.activate = False
         self.createAlgsList()
 
     def initializeSettings(self):
diff --git a/python/plugins/processing/algs/grass7/description/r.viewshed.txt b/python/plugins/processing/algs/grass7/description/r.viewshed.txt
index ad605a0..55478e3 100644
--- a/python/plugins/processing/algs/grass7/description/r.viewshed.txt
+++ b/python/plugins/processing/algs/grass7/description/r.viewshed.txt
@@ -4,6 +4,7 @@ Raster (r.*)
 ParameterRaster|input|Elevation|False
 ParameterString|coordinates|Coordinate identifying the viewing position|0,0
 ParameterString|observer_elevation|Viewing position height above the ground|1.75
+ParameterString|target_elevation|Offset for target elevation above the ground|0.0
 ParameterString|max_distance|Maximum distance from the viewing point (meters)|10000
 ParameterBoolean|-c|Consider earth curvature (current ellipsoid)|False
 OutputRaster|output|Intervisibility
diff --git a/python/plugins/processing/algs/grass7/description/v.buffer.column.txt b/python/plugins/processing/algs/grass7/description/v.buffer.column.txt
index 346cb4a..80ea207 100644
--- a/python/plugins/processing/algs/grass7/description/v.buffer.column.txt
+++ b/python/plugins/processing/algs/grass7/description/v.buffer.column.txt
@@ -1,6 +1,7 @@
 v.buffer
 v.buffer.column - Creates a buffer around features of given type.
 Vector (v.*)
+Hardcoded|layer=1
 ParameterVector|input|Input vector layer|-1|False
 ParameterTableField|column|Name of column to use for buffer distances|input|-1|False
 ParameterNumber|scale|Scaling factor for attribute column values|None|None|1.0
diff --git a/python/plugins/processing/algs/qgis/FieldsCalculator.py b/python/plugins/processing/algs/qgis/FieldsCalculator.py
index de0cfd4..95e1fac 100644
--- a/python/plugins/processing/algs/qgis/FieldsCalculator.py
+++ b/python/plugins/processing/algs/qgis/FieldsCalculator.py
@@ -26,7 +26,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 __revision__ = '$Format:%H$'
 
 from PyQt4.QtCore import QVariant
-from qgis.core import QgsExpression, QgsFeature, QgsField, QgsDistanceArea, QgsProject, GEO_NONE
+from qgis.core import QgsExpression, QgsExpressionContext, QgsExpressionContextUtils, QgsFeature, QgsField, QgsDistanceArea, QgsProject, GEO_NONE
 from qgis.utils import iface
 from processing.core.GeoAlgorithm import GeoAlgorithm
 from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
@@ -111,8 +111,15 @@ class FieldsCalculator(GeoAlgorithm):
         da.setEllipsoid(QgsProject.instance().readEntry(
             'Measure', '/Ellipsoid', GEO_NONE)[0])
         exp.setGeomCalculator(da)
+        exp.setDistanceUnits(QgsProject.instance().distanceUnits())
+        exp.setAreaUnits(QgsProject.instance().areaUnits())
 
-        if not exp.prepare(layer.pendingFields()):
+        exp_context = QgsExpressionContext()
+        exp_context.appendScope(QgsExpressionContextUtils.globalScope())
+        exp_context.appendScope(QgsExpressionContextUtils.projectScope())
+        exp_context.appendScope(QgsExpressionContextUtils.layerScope(layer))
+
+        if not exp.prepare(exp_context):
             raise GeoAlgorithmExecutionException(
                 self.tr('Evaluation error: %s' % exp.evalErrorString()))
 
@@ -129,8 +136,9 @@ class FieldsCalculator(GeoAlgorithm):
         rownum = 1
         for current, f in enumerate(features):
             rownum = current + 1
-            exp.setCurrentRowNumber(rownum)
-            value = exp.evaluate(f)
+            exp_context.setFeature(f)
+            exp_context.lastScope().setVariable("row_number", rownum)
+            value = exp.evaluate(exp_context)
             if exp.hasEvalError():
                 calculationSuccess = False
                 error = exp.evalErrorString()
diff --git a/python/plugins/processing/algs/qgis/FieldsMapper.py b/python/plugins/processing/algs/qgis/FieldsMapper.py
index 1573b11..7c8c742 100644
--- a/python/plugins/processing/algs/qgis/FieldsMapper.py
+++ b/python/plugins/processing/algs/qgis/FieldsMapper.py
@@ -26,7 +26,8 @@ __copyright__ = '(C) 2014, Arnaud Morvan'
 __revision__ = '$Format:%H$'
 
 
-from qgis.core import QgsField, QgsExpression, QgsFeature
+from qgis.core import QgsField, QgsExpression, QgsExpressionContext, QgsExpressionContextUtils, QgsDistanceArea, QgsProject, QgsFeature, GEO_NONE
+from qgis.utils import iface
 from processing.core.GeoAlgorithm import GeoAlgorithm
 from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
 from processing.core.parameters import ParameterVector
@@ -68,6 +69,19 @@ class FieldsMapper(GeoAlgorithm):
         provider = layer.dataProvider()
         fields = []
         expressions = []
+
+        da = QgsDistanceArea()
+        da.setSourceCrs(layer.crs().srsid())
+        da.setEllipsoidalMode(
+            iface.mapCanvas().mapSettings().hasCrsTransformEnabled())
+        da.setEllipsoid(QgsProject.instance().readEntry(
+            'Measure', '/Ellipsoid', GEO_NONE)[0])
+
+        exp_context = QgsExpressionContext()
+        exp_context.appendScope(QgsExpressionContextUtils.globalScope())
+        exp_context.appendScope(QgsExpressionContextUtils.projectScope())
+        exp_context.appendScope(QgsExpressionContextUtils.layerScope(layer))
+
         for field_def in mapping:
             fields.append(QgsField(name=field_def['name'],
                                    type=field_def['type'],
@@ -75,12 +89,16 @@ class FieldsMapper(GeoAlgorithm):
                                    prec=field_def['precision']))
 
             expression = QgsExpression(field_def['expression'])
+            expression.setGeomCalculator(da)
+            expression.setDistanceUnits(QgsProject.instance().distanceUnits())
+            expression.setAreaUnits(QgsProject.instance().areaUnits())
+
             if expression.hasParserError():
                 raise GeoAlgorithmExecutionException(
                     self.tr(u'Parser error in expression "{}": {}')
                     .format(unicode(field_def['expression']),
                             unicode(expression.parserErrorString())))
-            expression.prepare(provider.fields())
+            expression.prepare(exp_context)
             if expression.hasEvalError():
                 raise GeoAlgorithmExecutionException(
                     self.tr(u'Evaluation error in expression "{}": {}')
@@ -108,8 +126,9 @@ class FieldsMapper(GeoAlgorithm):
             for i in xrange(0, len(mapping)):
                 field_def = mapping[i]
                 expression = expressions[i]
-                expression.setCurrentRowNumber(rownum)
-                value = expression.evaluate(inFeat)
+                exp_context.setFeature(inFeat)
+                exp_context.lastScope().setVariable("row_number", rownum)
+                value = expression.evaluate(exp_context)
                 if expression.hasEvalError():
                     calculationSuccess = False
                     error = expression.evalErrorString()
diff --git a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
index 065b9b5..704ff09 100644
--- a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
+++ b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
@@ -31,6 +31,7 @@ import re
 from PyQt4 import uic
 from PyQt4.QtCore import Qt, QSettings
 from PyQt4.QtGui import QDialog, QFileDialog, QApplication, QCursor, QMessageBox
+from qgis.core import QgsExpressionContext, QgsExpressionContextUtils
 from qgis.gui import QgsEncodingFileDialog
 
 from processing.core.ProcessingConfig import ProcessingConfig
@@ -95,6 +96,14 @@ class FieldsCalculatorDialog(BASE, WIDGET):
         self.builder.setLayer(self.layer)
         self.builder.loadFieldNames()
 
+        exp_context = QgsExpressionContext()
+        exp_context.appendScope(QgsExpressionContextUtils.globalScope())
+        exp_context.appendScope(QgsExpressionContextUtils.projectScope())
+        exp_context.appendScope(QgsExpressionContextUtils.layerScope(self.layer))
+        exp_context.lastScope().setVariable("row_number", 1)
+        exp_context.setHighlightedVariables(["row_number"])
+        self.builder.setExpressionContext(exp_context)
+
         self.populateFields()
 
     def setupSpinboxes(self, index):
diff --git a/python/plugins/processing/algs/saga/description/2.1.2/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.1.2/GridMasking.txt
index 5af5b18..93233f1 100644
--- a/python/plugins/processing/algs/saga/description/2.1.2/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.1.2/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.1.3/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.1.3/GridMasking.txt
index 5af5b18..93233f1 100644
--- a/python/plugins/processing/algs/saga/description/2.1.3/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.1.3/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.1.4/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.1.4/GridMasking.txt
index 5af5b18..93233f1 100644
--- a/python/plugins/processing/algs/saga/description/2.1.4/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.1.4/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/B-SplineApproximation.txt b/python/plugins/processing/algs/saga/description/2.2.0/B-SplineApproximation.txt
index 79a2bf5..faf2366 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/B-SplineApproximation.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/B-SplineApproximation.txt
@@ -7,4 +7,5 @@ ParameterNumber|LEVEL|Resolution|0.001|None|1.0
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_OUT_GRID|Gri
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/CubicSplineApproximation.txt b/python/plugins/processing/algs/saga/description/2.2.0/CubicSplineApproximation.txt
index c60b700..868177a 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/CubicSplineApproximation.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/CubicSplineApproximation.txt
@@ -6,8 +6,9 @@ Hardcoded|-TARGET_DEFINITION 0
 ParameterNumber|NPMIN|Minimal Number of Points|0|None|3
 ParameterNumber|NPMAX|Maximal Number of Points|11|59|20
 ParameterNumber|NPPC|Points per Square|1|None|5
-ParameterNumber|K|Tolerance|0|None|140.0
+ParameterNumber|K|Tolerance|0|None|140
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
+ParameterRaster|TARGET_TEMPLATE|Target system|True
 OutputRaster|TARGET_OUT_GRID|Grid
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.2.0/GridMasking.txt
index 5af5b18..93233f1 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation(fromGrid).txt b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation(fromGrid).txt
index 9c59c92..0352985 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation(fromGrid).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation(fromGrid).txt
@@ -4,10 +4,11 @@ ParameterRaster|GRID|Grid|False
 Hardcoded|-TARGET_DEFINITION 0
 ParameterSelection|METHOD|Method|[0] without B-spline refinement;[1] with B-spline refinement
 ParameterNumber|EPSILON|Threshold Error|0|None|0.0001
-ParameterNumber|LEVEL_MAX|Maximum Level|1|14|11.0
+ParameterNumber|LEVEL_MAX|Maximum Level|1|14|11
 ParameterBoolean|UPDATE|Update View|False
 ParameterSelection|DATATYPE|Data Type|[0] same as input grid;[1] floating point
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
+ParameterRaster|TARGET_TEMPLATE|Target system|True
 OutputRaster|TARGET_OUT_GRID|Grid
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation.txt b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation.txt
index 0f9b323..2f7159d 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolation.txt
@@ -4,9 +4,11 @@ ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 ParameterSelection|METHOD|Method|[0] without B-spline refinement;[1] with B-spline refinement
 ParameterNumber|EPSILON|Threshold Error|0|None|0.0001
+ParameterNumber|LEVEL_MAX|Maximum level|1|14|11
 ParameterBoolean|UPDATE|Update View|False
 Hardcoded|-TARGET_DEFINITION 0
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
+ParameterRaster|TARGET_TEMPLATE|Target system|True
 OutputRaster|TARGET_OUT_GRID|Grid
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Global).txt b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolationforCategories.txt
similarity index 63%
rename from python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Global).txt
rename to python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolationforCategories.txt
index 69d1337..e4104cb 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Global).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/MultilevelB-SplineInterpolationforCategories.txt
@@ -1,10 +1,11 @@
-Thin Plate Spline (Global)
+Multilevel B-Spline Interpolation for Categories
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 Hardcoded|-TARGET_DEFINITION 0
-ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_CATEGORIES|Categories
+OutputRaster|TARGET_PROPABILITY|Propability
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/Resampling.txt b/python/plugins/processing/algs/saga/description/2.2.0/Resampling.txt
index 3b8096c..1b33635 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/Resampling.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/Resampling.txt
@@ -3,9 +3,10 @@ grid_tools
 ParameterRaster|INPUT|Grid|False
 ParameterBoolean|KEEP_TYPE|Preserve Data Type|True
 Hardcoded|-TARGET_DEFINITION 0
-ParameterSelection|SCALE_UP_METHOD|Interpolation Method (Scale Up)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
-ParameterSelection|SCALE_DOWN_METHOD|Interpolation Method (Scale Down)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
+ParameterSelection|SCALE_UP|Upscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
+ParameterSelection|SCALE_DOWN|Downscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|OUTPUT|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(TIN).txt b/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(TIN).txt
index 0ded5a7..41d883c 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(TIN).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(TIN).txt
@@ -9,4 +9,5 @@ ParameterBoolean|FRAME|Add Frame|True
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
+ParameterRaster|TARGET_TEMPLATE|Target system|True
 OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Local).txt b/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline.txt
similarity index 82%
rename from python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Local).txt
rename to python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline.txt
index 4cd6388..f55c020 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Local).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline.txt
@@ -1,4 +1,4 @@
-Thin Plate Spline (Local)
+Thin Plate Spline
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
@@ -7,9 +7,11 @@ ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 ParameterSelection|SEARCH_RANGE|Search Range|[0] local;[1] global
 ParameterNumber|SEARCH_RADIUS|Search Radius|0.0|None|1000.0
 ParameterSelection|SEARCH_POINTS_ALL|Number of Points|[0] maximum number of nearest points;[1] all points within search distance
+ParameterNumber|SEARCH_POINTS_MIN|Maximum Number of Points|1|None|16
 ParameterNumber|SEARCH_POINTS_MAX|Maximum Number of Points|1|None|20
 ParameterSelection|SEARCH_DIRECTION|Search Direction|[0] all directions;[1] quadrants
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/ConfusionMatrix(GridPolygons).txt b/python/plugins/processing/algs/saga/description/2.2.2/ConfusionMatrix(GridPolygons).txt
new file mode 100644
index 0000000..496cb9b
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.2/ConfusionMatrix(GridPolygons).txt
@@ -0,0 +1,12 @@
+Confusion Matrix (Polygons / Grid)
+imagery_classification
+ParameterRaster|GRID|Classification|False
+ParameterTable|GRID_LUT|Look-up Table|True
+ParameterTableField|GRID_LUT_MIN|Value|GRID_LUT|-1|True
+ParameterTableField|GRID_LUT_MAX|Value (Maximum)|GRID_LUT|-1|True
+ParameterTableField|GRID_LUT_NAM|Name|GRID_LUT|-1|True
+ParameterVector|POLYGONS|Polygons|2|False
+ParameterTableField|FIELD|Classes|POLYGONS|-1|False
+OutputTable|CONFUSION|Confusion Matrix
+OutputTable|CLASSES|Class Values
+OutputTable|SUMMARY|Summary
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/DiversityOfCategories.txt b/python/plugins/processing/algs/saga/description/2.2.2/DiversityOfCategories.txt
new file mode 100644
index 0000000..e3abf58
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.2/DiversityOfCategories.txt
@@ -0,0 +1,14 @@
+Diversity of Categories
+grid_analysis
+ParameterRaster|CATEGORIES|Categories|False
+ParameterSelection|SEARCH_MODE|Search Mode|[0] square;[1] circle|1
+ParameterNumber|SEARCH_RADIUS|Search Radius Distance|1.0|3|3
+ParameterSelection|NB_CASE|Connectivity Neighbourhood|[0] Rook's case;[1] Queen's case|1
+ParameterSelection|DW_WEIGHTING|Weighting Function|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
+ParameterNumber|DW_IDW_POWER|Inverse Distance Weighting Power|0.0|None|1
+ParameterBoolean|DW_IDW_OFFSET|Inverse Distance Offset|True
+ParameterNumber|DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|0.0|None|0.7
+OutputRaster|DIVERSITY|Diversity
+OutputRaster|SIZE_MEAN|Average Size
+OutputRaster|SIZE_SKEW|Skewness
+OutputRaster|CONNECTIVITY|Connectivity
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.2.2/GridMasking.txt
index 5af5b18..93233f1 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/GridStatisticsforPolygons.txt b/python/plugins/processing/algs/saga/description/2.2.2/GridStatisticsforPolygons.txt
index ad76d9f..4c74152 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/GridStatisticsforPolygons.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/GridStatisticsforPolygons.txt
@@ -2,13 +2,15 @@ Grid Statistics for Polygons
 shapes_grid
 ParameterMultipleInput|GRIDS|Grids|3|False
 ParameterVector|POLYGONS|Polygons|2|False
-ParameterBoolean|COUNT         |Number of Cells|True
-ParameterBoolean|MIN           |Minimum|True
-ParameterBoolean|MAX           |Maximum|True
-ParameterBoolean|RANGE         |Range|True
-ParameterBoolean|SUM           |Sum|True
-ParameterBoolean|MEAN          |Mean|True
-ParameterBoolean|VAR           |Variance|True
-ParameterBoolean|STDDEV        |Standard Deviation|True
+ParameterSelection|METHOD|Method|[0] Standard;[1] Shape wise, supports overlapping polygons|1
+ParameterSelection|NAMING|Grid Naming|[0] Grid number;[1] Grid name|1
+ParameterBoolean|COUNT|Number of Cells|True
+ParameterBoolean|MIN|Minimum|True
+ParameterBoolean|MAX|Maximum|True
+ParameterBoolean|RANGE|Range|True
+ParameterBoolean|SUM|Sum|True
+ParameterBoolean|MEAN|Mean|True
+ParameterBoolean|VAR|Variance|True
+ParameterBoolean|STDDEV|Standard Deviation|True
 ParameterNumber|QUANTILE|Quantiles|None|None|0
 OutputVector|RESULT|Statistics
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolation.txt b/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolation.txt
index 0f9b323..118904a 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolation.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolation.txt
@@ -4,7 +4,6 @@ ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 ParameterSelection|METHOD|Method|[0] without B-spline refinement;[1] with B-spline refinement
 ParameterNumber|EPSILON|Threshold Error|0|None|0.0001
-ParameterBoolean|UPDATE|Update View|False
 Hardcoded|-TARGET_DEFINITION 0
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Global).txt b/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolationforCategories.txt
similarity index 63%
rename from python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Global).txt
rename to python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolationforCategories.txt
index 69d1337..e4104cb 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Global).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/MultilevelB-SplineInterpolationforCategories.txt
@@ -1,10 +1,11 @@
-Thin Plate Spline (Global)
+Multilevel B-Spline Interpolation for Categories
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 Hardcoded|-TARGET_DEFINITION 0
-ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_CATEGORIES|Categories
+OutputRaster|TARGET_PROPABILITY|Propability
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/Resampling.txt b/python/plugins/processing/algs/saga/description/2.2.2/Resampling.txt
index 3b8096c..1b33635 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/Resampling.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/Resampling.txt
@@ -3,9 +3,10 @@ grid_tools
 ParameterRaster|INPUT|Grid|False
 ParameterBoolean|KEEP_TYPE|Preserve Data Type|True
 Hardcoded|-TARGET_DEFINITION 0
-ParameterSelection|SCALE_UP_METHOD|Interpolation Method (Scale Up)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
-ParameterSelection|SCALE_DOWN_METHOD|Interpolation Method (Scale Down)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
+ParameterSelection|SCALE_UP|Upscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
+ParameterSelection|SCALE_DOWN|Downscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|OUTPUT|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/ResidualAnalysis(Grid).txt b/python/plugins/processing/algs/saga/description/2.2.2/ResidualAnalysis(Grid).txt
index 88c2fdf..5543942 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/ResidualAnalysis(Grid).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/ResidualAnalysis(Grid).txt
@@ -2,10 +2,11 @@ Residual analysis|Residual Analysis (Grid)
 statistics_grid
 ParameterRaster|GRID|Grid|False
 ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
-ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
-ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
-ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
-ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
+ParameterBoolean|BCENTER|Include Center Cell|True
+ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
+ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
+ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
+ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
 OutputRaster|MEAN|Mean Value
 OutputRaster|DIFF|Difference from Mean Value
 OutputRaster|STDDEV|Standard Deviation
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Local).txt b/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline.txt
similarity index 82%
rename from python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Local).txt
rename to python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline.txt
index 4cd6388..f55c020 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline(Local).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline.txt
@@ -1,4 +1,4 @@
-Thin Plate Spline (Local)
+Thin Plate Spline
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
@@ -7,9 +7,11 @@ ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 ParameterSelection|SEARCH_RANGE|Search Range|[0] local;[1] global
 ParameterNumber|SEARCH_RADIUS|Search Radius|0.0|None|1000.0
 ParameterSelection|SEARCH_POINTS_ALL|Number of Points|[0] maximum number of nearest points;[1] all points within search distance
+ParameterNumber|SEARCH_POINTS_MIN|Maximum Number of Points|1|None|16
 ParameterNumber|SEARCH_POINTS_MAX|Maximum Number of Points|1|None|20
 ParameterSelection|SEARCH_DIRECTION|Search Direction|[0] all directions;[1] quadrants
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/ConfusionMatrix(GridPolygons).txt b/python/plugins/processing/algs/saga/description/2.2.3/ConfusionMatrix(GridPolygons).txt
new file mode 100644
index 0000000..496cb9b
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/ConfusionMatrix(GridPolygons).txt
@@ -0,0 +1,12 @@
+Confusion Matrix (Polygons / Grid)
+imagery_classification
+ParameterRaster|GRID|Classification|False
+ParameterTable|GRID_LUT|Look-up Table|True
+ParameterTableField|GRID_LUT_MIN|Value|GRID_LUT|-1|True
+ParameterTableField|GRID_LUT_MAX|Value (Maximum)|GRID_LUT|-1|True
+ParameterTableField|GRID_LUT_NAM|Name|GRID_LUT|-1|True
+ParameterVector|POLYGONS|Polygons|2|False
+ParameterTableField|FIELD|Classes|POLYGONS|-1|False
+OutputTable|CONFUSION|Confusion Matrix
+OutputTable|CLASSES|Class Values
+OutputTable|SUMMARY|Summary
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/CreateGraticule.txt b/python/plugins/processing/algs/saga/description/2.2.3/CreateGraticule.txt
deleted file mode 100644
index d647697..0000000
--- a/python/plugins/processing/algs/saga/description/2.2.3/CreateGraticule.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Create Graticule
-shapes_tools
-ParameterVector|EXTENT|Extent|-1|True
-Extent EXTENT_X_MIN EXTENT_X_MAX EXTENT_Y_MIN EXTENT_Y_MAX
-ParameterNumber|DISTX|Division Width|None|None|1.0
-ParameterNumber|DISTY|Division Height|None|None|1.0
-ParameterSelection|TYPE|Type|[0] Lines;[1] Rectangles
-OutputVector|GRATICULE|Graticule
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/CreateLinesGraticule.txt b/python/plugins/processing/algs/saga/description/2.2.3/CreateLinesGraticule.txt
new file mode 100644
index 0000000..5935272
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/CreateLinesGraticule.txt
@@ -0,0 +1,9 @@
+Create Lines Graticule|Create Graticule
+shapes_tools
+Hardcoded|-TYPE 0
+ParameterVector|EXTENT|Extent|-1|True
+Extent EXTENT_X_MIN EXTENT_X_MAX EXTENT_Y_MIN EXTENT_Y_MAX
+ParameterNumber|DIVISION_X|Division Width|None|None|1.0
+ParameterNumber|DIVISION_Y|Division Height|None|None|1.0
+ParameterSelection|ALIGNMENT|Alignment|[0] Bottom left;[1] Top left;[2] Bottom right;[3] Top right;[4] Centered|0
+OutputVector|GRATICULE_LINE|Lines Graticule
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/CreatePolygonsGraticule.txt b/python/plugins/processing/algs/saga/description/2.2.3/CreatePolygonsGraticule.txt
new file mode 100644
index 0000000..45418f8
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/CreatePolygonsGraticule.txt
@@ -0,0 +1,9 @@
+Create Polygons Graticule|Create Graticule
+shapes_tools
+Hardcoded|-TYPE 1
+ParameterVector|EXTENT|Extent|-1|True
+Extent EXTENT_X_MIN EXTENT_X_MAX EXTENT_Y_MIN EXTENT_Y_MAX
+ParameterNumber|DIVISION_X|Division Width|None|None|1.0
+ParameterNumber|DIVISION_Y|Division Height|None|None|1.0
+ParameterSelection|ALIGNMENT|Alignment|[0] Bottom left;[1] Top left;[2] Bottom right;[3] Top right;[4] Centered|0
+OutputVector|GRATICULE_RECT|Rectangle Graticule
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(ADI).txt b/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(ADI).txt
new file mode 100644
index 0000000..ffcb58f
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(ADI).txt
@@ -0,0 +1,11 @@
+Diffusive Hillslope Evolution (ADI)
+sim_qm_of_esp
+ParameterRaster|DEM|Elevation|False
+ParameterRaster|CHANNELS|Channel Mask|True
+ParameterBoolean|UPDATE|Update|True
+ParameterNumber|KAPPA|Diffusivity [m2/kyr]|0.0|None|10.0
+ParameterNumber|DURATION|Simulation Time [kyr]|0.0|None|10000.0
+ParameterSelection|TIMESTEP|Time Step|[0] user defined;[1] automatically|1
+ParameterNumber|DTIME|Time Step [kyr]|0.0|None|1000.0
+OutputRaster|MODEL|Modelled Elevation
+OutputRaster|DIFF|Elevation Difference
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(FTCS).txt b/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(FTCS).txt
new file mode 100644
index 0000000..9338a83
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/DiffusiveHillslopeEvolution(FTCS).txt
@@ -0,0 +1,11 @@
+Diffusive Hillslope Evolution (FTCS)
+sim_qm_of_esp
+ParameterRaster|DEM|Elevation|False
+ParameterBoolean|UPDATE|Update|True
+ParameterNumber|KAPPA|Diffusivity [m2/kyr]|0.0|None|1.0
+ParameterNumber|DURATION|Simulation Time [kyr]|0.0|None|100.0
+ParameterSelection|TIMESTEP|Time Step|[0] user defined;[1] automatically|1
+ParameterNumber|DTIME|Time Step [kyr]|0.0|None|10.0
+ParameterSelection|NEIGHBOURS|Neighbourhood|[0] Neumann;[1] Moore|1
+OutputRaster|MODEL|Modelled Elevation
+OutputRaster|DIFF|Elevation Difference
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/DiversityOfCategories.txt b/python/plugins/processing/algs/saga/description/2.2.3/DiversityOfCategories.txt
new file mode 100644
index 0000000..c75c9da
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/DiversityOfCategories.txt
@@ -0,0 +1,15 @@
+Diversity of Categories
+grid_analysis
+ParameterRaster|CATEGORIES|Categories|False
+ParameterSelection|SEARCH_MODE|Search Mode|[0] square;[1] circle|1
+ParameterNumber|SEARCH_RADIUS|Search Radius Distance|1.0|3|3
+ParameterSelection|NB_CASE|Connectivity Neighbourhood|[0] Rook's case;[1] Queen's case|1
+ParameterSelection|DW_WEIGHTING|Weighting Function|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
+ParameterNumber|DW_IDW_POWER|Inverse Distance Weighting Power|0.0|None|1
+ParameterBoolean|DW_IDW_OFFSET|Inverse Distance Offset|True
+ParameterNumber|DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|0.0|None|0.7
+OutputRaster|COUNT|Number of Categories
+OutputRaster|DIVERSITY|Diversity
+OutputRaster|SIZE_MEAN|Average Size
+OutputRaster|SIZE_SKEW|Skewness
+OutputRaster|CONNECTIVITY|Connectivity
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/FillSinks(QMofESP).txt b/python/plugins/processing/algs/saga/description/2.2.3/FillSinks(QMofESP).txt
new file mode 100644
index 0000000..5ba95ca
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/FillSinks(QMofESP).txt
@@ -0,0 +1,6 @@
+Fill Sinks (QM of ESP)
+sim_qm_of_esp
+ParameterRaster|DEM|DEM|False
+ParameterNumber|DZFILL|Fill Increment|0.0|None|0.01
+OutputRaster|FILLED|DEM Without Sinks
+OutputRaster|SINKS|Sinks
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/FlowAccumulation(QMofESP).txt b/python/plugins/processing/algs/saga/description/2.2.3/FlowAccumulation(QMofESP).txt
new file mode 100644
index 0000000..a835e2f
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/FlowAccumulation(QMofESP).txt
@@ -0,0 +1,6 @@
+Flow Accumulation (QM of ESP)
+sim_qm_of_esp
+ParameterRaster|DEM|DEM|False
+ParameterSelection|PREPROC|Preprocessing|[0] none;[1] fill sinks temporarily;[2] fill sinks permanently|1
+ParameterNumber|DZFILL|Fill Increment|0.00|None|0.01
+OutputRaster|FLOW|Contributing Area
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/GridMasking.txt b/python/plugins/processing/algs/saga/description/2.2.3/GridMasking.txt
index 5af5b18..d15e2f0 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/GridMasking.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/GridMasking.txt
@@ -3,3 +3,4 @@ grid_tools
 ParameterRaster|GRID|Grid|False
 ParameterRaster|MASK|Mask|False
 OutputRaster|MASKED|Masked Grid
+AllowUnmatching
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/GridStatisticsforPolygons.txt b/python/plugins/processing/algs/saga/description/2.2.3/GridStatisticsforPolygons.txt
index ad76d9f..1d3d170 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/GridStatisticsforPolygons.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/GridStatisticsforPolygons.txt
@@ -2,13 +2,15 @@ Grid Statistics for Polygons
 shapes_grid
 ParameterMultipleInput|GRIDS|Grids|3|False
 ParameterVector|POLYGONS|Polygons|2|False
-ParameterBoolean|COUNT         |Number of Cells|True
-ParameterBoolean|MIN           |Minimum|True
-ParameterBoolean|MAX           |Maximum|True
-ParameterBoolean|RANGE         |Range|True
-ParameterBoolean|SUM           |Sum|True
-ParameterBoolean|MEAN          |Mean|True
-ParameterBoolean|VAR           |Variance|True
-ParameterBoolean|STDDEV        |Standard Deviation|True
+ParameterSelection|METHOD|Method|[0] Standard;[1] Shape wise, supports overlapping polygons|1
+ParameterSelection|NAMING|Grid Naming|[0] Grid number;[1] Grid name|1
+ParameterBoolean|COUNT|Number of Cells|True
+ParameterBoolean|MIN|Minimum|True
+ParameterBoolean|MAX|Maximum|True
+ParameterBoolean|RANGE|Range|True
+ParameterBoolean|SUM|Sum|True
+ParameterBoolean|MEAN|Mean|True
+ParameterBoolean|VAR|Variance|True
+ParameterBoolean|STDDEV|Standard Deviation|True
 ParameterNumber|QUANTILE|Quantiles|None|None|0
-OutputVector|RESULT|Statistics
+OutputVector|RESULT|Statistics
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/Mosaicking.txt b/python/plugins/processing/algs/saga/description/2.2.3/Mosaicking.txt
index b8bb1d1..16f0439 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/Mosaicking.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/Mosaicking.txt
@@ -2,6 +2,7 @@ Mosaick raster layers|Mosaicking
 grid_tools
 AllowUnmatching
 ParameterMultipleInput|GRIDS|Input Grids|3|False
+ParameterString|NAME|Name|Mosaic
 ParameterSelection|TYPE|Preferred data storage type|[0] 1 bit;[1] 1 byte unsigned integer;[2] 1 byte signed integer;[3] 2 byte unsigned integer;[4] 2 byte signed integer;[5] 4 byte unsigned integer;[6] 4 byte signed integer;[7] 4 byte floating point;[8] 8 byte floating point|7
 ParameterSelection|INTERPOL|Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation|0
 ParameterSelection|OVERLAP|Overlapping Areas|[0] first;[1] last;[2] minimum;[3] maximum;[4] mean;[5] blend boundary;[6] feathering|1
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolation.txt b/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolation.txt
index 0f9b323..118904a 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolation.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolation.txt
@@ -4,7 +4,6 @@ ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 ParameterSelection|METHOD|Method|[0] without B-spline refinement;[1] with B-spline refinement
 ParameterNumber|EPSILON|Threshold Error|0|None|0.0001
-ParameterBoolean|UPDATE|Update View|False
 Hardcoded|-TARGET_DEFINITION 0
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
diff --git a/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Global).txt b/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolationforCategories.txt
similarity index 63%
rename from python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Global).txt
rename to python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolationforCategories.txt
index 69d1337..e4104cb 100644
--- a/python/plugins/processing/algs/saga/description/2.2.2/ThinPlateSpline(Global).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/MultilevelB-SplineInterpolationforCategories.txt
@@ -1,10 +1,11 @@
-Thin Plate Spline (Global)
+Multilevel B-Spline Interpolation for Categories
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
 Hardcoded|-TARGET_DEFINITION 0
-ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_CATEGORIES|Categories
+OutputRaster|TARGET_PROPABILITY|Propability
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/Resampling.txt b/python/plugins/processing/algs/saga/description/2.2.3/Resampling.txt
index 3b8096c..d07dffa 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/Resampling.txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/Resampling.txt
@@ -3,9 +3,10 @@ grid_tools
 ParameterRaster|INPUT|Grid|False
 ParameterBoolean|KEEP_TYPE|Preserve Data Type|True
 Hardcoded|-TARGET_DEFINITION 0
-ParameterSelection|SCALE_UP_METHOD|Interpolation Method (Scale Up)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
-ParameterSelection|SCALE_DOWN_METHOD|Interpolation Method (Scale Down)|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
+ParameterSelection|SCALE_UP|Upscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation;[5] Mean Value;[6] Mean Value (cell area weighted);[7] Minimum Value;[8] Maximum Value;[9] Majority
+ParameterSelection|SCALE_DOWN|Downscaling Method|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|OUTPUT|Grid
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/ResidualAnalysis(Grid).txt b/python/plugins/processing/algs/saga/description/2.2.3/ResidualAnalysis(Grid).txt
index 88c2fdf..33471e7 100644
--- a/python/plugins/processing/algs/saga/description/2.2.3/ResidualAnalysis(Grid).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/ResidualAnalysis(Grid).txt
@@ -1,11 +1,13 @@
 Residual analysis|Residual Analysis (Grid)
 statistics_grid
 ParameterRaster|GRID|Grid|False
+ParameterSelection|MODE|Search Mode|[0] square;[1] circle|1
 ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
-ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
-ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
-ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
-ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
+ParameterBoolean|BCENTER|Include Center Cell|True
+ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting|0
+ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|0.0|None|1
+ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
+ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|0.0|None|1.0
 OutputRaster|MEAN|Mean Value
 OutputRaster|DIFF|Difference from Mean Value
 OutputRaster|STDDEV|Standard Deviation
diff --git a/python/plugins/processing/algs/saga/description/2.2.3/SuccessiveFlowRouting.txt b/python/plugins/processing/algs/saga/description/2.2.3/SuccessiveFlowRouting.txt
new file mode 100644
index 0000000..93aea05
--- /dev/null
+++ b/python/plugins/processing/algs/saga/description/2.2.3/SuccessiveFlowRouting.txt
@@ -0,0 +1,7 @@
+Successive Flow Routing
+sim_qm_of_esp
+ParameterRaster|DEM|DEM|False
+ParameterNumber|ITERATIONS|Iterations|1|None|100
+ParameterNumber|RUNOFF|Runoff|None|None|1.00
+ParameterNumber|MANNING|Manning's Roughness|None|None|0.20
+OutputRaster|FLOW|Flow
\ No newline at end of file
diff --git a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Local).txt b/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline.txt
similarity index 82%
rename from python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Local).txt
rename to python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline.txt
index 4cd6388..f55c020 100644
--- a/python/plugins/processing/algs/saga/description/2.2.0/ThinPlateSpline(Local).txt
+++ b/python/plugins/processing/algs/saga/description/2.2.3/ThinPlateSpline.txt
@@ -1,4 +1,4 @@
-Thin Plate Spline (Local)
+Thin Plate Spline
 grid_spline
 ParameterVector|SHAPES|Points|0|False
 ParameterTableField|FIELD|Attribute|SHAPES|-1|False
@@ -7,9 +7,11 @@ ParameterNumber|REGULARISATION|Regularisation|0.0000|None|0.0001
 ParameterSelection|SEARCH_RANGE|Search Range|[0] local;[1] global
 ParameterNumber|SEARCH_RADIUS|Search Radius|0.0|None|1000.0
 ParameterSelection|SEARCH_POINTS_ALL|Number of Points|[0] maximum number of nearest points;[1] all points within search distance
+ParameterNumber|SEARCH_POINTS_MIN|Maximum Number of Points|1|None|16
 ParameterNumber|SEARCH_POINTS_MAX|Maximum Number of Points|1|None|20
 ParameterSelection|SEARCH_DIRECTION|Search Direction|[0] all directions;[1] quadrants
 Extent TARGET_USER_XMIN TARGET_USER_XMAX TARGET_USER_YMIN TARGET_USER_YMAX
 ParameterNumber|TARGET_USER_SIZE|Cellsize|None|None|100.0
 ParameterSelection|TARGET_USER_FITS|Fit|[0] nodes;[1] cells
-OutputRaster|TARGET_OUT_GRID|Grid
+ParameterRaster|TARGET_TEMPLATE|Target system|True
+OutputRaster|TARGET_OUT_GRID|Grid
\ No newline at end of file
diff --git a/python/plugins/processing/gui/BatchPanel.py b/python/plugins/processing/gui/BatchPanel.py
index 0b9075a..b84f188 100644
--- a/python/plugins/processing/gui/BatchPanel.py
+++ b/python/plugins/processing/gui/BatchPanel.py
@@ -30,7 +30,7 @@ import json
 
 from PyQt4 import uic
 from PyQt4.QtGui import (QWidget, QIcon, QTableWidgetItem, QComboBox, QLineEdit,
-                         QHeaderView, QFileDialog)
+                         QHeaderView, QFileDialog, QMessageBox)
 
 from qgis.core import QgsApplication
 
@@ -180,30 +180,39 @@ class BatchPanel(BASE, WIDGET):
         if filename:
             with open(filename) as f:
                 values = json.load(f)
+        else:
+            # If the user clicked on the cancel button.
+            return
 
         self.tblParameters.setRowCount(0)
-        for row, alg in enumerate(values):
-            self.addRow()
-            params = alg[self.PARAMETERS]
-            outputs = alg[self.OUTPUTS]
-            column = 0
-            for param in self.alg.parameters:
-                if param.hidden:
-                    continue
-                widget = self.tblParameters.cellWidget(row, column)
-                if param.name in params:
-                    value = params[param.name]
-                    self.setValueInWidget(widget, value)
-                column += 1
-
-            for out in self.alg.outputs:
-                if out.hidden:
-                    continue
-                widget = self.tblParameters.cellWidget(row, column)
-                if out.name in outputs:
-                    value = outputs[out.name]
-                    self.setValueInWidget(widget, value)
-                column += 1
+        try:
+            for row, alg in enumerate(values):
+                self.addRow()
+                params = alg[self.PARAMETERS]
+                outputs = alg[self.OUTPUTS]
+                column = 0
+                for param in self.alg.parameters:
+                    if param.hidden:
+                        continue
+                    widget = self.tblParameters.cellWidget(row, column)
+                    if param.name in params:
+                        value = params[param.name]
+                        self.setValueInWidget(widget, value)
+                    column += 1
+
+                for out in self.alg.outputs:
+                    if out.hidden:
+                        continue
+                    widget = self.tblParameters.cellWidget(row, column)
+                    if out.name in outputs:
+                        value = outputs[out.name]
+                        self.setValueInWidget(widget, value)
+                    column += 1
+        except TypeError:
+            QMessageBox.critical(
+                self,
+                self.tr('Error'),
+                self.tr('An error occured while reading your file.'))
 
     def setValueInWidget(self, widget, value):
         if isinstance(widget, (BatchInputSelectionPanel, QLineEdit, FileSelectionPanel)):
diff --git a/python/plugins/processing/gui/ProcessingToolbox.py b/python/plugins/processing/gui/ProcessingToolbox.py
index e2e6267..adc4e2d 100644
--- a/python/plugins/processing/gui/ProcessingToolbox.py
+++ b/python/plugins/processing/gui/ProcessingToolbox.py
@@ -113,7 +113,9 @@ class ProcessingToolbox(BASE, WIDGET):
                         if text in alg.name:
                             self.disabledWithMatchingAlgs.append(providerName)
                             break
-            self.txtDisabled.setVisible(bool(self.disabledWithMatchingAlgs))
+            showTip = ProcessingConfig.getSetting(ProcessingConfig.SHOW_PROVIDERS_TOOLTIP)
+            if showTip:
+                self.txtDisabled.setVisible(bool(self.disabledWithMatchingAlgs))
         else:
             self.algorithmTree.collapseAll()
             self.algorithmTree.invisibleRootItem().child(0).setExpanded(True)
diff --git a/python/plugins/processing/modeler/ModelerAlgorithm.py b/python/plugins/processing/modeler/ModelerAlgorithm.py
index 5c15217..2e7a743 100644
--- a/python/plugins/processing/modeler/ModelerAlgorithm.py
+++ b/python/plugins/processing/modeler/ModelerAlgorithm.py
@@ -386,7 +386,9 @@ class ModelerAlgorithm(GeoAlgorithm):
                 if not param.setValue(value) and not isinstance(param,
                                                                 ParameterDataObject):
                     raise GeoAlgorithmExecutionException(
-                        self.tr('Wrong value: %s', 'ModelerAlgorithm') % value)
+                        self.tr('Wrong value %s for %s %s', 'ModelerAlgorithm')
+                        % (value, param.__class__.__name__, param.name))
+
         for out in algInstance.outputs:
             if not out.hidden:
                 if out.name in alg.outputs:
diff --git a/python/plugins/processing/tools/raster.py b/python/plugins/processing/tools/raster.py
index 00082bd..4cfd3e9 100644
--- a/python/plugins/processing/tools/raster.py
+++ b/python/plugins/processing/tools/raster.py
@@ -64,8 +64,14 @@ def scanraster(layer, progress):
 
 
 def mapToPixel(mX, mY, geoTransform):
-    (pX, pY) = gdal.ApplyGeoTransform(
-        gdal.InvGeoTransform(geoTransform)[1], mX, mY)
+    try:
+        # GDAL 1.x
+        (pX, pY) = gdal.ApplyGeoTransform(
+            gdal.InvGeoTransform(geoTransform)[1], mX, mY)
+    except TypeError:
+        # GDAL 2.x
+        (pX, pY) = gdal.ApplyGeoTransform(
+            gdal.InvGeoTransform(geoTransform), mX, mY)
     return (int(pX), int(pY))
 
 
diff --git a/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py b/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
index 4ab4c22..f91afe1 100644
--- a/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
+++ b/python/pyplugin_installer/qgsplugininstallerinstallingdialog.py
@@ -29,10 +29,10 @@ from PyQt4.QtGui import QDialog
 from PyQt4.QtNetwork import QNetworkRequest, QNetworkReply
 
 import qgis
-from qgis.core import QgsNetworkAccessManager
+from qgis.core import QgsNetworkAccessManager, QgsAuthManager
 
 from ui_qgsplugininstallerinstallingbase import Ui_QgsPluginInstallerInstallingDialogBase
-from installer_data import removeDir
+from installer_data import removeDir, repositories
 from unzip import unzip
 
 
@@ -57,11 +57,27 @@ class QgsPluginInstallerInstallingDialog(QDialog, Ui_QgsPluginInstallerInstallin
         self.file = QFile(tmpPath)
 
         self.request = QNetworkRequest(url)
-        self.reply = QgsNetworkAccessManager.instance().get(self.request)
-        self.reply.downloadProgress.connect(self.readProgress)
-        self.reply.finished.connect(self.requestFinished)
-
-        self.stateChanged(4)
+        authcfg = repositories.all()[plugin["zip_repository"]]["authcfg"]
+        if authcfg and isinstance(authcfg, basestring):
+            if not QgsAuthManager.instance().updateNetworkRequest(
+                    self.request, authcfg.strip()):
+                self.mResult = self.tr(
+                    "Update of network request with authentication "
+                    "credentials FAILED for configuration '{0}'").format(authcfg)
+                self.request = None
+
+        if self.request is not None:
+            self.reply = QgsNetworkAccessManager.instance().get(self.request)
+            self.reply.downloadProgress.connect(self.readProgress)
+            self.reply.finished.connect(self.requestFinished)
+
+            self.stateChanged(4)
+
+    def exec_(self):
+        if self.request is None:
+            return QDialog.Rejected
+
+        QDialog.exec_(self)
 
     # ----------------------------------------- #
     def result(self):
diff --git a/scripts/release.pl b/scripts/release.pl
index 37b5e18..1032af2 100755
--- a/scripts/release.pl
+++ b/scripts/release.pl
@@ -128,11 +128,8 @@ if( $domajor ) {
 	pod2usage("No version change");
 }
 
-my $splashwidth;
 unless( $dopoint ) {
 	pod2usage("Splash images/splash/splash-$newmajor.$newminor.png not found") unless -r "images/splash/splash-$newmajor.$newminor.png";
-	$splashwidth = `identify -format '%w' images/splash/splash-$newmajor.$newminor.png`;
-	print "WARNING: Splash images/splash/splash-$newmajor.$newminor.png is $splashwidth pixels wide - will be rescaled\n" if $splashwidth != 600;
 	pod2usage("NSIS image ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.bmp not found") unless -r "ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.bmp";
 }
 
@@ -172,11 +169,7 @@ run( "dch --newversion $version 'Release of $version'", "dch failed" );
 run( "cp debian/changelog /tmp", "backup changelog failed" );
 
 unless( $dopoint ) {
-	if( $splashwidth != 600 ) {
-		run( "convert -resize 600x300 images/splash/splash-$newmajor.$newminor.png images/splash/splash.png", "rescale of splash png failed" );
-	} else {
-		run( "cp -v images/splash/splash-$newmajor.$newminor.png images/splash/splash.png", "splash png switch failed" );
-	}
+	run( "cp -v images/splash/splash-$newmajor.$newminor.png images/splash/splash.png", "splash png switch failed" );
 	run( "cp -v ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.bmp ms-windows/Installer-Files/WelcomeFinishPage.bmp", "installer bitmap switch failed" );
 
 	if( -f "images/splash/splash-release.xcf.bz2" ) {
@@ -194,7 +187,7 @@ unless( $dopoint ) {
 }
 
 print "Producing archive...\n";
-run( "git archive --format tar --prefix=qgis-$version/ $reltag | bzip2 -c >qgis-$version.tar.bz2", "git archive failed" );
+run( "git archive --format tar --prefix=qgis-$version/ $reltag $ltrtag | bzip2 -c >qgis-$version.tar.bz2", "git archive failed" );
 run( "md5sum qgis-$version.tar.bz2 >qgis-$version.tar.bz2.md5", "md5sum failed" );
 
 unless( $dopoint ) {
diff --git a/src/analysis/vector/qgstransectsample.cpp b/src/analysis/vector/qgstransectsample.cpp
index b7a23c7..11a1b02 100644
--- a/src/analysis/vector/qgstransectsample.cpp
+++ b/src/analysis/vector/qgstransectsample.cpp
@@ -174,7 +174,7 @@ int QgsTransectSample::createSample( QProgressDialog* pd )
     }
 
     //save clipped baseline to file
-    QgsFeature blFeature;
+    QgsFeature blFeature( usedBaselineFields );
     blFeature.setGeometry( *clippedBaseline );
     blFeature.setAttribute( "stratum_id", strataId );
     blFeature.setAttribute( "ok", "f" );
@@ -201,7 +201,7 @@ int QgsTransectSample::createSample( QProgressDialog* pd )
       QgsPoint sampleQgsPoint = samplePoint->asPoint();
       QgsPoint latLongSamplePoint = toLatLongTransform.transform( sampleQgsPoint );
 
-      QgsFeature samplePointFeature;
+      QgsFeature samplePointFeature( outputPointFields );
       samplePointFeature.setGeometry( samplePoint );
       samplePointFeature.setAttribute( "id", nTotalTransects + 1 );
       samplePointFeature.setAttribute( "station_id", nCreatedTransects + 1 );
@@ -274,7 +274,7 @@ int QgsTransectSample::createSample( QProgressDialog* pd )
       }
 
       QgsFeatureId fid( nCreatedTransects );
-      QgsFeature sampleLineFeature( fid );
+      QgsFeature sampleLineFeature( outputPointFields, fid );
       sampleLineFeature.setGeometry( lineClipStratum );
       sampleLineFeature.setAttribute( "id", nTotalTransects + 1 );
       sampleLineFeature.setAttribute( "station_id", nCreatedTransects + 1 );
diff --git a/src/analysis/vector/qgszonalstatistics.h b/src/analysis/vector/qgszonalstatistics.h
index d0b6ea8..70b2628 100644
--- a/src/analysis/vector/qgszonalstatistics.h
+++ b/src/analysis/vector/qgszonalstatistics.h
@@ -67,7 +67,7 @@ class ANALYSIS_EXPORT QgsZonalStatistics
         {
           reset();
         }
-        void reset() { sum = 0; count = 0; max = FLT_MIN; min = FLT_MAX; valueCount.clear(); values.clear(); }
+        void reset() { sum = 0; count = 0; max = -FLT_MAX; min = FLT_MAX; valueCount.clear(); values.clear(); }
         void addValue( float value, double weight = 1.0 )
         {
           if ( weight < 1.0 )
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index b20a9c7..96c086d 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -375,11 +375,7 @@ IF (WITH_QWTPOLAR)
       )
 
       SET(QWTPOLAR_INCLUDE_DIR gps/qwtpolar-0.1)
-    ELSE(QWT_VERSION_STR VERSION_LESS "6.0.0")
-      IF(NOT QWT_VERSION_STR VERSION_LESS "6.1.0")
-        MESSAGE(FATAL_ERROR "Internal QwtPolar does not support Qwt 6.1 and above")
-      ENDIF(NOT QWT_VERSION_STR VERSION_LESS "6.1.0")
-
+    ELSEIF(QWT_VERSION_STR VERSION_LESS "6.1.0")
       SET(QGIS_APP_SRCS
         ${QGIS_APP_SRCS}
         gps/qwtpolar-1.0/qwt_polar_canvas.cpp
@@ -409,6 +405,36 @@ IF (WITH_QWTPOLAR)
       )
 
       SET(QWTPOLAR_INCLUDE_DIR gps/qwtpolar-1.0)
+    ELSE(QWT_VERSION_STR VERSION_LESS "6.1.0")
+      SET(QGIS_APP_SRCS
+        ${QGIS_APP_SRCS}
+        gps/qwtpolar-1.1.1/qwt_polar_canvas.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_curve.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_fitter.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_grid.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_item.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_itemdict.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_layout.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_magnifier.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_marker.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_panner.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_picker.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp
+        gps/qwtpolar-1.1.1/qwt_polar_spectrogram.cpp
+      )
+
+      SET (QGIS_APP_MOC_HDRS
+        ${QGIS_APP_MOC_HDRS}
+        gps/qwtpolar-1.1.1/qwt_polar_canvas.h
+        gps/qwtpolar-1.1.1/qwt_polar_magnifier.h
+        gps/qwtpolar-1.1.1/qwt_polar_panner.h
+        gps/qwtpolar-1.1.1/qwt_polar_picker.h
+        gps/qwtpolar-1.1.1/qwt_polar_plot.h
+        gps/qwtpolar-1.1.1/qwt_polar_renderer.h
+      )
+
+      SET(QWTPOLAR_INCLUDE_DIR gps/qwtpolar-1.1.1)
     ENDIF(QWT_VERSION_STR VERSION_LESS "6.0.0")
 
     SET(QWTPOLAR_LIBRARY "")
diff --git a/src/app/composer/qgscomposerpicturewidget.cpp b/src/app/composer/qgscomposerpicturewidget.cpp
index 3bddf1a..8374636 100644
--- a/src/app/composer/qgscomposerpicturewidget.cpp
+++ b/src/app/composer/qgscomposerpicturewidget.cpp
@@ -22,6 +22,7 @@
 #include "qgscomposeritemwidget.h"
 #include "qgscomposition.h"
 #include "qgsexpressionbuilderdialog.h"
+#include "qgssvgcache.h"
 #include <QDoubleValidator>
 #include <QFileDialog>
 #include <QFileInfo>
@@ -36,6 +37,13 @@ QgsComposerPictureWidget::QgsComposerPictureWidget( QgsComposerPicture* picture
 {
   setupUi( this );
 
+  mFillColorButton->setAllowAlpha( true );
+  mFillColorButton->setColorDialogTitle( tr( "Select fill color" ) );
+  mFillColorButton->setContext( "composer" );
+  mOutlineColorButton->setAllowAlpha( true );
+  mOutlineColorButton->setColorDialogTitle( tr( "Select outline color" ) );
+  mOutlineColorButton->setContext( "composer" );
+
   //add widget for general composer item properties
   QgsComposerItemWidget* itemPropertiesWidget = new QgsComposerItemWidget( this, picture );
   mainLayout->addWidget( itemPropertiesWidget );
@@ -109,6 +117,7 @@ void QgsComposerPictureWidget::on_mPictureBrowseButton_clicked()
   mPictureLineEdit->blockSignals( true );
   mPictureLineEdit->setText( filePath );
   mPictureLineEdit->blockSignals( false );
+  updateSvgParamGui();
 
   //pass file path to QgsComposerPicture
   if ( mPicture )
@@ -126,13 +135,11 @@ void QgsComposerPictureWidget::on_mPictureLineEdit_editingFinished()
   {
     QString filePath = mPictureLineEdit->text();
 
-    //check if file exists
-    QFileInfo fileInfo( filePath );
-
     mPicture->beginCommand( tr( "Picture changed" ) );
     mPicture->setPicturePath( filePath );
     mPicture->update();
     mPicture->endCommand();
+    updateSvgParamGui();
   }
 }
 
@@ -160,6 +167,7 @@ void QgsComposerPictureWidget::on_mPreviewListWidget_currentItemChanged( QListWi
   mPictureLineEdit->setText( absoluteFilePath );
   mPicture->update();
   mPicture->endCommand();
+  updateSvgParamGui();
 }
 
 void QgsComposerPictureWidget::on_mAddDirectoryButton_clicked()
@@ -382,6 +390,9 @@ void QgsComposerPictureWidget::setGuiElementValues()
     mRotationFromComposerMapCheckBox->blockSignals( true );
     mResizeModeComboBox->blockSignals( true );
     mAnchorPointComboBox->blockSignals( true );
+    mFillColorButton->blockSignals( true );
+    mOutlineColorButton->blockSignals( true );
+    mOutlineWidthSpinBox->blockSignals( true );
 
     mPictureLineEdit->setText( mPicture->picturePath() );
     mPictureRotationSpinBox->setValue( mPicture->pictureRotation() );
@@ -424,17 +435,112 @@ void QgsComposerPictureWidget::setGuiElementValues()
       mAnchorPointComboBox->setEnabled( false );
     }
 
+    updateSvgParamGui( false );
+    mFillColorButton->setColor( mPicture->svgFillColor() );
+    mOutlineColorButton->setColor( mPicture->svgBorderColor() );
+    mOutlineWidthSpinBox->setValue( mPicture->svgBorderWidth() );
+
     mRotationFromComposerMapCheckBox->blockSignals( false );
     mPictureRotationSpinBox->blockSignals( false );
     mPictureLineEdit->blockSignals( false );
     mComposerMapComboBox->blockSignals( false );
     mResizeModeComboBox->blockSignals( false );
     mAnchorPointComboBox->blockSignals( false );
+    mFillColorButton->blockSignals( false );
+    mOutlineColorButton->blockSignals( false );
+    mOutlineWidthSpinBox->blockSignals( false );
 
     populateDataDefinedButtons();
   }
 }
 
+QIcon QgsComposerPictureWidget::svgToIcon( const QString& filePath ) const
+{
+  QColor fill, outline;
+  double outlineWidth, fillOpacity, outlineOpacity;
+  bool fillParam, fillOpacityParam, outlineParam, outlineWidthParam, outlineOpacityParam;
+  bool hasDefaultFillColor = false, hasDefaultFillOpacity = false, hasDefaultOutlineColor = false,
+                             hasDefaultOutlineWidth = false, hasDefaultOutlineOpacity = false;
+  QgsSvgCache::instance()->containsParams( filePath, fillParam, hasDefaultFillColor, fill,
+      fillOpacityParam, hasDefaultFillOpacity, fillOpacity,
+      outlineParam, hasDefaultOutlineColor, outline,
+      outlineWidthParam, hasDefaultOutlineWidth, outlineWidth,
+      outlineOpacityParam, hasDefaultOutlineOpacity, outlineOpacity );
+
+  //if defaults not set in symbol, use these values
+  if ( !hasDefaultFillColor )
+    fill = QColor( 200, 200, 200 );
+  fill.setAlphaF( hasDefaultFillOpacity ? fillOpacity : 1.0 );
+  if ( !hasDefaultOutlineColor )
+    outline = Qt::black;
+  outline.setAlphaF( hasDefaultOutlineOpacity ? outlineOpacity : 1.0 );
+  if ( !hasDefaultOutlineWidth )
+    outlineWidth = 0.6;
+
+  bool fitsInCache; // should always fit in cache at these sizes (i.e. under 559 px ^ 2, or half cache size)
+  const QImage& img = QgsSvgCache::instance()->svgAsImage( filePath, 30.0, fill, outline, outlineWidth, 3.5 /*appr. 88 dpi*/, 1.0, fitsInCache );
+
+  return QIcon( QPixmap::fromImage( img ) );
+}
+
+void QgsComposerPictureWidget::updateSvgParamGui( bool resetValues )
+{
+  if ( !mPicture )
+    return;
+
+  QString picturePath = mPicture->picturePath();
+  if ( !picturePath.endsWith( ".svg", Qt::CaseInsensitive ) )
+  {
+    mFillColorButton->setEnabled( false );
+    mOutlineColorButton->setEnabled( false );
+    mOutlineWidthSpinBox->setEnabled( false );
+    return;
+  }
+
+  //activate gui for svg parameters only if supported by the svg file
+  bool hasFillParam, hasFillOpacityParam, hasOutlineParam, hasOutlineWidthParam, hasOutlineOpacityParam;
+  QColor defaultFill, defaultOutline;
+  double defaultOutlineWidth, defaultFillOpacity, defaultOutlineOpacity;
+  bool hasDefaultFillColor, hasDefaultFillOpacity, hasDefaultOutlineColor, hasDefaultOutlineWidth, hasDefaultOutlineOpacity;
+  QgsSvgCache::instance()->containsParams( picturePath, hasFillParam, hasDefaultFillColor, defaultFill,
+      hasFillOpacityParam, hasDefaultFillOpacity, defaultFillOpacity,
+      hasOutlineParam, hasDefaultOutlineColor, defaultOutline,
+      hasOutlineWidthParam, hasDefaultOutlineWidth, defaultOutlineWidth,
+      hasOutlineOpacityParam, hasDefaultOutlineOpacity, defaultOutlineOpacity );
+
+  if ( resetValues )
+  {
+    QColor fill = mFillColorButton->color();
+    double newOpacity = hasFillOpacityParam ? fill.alphaF() : 1.0;
+    if ( hasDefaultFillColor )
+    {
+      fill = defaultFill;
+    }
+    fill.setAlphaF( hasDefaultFillOpacity ? defaultFillOpacity : newOpacity );
+    mFillColorButton->setColor( fill );
+  }
+  mFillColorButton->setEnabled( hasFillParam );
+  mFillColorButton->setAllowAlpha( hasFillOpacityParam );
+  if ( resetValues )
+  {
+    QColor outline = mOutlineColorButton->color();
+    double newOpacity = hasOutlineOpacityParam ? outline.alphaF() : 1.0;
+    if ( hasDefaultOutlineColor )
+    {
+      outline = defaultOutline;
+    }
+    outline.setAlphaF( hasDefaultOutlineOpacity ? defaultOutlineOpacity : newOpacity );
+    mOutlineColorButton->setColor( outline );
+  }
+  mOutlineColorButton->setEnabled( hasOutlineParam );
+  mOutlineColorButton->setAllowAlpha( hasOutlineOpacityParam );
+  if ( hasDefaultOutlineWidth && resetValues )
+  {
+    mOutlineWidthSpinBox->setValue( defaultOutlineWidth );
+  }
+  mOutlineWidthSpinBox->setEnabled( hasOutlineWidthParam );
+}
+
 int QgsComposerPictureWidget::addDirectoryToPreview( const QString& path )
 {
   //go through all files of a directory
@@ -484,7 +590,8 @@ int QgsComposerPictureWidget::addDirectoryToPreview( const QString& path )
 
     if ( fileIsSvg )
     {
-      QIcon icon( filePath );
+      // render SVG file
+      QIcon icon = svgToIcon( filePath );
       listItem->setIcon( icon );
     }
     else //for pixel formats: create icon from scaled pixmap
@@ -589,6 +696,30 @@ void QgsComposerPictureWidget::loadPicturePreviews( bool collapsed )
   }
 }
 
+void QgsComposerPictureWidget::on_mFillColorButton_colorChanged( const QColor& color )
+{
+  mPicture->beginCommand( tr( "Picture fill color changed" ) );
+  mPicture->setSvgFillColor( color );
+  mPicture->endCommand();
+  mPicture->update();
+}
+
+void QgsComposerPictureWidget::on_mOutlineColorButton_colorChanged( const QColor& color )
+{
+  mPicture->beginCommand( tr( "Picture border color changed" ) );
+  mPicture->setSvgBorderColor( color );
+  mPicture->endCommand();
+  mPicture->update();
+}
+
+void QgsComposerPictureWidget::on_mOutlineWidthSpinBox_valueChanged( double d )
+{
+  mPicture->beginCommand( tr( "Picture border width changed" ) );
+  mPicture->setSvgBorderWidth( d );
+  mPicture->endCommand();
+  mPicture->update();
+}
+
 void QgsComposerPictureWidget::showEvent( QShowEvent * event )
 {
   Q_UNUSED( event );
diff --git a/src/app/composer/qgscomposerpicturewidget.h b/src/app/composer/qgscomposerpicturewidget.h
index 794a530..a497f1b 100644
--- a/src/app/composer/qgscomposerpicturewidget.h
+++ b/src/app/composer/qgscomposerpicturewidget.h
@@ -70,6 +70,10 @@ class QgsComposerPictureWidget: public QgsComposerItemBaseWidget, private Ui::Qg
      * @param collapsed Whether the parent group box is collapsed */
     void loadPicturePreviews( bool collapsed );
 
+    void on_mFillColorButton_colorChanged( const QColor& color );
+    void on_mOutlineColorButton_colorChanged( const QColor& color );
+    void on_mOutlineWidthSpinBox_valueChanged( double d );
+
   private:
     QgsComposerPicture* mPicture;
     /** Whether the picture selection previews have been loaded */
@@ -84,6 +88,11 @@ class QgsComposerPictureWidget: public QgsComposerItemBaseWidget, private Ui::Qg
     bool testImageFile( const QString& filename ) const;
     /** Updates the map combo box with the current composer map ids*/
     void refreshMapComboBox();
+
+    //! Renders an svg file to a QIcon, correctly handling any SVG parameters present in the file
+    QIcon svgToIcon( const QString& filePath ) const;
+
+    void updateSvgParamGui( bool resetValues = true );
 };
 
 #endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar.h
new file mode 100644
index 0000000..9830e30
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar.h
@@ -0,0 +1,84 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_H
+#define QWT_POLAR_H 1
+
+#include "qwt_polar_global.h"
+
+namespace QwtPolar
+{
+    //! Unit of an angle
+    enum AngleUnit
+    {
+        //! 0.0 -> 2_M_PI
+        Radians,
+
+        //! 0.0 -> 360.0
+        Degrees,
+
+        //! 0.0 - 400.0
+        Gradians,
+
+        //! 0.0 - 1.0
+        Turns
+    };
+
+    //! An enum, that identifies the type of a coordinate
+    enum Coordinate
+    {
+        //! Azimuth
+        Azimuth,
+
+        //! Radius
+        Radius
+    };
+
+    /*!
+      Indices used to identify an axis.
+      \sa Scale
+     */
+    enum Axis
+    {
+        //! Azimuth axis
+        AxisAzimuth,
+
+        //! Left axis
+        AxisLeft,
+
+        //! Right axis
+        AxisRight,
+
+        //! Top axis
+        AxisTop,
+
+        //! Bottom axis
+        AxisBottom,
+
+        //! Number of available axis
+        AxesCount
+    };
+
+    /*!
+      Indices used to identify a scale.
+      \sa Axis
+     */
+    enum Scale
+    {
+        //! Azimuth scale
+        ScaleAzimuth = Azimuth,
+
+        //! Radial scale
+        ScaleRadius = Radius,
+
+        //! Number of scales
+        ScaleCount
+    };
+}
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.cpp
new file mode 100644
index 0000000..2a437cd
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.cpp
@@ -0,0 +1,320 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_canvas.h"
+#include "qwt_polar_plot.h"
+#include <qwt_painter.h>
+#include <qpainter.h>
+#include <qevent.h>
+#include <qpixmap.h>
+#include <qstyle.h>
+#include <qstyleoption.h>
+#ifdef Q_WS_X11
+#include <qx11info_x11.h>
+#endif
+
+static inline void qwtDrawStyledBackground(
+    QWidget *widget, QPainter *painter )
+{
+    QStyleOption opt;
+    opt.initFrom( widget );
+    widget->style()->drawPrimitive( QStyle::PE_Widget, &opt, painter, widget );
+}
+
+static QWidget *qwtBackgroundWidget( QWidget *w )
+{
+    if ( w->parentWidget() == NULL )
+        return w;
+
+    if ( w->autoFillBackground() )
+    {
+        const QBrush brush = w->palette().brush( w->backgroundRole() );
+        if ( brush.color().alpha() > 0 )
+            return w;
+    }
+
+    if ( w->testAttribute( Qt::WA_StyledBackground ) )
+    {
+        QImage image( 1, 1, QImage::Format_ARGB32 );
+        image.fill( Qt::transparent );
+
+        QPainter painter( &image );
+        painter.translate( -w->rect().center() );
+        qwtDrawStyledBackground( w, &painter );
+        painter.end();
+
+        if ( qAlpha( image.pixel( 0, 0 ) ) != 0 )
+            return w;
+    }
+
+    return qwtBackgroundWidget( w->parentWidget() );
+}
+
+class QwtPolarCanvas::PrivateData
+{
+public:
+    PrivateData():
+        paintAttributes( 0 ),
+        backingStore( NULL )
+    {
+    }
+
+    ~PrivateData()
+    {
+        delete backingStore;
+    }
+
+    QwtPolarCanvas::PaintAttributes paintAttributes;
+    QPixmap *backingStore;
+};
+
+//! Constructor
+QwtPolarCanvas::QwtPolarCanvas( QwtPolarPlot *plot ):
+    QFrame( plot )
+{
+    d_data = new PrivateData;
+
+#ifndef QT_NO_CURSOR
+    setCursor( Qt::CrossCursor );
+#endif
+    setFocusPolicy( Qt::WheelFocus );
+
+    setPaintAttribute( BackingStore, true );
+}
+
+//! Destructor
+QwtPolarCanvas::~QwtPolarCanvas()
+{
+    delete d_data;
+}
+
+//! \return Parent plot widget
+QwtPolarPlot *QwtPolarCanvas::plot()
+{
+    return qobject_cast<QwtPolarPlot *>( parent() );
+}
+
+//! \return Parent plot widget
+const QwtPolarPlot *QwtPolarCanvas::plot() const
+{
+    return qobject_cast<QwtPolarPlot *>( parent() );
+}
+
+/*!
+  \brief Changing the paint attributes
+
+  \param attribute Paint attribute
+  \param on On/Off
+
+  The default setting enables BackingStore
+
+  \sa testPaintAttribute(), paintCache()
+*/
+void QwtPolarCanvas::setPaintAttribute( PaintAttribute attribute, bool on )
+{
+    if ( bool( d_data->paintAttributes & attribute ) == on )
+        return;
+
+    if ( on )
+        d_data->paintAttributes |= attribute;
+    else
+        d_data->paintAttributes &= ~attribute;
+
+    switch( attribute )
+    {
+        case BackingStore:
+        {
+            if ( on )
+            {
+                if ( d_data->backingStore == NULL )
+                    d_data->backingStore = new QPixmap();
+
+                if ( isVisible() )
+                {
+                    const QRect cr = contentsRect();
+                    *d_data->backingStore = QPixmap::grabWidget( this, cr );
+                }
+            }
+            else
+            {
+                delete d_data->backingStore;
+                d_data->backingStore = NULL;
+            }
+            break;
+        }
+    }
+}
+
+/*!
+  Test wether a paint attribute is enabled
+
+  \param attribute Paint attribute
+  \return true if the attribute is enabled
+  \sa setPaintAttribute()
+*/
+bool QwtPolarCanvas::testPaintAttribute( PaintAttribute attribute ) const
+{
+    return ( d_data->paintAttributes & attribute ) != 0;
+}
+
+//! \return Backing store, might be null
+const QPixmap *QwtPolarCanvas::backingStore() const
+{
+    return d_data->backingStore;
+}
+
+//! Invalidate the internal backing store
+void QwtPolarCanvas::invalidateBackingStore()
+{
+    if ( d_data->backingStore )
+        *d_data->backingStore = QPixmap();
+}
+
+/*!
+  Paint event
+  \param event Paint event
+*/
+void QwtPolarCanvas::paintEvent( QPaintEvent *event )
+{
+    QPainter painter( this );
+    painter.setClipRegion( event->region() );
+
+    if ( ( d_data->paintAttributes & BackingStore )
+        && d_data->backingStore != NULL )
+    {
+        QPixmap &bs = *d_data->backingStore;
+        if ( bs.size() != size() )
+        {
+            bs = QPixmap( size() );
+#ifdef Q_WS_X11
+            if ( bs.x11Info().screen() != x11Info().screen() )
+                bs.x11SetScreen( x11Info().screen() );
+#endif
+
+            QPainter p;
+
+            if ( testAttribute( Qt::WA_StyledBackground ) )
+            {
+                p.begin( &bs );
+                qwtDrawStyledBackground( this, &p );
+            }
+            else
+            {
+                if ( autoFillBackground() )
+                {
+                    p.begin( &bs );
+                    p.fillRect( rect(), palette().brush( backgroundRole() ) );
+                }
+                else
+                {
+                    QWidget *bgWidget = qwtBackgroundWidget( plot() );
+
+                    QwtPainter::fillPixmap( bgWidget, bs,
+                        mapTo( bgWidget, rect().topLeft() ) );
+
+                    p.begin( &bs );
+                }
+            }
+
+            plot()->drawCanvas( &p, contentsRect() );
+
+            if ( frameWidth() > 0 )
+                drawFrame( &p );
+        }
+
+        painter.drawPixmap( 0, 0, *d_data->backingStore );
+    }
+    else
+    {
+        qwtDrawStyledBackground( this, &painter );
+
+        plot()->drawCanvas( &painter, contentsRect() );
+
+        if ( frameWidth() > 0 )
+            drawFrame( &painter );
+    }
+}
+
+/*!
+  Resize event
+  \param event Resize event
+*/
+void QwtPolarCanvas::resizeEvent( QResizeEvent *event )
+{
+    QFrame::resizeEvent( event );
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+        plot()->updateScale( scaleId );
+}
+
+/*!
+    Translate a point from widget into plot coordinates
+
+    \param pos Point in widget coordinates of the plot canvas
+    \return Point in plot coordinates
+
+    \sa transform()
+*/
+QwtPointPolar QwtPolarCanvas::invTransform( const QPoint &pos ) const
+{
+    const QwtPolarPlot *pl = plot();
+
+    const QwtScaleMap azimuthMap = pl->scaleMap( QwtPolar::Azimuth );
+    const QwtScaleMap radialMap = pl->scaleMap( QwtPolar::Radius );
+
+    const QPointF center = pl->plotRect().center();
+
+    double dx = pos.x() - center.x();
+    double dy = -( pos.y() - center.y() );
+
+    const QwtPointPolar polarPos = QwtPointPolar( QPoint( dx, dy ) ).normalized();
+
+    double azimuth = azimuthMap.invTransform( polarPos.azimuth() );
+
+    // normalize the azimuth
+    double min = azimuthMap.s1();
+    double max = azimuthMap.s2();
+    if ( max < min )
+        qSwap( min, max );
+
+    if ( azimuth < min )
+    {
+        azimuth += max - min;
+    }
+    else if ( azimuth > max )
+    {
+        azimuth -= max - min;
+    }
+
+    const double radius = radialMap.invTransform( polarPos.radius() );
+
+    return QwtPointPolar( azimuth, radius );
+}
+
+/*!
+    Translate a point from plot into widget coordinates
+
+    \param polarPos Point in plot coordinates
+    \return Point in widget coordinates
+    \sa transform()
+*/
+QPoint QwtPolarCanvas::transform( const QwtPointPolar &polarPos ) const
+{
+    const QwtPolarPlot *pl = plot();
+
+    const QwtScaleMap azimuthMap = pl->scaleMap( QwtPolar::Azimuth );
+    const QwtScaleMap radialMap = pl->scaleMap( QwtPolar::Radius );
+
+    const double radius = radialMap.transform( polarPos.radius() );
+    const double azimuth = azimuthMap.transform( polarPos.azimuth() );
+
+    const QPointF pos = qwtPolar2Pos(
+        pl->plotRect().center(), radius, azimuth );
+
+    return pos.toPoint();
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.h
new file mode 100644
index 0000000..16c90ef
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_canvas.h
@@ -0,0 +1,79 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_CANVAS_H
+#define QWT_POLAR_CANVAS_H 1
+
+#include "qwt_polar_global.h"
+#include <qwt_point_polar.h>
+#include <qframe.h>
+
+class QPainter;
+class QwtPolarPlot;
+
+/*!
+  \brief Canvas of a QwtPolarPlot.
+
+  The canvas is the widget, where all polar items are painted to.
+
+  \note In opposite to QwtPlot all axes are painted on the canvas.
+  \sa QwtPolarPlot
+*/
+class QWT_POLAR_EXPORT QwtPolarCanvas: public QFrame
+{
+    Q_OBJECT
+
+public:
+    /*!
+      \brief Paint attributes
+
+      The default setting enables BackingStore
+
+      \sa setPaintAttribute(), testPaintAttribute(), backingStore()
+     */
+
+    enum PaintAttribute
+    {
+        /*!
+          Paint double buffered and reuse the content of the pixmap buffer
+          for some spontaneous repaints that happen when a plot gets unhidden,
+          deiconified or changes the focus.
+         */
+        BackingStore = 0x01
+    };
+
+    //! Paint attributes
+    typedef QFlags<PaintAttribute> PaintAttributes;
+
+    explicit QwtPolarCanvas( QwtPolarPlot * );
+    virtual ~QwtPolarCanvas();
+
+    QwtPolarPlot *plot();
+    const QwtPolarPlot *plot() const;
+
+    void setPaintAttribute( PaintAttribute, bool on = true );
+    bool testPaintAttribute( PaintAttribute ) const;
+
+    const QPixmap *backingStore() const;
+    void invalidateBackingStore();
+
+    QwtPointPolar invTransform( const QPoint & ) const;
+    QPoint transform( const QwtPointPolar & ) const;
+
+protected:
+    virtual void paintEvent( QPaintEvent * );
+    virtual void resizeEvent( QResizeEvent * );
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarCanvas::PaintAttributes )
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.cpp
new file mode 100644
index 0000000..e356455
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.cpp
@@ -0,0 +1,596 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_curve.h"
+#include "qwt_polar.h"
+#include <qwt_painter.h>
+#include <qwt_scale_map.h>
+#include <qwt_math.h>
+#include <qwt_symbol.h>
+#include <qwt_legend.h>
+#include <qwt_curve_fitter.h>
+#include <qwt_clipper.h>
+#include <qpainter.h>
+
+static inline bool qwtInsidePole( const QwtScaleMap &map, double radius )
+{
+    return map.isInverting() ? ( radius > map.s1() ) : ( radius < map.s1() );
+}
+
+static int qwtVerifyRange( int size, int &i1, int &i2 )
+{
+    if ( size < 1 )
+        return 0;
+
+    i1 = qBound( 0, i1, size - 1 );
+    i2 = qBound( 0, i2, size - 1 );
+
+    if ( i1 > i2 )
+        qSwap( i1, i2 );
+
+    return ( i2 - i1 + 1 );
+}
+
+class QwtPolarCurve::PrivateData
+{
+public:
+    PrivateData():
+        style( QwtPolarCurve::Lines ),
+        curveFitter( NULL ),
+        legendAttributes( 0 )
+    {
+        symbol = new QwtSymbol();
+        pen = QPen( Qt::black );
+    }
+
+    ~PrivateData()
+    {
+        delete symbol;
+        delete curveFitter;
+    }
+
+    QwtPolarCurve::CurveStyle style;
+    const QwtSymbol *symbol;
+    QPen pen;
+    QwtCurveFitter *curveFitter;
+
+    QwtPolarCurve::LegendAttributes legendAttributes;
+};
+
+//! Constructor
+QwtPolarCurve::QwtPolarCurve():
+    QwtPolarItem( QwtText() )
+{
+    init();
+}
+
+/*!
+  Constructor
+  \param title title of the curve
+*/
+QwtPolarCurve::QwtPolarCurve( const QwtText &title ):
+    QwtPolarItem( title )
+{
+    init();
+}
+
+/*!
+  Constructor
+  \param title title of the curve
+*/
+QwtPolarCurve::QwtPolarCurve( const QString &title ):
+    QwtPolarItem( QwtText( title ) )
+{
+    init();
+}
+
+//! Destructor
+QwtPolarCurve::~QwtPolarCurve()
+{
+    delete d_series;
+    delete d_data;
+}
+
+//! Initialize data members
+void QwtPolarCurve::init()
+{
+    d_data = new PrivateData;
+    d_series = NULL;
+
+    setItemAttribute( QwtPolarItem::AutoScale );
+    setItemAttribute( QwtPolarItem::Legend );
+    setZ( 20.0 );
+
+    setRenderHint( RenderAntialiased, true );
+}
+
+//! \return QwtPolarCurve::Rtti_PolarCurve
+int QwtPolarCurve::rtti() const
+{
+    return QwtPolarItem::Rtti_PolarCurve;
+}
+
+/*!
+  Specify an attribute how to draw the legend identifier
+
+  \param attribute Attribute
+  \param on On/Off
+  /sa LegendAttribute, testLegendAttribute()
+*/
+void QwtPolarCurve::setLegendAttribute( LegendAttribute attribute, bool on )
+{
+    if ( on )
+        d_data->legendAttributes |= attribute;
+    else
+        d_data->legendAttributes &= ~attribute;
+}
+
+/*!
+    \brief Test if a lefend attribute is enables
+
+    \param attribute Legend attribute
+
+    \return True if attribute is enabled
+    \sa LegendAttribute, setLegendAttribute()
+*/
+bool QwtPolarCurve::testLegendAttribute( LegendAttribute attribute ) const
+{
+    return ( d_data->legendAttributes & attribute );
+}
+
+/*!
+  Set the curve's drawing style
+
+  \param style Curve style
+  \sa CurveStyle, style()
+*/
+void QwtPolarCurve::setStyle( CurveStyle style )
+{
+    if ( style != d_data->style )
+    {
+        d_data->style = style;
+        itemChanged();
+    }
+}
+
+/*!
+    \return Current style
+    \sa CurveStyle, setStyle()
+*/
+QwtPolarCurve::CurveStyle QwtPolarCurve::style() const
+{
+    return d_data->style;
+}
+
+/*!
+  \brief Assign a symbol
+  \param symbol Symbol
+  \sa symbol()
+*/
+void QwtPolarCurve::setSymbol( QwtSymbol *symbol )
+{
+    if ( symbol != d_data->symbol )
+    {
+        delete d_data->symbol;
+        d_data->symbol = symbol;
+        itemChanged();
+    }
+}
+
+/*!
+    \return The current symbol
+    \sa setSymbol()
+*/
+const QwtSymbol *QwtPolarCurve::symbol() const
+{
+    return d_data->symbol;
+}
+
+/*!
+  \brief Assign a pen
+  \param pen New pen
+  \sa pen()
+*/
+void QwtPolarCurve::setPen( const QPen &pen )
+{
+    if ( pen != d_data->pen )
+    {
+        d_data->pen = pen;
+        itemChanged();
+    }
+}
+
+/*!
+    \return Pen used to draw the lines
+    \sa setPen()
+*/
+const QPen& QwtPolarCurve::pen() const
+{
+    return d_data->pen;
+}
+
+/*!
+  Initialize data with a pointer to QwtSeriesData<QwtPointPolar>.
+
+  The x-values of the data object represent the azimuth,
+  the y-value respresent the radius.
+
+  \param data Data
+*/
+void QwtPolarCurve::setData( QwtSeriesData<QwtPointPolar> *data )
+{
+    if ( d_series != data )
+    {
+        delete d_series;
+        d_series = data;
+        itemChanged();
+    }
+}
+
+/*!
+  \brief Insert a curve fitter
+
+  \param curveFitter Curve fitter
+
+  A curve fitter interpolates the curve points. F.e QwtPolarFitter
+  adds equidistant points so that the connection gets rounded instead
+  of having straight lines. If curveFitter is NULL fitting is disabled.
+
+  \sa curveFitter()
+*/
+void QwtPolarCurve::setCurveFitter( QwtCurveFitter *curveFitter )
+{
+    if ( curveFitter != d_data->curveFitter )
+    {
+        delete d_data->curveFitter;
+        d_data->curveFitter = curveFitter;
+
+        itemChanged();
+    }
+}
+
+/*!
+  \return The curve fitter
+  \sa setCurveFitter()
+*/
+QwtCurveFitter *QwtPolarCurve::curveFitter() const
+{
+    return d_data->curveFitter;
+}
+
+/*!
+  Draw the curve
+
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param radius Radius of the complete plot area in painter coordinates
+  \param canvasRect Contents rect of the canvas in painter coordinates
+*/
+void QwtPolarCurve::draw( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double radius,
+    const QRectF &canvasRect ) const
+{
+    Q_UNUSED( radius );
+    Q_UNUSED( canvasRect );
+
+    draw( painter, azimuthMap, radialMap, pole, 0, -1 );
+}
+
+/*!
+  \brief Draw an interval of the curve
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param from index of the first point to be painted
+  \param to index of the last point to be painted. If to < 0 the
+         curve will be painted to its last point.
+
+  \sa drawCurve(), drawSymbols(),
+*/
+void QwtPolarCurve::draw( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, int from, int to ) const
+{
+    if ( !painter || dataSize() <= 0 )
+        return;
+
+    if ( to < 0 )
+        to = dataSize() - 1;
+
+    if ( qwtVerifyRange( dataSize(), from, to ) > 0 )
+    {
+        painter->save();
+        painter->setPen( d_data->pen );
+
+        drawCurve( painter, d_data->style,
+            azimuthMap, radialMap, pole, from, to );
+
+        painter->restore();
+
+        if ( d_data->symbol->style() != QwtSymbol::NoSymbol )
+        {
+            painter->save();
+            drawSymbols( painter, *d_data->symbol,
+                azimuthMap, radialMap, pole, from, to );
+            painter->restore();
+        }
+    }
+}
+
+/*!
+  Draw the line part (without symbols) of a curve interval.
+
+  \param painter Painter
+  \param style Curve style, see QwtPolarCurve::CurveStyle
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param from index of the first point to be painted
+  \param to index of the last point to be painted.
+  \sa draw(), drawLines()
+*/
+void QwtPolarCurve::drawCurve( QPainter *painter, int style,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, int from, int to ) const
+{
+    switch ( style )
+    {
+        case Lines:
+            drawLines( painter, azimuthMap, radialMap, pole, from, to );
+            break;
+        case NoCurve:
+        default:
+            break;
+    }
+}
+
+/*!
+  Draw lines
+
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param from index of the first point to be painted
+  \param to index of the last point to be painted.
+  \sa draw(), drawLines(), setCurveFitter()
+*/
+void QwtPolarCurve::drawLines( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, int from, int to ) const
+{
+    int size = to - from + 1;
+    if ( size <= 0 )
+        return;
+
+    QPolygonF polyline;
+    if ( d_data->curveFitter )
+    {
+        QPolygonF points( size );
+        for ( int j = from; j <= to; j++ )
+        {
+            const QwtPointPolar point = sample( j );
+            points[j - from] = QPointF( point.azimuth(), point.radius() );
+        }
+
+        points = d_data->curveFitter->fitCurve( points );
+
+        polyline.resize( points.size() );
+
+        QPointF *polylineData = polyline.data();
+        QPointF *pointsData = points.data();
+
+        for ( int i = 0; i < points.size(); i++ )
+        {
+            const QwtPointPolar point( pointsData[i].x(), pointsData[i].y() );
+
+            double r = radialMap.transform( point.radius() );
+            const double a = azimuthMap.transform( point.azimuth() );
+
+            polylineData[i] = qwtPolar2Pos( pole, r, a );
+        }
+    }
+    else
+    {
+        polyline.resize( size );
+        QPointF *polylineData = polyline.data();
+
+        for ( int i = from; i <= to; i++ )
+        {
+            QwtPointPolar point = sample( i );
+            if ( !qwtInsidePole( radialMap, point.radius() ) )
+            {
+                double r = radialMap.transform( point.radius() );
+                const double a = azimuthMap.transform( point.azimuth() );
+                polylineData[i - from] = qwtPolar2Pos( pole, r, a );
+            }
+            else
+            {
+                polylineData[i - from] = pole;
+            }
+        }
+    }
+
+    QRectF clipRect;
+    if ( painter->hasClipping() )
+        clipRect = painter->clipRegion().boundingRect();
+    else
+    {
+        clipRect = painter->window();
+        if ( !clipRect.isEmpty() )
+            clipRect = painter->transform().inverted().mapRect( clipRect );
+    }
+
+    if ( !clipRect.isEmpty() )
+    {
+        double off = qCeil( qMax( qreal( 1.0 ), painter->pen().widthF() ) );
+        clipRect = clipRect.toRect().adjusted( -off, -off, off, off );
+        polyline = QwtClipper::clipPolygonF( clipRect, polyline );
+    }
+
+    QwtPainter::drawPolyline( painter, polyline );
+    painter->drawPolyline( polyline );
+}
+
+/*!
+  Draw symbols
+
+  \param painter Painter
+  \param symbol Curve symbol
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param from index of the first point to be painted
+  \param to index of the last point to be painted.
+
+  \sa setSymbol(), draw(), drawCurve()
+*/
+void QwtPolarCurve::drawSymbols( QPainter *painter, const QwtSymbol &symbol,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, int from, int to ) const
+{
+    painter->setBrush( symbol.brush() );
+    painter->setPen( symbol.pen() );
+
+    const int chunkSize = 500;
+
+    for ( int i = from; i <= to; i += chunkSize )
+    {
+        const int n = qMin( chunkSize, to - i + 1 );
+
+        QPolygonF points;
+        for ( int j = 0; j < n; j++ )
+        {
+            const QwtPointPolar point = sample( i + j );
+
+            if ( !qwtInsidePole( radialMap, point.radius() ) )
+            {
+                const double r = radialMap.transform( point.radius() );
+                const double a = azimuthMap.transform( point.azimuth() );
+
+                points += qwtPolar2Pos( pole, r, a );
+            }
+            else
+            {
+                points += pole;
+            }
+        }
+
+        if ( points.size() > 0 )
+            symbol.drawSymbols( painter, points );
+    }
+}
+
+/*!
+  \return Number of points
+  \sa setData()
+*/
+size_t QwtPolarCurve::dataSize() const
+{
+    return d_series->size();
+}
+
+/*!
+   \return Icon representing the curve on the legend
+
+   \param index Index of the legend entry 
+                ( ignored as there is only one )
+   \param size Icon size
+
+   \sa QwtPolarItem::setLegendIconSize(), QwtPolarItem::legendData()
+ */
+QwtGraphic QwtPolarCurve::legendIcon( int index,
+    const QSizeF &size ) const
+{
+    Q_UNUSED( index );
+
+    if ( size.isEmpty() )
+        return QwtGraphic();
+
+    QwtGraphic graphic;
+    graphic.setDefaultSize( size );
+    graphic.setRenderHint( QwtGraphic::RenderPensUnscaled, true );
+
+    QPainter painter( &graphic );
+    painter.setRenderHint( QPainter::Antialiasing,
+        testRenderHint( QwtPolarItem::RenderAntialiased ) );
+
+    if ( d_data->legendAttributes == 0 )
+    {
+        QBrush brush;
+
+        if ( style() != QwtPolarCurve::NoCurve )
+        {
+            brush = QBrush( pen().color() );
+        }
+        else if ( d_data->symbol &&
+            ( d_data->symbol->style() != QwtSymbol::NoSymbol ) )
+        {
+            brush = QBrush( d_data->symbol->pen().color() );
+        }
+
+        if ( brush.style() != Qt::NoBrush )
+        {
+            QRectF r( 0, 0, size.width(), size.height() );
+            painter.fillRect( r, brush );
+        }
+    }
+
+    if ( d_data->legendAttributes & QwtPolarCurve::LegendShowLine )
+    {
+        if ( pen() != Qt::NoPen )
+        {
+            QPen pn = pen();
+            pn.setCapStyle( Qt::FlatCap );
+
+            painter.setPen( pn );
+
+            const double y = 0.5 * size.height();
+            QwtPainter::drawLine( &painter, 0.0, y, size.width(), y );
+        }
+    }
+
+    if ( d_data->legendAttributes & QwtPolarCurve::LegendShowSymbol )
+    {
+        if ( d_data->symbol )
+        {
+            QRectF r( 0, 0, size.width(), size.height() );
+            d_data->symbol->drawSymbol( &painter, r );
+        }
+    }
+
+    return graphic;
+}
+
+/*!
+   Interval, that is necessary to display the item
+   This interval can be useful for operations like clipping or autoscaling
+
+   \param scaleId Scale index
+   \return bounding interval
+
+   \sa QwtData::boundingRect()
+*/
+QwtInterval QwtPolarCurve::boundingInterval( int scaleId ) const
+{
+    const QRectF boundingRect = d_series->boundingRect();
+
+    if ( scaleId == QwtPolar::ScaleAzimuth )
+        return QwtInterval( boundingRect.left(), boundingRect.right() );
+
+    if ( scaleId == QwtPolar::ScaleRadius )
+        return QwtInterval( boundingRect.top(), boundingRect.bottom() );
+
+    return QwtInterval();
+}
+
+
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.h
new file mode 100644
index 0000000..a474522
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_curve.h
@@ -0,0 +1,161 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_CURVE_H
+#define QWT_POLAR_CURVE_H
+
+#include "qwt_polar_global.h"
+#include "qwt_polar_item.h"
+#include <qwt_point_polar.h>
+#include <qwt_series_data.h>
+
+class QPainter;
+class QwtSymbol;
+class QwtCurveFitter;
+
+/*!
+  \brief An item, that represents a series of points
+
+  A curve is the representation of a series of points in polar coordinates.
+  The points are connected to the curve using the abstract QwtData interface.
+
+  \sa QwtPolarPlot, QwtSymbol, QwtScaleMap
+*/
+
+class QWT_POLAR_EXPORT QwtPolarCurve: public QwtPolarItem
+{
+public:
+    /*!
+        Curve styles.
+        \sa setStyle(), style()
+    */
+    enum CurveStyle
+    {
+        //! Don't draw a curve. Note: This doesn't affect the symbols.
+        NoCurve,
+
+        /*!
+          Connect the points with straight lines. The lines might
+          be interpolated depending on the 'Fitted' attribute. Curve
+          fitting can be configured using setCurveFitter().
+         */
+        Lines,
+
+        //! Values > 100 are reserved for user specific curve styles
+        UserCurve = 100
+    };
+
+    /*!
+        \brief Attributes how to represent the curve on the legend
+
+        If none of the flags is activated QwtPlotCurve tries to find
+        a color representing the curve and paints a rectangle with it.
+        In the default setting all attributes are off.
+
+        \sa setLegendAttribute(), testLegendAttribute()
+     */
+
+    enum LegendAttribute
+    {
+        /*!
+          If the curveStyle() is not NoCurve a line is painted with the
+          curvePen().
+         */
+        LegendShowLine = 0x01,
+
+        //! If the curve has a valid symbol it is painted.
+        LegendShowSymbol = 0x02
+    };
+
+    //! Legend attributes
+    typedef QFlags<LegendAttribute> LegendAttributes;
+
+
+    explicit QwtPolarCurve();
+    explicit QwtPolarCurve( const QwtText &title );
+    explicit QwtPolarCurve( const QString &title );
+
+    virtual ~QwtPolarCurve();
+
+    virtual int rtti() const;
+
+    void setLegendAttribute( LegendAttribute, bool on = true );
+    bool testLegendAttribute( LegendAttribute ) const;
+
+    void setData( QwtSeriesData<QwtPointPolar> *data );
+    const QwtSeriesData<QwtPointPolar> *data() const;
+
+    size_t dataSize() const;
+    QwtPointPolar sample( int i ) const;
+
+    void setPen( const QPen & );
+    const QPen &pen() const;
+
+    void setStyle( CurveStyle style );
+    CurveStyle style() const;
+
+    void setSymbol( QwtSymbol * );
+    const QwtSymbol *symbol() const;
+
+    void setCurveFitter( QwtCurveFitter * );
+    QwtCurveFitter *curveFitter() const;
+
+    virtual void draw( QPainter *p,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, double radius,
+        const QRectF &canvasRect ) const;
+
+    virtual void draw( QPainter *p,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, int from, int to ) const;
+
+    virtual QwtInterval boundingInterval( int scaleId ) const;
+
+    virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
+
+protected:
+
+    void init();
+
+    virtual void drawCurve( QPainter *, int style,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, int from, int to ) const;
+
+    virtual void drawSymbols( QPainter *, const QwtSymbol &,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, int from, int to ) const;
+
+    void drawLines( QPainter *,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, int from, int to ) const;
+
+private:
+    QwtSeriesData<QwtPointPolar> *d_series;
+
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+//! \return the the curve data
+inline const QwtSeriesData<QwtPointPolar> *QwtPolarCurve::data() const
+{
+    return d_series;
+}
+
+/*!
+    \param i index
+    \return point at position i
+*/
+inline QwtPointPolar QwtPolarCurve::sample( int i ) const
+{
+    return d_series->sample( i );
+}
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarCurve::LegendAttributes )
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.cpp
new file mode 100644
index 0000000..3c48d91
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.cpp
@@ -0,0 +1,100 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_fitter.h"
+
+class QwtPolarFitter::PrivateData
+{
+public:
+    PrivateData():
+        stepCount( 5 )
+    {
+    }
+
+    int stepCount;
+};
+
+/*!
+   Constructor
+
+   \param stepCount Number of points, that will be inserted between 2 points
+   \sa setStepCount()
+*/
+QwtPolarFitter::QwtPolarFitter( int stepCount )
+{
+    d_data = new PrivateData;
+    d_data->stepCount = stepCount;
+}
+
+//! Destructor
+QwtPolarFitter::~QwtPolarFitter()
+{
+    delete d_data;
+}
+
+/*!
+   Assign the number of points, that will be inserted between 2 points
+   The default value is 5.
+
+   \param stepCount Number of steps
+
+   \sa stepCount()
+*/
+void QwtPolarFitter::setStepCount( int stepCount )
+{
+    d_data->stepCount = qMax( stepCount, 0 );
+}
+
+/*!
+   \return Number of points, that will be inserted between 2 points
+   \sa setStepCount()
+*/
+int QwtPolarFitter::stepCount() const
+{
+    return d_data->stepCount;
+}
+
+/*!
+   Insert stepCount() number of additional points between 2 elements
+   of points.
+
+   \param points Array of points
+   \return Array of points including the additional points
+*/
+QPolygonF QwtPolarFitter::fitCurve( const QPolygonF &points ) const
+{
+    if ( d_data->stepCount <= 0 || points.size() <= 1 )
+        return points;
+
+    QPolygonF fittedPoints;
+
+    int numPoints = points.size() + ( points.size() - 1 ) * d_data->stepCount;
+
+    fittedPoints.resize( numPoints );
+
+    int index = 0;
+    fittedPoints[index++] = points[0];
+    for ( int i = 1; i < points.size(); i++ )
+    {
+        const QPointF &p1 = points[i-1];
+        const QPointF &p2 = points[i];
+
+        const double dx = ( p2.x() - p1.x() ) / d_data->stepCount;
+        const double dy = ( p2.y() - p1.y() ) / d_data->stepCount;
+        for ( int j = 1; j <= d_data->stepCount; j++ )
+        {
+            const double x = p1.x() + j * dx;
+            const double y = p1.y() + j * dy;
+
+            fittedPoints[index++] = QPointF( x, y );
+        }
+    }
+    fittedPoints.resize( index );
+
+    return fittedPoints;
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.h
new file mode 100644
index 0000000..eb8318c
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_fitter.h
@@ -0,0 +1,40 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_FITTER_H
+#define QWT_POLAR_FITTER_H
+
+#include "qwt_polar_global.h"
+#include <qwt_curve_fitter.h>
+
+/*!
+  \brief A simple curve fitter for polar points
+
+  QwtPolarFitter adds equidistant points between 2 curve points,
+  so that the connection gets rounded according to the nature of
+  a polar plot.
+
+  \sa QwtPolarCurve::setCurveFitter()
+*/
+class QWT_POLAR_EXPORT QwtPolarFitter: public QwtCurveFitter
+{
+public:
+    QwtPolarFitter( int stepCount = 5 );
+    virtual ~QwtPolarFitter();
+
+    void setStepCount( int size );
+    int stepCount() const;
+
+    virtual QPolygonF fitCurve( const QPolygonF & ) const;
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_global.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_global.h
new file mode 100644
index 0000000..67f046b
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_global.h
@@ -0,0 +1,39 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_GLOBAL_H
+#define QWT_POLAR_GLOBAL_H
+
+#include <qglobal.h>
+
+// QWT_POLAR_VERSION is (major << 16) + (minor << 8) + patch.
+
+#define QWT_POLAR_VERSION       0x010101
+#define QWT_POLAR_VERSION_STR   "1.1.1"
+
+#if defined(_MSC_VER) /* MSVC Compiler */
+/* template-class specialization 'identifier' is already instantiated */
+#pragma warning(disable: 4660)
+#endif // _MSC_VER
+
+#ifdef QWT_POLAR_DLL
+
+#if defined(QWT_POLAR_MAKEDLL)     // create DLL library 
+#define QWT_POLAR_EXPORT  Q_DECL_EXPORT
+#define QWT_POLAR_TEMPLATEDLL
+#else                        // use DLL library
+#define QWT_POLAR_EXPORT  Q_DECL_IMPORT
+#endif
+
+#endif // QWT_POLAR_DLL
+
+#ifndef QWT_POLAR_EXPORT
+#define QWT_POLAR_EXPORT
+#endif
+
+#endif // QWT_POLAR_GLOBAL_H
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.cpp
new file mode 100644
index 0000000..3ea1ca4
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.cpp
@@ -0,0 +1,1138 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_grid.h"
+#include <qwt_painter.h>
+#include <qwt_text.h>
+#include <qwt_clipper.h>
+#include <qwt_scale_map.h>
+#include <qwt_scale_engine.h>
+#include <qwt_scale_div.h>
+#include <qwt_scale_draw.h>
+#include <qwt_round_scale_draw.h>
+#include <qpainter.h>
+#include <qpen.h>
+#include <float.h>
+
+static inline bool isClose( double value1, double value2 )
+{
+    return qAbs( value1 - value2 ) < DBL_EPSILON;
+}
+
+class QwtPolarGrid::AxisData
+{
+public:
+    AxisData():
+        isVisible( false ),
+        scaleDraw( NULL )
+    {
+    }
+    ~AxisData()
+    {
+        delete scaleDraw;
+    }
+
+    bool isVisible;
+    mutable QwtAbstractScaleDraw *scaleDraw;
+    QPen pen;
+    QFont font;
+};
+
+class QwtPolarGrid::GridData
+{
+public:
+    GridData():
+        isVisible( true ),
+        isMinorVisible( false )
+    {
+    }
+
+    bool isVisible;
+    bool isMinorVisible;
+    QwtScaleDiv scaleDiv;
+
+    QPen majorPen;
+    QPen minorPen;
+};
+
+class QwtPolarGrid::PrivateData
+{
+public:
+    GridData gridData[QwtPolar::ScaleCount];
+    AxisData axisData[QwtPolar::AxesCount];
+    QwtPolarGrid::DisplayFlags displayFlags;
+    QwtPolarGrid::GridAttributes attributes;
+};
+
+/*!
+   \brief Constructor
+
+   Enables major and disables minor grid lines.
+   The azimuth and right radial axis are visible. all other axes
+   are hidden. Autoscaling is enabled.
+*/
+QwtPolarGrid::QwtPolarGrid():
+    QwtPolarItem( QwtText( "Grid" ) )
+{
+    d_data = new PrivateData;
+
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        AxisData &axis = d_data->axisData[axisId];
+        switch( axisId )
+        {
+            case QwtPolar::AxisAzimuth:
+            {
+                axis.scaleDraw = new QwtRoundScaleDraw;
+                axis.scaleDraw->setTickLength( QwtScaleDiv::MinorTick, 2 );
+                axis.scaleDraw->setTickLength( QwtScaleDiv::MediumTick, 2 );
+                axis.scaleDraw->setTickLength( QwtScaleDiv::MajorTick, 4 );
+                axis.isVisible = true;
+                break;
+            }
+            case QwtPolar::AxisLeft:
+            {
+                QwtScaleDraw *scaleDraw = new QwtScaleDraw;
+                scaleDraw->setAlignment( QwtScaleDraw::BottomScale );
+
+                axis.scaleDraw = scaleDraw;
+                axis.isVisible = false;
+                break;
+            }
+            case QwtPolar::AxisRight:
+            {
+                QwtScaleDraw *scaleDraw = new QwtScaleDraw;
+                scaleDraw->setAlignment( QwtScaleDraw::BottomScale );
+
+                axis.scaleDraw = scaleDraw;
+                axis.isVisible = true;
+                break;
+            }
+            case QwtPolar::AxisTop:
+            {
+                QwtScaleDraw *scaleDraw = new QwtScaleDraw;
+                scaleDraw->setAlignment( QwtScaleDraw::LeftScale );
+
+                axis.scaleDraw = scaleDraw;
+                axis.isVisible = false;
+                break;
+            }
+            case QwtPolar::AxisBottom:
+            {
+                QwtScaleDraw *scaleDraw = new QwtScaleDraw;
+                scaleDraw->setAlignment( QwtScaleDraw::LeftScale );
+
+                axis.scaleDraw = scaleDraw;
+                axis.isVisible = true;
+                break;
+            }
+            default:;
+        }
+    }
+
+    d_data->attributes = AutoScaling;
+
+    d_data->displayFlags = 0;
+    d_data->displayFlags |= SmartOriginLabel;
+    d_data->displayFlags |= HideMaxRadiusLabel;
+    d_data->displayFlags |= ClipAxisBackground;
+    d_data->displayFlags |= SmartScaleDraw;
+    d_data->displayFlags |= ClipGridLines;
+
+    setZ( 10.0 );
+    setRenderHint( RenderAntialiased, true );
+}
+
+//! Destructor
+QwtPolarGrid::~QwtPolarGrid()
+{
+    delete d_data;
+}
+
+//! \return QwtPlotItem::Rtti_PolarGrid
+int QwtPolarGrid::rtti() const
+{
+    return QwtPolarItem::Rtti_PolarGrid;
+}
+
+/*!
+   Change the display flags
+
+   \param flag See DisplayFlag
+   \param on true/false
+*/
+void QwtPolarGrid::setDisplayFlag( DisplayFlag flag, bool on )
+{
+    if ( ( ( d_data->displayFlags & flag ) != 0 ) != on )
+    {
+        if ( on )
+            d_data->displayFlags |= flag;
+        else
+            d_data->displayFlags &= ~flag;
+
+        itemChanged();
+    }
+}
+
+/*!
+   \return true, if flag is enabled
+   \param flag See DisplayFlag
+*/
+bool QwtPolarGrid::testDisplayFlag( DisplayFlag flag ) const
+{
+    return ( d_data->displayFlags & flag );
+}
+
+/*!
+  \brief Specify an attribute for the grid
+
+  \param attribute Grid attribute
+  \param on On/Off
+
+  /sa GridAttribute, testGridAttribute(), updateScaleDiv(),
+      QwtPolarPlot::zoom(), QwtPolarPlot::scaleDiv()
+*/
+void QwtPolarGrid::setGridAttribute( GridAttribute attribute, bool on )
+{
+    if ( bool( d_data->attributes & attribute ) == on )
+        return;
+
+    if ( on )
+        d_data->attributes |= attribute;
+    else
+        d_data->attributes &= ~attribute;
+
+    itemChanged();
+}
+
+/*!
+    \return true, if attribute is enabled
+    \sa GridAttribute, setGridAttribute()
+*/
+bool QwtPolarGrid::testGridAttribute( GridAttribute attribute ) const
+{
+    return d_data->attributes & attribute;
+}
+
+/*!
+  Assign a pen for painting an axis
+
+  \param axisId Axis id (QwtPolar::Axis)
+  \param pen Pen
+
+  \sa axisPen()
+*/
+void QwtPolarGrid::setAxisPen( int axisId, const QPen &pen )
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return;
+
+    AxisData &axisData = d_data->axisData[axisId];
+    if ( axisData.pen != pen )
+    {
+        axisData.pen = pen;
+        itemChanged();
+    }
+}
+
+/*!
+   Show/Hide grid lines for a scale
+
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \param show true/false
+*/
+void QwtPolarGrid::showGrid( int scaleId, bool show )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    GridData &grid = d_data->gridData[scaleId];
+    if ( grid.isVisible != show )
+    {
+        grid.isVisible = show;
+        itemChanged();
+    }
+}
+
+/*!
+  \return true if grid lines are enabled
+  \param scaleId Scale id ( QwtPolar::Scale )
+  \sa QwtPolar::Scale, showGrid()
+*/
+bool QwtPolarGrid::isGridVisible( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return false;
+
+    return d_data->gridData[scaleId].isVisible;
+}
+
+/*!
+   Show/Hide minor grid lines for a scale
+
+   To display minor grid lines. showGrid() needs to be enabled too.
+
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \param show true/false
+
+   \sa showGrid
+*/
+void QwtPolarGrid::showMinorGrid( int scaleId, bool show )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    GridData &grid = d_data->gridData[scaleId];
+    if ( grid.isMinorVisible != show )
+    {
+        grid.isMinorVisible = show;
+        itemChanged();
+    }
+}
+
+/*!
+  \return true if minor grid lines are enabled
+  \param scaleId Scale id ( QwtPolar::Scale )
+  \sa showMinorGrid()
+*/
+bool QwtPolarGrid::isMinorGridVisible( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return false;
+
+    return d_data->gridData[scaleId].isMinorVisible;
+}
+
+/*!
+  Show/Hide an axis
+
+  \param axisId Axis id (QwtPolar::Axis)
+  \param show true/false
+
+  \sa isAxisVisible()
+*/
+void QwtPolarGrid::showAxis( int axisId, bool show )
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return;
+
+    AxisData &axisData = d_data->axisData[axisId];
+    if ( axisData.isVisible != show )
+    {
+        axisData.isVisible = show;
+        itemChanged();
+    }
+}
+
+/*!
+  \return true if the axis is visible
+  \param axisId Axis id (QwtPolar::Axis)
+
+  \sa showAxis()
+*/
+bool QwtPolarGrid::isAxisVisible( int axisId ) const
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return false;
+
+    return d_data->axisData[axisId].isVisible;
+}
+
+/*!
+   Assign a pen for all axes and grid lines
+
+   \param pen Pen
+   \sa setMajorGridPen(), setMinorGridPen(), setAxisPen()
+*/
+void QwtPolarGrid::setPen( const QPen &pen )
+{
+    bool isChanged = false;
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+    {
+        GridData &grid = d_data->gridData[scaleId];
+        if ( grid.majorPen != pen || grid.minorPen != pen )
+        {
+            grid.majorPen = pen;
+            grid.minorPen = pen;
+            isChanged = true;
+        }
+    }
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        AxisData &axis = d_data->axisData[axisId];
+        if ( axis.pen != pen )
+        {
+            axis.pen = pen;
+            isChanged = true;
+        }
+    }
+    if ( isChanged )
+        itemChanged();
+}
+
+/*!
+   Assign a font for all scale tick labels
+
+   \param font Font
+   \sa setAxisFont()
+*/
+void QwtPolarGrid::setFont( const QFont &font )
+{
+    bool isChanged = false;
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        AxisData &axis = d_data->axisData[axisId];
+        if ( axis.font != font )
+        {
+            axis.font = font;
+            isChanged = true;
+        }
+    }
+    if ( isChanged )
+        itemChanged();
+}
+
+/*!
+   Assign a pen for the major grid lines
+
+   \param pen Pen
+   \sa setPen(), setMinorGridPen(), majorGridPen
+*/
+void QwtPolarGrid::setMajorGridPen( const QPen &pen )
+{
+    bool isChanged = false;
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+    {
+        GridData &grid = d_data->gridData[scaleId];
+        if ( grid.majorPen != pen )
+        {
+            grid.majorPen = pen;
+            isChanged = true;
+        }
+    }
+    if ( isChanged )
+        itemChanged();
+}
+
+/*!
+   Assign a pen for the major grid lines of a specific scale
+
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \param pen Pen
+   \sa setPen(), setMinorGridPen(), majorGridPen
+*/
+void QwtPolarGrid::setMajorGridPen( int scaleId, const QPen &pen )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    GridData &grid = d_data->gridData[scaleId];
+    if ( grid.majorPen != pen )
+    {
+        grid.majorPen = pen;
+        itemChanged();
+    }
+}
+
+/*!
+   \return Pen for painting the major grid lines of a specific scale
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \sa setMajorGridPen(), minorGridPen()
+*/
+QPen QwtPolarGrid::majorGridPen( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return QPen();
+
+    const GridData &grid = d_data->gridData[scaleId];
+    return grid.majorPen;
+}
+
+/*!
+   Assign a pen for the minor grid lines
+
+   \param pen Pen
+   \sa setPen(), setMajorGridPen(), minorGridPen()
+*/
+void QwtPolarGrid::setMinorGridPen( const QPen &pen )
+{
+    bool isChanged = false;
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+    {
+        GridData &grid = d_data->gridData[scaleId];
+        if ( grid.minorPen != pen )
+        {
+            grid.minorPen = pen;
+            isChanged = true;
+        }
+    }
+    if ( isChanged )
+        itemChanged();
+}
+
+/*!
+   Assign a pen for the minor grid lines of a specific scale
+
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \param pen Pen
+   \sa setPen(), setMajorGridPen(), minorGridPen
+*/
+void QwtPolarGrid::setMinorGridPen( int scaleId, const QPen &pen )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    GridData &grid = d_data->gridData[scaleId];
+    if ( grid.minorPen != pen )
+    {
+        grid.minorPen = pen;
+        itemChanged();
+    }
+}
+
+/*!
+   \return Pen for painting the minor grid lines of a specific scale
+   \param scaleId Scale id ( QwtPolar::Scale )
+*/
+QPen QwtPolarGrid::minorGridPen( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return QPen();
+
+    const GridData &grid = d_data->gridData[scaleId];
+    return grid.minorPen;
+}
+
+/*!
+   \return Pen for painting a specific axis
+
+   \param axisId Axis id (QwtPolar::Axis)
+   \sa setAxisPen()
+*/
+QPen QwtPolarGrid::axisPen( int axisId ) const
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return QPen();
+
+    return d_data->axisData[axisId].pen;
+}
+
+/*!
+  Assign a font for the tick labels of a specific axis
+
+  \param axisId Axis id (QwtPolar::Axis)
+  \param font new Font
+*/
+void QwtPolarGrid::setAxisFont( int axisId, const QFont &font )
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return;
+
+    AxisData &axisData = d_data->axisData[axisId];
+    if ( axisData.font != font )
+    {
+        axisData.font = font;
+        itemChanged();
+    }
+}
+
+/*!
+  \return Font for the tick labels of a specific axis
+  \param axisId Axis id (QwtPolar::Axis)
+*/
+QFont QwtPolarGrid::axisFont( int axisId ) const
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return QFont();
+
+    return d_data->axisData[axisId].font;
+}
+
+/*!
+  Draw the grid and axes
+
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param radius Radius of the complete plot area in painter coordinates
+  \param canvasRect Contents rect of the canvas in painter coordinates
+*/
+void QwtPolarGrid::draw( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double radius,
+    const QRectF &canvasRect ) const
+{
+    updateScaleDraws( azimuthMap, radialMap, pole, radius );
+
+    painter->save();
+
+    if ( testDisplayFlag( ClipAxisBackground ) )
+    {
+        QRegion clipRegion( canvasRect.toRect() );
+        for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+        {
+            const AxisData &axis = d_data->axisData[axisId];
+            if ( axisId != QwtPolar::AxisAzimuth && axis.isVisible )
+            {
+                QwtScaleDraw *scaleDraw = static_cast<QwtScaleDraw *>( axis.scaleDraw );
+                if ( scaleDraw->hasComponent( QwtScaleDraw::Labels ) )
+                {
+                    const QList<double> &ticks =
+                        scaleDraw->scaleDiv().ticks( QwtScaleDiv::MajorTick );
+                    for ( int i = 0; i < int( ticks.size() ); i++ )
+                    {
+                        if ( !scaleDraw->scaleDiv().contains( ticks[i] ) )
+                            continue;
+
+                        QRect labelRect =
+                            scaleDraw->boundingLabelRect( axis.font, ticks[i] );
+
+                        const int margin = 2;
+                        labelRect.adjust( -margin, -margin, margin, margin );
+
+                        if ( labelRect.isValid() )
+                            clipRegion -= QRegion( labelRect );
+                    }
+                }
+            }
+        }
+        painter->setClipRegion( clipRegion );
+    }
+
+    //  draw radial grid
+
+    const GridData &radialGrid = d_data->gridData[QwtPolar::Radius];
+    if ( radialGrid.isVisible && radialGrid.isMinorVisible )
+    {
+        painter->setPen( radialGrid.minorPen );
+
+        drawCircles( painter, canvasRect, pole, radialMap,
+            radialGrid.scaleDiv.ticks( QwtScaleDiv::MinorTick ) );
+        drawCircles( painter, canvasRect, pole, radialMap,
+            radialGrid.scaleDiv.ticks( QwtScaleDiv::MediumTick ) );
+    }
+    if ( radialGrid.isVisible )
+    {
+        painter->setPen( radialGrid.majorPen );
+
+        drawCircles( painter, canvasRect, pole, radialMap,
+            radialGrid.scaleDiv.ticks( QwtScaleDiv::MajorTick ) );
+    }
+
+    // draw azimuth grid
+
+    const GridData &azimuthGrid =
+        d_data->gridData[QwtPolar::Azimuth];
+
+    if ( azimuthGrid.isVisible && azimuthGrid.isMinorVisible )
+    {
+        painter->setPen( azimuthGrid.minorPen );
+
+        drawRays( painter, canvasRect, pole, radius, azimuthMap,
+            azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MinorTick ) );
+        drawRays( painter, canvasRect, pole, radius, azimuthMap,
+            azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MediumTick ) );
+    }
+    if ( azimuthGrid.isVisible )
+    {
+        painter->setPen( azimuthGrid.majorPen );
+
+        drawRays( painter, canvasRect, pole, radius, azimuthMap,
+            azimuthGrid.scaleDiv.ticks( QwtScaleDiv::MajorTick ) );
+    }
+    painter->restore();
+
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        const AxisData &axis = d_data->axisData[axisId];
+        if ( axis.isVisible )
+        {
+            painter->save();
+            drawAxis( painter, axisId );
+            painter->restore();
+        }
+    }
+}
+
+/*!
+  Draw lines from the pole
+
+  \param painter Painter
+  \param canvasRect Contents rect of the canvas in painter coordinates
+  \param pole Position of the pole in painter coordinates
+  \param radius Length of the lines in painter coordinates
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param values Azimuth values, indicating the direction of the lines
+*/
+void QwtPolarGrid::drawRays(
+    QPainter *painter, const QRectF &canvasRect,
+    const QPointF &pole, double radius,
+    const QwtScaleMap &azimuthMap, const QList<double> &values ) const
+{
+    for ( int i = 0; i < int( values.size() ); i++ )
+    {
+        double azimuth = azimuthMap.transform( values[i] );
+        azimuth = ::fmod( azimuth, 2 * M_PI );
+
+        bool skipLine = false;
+        if ( testDisplayFlag( SmartScaleDraw ) )
+        {
+            const QwtAbstractScaleDraw::ScaleComponent bone =
+                QwtAbstractScaleDraw::Backbone;
+            if ( isClose( azimuth, 0.0 ) )
+            {
+                const AxisData &axis = d_data->axisData[QwtPolar::AxisRight];
+                if ( axis.isVisible && axis.scaleDraw->hasComponent( bone ) )
+                    skipLine = true;
+            }
+            else if ( isClose( azimuth, M_PI / 2 ) )
+            {
+                const AxisData &axis = d_data->axisData[QwtPolar::AxisTop];
+                if ( axis.isVisible && axis.scaleDraw->hasComponent( bone ) )
+                    skipLine = true;
+            }
+            else if ( isClose( azimuth, M_PI ) )
+            {
+                const AxisData &axis = d_data->axisData[QwtPolar::AxisLeft];
+                if ( axis.isVisible && axis.scaleDraw->hasComponent( bone ) )
+                    skipLine = true;
+            }
+            else if ( isClose( azimuth, 3 * M_PI / 2.0 ) )
+            {
+                const AxisData &axis = d_data->axisData[QwtPolar::AxisBottom];
+                if ( axis.isVisible && axis.scaleDraw->hasComponent( bone ) )
+                    skipLine = true;
+            }
+        }
+        if ( !skipLine )
+        {
+            const QPointF pos = qwtPolar2Pos( pole, radius, azimuth );
+
+            /*
+                Qt4 is horrible slow, when painting primitives,
+                with coordinates far outside the visible area.
+             */
+
+            QPolygonF polygon( 2 );
+            polygon[0] = pole.toPoint();
+            polygon[1] = pos.toPoint();
+
+            if ( testDisplayFlag( ClipGridLines ) )
+                polygon = QwtClipper::clipPolygonF( canvasRect, polygon );
+
+            QwtPainter::drawPolyline( painter, polygon );
+        }
+    }
+}
+
+/*!
+  Draw circles
+
+  \param painter Painter
+  \param canvasRect Contents rect of the canvas in painter coordinates
+  \param pole Position of the pole in painter coordinates
+  \param radialMap Maps radius values into painter coordinates.
+  \param values Radial values, indicating the distances from the pole
+*/
+void QwtPolarGrid::drawCircles(
+    QPainter *painter, const QRectF &canvasRect,
+    const QPointF &pole, const QwtScaleMap &radialMap,
+    const QList<double> &values ) const
+{
+    for ( int i = 0; i < int( values.size() ); i++ )
+    {
+        const double val = values[i];
+
+        const GridData &gridData =
+            d_data->gridData[QwtPolar::Radius];
+
+        bool skipLine = false;
+        if ( testDisplayFlag( SmartScaleDraw ) )
+        {
+            const AxisData &axis = d_data->axisData[QwtPolar::AxisAzimuth];
+            if ( axis.isVisible &&
+                axis.scaleDraw->hasComponent( QwtAbstractScaleDraw::Backbone ) )
+            {
+                if ( isClose( val, gridData.scaleDiv.upperBound() ) )
+                    skipLine = true;
+            }
+        }
+
+        if ( isClose( val, gridData.scaleDiv.lowerBound() ) )
+            skipLine = true;
+
+        if ( !skipLine )
+        {
+            const double radius = radialMap.transform( val );
+
+            QRectF outerRect( 0, 0, 2 * radius, 2 * radius );
+            outerRect.moveCenter( pole );
+
+            if ( testDisplayFlag( ClipGridLines ) )
+            {
+                /*
+                    Qt4 is horrible slow, when painting primitives,
+                    with coordinates far outside the visible area.
+                    We need to clip.
+                */
+
+                const QVector<QwtInterval> angles =
+                    QwtClipper::clipCircle( canvasRect, pole, radius );
+                for ( int i = 0; i < angles.size(); i++ )
+                {
+                    const QwtInterval intv = angles[i];
+                    if ( intv.minValue() == 0 && intv.maxValue() == 2 * M_PI )
+                        QwtPainter::drawEllipse( painter, outerRect );
+                    else
+                    {
+                        const double from = intv.minValue() / M_PI * 180;
+                        const double to = intv.maxValue() / M_PI * 180;
+                        double span = to - from;
+                        if ( span < 0.0 )
+                            span += 360.0;
+
+                        painter->drawArc( outerRect,
+                            qRound( from * 16 ), qRound( span * 16 ) );
+                    }
+                }
+            }
+            else
+            {
+                QwtPainter::drawEllipse( painter, outerRect );
+            }
+        }
+    }
+}
+
+/*!
+  Paint an axis
+
+  \param painter Painter
+  \param axisId Axis id (QwtPolar::Axis)
+*/
+void QwtPolarGrid::drawAxis( QPainter *painter, int axisId ) const
+{
+    if ( axisId < 0 || axisId >= QwtPolar::AxesCount )
+        return;
+
+    AxisData &axis = d_data->axisData[axisId];
+
+    painter->setPen( axis.pen );
+    painter->setFont( axis.font );
+
+    QPalette pal;
+    pal.setColor( QPalette::Foreground, axis.pen.color() );
+    pal.setColor( QPalette::Text, axis.pen.color() );
+
+    axis.scaleDraw->draw( painter, pal );
+}
+
+/*!
+   Update the axis scale draw geometries
+
+   \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+   \param radialMap Maps radius values into painter coordinates.
+   \param pole Position of the pole in painter coordinates
+   \param radius Radius of the complete plot area in painter coordinates
+
+   \sa updateScaleDiv()
+*/
+void QwtPolarGrid::updateScaleDraws(
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double radius ) const
+{
+    const QPoint p = pole.toPoint();
+
+    const QwtInterval interval =
+        d_data->gridData[QwtPolar::ScaleRadius].scaleDiv.interval();
+
+    const int min = radialMap.transform( interval.minValue() );
+    const int max = radialMap.transform( interval.maxValue() );
+    const int l = max - min;
+
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        AxisData &axis = d_data->axisData[axisId];
+
+        if ( axisId == QwtPolar::AxisAzimuth )
+        {
+            QwtRoundScaleDraw *scaleDraw =
+                static_cast<QwtRoundScaleDraw *>( axis.scaleDraw );
+
+            scaleDraw->setRadius( qRound( radius ) );
+            scaleDraw->moveCenter( p );
+
+            double from = ::fmod( 90.0 - azimuthMap.p1() * 180.0 / M_PI, 360.0 );
+            if ( from < 0.0 )
+                from += 360.0;
+
+            scaleDraw->setAngleRange( from, from - 360.0 );
+
+            const QwtTransform *transform = azimuthMap.transformation();
+            if ( transform )
+                scaleDraw->setTransformation( transform->copy() );
+            else
+                scaleDraw->setTransformation( NULL );
+        }
+        else
+        {
+            QwtScaleDraw *scaleDraw =
+                static_cast<QwtScaleDraw *>( axis.scaleDraw );
+
+            switch( axisId )
+            {
+                case QwtPolar::AxisLeft:
+                {
+                    scaleDraw->move( p.x() - min, p.y() );
+                    scaleDraw->setLength( -l );
+                    break;
+                }
+                case QwtPolar::AxisRight:
+                {
+                    scaleDraw->move( p.x() + min, p.y() );
+                    scaleDraw->setLength( l );
+                    break;
+                }
+                case QwtPolar::AxisTop:
+                {
+                    scaleDraw->move( p.x(), p.y() - max );
+                    scaleDraw->setLength( l );
+                    break;
+                }
+                case QwtPolar::AxisBottom:
+                {
+                    scaleDraw->move( p.x(), p.y() + max );
+                    scaleDraw->setLength( -l );
+                    break;
+                }
+            }
+            const QwtTransform *transform = radialMap.transformation();
+            if ( transform )
+                scaleDraw->setTransformation( transform->copy() );
+            else
+                scaleDraw->setTransformation( NULL );
+        }
+    }
+}
+
+/*!
+   \brief Update the item to changes of the axes scale division
+
+   If AutoScaling is enabled the radial scale is calculated
+   from the interval, otherwise the scales are adopted to
+   the plot scales.
+
+   \param azimuthScaleDiv Scale division of the azimuth-scale
+   \param radialScaleDiv Scale division of the radius-axis
+   \param interval The interval of the radius-axis, that is
+                   visible on the canvas
+
+   \sa QwtPolarPlot::setGridAttributes()
+*/
+
+void QwtPolarGrid::updateScaleDiv( const QwtScaleDiv &azimuthScaleDiv,
+    const QwtScaleDiv &radialScaleDiv, const QwtInterval &interval )
+{
+    GridData &radialGrid = d_data->gridData[QwtPolar::Radius];
+
+    const QwtPolarPlot *plt = plot();
+    if ( plt && testGridAttribute( AutoScaling ) )
+    {
+        const QwtScaleEngine *se = plt->scaleEngine( QwtPolar::Radius );
+        radialGrid.scaleDiv = se->divideScale(
+            interval.minValue(), interval.maxValue(),
+            plt->scaleMaxMajor( QwtPolar::Radius ),
+            plt->scaleMaxMinor( QwtPolar::Radius ), 0 );
+    }
+    else
+    {
+        if ( radialGrid.scaleDiv != radialScaleDiv )
+            radialGrid.scaleDiv = radialScaleDiv;
+    }
+
+    GridData &azimuthGrid = d_data->gridData[QwtPolar::Azimuth];
+    if ( azimuthGrid.scaleDiv != azimuthScaleDiv )
+    {
+        azimuthGrid.scaleDiv = azimuthScaleDiv;
+    }
+
+    bool hasOrigin = false;
+    for ( int axisId = 0; axisId < QwtPolar::AxesCount; axisId++ )
+    {
+        AxisData &axis = d_data->axisData[axisId];
+        if ( axis.isVisible && axis.scaleDraw )
+        {
+            if ( axisId == QwtPolar::AxisAzimuth )
+            {
+                axis.scaleDraw->setScaleDiv( azimuthGrid.scaleDiv );
+                if ( testDisplayFlag( SmartScaleDraw ) )
+                {
+                    axis.scaleDraw->enableComponent(
+                        QwtAbstractScaleDraw::Ticks, !azimuthGrid.isVisible );
+                }
+            }
+            else
+            {
+                QwtScaleDiv sd = radialGrid.scaleDiv;
+
+                QList<double> ticks = sd.ticks( QwtScaleDiv::MajorTick );
+
+                if ( testDisplayFlag( SmartOriginLabel ) )
+                {
+                    bool skipOrigin = hasOrigin;
+                    if ( !skipOrigin )
+                    {
+                        if ( axisId == QwtPolar::AxisLeft
+                            || axisId == QwtPolar::AxisRight )
+                        {
+                            if ( d_data->axisData[QwtPolar::AxisBottom].isVisible )
+                                skipOrigin = true;
+                        }
+                        else
+                        {
+                            if ( d_data->axisData[QwtPolar::AxisLeft].isVisible )
+                                skipOrigin = true;
+                        }
+                    }
+                    if ( ticks.size() > 0 && ticks.first() == sd.lowerBound() )
+                    {
+                        if ( skipOrigin )
+                            ticks.removeFirst();
+                        else
+                            hasOrigin = true;
+                    }
+                }
+
+                if ( testDisplayFlag( HideMaxRadiusLabel ) )
+                {
+                    if ( ticks.size() > 0 && ticks.last() == sd.upperBound() )
+                        ticks.removeLast();
+                }
+
+                sd.setTicks( QwtScaleDiv::MajorTick, ticks );
+                axis.scaleDraw->setScaleDiv( sd );
+
+                if ( testDisplayFlag( SmartScaleDraw ) )
+                {
+                    axis.scaleDraw->enableComponent(
+                        QwtAbstractScaleDraw::Ticks, !radialGrid.isVisible );
+                }
+
+            }
+        }
+    }
+}
+
+/*!
+   \return Number of pixels, that are necessary to paint the azimuth scale
+   \sa QwtRoundScaleDraw::extent()
+*/
+int QwtPolarGrid::marginHint() const
+{
+    const AxisData &axis = d_data->axisData[QwtPolar::AxisAzimuth];
+    if ( axis.isVisible )
+    {
+        const int extent = axis.scaleDraw->extent( axis.font );
+        return extent;
+    }
+
+    return 0;
+}
+
+/*!
+  Returns the scale draw of a specified axis
+
+  \param axisId axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
+  \return specified scaleDraw for axis, or NULL if axis is invalid.
+  \sa azimuthScaleDraw()
+*/
+const QwtScaleDraw *QwtPolarGrid::scaleDraw( int axisId ) const
+{
+    if ( axisId >= QwtPolar::AxisLeft && axisId <= QwtPolar::AxisBottom )
+        return static_cast<QwtScaleDraw *>( d_data->axisData[axisId].scaleDraw );
+
+    return NULL;
+}
+
+/*!
+  Returns the scale draw of a specified axis
+
+  \param axisId axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
+  \return specified scaleDraw for axis, or NULL if axis is invalid.
+  \sa setScaleDraw(), azimuthScaleDraw()
+*/
+QwtScaleDraw *QwtPolarGrid::scaleDraw( int axisId )
+{
+    if ( axisId >= QwtPolar::AxisLeft && axisId <= QwtPolar::AxisBottom )
+        return static_cast<QwtScaleDraw *>( d_data->axisData[axisId].scaleDraw );
+
+    return NULL;
+}
+
+/*!
+  \brief Set a scale draw
+
+  \param axisId axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
+  \param scaleDraw object responsible for drawing scales.
+
+  \sa scaleDraw(), setAzimuthScaleDraw()
+*/
+void QwtPolarGrid::setScaleDraw( int axisId, QwtScaleDraw *scaleDraw )
+{
+    if ( axisId < QwtPolar::AxisLeft || axisId > QwtPolar::AxisBottom )
+        return;
+
+    AxisData &axisData = d_data->axisData[axisId];
+    if ( axisData.scaleDraw != scaleDraw )
+    {
+        delete axisData.scaleDraw;
+        axisData.scaleDraw = scaleDraw;
+        itemChanged();
+    }
+}
+
+/*!
+  \return Scale draw for the azimuth scale
+  \sa setAzimuthScaleDraw(), scaleDraw()
+*/
+const QwtRoundScaleDraw *QwtPolarGrid::azimuthScaleDraw() const
+{
+    return static_cast<QwtRoundScaleDraw *>(
+        d_data->axisData[QwtPolar::AxisAzimuth].scaleDraw );
+}
+
+/*!
+  \return Scale draw for the azimuth scale
+  \sa setAzimuthScaleDraw(), scaleDraw()
+*/
+QwtRoundScaleDraw *QwtPolarGrid::azimuthScaleDraw()
+{
+    return static_cast<QwtRoundScaleDraw *>(
+        d_data->axisData[QwtPolar::AxisAzimuth].scaleDraw );
+}
+
+/*!
+  \brief Set a scale draw for the azimuth scale
+
+  \param scaleDraw object responsible for drawing scales.
+  \sa azimuthScaleDraw(), setScaleDraw()
+*/
+void QwtPolarGrid::setAzimuthScaleDraw( QwtRoundScaleDraw *scaleDraw )
+{
+    AxisData &axisData = d_data->axisData[QwtPolar::AxisAzimuth];
+    if ( axisData.scaleDraw != scaleDraw )
+    {
+        delete axisData.scaleDraw;
+        axisData.scaleDraw = scaleDraw;
+        itemChanged();
+    }
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.h
new file mode 100644
index 0000000..5270750
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_grid.h
@@ -0,0 +1,187 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_GRID_H
+#define QWT_POLAR_GRID_H
+
+#include "qwt_polar_global.h"
+#include "qwt_polar.h"
+#include "qwt_polar_item.h"
+#include "qwt_polar_plot.h"
+
+class QPainter;
+class QPen;
+class QwtScaleMap;
+class QwtScaleDiv;
+class QwtRoundScaleDraw;
+class QwtScaleDraw;
+
+/*!
+  \brief An item which draws scales and grid lines on a polar plot.
+
+  The QwtPolarGrid class can be used to draw a coordinate grid.
+  A coordinate grid consists of major and minor gridlines.
+  The locations of the gridlines are determined by the azimuth and radial
+  scale divisions.
+
+  QwtPolarGrid is also responsible for drawing the axis representing the
+  scales. It is possible to display 4 radial and one azimuth axis.
+
+  Whenever the scale divisions of the plot widget changes the grid
+  is synchronized by updateScaleDiv().
+
+  \sa QwtPolarPlot, QwtPolar::Axis
+*/
+
+class QWT_POLAR_EXPORT QwtPolarGrid: public QwtPolarItem
+{
+public:
+    /*!
+       Mysterious flags trying to avoid conflicts, when painting the
+       scales and grid lines.
+
+      The default setting enables all flags.
+
+      \sa setDisplayFlag(), testDisplayFlag()
+     */
+    enum DisplayFlag
+    {
+        /*!
+          Try to avoid situations, where the label of the origin is
+          painted over another axis.
+         */
+        SmartOriginLabel = 1,
+
+        /*!
+        Often the outermost tick of the radial scale is close to the
+        canvas border. With HideMaxRadiusLabel enabled it is not painted.
+         */
+        HideMaxRadiusLabel = 2,
+
+        /*!
+        The tick labels of the radial scales might be hard to read, when
+        they are painted on top of the radial grid lines ( or on top
+        of a curve/spectrogram ). When ClipAxisBackground the bounding rect
+        of each label is added to the clip region.
+         */
+        ClipAxisBackground = 4,
+
+        /*!
+        Don't paint the backbone of the radial axes, when they are very close
+        to a line of the azimuth grid.
+         */
+        SmartScaleDraw = 8,
+
+        /*!
+        All grid lines are clipped against the plot area before being painted.
+        When the plot is zoomed in this will have an significant impact
+        on the performance of the painting cde.
+         */
+        ClipGridLines = 16
+    };
+
+    //! Display flags
+    typedef QFlags<DisplayFlag> DisplayFlags;
+
+    /*!
+      \brief Grid attributes
+      \sa setGridAttributes(), testGridAttributes()
+     */
+    enum GridAttribute
+    {
+        /*!
+          When AutoScaling is enabled, the radial axes will be adjusted
+          to the interval, that is currently visible on the canvas plot.
+         */
+        AutoScaling = 0x01
+    };
+
+    //! Grid attributes
+    typedef QFlags<GridAttribute> GridAttributes;
+
+    explicit QwtPolarGrid();
+    virtual ~QwtPolarGrid();
+
+    virtual int rtti() const;
+
+    void setDisplayFlag( DisplayFlag, bool on = true );
+    bool testDisplayFlag( DisplayFlag ) const;
+
+    void setGridAttribute( GridAttribute, bool on = true );
+    bool testGridAttribute( GridAttribute ) const;
+
+    void showGrid( int scaleId, bool show = true );
+    bool isGridVisible( int scaleId ) const;
+
+    void showMinorGrid( int scaleId, bool show = true );
+    bool isMinorGridVisible( int scaleId ) const;
+
+    void showAxis( int axisId, bool show = true );
+    bool isAxisVisible( int axisId ) const;
+
+    void setPen( const QPen &p );
+    void setFont( const QFont & );
+
+    void setMajorGridPen( const QPen &p );
+    void setMajorGridPen( int scaleId, const QPen &p );
+    QPen majorGridPen( int scaleId ) const;
+
+    void setMinorGridPen( const QPen &p );
+    void setMinorGridPen( int scaleId, const QPen &p );
+    QPen minorGridPen( int scaleId ) const;
+
+    void setAxisPen( int axisId, const QPen &p );
+    QPen axisPen( int axisId ) const;
+
+    void setAxisFont( int axisId, const QFont &p );
+    QFont axisFont( int axisId ) const;
+
+    void setScaleDraw( int axisId, QwtScaleDraw * );
+    const QwtScaleDraw *scaleDraw( int axisId ) const;
+    QwtScaleDraw *scaleDraw( int axisId );
+
+    void setAzimuthScaleDraw( QwtRoundScaleDraw * );
+    const QwtRoundScaleDraw *azimuthScaleDraw() const;
+    QwtRoundScaleDraw *azimuthScaleDraw();
+
+    virtual void draw( QPainter *p,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, double radius,
+        const QRectF &rect ) const;
+
+    virtual void updateScaleDiv( const QwtScaleDiv &azimuthMap,
+        const QwtScaleDiv &radialMap, const QwtInterval & );
+
+    virtual int marginHint() const;
+
+protected:
+    void drawRays( QPainter *, const QRectF &,
+        const QPointF &pole, double radius,
+        const QwtScaleMap &azimuthMap, const QList<double> & ) const;
+    void drawCircles( QPainter *, const QRectF &,
+        const QPointF &pole, const QwtScaleMap &radialMap,
+        const QList<double> & ) const;
+
+    void drawAxis( QPainter *, int axisId ) const;
+
+private:
+    void updateScaleDraws(
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, const double radius ) const;
+
+private:
+    class GridData;
+    class AxisData;
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarGrid::DisplayFlags )
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarGrid::GridAttributes )
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.cpp
new file mode 100644
index 0000000..7d7895d
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.cpp
@@ -0,0 +1,484 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_plot.h"
+#include "qwt_polar_item.h"
+#include <qwt_legend.h>
+#include <qwt_scale_div.h>
+#include <qpainter.h>
+
+class QwtPolarItem::PrivateData
+{
+public:
+    PrivateData():
+        plot( NULL ),
+        isVisible( true ),
+        attributes( 0 ),
+        renderHints( 0 ),
+        renderThreadCount( 1 ),
+        z( 0.0 ),
+        legendIconSize( 8, 8 )
+    {
+    }
+
+    mutable QwtPolarPlot *plot;
+
+    bool isVisible;
+    QwtPolarItem::ItemAttributes attributes;
+    QwtPolarItem::RenderHints renderHints;
+    uint renderThreadCount;
+
+    double z;
+
+    QwtText title;
+    QSize legendIconSize;
+};
+
+/*!
+   Constructor
+
+   \param title Item title, f.e used on a legend
+
+   \sa setTitle()
+*/
+QwtPolarItem::QwtPolarItem( const QwtText &title )
+{
+    d_data = new PrivateData;
+    d_data->title = title;
+}
+
+//! Destroy the QwtPolarItem
+QwtPolarItem::~QwtPolarItem()
+{
+    attach( NULL );
+    delete d_data;
+}
+
+/*!
+  \brief Attach the item to a plot.
+
+  This method will attach a QwtPolarItem to the QwtPolarPlot argument.
+  It will first detach the QwtPolarItem from any plot from a previous
+  call to attach (if necessary).
+  If a NULL argument is passed, it will detach from any QwtPolarPlot it
+  was attached to.
+
+  \param plot Plot widget
+
+  \sa QwtPolarItem::detach()
+*/
+void QwtPolarItem::attach( QwtPolarPlot *plot )
+{
+    if ( plot == d_data->plot )
+        return;
+
+    if ( d_data->plot )
+        d_data->plot->attachItem( this, false );
+
+    d_data->plot = plot;
+
+    if ( d_data->plot )
+        d_data->plot->attachItem( this, true );
+}
+
+/*!
+   \brief This method detaches a QwtPolarItem from the QwtPolarPlot it
+          has been associated with.
+
+   detach() is equivalent to calling attach( NULL )
+   \sa attach()
+*/
+void QwtPolarItem::detach() 
+{ 
+    attach( NULL ); 
+}
+
+/*!
+   Return rtti for the specific class represented. QwtPolarItem is simply
+   a virtual interface class, and base classes will implement this method
+   with specific rtti values so a user can differentiate them.
+
+   The rtti value is useful for environments, where the
+   runtime type information is disabled and it is not possible
+   to do a dynamic_cast<...>.
+
+   \return rtti value
+   \sa RttiValues
+*/
+int QwtPolarItem::rtti() const
+{
+    return Rtti_PolarItem;
+}
+
+//! \return Attached plot
+QwtPolarPlot *QwtPolarItem::plot() const
+{
+    return d_data->plot;
+}
+
+/*!
+   Plot items are painted in increasing z-order.
+
+   \return Z value
+   \sa setZ(), QwtPolarItemDict::itemList()
+*/
+double QwtPolarItem::z() const
+{
+    return d_data->z;
+}
+
+/*!
+   \brief Set the z value
+
+   Plot items are painted in increasing z-order.
+
+   \param z Z-value
+   \sa z(), QwtPolarItemDict::itemList()
+*/
+void QwtPolarItem::setZ( double z )
+{
+    if ( d_data->z != z )
+    {
+        if ( d_data->plot )
+            d_data->plot->attachItem( this, false );
+
+        d_data->z = z;
+
+        if ( d_data->plot )
+            d_data->plot->attachItem( this, true );
+
+        itemChanged();
+    }
+}
+
+/*!
+   Set a new title
+
+   \param title Title
+   \sa title()
+*/
+void QwtPolarItem::setTitle( const QString &title )
+{
+    setTitle( QwtText( title ) );
+}
+
+/*!
+   Set a new title
+
+   \param title Title
+   \sa title()
+*/
+void QwtPolarItem::setTitle( const QwtText &title )
+{
+    if ( d_data->title != title )
+    {
+        d_data->title = title;
+        itemChanged();
+    }
+}
+
+/*!
+   \return Title of the item
+   \sa setTitle()
+*/
+const QwtText &QwtPolarItem::title() const
+{
+    return d_data->title;
+}
+
+/*!
+   Toggle an item attribute
+
+   \param attribute Attribute type
+   \param on true/false
+
+   \sa testItemAttribute(), ItemAttribute
+*/
+void QwtPolarItem::setItemAttribute( ItemAttribute attribute, bool on )
+{
+    if ( bool( d_data->attributes & attribute ) != on )
+    {
+        if ( on )
+            d_data->attributes |= attribute;
+        else
+            d_data->attributes &= ~attribute;
+
+        itemChanged();
+    }
+}
+
+/*!
+   Test an item attribute
+
+   \param attribute Attribute type
+   \return true/false
+   \sa setItemAttribute(), ItemAttribute
+*/
+bool QwtPolarItem::testItemAttribute( ItemAttribute attribute ) const
+{
+    return d_data->attributes & attribute;
+}
+
+/*!
+   Toggle an render hint
+
+   \param hint Render hint
+   \param on true/false
+
+   \sa testRenderHint(), RenderHint
+*/
+void QwtPolarItem::setRenderHint( RenderHint hint, bool on )
+{
+    if ( ( ( d_data->renderHints & hint ) != 0 ) != on )
+    {
+        if ( on )
+            d_data->renderHints |= hint;
+        else
+            d_data->renderHints &= ~hint;
+
+        itemChanged();
+    }
+}
+
+/*!
+   Test a render hint
+
+   \param hint Render hint
+   \return true/false
+   \sa setRenderHint(), RenderHint
+*/
+bool QwtPolarItem::testRenderHint( RenderHint hint ) const
+{
+    return ( d_data->renderHints & hint );
+}
+
+/*!
+   On multi core systems rendering of certain plot item 
+   ( f.e QwtPolarSpectrogram ) can be done in parallel in 
+   several threads.
+
+   The default setting is set to 1.
+
+   \param numThreads Number of threads to be used for rendering.
+                     If numThreads is set to 0, the system specific
+                     ideal thread count is used.
+
+   The default thread count is 1 ( = no additional threads )
+*/
+void QwtPolarItem::setRenderThreadCount( uint numThreads )
+{
+    d_data->renderThreadCount = numThreads;
+}
+
+/*!
+   \return Number of threads to be used for rendering.
+           If numThreads() is set to 0, the system specific
+           ideal thread count is used.
+*/
+uint QwtPolarItem::renderThreadCount() const
+{
+    return d_data->renderThreadCount;
+}
+
+/*!
+   Set the size of the legend icon
+
+   The default setting is 8x8 pixels
+
+   \param size Size
+   \sa legendIconSize(), legendIcon()
+*/
+void QwtPolarItem::setLegendIconSize( const QSize &size )
+{
+    if ( d_data->legendIconSize != size )
+    {
+        d_data->legendIconSize = size;
+        legendChanged();
+    }
+}
+
+/*!
+   \return Legend icon size
+   \sa setLegendIconSize(), legendIcon()
+*/
+QSize QwtPolarItem::legendIconSize() const
+{
+    return d_data->legendIconSize;
+}
+
+//! Show the item
+void QwtPolarItem::show()
+{
+    setVisible( true );
+}
+
+//! Hide the item
+void QwtPolarItem::hide()
+{
+    setVisible( false );
+}
+
+/*!
+    Show/Hide the item
+
+    \param on Show if true, otherwise hide
+    \sa isVisible(), show(), hide()
+*/
+void QwtPolarItem::setVisible( bool on )
+{
+    if ( on != d_data->isVisible )
+    {
+        d_data->isVisible = on;
+        itemChanged();
+    }
+}
+
+/*!
+    \return true if visible
+    \sa setVisible(), show(), hide()
+*/
+bool QwtPolarItem::isVisible() const
+{
+    return d_data->isVisible;
+}
+
+/*!
+   Update the legend and call QwtPolarPlot::autoRefresh for the
+   parent plot.
+
+   \sa updateLegend()
+*/
+void QwtPolarItem::itemChanged()
+{
+    if ( d_data->plot )
+        d_data->plot->autoRefresh();
+}
+
+/*!
+   Update the legend of the parent plot.
+   \sa QwtPolarPlot::updateLegend(), itemChanged()
+*/
+void QwtPolarItem::legendChanged()
+{
+    if ( testItemAttribute( QwtPolarItem::Legend ) && d_data->plot )
+        d_data->plot->updateLegend( this );
+}
+
+/*!
+   Interval, that is necessary to display the item
+
+   This interval can be useful for operations like clipping or autoscaling
+   For items ( like the grid ), where a bounding interval makes no
+   sense an invalid interval is returned.
+
+   \param scaleId Scale id ( QwtPolar::Scale )
+   \return Bounding interval of the plot item for a specific scale
+*/
+QwtInterval QwtPolarItem::boundingInterval( int scaleId ) const
+{
+    Q_UNUSED( scaleId );
+
+    return QwtInterval(); // invalid
+}
+
+/*!
+   \brief Update the item to changes of the axes scale division
+
+   Update the item, when the axes of plot have changed.
+   The default implementation does nothing, but items that depend
+   on the scale division (like QwtPolarGrid()) have to reimplement
+   updateScaleDiv()
+
+   \param azimuthScaleDiv Scale division of the azimuth-scale
+   \param radialScaleDiv Scale division of the radius-axis
+   \param interval The interval of the radius-axis, that is
+                   visible on the canvas
+
+   \sa QwtPolarPlot::updateAxes()
+*/
+void QwtPolarItem::updateScaleDiv( const QwtScaleDiv &azimuthScaleDiv,
+    const QwtScaleDiv &radialScaleDiv, const QwtInterval &interval )
+{
+    Q_UNUSED( azimuthScaleDiv );
+    Q_UNUSED( radialScaleDiv );
+    Q_UNUSED( interval );
+}
+
+/*!
+   \brief Return all information, that is needed to represent
+          the item on the legend
+
+   Most items are represented by one entry on the legend
+   showing an icon and a text.
+
+   QwtLegendData is basically a list of QVariants that makes it
+   possible to overload and reimplement legendData() to 
+   return almost any type of information, that is understood
+   by the receiver that acts as the legend.
+
+   The default implementation returns one entry with 
+   the title() of the item and the legendIcon().
+
+   \sa title(), legendIcon(), QwtLegend
+ */
+QList<QwtLegendData> QwtPolarItem::legendData() const
+{
+    QwtLegendData data;
+
+    QwtText label = title();
+    label.setRenderFlags( label.renderFlags() & Qt::AlignLeft );
+
+    QVariant titleValue;
+    qVariantSetValue( titleValue, label );
+    data.setValue( QwtLegendData::TitleRole, titleValue );
+
+    const QwtGraphic graphic = legendIcon( 0, legendIconSize() );
+    if ( !graphic.isNull() )
+    {
+        QVariant iconValue;
+        qVariantSetValue( iconValue, graphic );
+        data.setValue( QwtLegendData::IconRole, iconValue );
+    }
+
+    QList<QwtLegendData> list;
+    list += data;
+
+    return list;
+}
+
+/*!
+   \return Icon representing the item on the legend
+
+   The default implementation returns an invalid icon
+
+   \param index Index of the legend entry 
+                ( usually there is only one )
+   \param size Icon size
+
+   \sa setLegendIconSize(), legendData()
+ */
+QwtGraphic QwtPolarItem::legendIcon(
+    int index, const QSizeF &size ) const
+{
+    Q_UNUSED( index )
+    Q_UNUSED( size )
+
+    return QwtGraphic();
+}
+
+/*!
+   Some items like to display something (f.e. the azimuth axis) outside
+   of the area of the interval of the radial scale.
+   The default implementation returns 0 pixels
+
+   \return Hint for the margin
+*/
+int QwtPolarItem::marginHint() const
+{
+    return 0;
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.h
new file mode 100644
index 0000000..f83ed94
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_item.h
@@ -0,0 +1,178 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_ITEM_H
+#define QWT_POLAR_ITEM_H
+
+#include "qwt_polar_global.h"
+#include <qwt_text.h>
+#include <qwt_legend_data.h>
+#include <qwt_graphic.h>
+#include <qwt_interval.h>
+
+class QString;
+class QRect;
+class QPointF;
+class QPainter;
+class QwtPolarPlot;
+class QwtScaleMap;
+class QwtScaleDiv;
+
+/*!
+  \brief Base class for items on a polar plot
+
+  A QwtPolarItem is "something that can be painted on the canvas".
+  It is connected to the QwtPolar framework by a couple of virtual
+  methods, that are individually implemented in derived item classes.
+
+  QwtPolar offers an implementation of the most common types of items,
+  but deriving from QwtPolarItem makes it easy to implement additional
+  types of items.
+*/
+class QWT_POLAR_EXPORT QwtPolarItem
+{
+public:
+    /*!
+        \brief Runtime type information
+
+        RttiValues is used to cast plot items, without
+        having to enable runtime type information of the compiler.
+     */
+    enum RttiValues
+    {
+        //! Unspecific value, that can be used, when it doesn't matter
+        Rtti_PolarItem = 0,
+
+        //! For QwtPolarGrid
+        Rtti_PolarGrid,
+
+        //! For QwtPolarMarker
+        Rtti_PolarMarker,
+
+        //! For QwtPolarCurve
+        Rtti_PolarCurve,
+
+        //! For QwtPolarSpectrogram
+        Rtti_PolarSpectrogram,
+
+        /*! 
+           Values >= Rtti_PolarUserItem are reserved for plot items
+           not implemented in the QwtPolar library.
+         */
+        Rtti_PolarUserItem = 1000
+    };
+
+    /*!
+       \brief Plot Item Attributes
+       \sa setItemAttribute(), testItemAttribute()
+     */
+    enum ItemAttribute
+    {
+        //! The item is represented on the legend.
+        Legend    = 0x01,
+
+        /*!
+          The boundingRect() of the item is included in the
+          autoscaling calculation.
+         */
+        AutoScale = 0x02
+    };
+
+    //! Item attributes
+    typedef QFlags<ItemAttribute> ItemAttributes;
+
+    /*!
+       \brief Render hints
+       \sa setRenderHint(), testRenderHint()
+     */
+    enum RenderHint
+    {
+        //! Enable antialiasing
+        RenderAntialiased = 0x01
+    };
+
+    //! Item attributes
+    typedef QFlags<RenderHint> RenderHints;
+
+    explicit QwtPolarItem( const QwtText &title = QwtText() );
+    virtual ~QwtPolarItem();
+
+    void attach( QwtPolarPlot *plot );
+    void detach();
+
+    QwtPolarPlot *plot() const;
+
+    void setTitle( const QString &title );
+    void setTitle( const QwtText &title );
+    const QwtText &title() const;
+
+    virtual int rtti() const;
+
+    void setItemAttribute( ItemAttribute, bool on = true );
+    bool testItemAttribute( ItemAttribute ) const;
+
+    void setRenderHint( RenderHint, bool on = true );
+    bool testRenderHint( RenderHint ) const;
+
+    void setRenderThreadCount( uint numThreads );
+    uint renderThreadCount() const;
+
+    double z() const;
+    void setZ( double z );
+
+    void show();
+    void hide();
+    virtual void setVisible( bool );
+    bool isVisible () const;
+
+    virtual void itemChanged();
+    virtual void legendChanged();
+
+    /*!
+      \brief Draw the item
+
+      \param painter Painter
+      \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+      \param radialMap Maps radius values into painter coordinates.
+      \param pole Position of the pole in painter coordinates
+      \param radius Radius of the complete plot area in painter coordinates
+      \param canvasRect Contents rect of the canvas in painter coordinates
+    */
+    virtual void draw( QPainter *painter,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, double radius,
+        const QRectF &canvasRect ) const = 0;
+
+    virtual QwtInterval boundingInterval( int scaleId ) const;
+
+    virtual void updateScaleDiv( const QwtScaleDiv &,
+        const QwtScaleDiv &, const QwtInterval & );
+
+    virtual int marginHint() const;
+
+    void setLegendIconSize( const QSize & );
+    QSize legendIconSize() const;
+
+    virtual QList<QwtLegendData> legendData() const;
+    virtual QwtGraphic legendIcon( int index, const QSizeF  & ) const;
+
+private:
+    // Disabled copy constructor and operator=
+    QwtPolarItem( const QwtPolarItem & );
+    QwtPolarItem &operator=( const QwtPolarItem & );
+
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarItem::ItemAttributes )
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarItem::RenderHints )
+
+Q_DECLARE_METATYPE( QwtPolarItem * )
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.cpp
new file mode 100644
index 0000000..171aaac
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.cpp
@@ -0,0 +1,171 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_itemdict.h"
+
+class QwtPolarItemDict::PrivateData
+{
+public:
+    class ItemList: public QList<QwtPolarItem *>
+    {
+    public:
+        void insertItem( QwtPolarItem *item )
+        {
+            if ( item == NULL )
+                return;
+
+            // Unfortunately there is no inSort operation
+            // for lists in Qt4. The implementation below
+            // is slow, but there shouldn't be many plot items.
+
+            QList<QwtPolarItem *>::Iterator it;
+            for ( it = begin(); it != end(); ++it )
+            {
+                if ( *it == item )
+                    return;
+
+                if ( ( *it )->z() > item->z() )
+                {
+                    insert( it, item );
+                    return;
+                }
+            }
+            append( item );
+        }
+
+        void removeItem( QwtPolarItem *item )
+        {
+            if ( item == NULL )
+                return;
+
+            int i = 0;
+
+            QList<QwtPolarItem *>::Iterator it;
+            for ( it = begin(); it != end(); ++it )
+            {
+                if ( item == *it )
+                {
+                    removeAt( i );
+                    return;
+                }
+                i++;
+            }
+        }
+    };
+
+    ItemList itemList;
+    bool autoDelete;
+};
+
+/*!
+   Constructor
+
+   Auto deletion is enabled.
+   \sa setAutoDelete, attachItem
+*/
+QwtPolarItemDict::QwtPolarItemDict()
+{
+    d_data = new QwtPolarItemDict::PrivateData;
+    d_data->autoDelete = true;
+}
+
+/*!
+   Destructor
+
+   If autoDelete is on, all attached items will be deleted
+   \sa setAutoDelete, autoDelete, attachItem
+*/
+QwtPolarItemDict::~QwtPolarItemDict()
+{
+    detachItems( QwtPolarItem::Rtti_PolarItem, d_data->autoDelete );
+    delete d_data;
+}
+
+/*!
+   En/Disable Auto deletion
+
+   If Auto deletion is on all attached plot items will be deleted
+   in the destructor of QwtPolarItemDict. The default value is on.
+
+   \sa autoDelete, attachItem
+*/
+void QwtPolarItemDict::setAutoDelete( bool autoDelete )
+{
+    d_data->autoDelete = autoDelete;
+}
+
+/*!
+   \return true if auto deletion is enabled
+   \sa setAutoDelete, attachItem
+*/
+bool QwtPolarItemDict::autoDelete() const
+{
+    return d_data->autoDelete;
+}
+
+/*!
+  Insert a plot item
+
+  \param item PlotItem
+  \sa removeItem()
+ */
+void QwtPolarItemDict::insertItem( QwtPolarItem *item )
+{
+    d_data->itemList.insertItem( item );
+}
+
+/*!
+  Remove a plot item
+
+  \param item PlotItem
+  \sa insertItem()
+ */
+void QwtPolarItemDict::removeItem( QwtPolarItem *item )
+{
+    d_data->itemList.removeItem( item );
+}
+
+/*!
+   Detach items from the dictionary
+
+   \param rtti In case of QwtPolarItem::Rtti_PlotItem detach all items
+               otherwise only those items of the type rtti.
+   \param autoDelete If true, delete all detached items
+*/
+void QwtPolarItemDict::detachItems( int rtti, bool autoDelete )
+{
+    PrivateData::ItemList list = d_data->itemList;
+    QwtPolarItemIterator it = list.begin();
+    while ( it != list.end() )
+    {
+        QwtPolarItem *item = *it;
+
+        ++it; // increment before removing item from the list
+
+        if ( rtti == QwtPolarItem::Rtti_PolarItem || item->rtti() == rtti )
+        {
+            item->attach( NULL );
+            if ( autoDelete )
+                delete item;
+        }
+    }
+}
+
+/*!
+  \brief A QwtPolarItemList of all attached plot items.
+
+  \return List of all attached plot items.
+  \note Use caution when iterating these lists, as removing/detaching
+        an item will invalidate the iterator.
+        Instead you can place pointers to objects to be
+        removed in a removal list, and traverse that list later.
+*/
+const QwtPolarItemList &QwtPolarItemDict::itemList() const
+{
+    return d_data->itemList;
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.h
new file mode 100644
index 0000000..862bc9d
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_itemdict.h
@@ -0,0 +1,55 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_ITEMDICT_H
+#define QWT_POLAR_ITEMDICT_H
+
+/*! \file !*/
+
+#include "qwt_polar_global.h"
+#include "qwt_polar_item.h"
+#include <qlist.h>
+
+typedef QList<QwtPolarItem *>::ConstIterator QwtPolarItemIterator;
+/// \var typedef QList< QwtPolarItem *> QwtPolarItemList
+/// \brief See QT 4.x assistant documentation for QList
+typedef QList<QwtPolarItem *> QwtPolarItemList;
+
+/*!
+  \brief A dictionary for polar plot items
+
+  QwtPolarItemDict organizes polar plot items in increasing z-order.
+  If autoDelete() is enabled, all attached items will be deleted
+  in the destructor of the dictionary.
+
+  \sa QwtPolarItem::attach(), QwtPolarItem::detach(), QwtPolarItem::z()
+*/
+class QWT_POLAR_EXPORT QwtPolarItemDict
+{
+public:
+    explicit QwtPolarItemDict();
+    ~QwtPolarItemDict();
+
+    void setAutoDelete( bool );
+    bool autoDelete() const;
+
+    const QwtPolarItemList& itemList() const;
+
+    void detachItems( int rtti = QwtPolarItem::Rtti_PolarItem,
+        bool autoDelete = true );
+
+protected:
+    void insertItem( QwtPolarItem * );
+    void removeItem( QwtPolarItem * );
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.cpp
new file mode 100644
index 0000000..ed99294
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.cpp
@@ -0,0 +1,444 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_layout.h"
+#include "qwt_polar_plot.h"
+#include "qwt_polar_canvas.h"
+#include <qwt_text.h>
+#include <qwt_text_label.h>
+#include <qwt_legend.h>
+#include <qscrollbar.h>
+
+class QwtPolarLayout::LayoutData
+{
+public:
+    void init( const QwtPolarPlot *, const QRectF &rect );
+
+    struct t_legendData
+    {
+        int frameWidth;
+        int hScrollExtent;
+        int vScrollExtent;
+        QSizeF hint;
+    } legend;
+
+    struct t_titleData
+    {
+        QwtText text;
+        int frameWidth;
+    } title;
+
+    struct t_canvasData
+    {
+        int frameWidth;
+    } canvas;
+};
+
+void QwtPolarLayout::LayoutData::init(
+    const QwtPolarPlot *plot, const QRectF &rect )
+{
+    // legend
+
+    if ( plot->plotLayout()->legendPosition() != QwtPolarPlot::ExternalLegend
+            && plot->legend() )
+    {
+        legend.frameWidth = plot->legend()->frameWidth();
+        legend.hScrollExtent =
+            plot->legend()->scrollExtent( Qt::Horizontal );
+        legend.vScrollExtent =
+            plot->legend()->scrollExtent( Qt::Vertical );
+
+        const QSizeF hint = plot->legend()->sizeHint();
+
+        double w = qMin( hint.width(), rect.width() );
+        double h = plot->legend()->heightForWidth( w );
+        if ( h == 0.0 )
+            h = hint.height();
+
+        if ( h > rect.height() )
+            w += legend.hScrollExtent;
+
+        legend.hint = QSizeF( w, h );
+    }
+
+    // title
+
+    title.frameWidth = 0;
+    title.text = QwtText();
+
+    if ( plot->titleLabel() )
+    {
+        const QwtTextLabel *label = plot->titleLabel();
+        title.text = label->text();
+        if ( !( title.text.testPaintAttribute( QwtText::PaintUsingTextFont ) ) )
+            title.text.setFont( label->font() );
+
+        title.frameWidth = plot->titleLabel()->frameWidth();
+    }
+
+    // canvas
+
+    canvas.frameWidth = plot->canvas()->frameWidth();
+}
+
+class QwtPolarLayout::PrivateData
+{
+public:
+    PrivateData():
+        margin( 0 ),
+        spacing( 0 )
+    {
+    }
+
+    QRectF titleRect;
+    QRectF legendRect;
+    QRectF canvasRect;
+
+    QwtPolarLayout::LayoutData layoutData;
+
+    QwtPolarPlot::LegendPosition legendPos;
+    double legendRatio;
+
+    unsigned int margin;
+    unsigned int spacing;
+};
+
+/*!
+  \brief Constructor
+ */
+
+QwtPolarLayout::QwtPolarLayout()
+{
+    d_data = new PrivateData;
+
+    setLegendPosition( QwtPolarPlot::BottomLegend );
+    invalidate();
+}
+
+//! Destructor
+QwtPolarLayout::~QwtPolarLayout()
+{
+    delete d_data;
+}
+
+/*!
+  \brief Specify the position of the legend
+  \param pos The legend's position.
+  \param ratio Ratio between legend and the bounding rect
+               of title, canvas and axes. The legend will be shrinked
+               if it would need more space than the given ratio.
+               The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0
+               it will be reset to the default ratio.
+               The default vertical/horizontal ratio is 0.33/0.5.
+
+  \sa QwtPolarPlot::setLegendPosition()
+*/
+
+void QwtPolarLayout::setLegendPosition(
+    QwtPolarPlot::LegendPosition pos, double ratio )
+{
+    if ( ratio > 1.0 )
+        ratio = 1.0;
+
+    switch( pos )
+    {
+        case QwtPolarPlot::TopLegend:
+        case QwtPolarPlot::BottomLegend:
+        {
+            if ( ratio <= 0.0 )
+                ratio = 0.33;
+            d_data->legendRatio = ratio;
+            d_data->legendPos = pos;
+            break;
+        }
+        case QwtPolarPlot::LeftLegend:
+        case QwtPolarPlot::RightLegend:
+        {
+            if ( ratio <= 0.0 )
+                ratio = 0.5;
+            d_data->legendRatio = ratio;
+            d_data->legendPos = pos;
+            break;
+        }
+        case QwtPolarPlot::ExternalLegend:
+        {
+            d_data->legendRatio = ratio; // meaningless
+            d_data->legendPos = pos;
+            break;
+        }
+        default:
+            break;
+    }
+}
+
+/*!
+  \brief Specify the position of the legend
+  \param pos The legend's position. Valid values are
+      \c QwtPolarPlot::LeftLegend, \c QwtPolarPlot::RightLegend,
+      \c QwtPolarPlot::TopLegend, \c QwtPolarPlot::BottomLegend.
+
+  \sa QwtPolarPlot::setLegendPosition()
+*/
+void QwtPolarLayout::setLegendPosition( QwtPolarPlot::LegendPosition pos )
+{
+    setLegendPosition( pos, 0.0 );
+}
+
+/*!
+  \return Position of the legend
+  \sa setLegendPosition(), QwtPolarPlot::setLegendPosition(),
+      QwtPolarPlot::legendPosition()
+*/
+QwtPolarPlot::LegendPosition QwtPolarLayout::legendPosition() const
+{
+    return d_data->legendPos;
+}
+
+/*!
+  Specify the relative size of the legend in the plot
+  \param ratio Ratio between legend and the bounding rect
+               of title, canvas and axes. The legend will be shrinked
+               if it would need more space than the given ratio.
+               The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0
+               it will be reset to the default ratio.
+               The default vertical/horizontal ratio is 0.33/0.5.
+*/
+void QwtPolarLayout::setLegendRatio( double ratio )
+{
+    setLegendPosition( legendPosition(), ratio );
+}
+
+/*!
+  \return The relative size of the legend in the plot.
+  \sa setLegendPosition()
+*/
+double QwtPolarLayout::legendRatio() const
+{
+    return d_data->legendRatio;
+}
+
+/*!
+  \return Geometry for the title
+  \sa activate(), invalidate()
+*/
+
+const QRectF &QwtPolarLayout::titleRect() const
+{
+    return d_data->titleRect;
+}
+
+/*!
+  \return Geometry for the legend
+  \sa activate(), invalidate()
+*/
+
+const QRectF &QwtPolarLayout::legendRect() const
+{
+    return d_data->legendRect;
+}
+
+/*!
+  \return Geometry for the canvas
+  \sa activate(), invalidate()
+*/
+const QRectF &QwtPolarLayout::canvasRect() const
+{
+    return d_data->canvasRect;
+}
+
+/*!
+  Invalidate the geometry of all components.
+  \sa activate()
+*/
+void QwtPolarLayout::invalidate()
+{
+    d_data->titleRect = d_data->legendRect = d_data->canvasRect = QRect();
+}
+
+/*!
+  Find the geometry for the legend
+  \param options Options how to layout the legend
+  \param rect Rectangle where to place the legend
+  \return Geometry for the legend
+*/
+
+QRectF QwtPolarLayout::layoutLegend( Options options, QRectF &rect ) const
+{
+    const QSizeF hint( d_data->layoutData.legend.hint );
+
+    int dim;
+    if ( d_data->legendPos == QwtPolarPlot::LeftLegend
+        || d_data->legendPos == QwtPolarPlot::RightLegend )
+    {
+        // We don't allow vertical legends to take more than
+        // half of the available space.
+
+        dim = qMin( double( hint.width() ), rect.width() * d_data->legendRatio );
+
+        if ( !( options & IgnoreScrollbars ) )
+        {
+            if ( hint.height() > rect.height() )
+            {
+                // The legend will need additional
+                // space for the vertical scrollbar.
+
+                dim += d_data->layoutData.legend.hScrollExtent;
+            }
+        }
+    }
+    else
+    {
+        dim = qMin( double( hint.height() ), rect.height() * d_data->legendRatio );
+        dim = qMax( dim, d_data->layoutData.legend.vScrollExtent );
+    }
+
+    QRectF legendRect = rect;
+    switch( d_data->legendPos )
+    {
+        case QwtPolarPlot::LeftLegend:
+        {
+            legendRect.setWidth( dim );
+            rect.setLeft( legendRect.right() );
+            break;
+        }
+        case QwtPolarPlot::RightLegend:
+        {
+            legendRect.setX( rect.right() - dim + 1 );
+            legendRect.setWidth( dim );
+            rect.setRight( legendRect.left() );
+            break;
+        }
+        case QwtPolarPlot::TopLegend:
+        {
+            legendRect.setHeight( dim );
+            rect.setTop( legendRect.bottom() );
+            break;
+        }
+        case QwtPolarPlot::BottomLegend:
+        {
+            legendRect.setY( rect.bottom() - dim + 1 );
+            legendRect.setHeight( dim );
+            rect.setBottom( legendRect.top() );
+            break;
+        }
+        case QwtPolarPlot::ExternalLegend:
+            break;
+    }
+
+    return legendRect;
+}
+
+/*!
+  \brief Recalculate the geometry of all components.
+
+  \param plot Plot to be layout
+  \param boundingRect Rect where to place the components
+  \param options Options
+
+  \sa invalidate(), titleRect(), legendRect(), canvasRect()
+*/
+void QwtPolarLayout::activate( const QwtPolarPlot *plot,
+    const QRectF &boundingRect, Options options )
+{
+    invalidate();
+
+    QRectF rect( boundingRect ); // undistributed rest of the plot rect
+    rect.adjust( d_data->margin, d_data->margin,
+        -d_data->margin, -d_data->margin );
+
+    // We extract all layout relevant data from the widgets
+    // and save them to d_data->layoutData.
+
+    d_data->layoutData.init( plot, rect );
+    if ( !( options & IgnoreLegend )
+        && d_data->legendPos != QwtPolarPlot::ExternalLegend
+        && plot->legend() && !plot->legend()->isEmpty() )
+    {
+        d_data->legendRect = layoutLegend( options, rect );
+        if ( d_data->layoutData.legend.frameWidth &&
+                !( options & IgnoreFrames ) )
+        {
+            // In case of a frame we have to insert a spacing.
+            // Otherwise the leading of the font separates
+            // legend and scale/canvas
+
+            switch( d_data->legendPos )
+            {
+                case QwtPolarPlot::LeftLegend:
+                    rect.setLeft( rect.left() + d_data->spacing );
+                    break;
+
+                case QwtPolarPlot::RightLegend:
+                    rect.setRight( rect.right() - d_data->spacing );
+                    break;
+
+                case QwtPolarPlot::TopLegend:
+                    rect.setTop( rect.top() + d_data->spacing );
+                    break;
+
+                case QwtPolarPlot::BottomLegend:
+                    rect.setBottom( rect.bottom() - d_data->spacing );
+                    break;
+
+                case QwtPolarPlot::ExternalLegend:
+                    break; // suppress compiler warning
+            }
+        }
+    }
+
+    if ( !( options & IgnoreTitle ) &&
+        !d_data->layoutData.title.text.isEmpty() )
+    {
+        int h = d_data->layoutData.title.text.heightForWidth( rect.width() );
+        if ( !( options & IgnoreFrames ) )
+            h += 2 * d_data->layoutData.title.frameWidth;
+
+        d_data->titleRect = QRectF( rect.x(), rect.y(), rect.width(), h );
+
+        // subtract title
+        rect.setTop( rect.top() + h + d_data->spacing );
+    }
+
+    if ( plot->zoomPos().radius() > 0.0 || plot->zoomFactor() < 1.0 )
+    {
+        // In zoomed state we have no idea about the geometry that
+        // is best for the plot. So we use the complete rectangle
+        // accepting, that there might a lot of space wasted
+        // around the plot.
+
+        d_data->canvasRect = rect;
+    }
+    else
+    {
+        // In full state we know, that we want
+        // to display something circular.
+
+        const int dim = qMin( rect.width(), rect.height() );
+
+        d_data->canvasRect.setX( rect.center().x() - dim / 2 );
+        d_data->canvasRect.setY( rect.y() );
+        d_data->canvasRect.setSize( QSize( dim, dim ) );
+    }
+
+    if ( !d_data->legendRect.isEmpty() )
+    {
+        if ( d_data->legendPos == QwtPolarPlot::LeftLegend
+            || d_data->legendPos == QwtPolarPlot::RightLegend )
+        {
+            // We prefer to align the legend to the canvas - not to
+            // the complete plot - if possible.
+
+            if ( d_data->layoutData.legend.hint.height()
+                    < d_data->canvasRect.height() )
+            {
+                d_data->legendRect.setY( d_data->canvasRect.y() );
+                d_data->legendRect.setHeight( d_data->canvasRect.height() );
+            }
+        }
+    }
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.h
new file mode 100644
index 0000000..f9e927d
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_layout.h
@@ -0,0 +1,78 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_LAYOUT_H
+#define QWT_POLAR_LAYOUT_H
+
+#include "qwt_polar_global.h"
+#include "qwt_polar_plot.h"
+
+/*!
+  \brief Layout class for QwtPolarPlot.
+
+  Organizes the geometry for the different QwtPolarPlot components.
+  It is used by the QwtPolar widget to organize its internal widgets
+  or by QwtPolarRnderer to render its content to a QPaintDevice like
+  a QPrinter, QPixmap/QImage or QSvgRenderer.
+*/
+
+class QWT_POLAR_EXPORT QwtPolarLayout
+{
+public:
+
+    //! \brief Options to configure the plot layout engine
+    enum Option
+    {
+        //! Ignore the dimension of the scrollbars.
+        IgnoreScrollbars = 0x01,
+
+        //! Ignore all frames.
+        IgnoreFrames     = 0x02,
+
+        //! Ignore the title.
+        IgnoreTitle      = 0x04,
+
+        //! Ignore the legend.
+        IgnoreLegend     = 0x08
+    };
+
+    //! Options to configure the plot layout engine
+    typedef QFlags<Option> Options;
+
+    explicit QwtPolarLayout();
+    virtual ~QwtPolarLayout();
+
+    void setLegendPosition( QwtPolarPlot::LegendPosition pos, double ratio );
+    void setLegendPosition( QwtPolarPlot::LegendPosition pos );
+    QwtPolarPlot::LegendPosition legendPosition() const;
+
+    void setLegendRatio( double ratio );
+    double legendRatio() const;
+
+    virtual void activate( const QwtPolarPlot *,
+        const QRectF &rect, Options options = 0 );
+
+    virtual void invalidate();
+
+    const QRectF &titleRect() const;
+    const QRectF &legendRect() const;
+    const QRectF &canvasRect() const;
+
+    class LayoutData;
+
+protected:
+    QRectF layoutLegend( Options options, QRectF & ) const;
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarLayout::Options )
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.cpp
new file mode 100644
index 0000000..5df2115
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.cpp
@@ -0,0 +1,167 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_magnifier.h"
+#include "qwt_polar_plot.h"
+#include "qwt_polar_canvas.h"
+#include <qwt_scale_div.h>
+#include <qwt_point_polar.h>
+#include <qevent.h>
+
+class QwtPolarMagnifier::PrivateData
+{
+public:
+    PrivateData():
+        unzoomKey( Qt::Key_Home ),
+        unzoomKeyModifiers( Qt::NoModifier )
+    {
+    }
+
+    int unzoomKey;
+    int unzoomKeyModifiers;
+};
+
+/*!
+   Constructor
+   \param canvas Plot canvas to be magnified
+*/
+QwtPolarMagnifier::QwtPolarMagnifier( QwtPolarCanvas *canvas ):
+    QwtMagnifier( canvas )
+{
+    d_data = new PrivateData();
+}
+
+//! Destructor
+QwtPolarMagnifier::~QwtPolarMagnifier()
+{
+    delete d_data;
+}
+
+/*!
+   Assign key and modifiers, that are used for unzooming
+   The default combination is Qt::Key_Home + Qt::NoModifier.
+
+   \param key Key code
+   \param modifiers Modifiers
+   \sa getUnzoomKey(), QwtPolarPlot::unzoom()
+*/
+void QwtPolarMagnifier::setUnzoomKey( int key, int modifiers )
+{
+    d_data->unzoomKey = key;
+    d_data->unzoomKeyModifiers = modifiers;
+}
+
+/*!
+   \return Key, and modifiers that are used for unzooming
+
+   \param key Key code
+   \param modifiers Modifiers
+   \sa setUnzoomKey(), QwtPolarPlot::unzoom()
+*/
+void QwtPolarMagnifier::getUnzoomKey( int &key, int &modifiers ) const
+{
+    key = d_data->unzoomKey;
+    modifiers = d_data->unzoomKeyModifiers;
+}
+
+//! \return Observed plot canvas
+QwtPolarCanvas *QwtPolarMagnifier::canvas()
+{
+    return qobject_cast<QwtPolarCanvas *>( parent() );
+}
+
+//! \return Observed plot canvas
+const QwtPolarCanvas *QwtPolarMagnifier::canvas() const
+{
+    return qobject_cast<QwtPolarCanvas *>( parent() );
+}
+
+//! \return Observed plot
+QwtPolarPlot *QwtPolarMagnifier::plot()
+{
+    QwtPolarCanvas *c = canvas();
+    if ( c )
+        return c->plot();
+
+    return NULL;
+}
+
+//! \return observed plot
+const QwtPolarPlot *QwtPolarMagnifier::plot() const
+{
+    const QwtPolarCanvas *c = canvas();
+    if ( c )
+        return c->plot();
+
+    return NULL;
+}
+
+/*!
+  Handle a key press event for the observed widget.
+
+  \param event Key event
+*/
+void QwtPolarMagnifier::widgetKeyPressEvent( QKeyEvent *event )
+{
+    const int key = event->key();
+    const int state = event->modifiers();
+
+    if ( key == d_data->unzoomKey &&
+        state == d_data->unzoomKeyModifiers )
+    {
+        unzoom();
+        return;
+    }
+
+    QwtMagnifier::widgetKeyPressEvent( event );
+}
+
+/*!
+   Zoom in/out the zoomed area
+   \param factor A value < 1.0 zooms in, a value > 1.0 zooms out.
+*/
+void QwtPolarMagnifier::rescale( double factor )
+{
+    factor = qAbs( factor );
+    if ( factor == 1.0 || factor == 0.0 )
+        return;
+
+    QwtPolarPlot* plt = plot();
+    if ( plt == NULL )
+        return;
+
+    QwtPointPolar zoomPos;
+    double newZoomFactor = plt->zoomFactor() * factor;
+
+    if ( newZoomFactor >= 1.0 )
+        newZoomFactor = 1.0;
+    else
+        zoomPos = plt->zoomPos();
+
+    const bool autoReplot = plt->autoReplot();
+    plt->setAutoReplot( false );
+
+    plt->zoom( zoomPos, newZoomFactor );
+
+    plt->setAutoReplot( autoReplot );
+    plt->replot();
+}
+
+//! Unzoom the plot widget
+void QwtPolarMagnifier::unzoom()
+{
+    QwtPolarPlot* plt = plot();
+
+    const bool autoReplot = plt->autoReplot();
+    plt->setAutoReplot( false );
+
+    plt->unzoom();
+
+    plt->setAutoReplot( autoReplot );
+    plt->replot();
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.h
new file mode 100644
index 0000000..aa22356
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_magnifier.h
@@ -0,0 +1,58 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_MAGNIFIER_H
+#define QWT_POLAR_MAGNIFIER_H 1
+
+#include "qwt_polar_global.h"
+#include "qwt_magnifier.h"
+
+class QwtPolarPlot;
+class QwtPolarCanvas;
+
+/*!
+  \brief QwtPolarMagnifier provides zooming, by magnifying in steps.
+
+  Using QwtPlotMagnifier a plot can be zoomed in/out in steps using
+  keys, the mouse wheel or moving a mouse button in vertical direction.
+
+  Together with QwtPolarPanner it is possible to implement
+  an individual navigation of the plot canvas.
+
+  \sa QwtPolarPanner, QwtPolarPlot, QwtPolarCanvas
+*/
+
+class QWT_POLAR_EXPORT QwtPolarMagnifier: public QwtMagnifier
+{
+    Q_OBJECT
+
+public:
+    explicit QwtPolarMagnifier( QwtPolarCanvas * );
+    virtual ~QwtPolarMagnifier();
+
+    void setUnzoomKey( int key, int modifiers );
+    void getUnzoomKey( int &key, int &modifiers ) const;
+
+    QwtPolarPlot *plot();
+    const QwtPolarPlot *plot() const;
+
+    QwtPolarCanvas *canvas();
+    const QwtPolarCanvas *canvas() const;
+
+protected:
+    virtual void rescale( double factor );
+    void unzoom();
+
+    virtual void widgetKeyPressEvent( QKeyEvent * );
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.cpp
new file mode 100644
index 0000000..896798b
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.cpp
@@ -0,0 +1,233 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_marker.h"
+#include "qwt_polar.h"
+#include <qwt_scale_map.h>
+#include <qwt_symbol.h>
+#include <qwt_text.h>
+#include <qpainter.h>
+
+static const int LabelDist = 2;
+
+class QwtPolarMarker::PrivateData
+{
+public:
+    PrivateData():
+        align( Qt::AlignCenter )
+    {
+        symbol = new QwtSymbol();
+    }
+
+    ~PrivateData()
+    {
+        delete symbol;
+    }
+
+    QwtText label;
+    Qt::Alignment align;
+    QPen pen;
+    const QwtSymbol *symbol;
+
+    QwtPointPolar pos;
+};
+
+//! Sets alignment to Qt::AlignCenter, and style to NoLine
+QwtPolarMarker::QwtPolarMarker():
+    QwtPolarItem( QwtText( "Marker" ) )
+{
+    d_data = new PrivateData;
+
+    setItemAttribute( QwtPolarItem::AutoScale );
+    setZ( 30.0 );
+}
+
+//! Destructor
+QwtPolarMarker::~QwtPolarMarker()
+{
+    delete d_data;
+}
+
+//! \return QwtPolarItem::Rtti_PlotMarker
+int QwtPolarMarker::rtti() const
+{
+    return QwtPolarItem::Rtti_PolarMarker;
+}
+
+//! \return Position of the marker
+QwtPointPolar QwtPolarMarker::position() const
+{
+    return d_data->pos;
+}
+
+//! Change the position of the marker
+void QwtPolarMarker::setPosition( const QwtPointPolar &pos )
+{
+    if ( d_data->pos != pos )
+    {
+        d_data->pos = pos;
+        itemChanged();
+    }
+}
+
+/*!
+  Draw the marker
+
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param radius Radius of the complete plot area in painter coordinates
+  \param canvasRect Contents rect of the canvas in painter coordinates
+*/
+void QwtPolarMarker::draw( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double radius,
+    const QRectF &canvasRect ) const
+{
+    Q_UNUSED( radius );
+    Q_UNUSED( canvasRect );
+
+    const double r = radialMap.transform( d_data->pos.radius() );
+    const double a = azimuthMap.transform( d_data->pos.azimuth() );
+
+    const QPointF pos = qwtPolar2Pos( pole, r, a );
+
+
+    // draw symbol
+    QSize sSym( 0, 0 );
+    if ( d_data->symbol->style() != QwtSymbol::NoSymbol )
+    {
+        sSym = d_data->symbol->size();
+        d_data->symbol->drawSymbol( painter, pos );
+    }
+
+    // draw label
+    if ( !d_data->label.isEmpty() )
+    {
+        int xlw = qMax( int( d_data->pen.width() ), 1 );
+        int ylw = xlw;
+
+        int xlw1 = qMax( ( xlw + 1 ) / 2, ( sSym.width() + 1 ) / 2 ) + LabelDist;
+        xlw = qMax( xlw / 2, ( sSym.width() + 1 ) / 2 ) + LabelDist;
+        int ylw1 = qMax( ( ylw + 1 ) / 2, ( sSym.height() + 1 ) / 2 ) + LabelDist;
+        ylw = qMax( ylw / 2, ( sSym. height() + 1 ) / 2 ) + LabelDist;
+
+        QRect tr( QPoint( 0, 0 ), d_data->label.textSize( painter->font() ).toSize() );
+        tr.moveCenter( QPoint( 0, 0 ) );
+
+        int dx = pos.x();
+        int dy = pos.y();
+
+        if ( d_data->align & Qt::AlignTop )
+            dy += tr.y() - ylw1;
+        else if ( d_data->align & Qt::AlignBottom )
+            dy -= tr.y() - ylw1;
+
+        if ( d_data->align & Qt::AlignLeft )
+            dx += tr.x() - xlw1;
+        else if ( d_data->align & Qt::AlignRight )
+            dx -= tr.x() - xlw1;
+
+        tr.translate( dx, dy );
+        d_data->label.draw( painter, tr );
+    }
+}
+
+/*!
+  \brief Assign a symbol
+  \param symbol New symbol
+  \sa symbol()
+*/
+void QwtPolarMarker::setSymbol( const QwtSymbol *symbol )
+{
+    if ( d_data->symbol != symbol )
+    {
+        delete d_data->symbol;
+        d_data->symbol = symbol;
+        itemChanged();
+    }
+}
+
+/*!
+  \return the symbol
+  \sa setSymbol(), QwtSymbol
+*/
+const QwtSymbol *QwtPolarMarker::symbol() const
+{
+    return d_data->symbol;
+}
+
+/*!
+  \brief Set the label
+  \param label label text
+  \sa label()
+*/
+void QwtPolarMarker::setLabel( const QwtText& label )
+{
+    if ( label != d_data->label )
+    {
+        d_data->label = label;
+        itemChanged();
+    }
+}
+
+/*!
+  \return the label
+  \sa setLabel()
+*/
+QwtText QwtPolarMarker::label() const
+{
+    return d_data->label;
+}
+
+/*!
+  \brief Set the alignment of the label
+
+  The alignment determines where the label is drawn relative to
+  the marker's position.
+
+  \param align Alignment. A combination of AlignTop, AlignBottom,
+    AlignLeft, AlignRight, AlignCenter, AlgnHCenter,
+    AlignVCenter.
+  \sa labelAlignment()
+*/
+void QwtPolarMarker::setLabelAlignment( Qt::Alignment align )
+{
+    if ( align == d_data->align )
+        return;
+
+    d_data->align = align;
+    itemChanged();
+}
+
+/*!
+  \return the label alignment
+  \sa setLabelAlignment()
+*/
+Qt::Alignment QwtPolarMarker::labelAlignment() const
+{
+    return d_data->align;
+}
+
+/*!
+   Interval, that is necessary to display the item
+   This interval can be useful for operations like clipping or autoscaling
+
+   \param scaleId Scale index
+   \return bounding interval ( == position )
+
+   \sa position()
+*/
+QwtInterval QwtPolarMarker::boundingInterval( int scaleId ) const
+{
+    const double v = ( scaleId == QwtPolar::ScaleRadius )
+        ? d_data->pos.radius() : d_data->pos.azimuth();
+
+    return QwtInterval( v, v );
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.h
new file mode 100644
index 0000000..92480d4
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_marker.h
@@ -0,0 +1,70 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_MARKER_H
+#define QWT_POLAR_MARKER_H
+
+#include "qwt_polar_global.h"
+#include "qwt_polar_item.h"
+#include <qwt_point_polar.h>
+#include <qstring.h>
+
+class QRect;
+class QwtText;
+class QwtSymbol;
+
+/*!
+  \brief A class for drawing markers
+
+  A marker can be a a symbol, a label or a combination of them, which can
+  be drawn around a center point inside a bounding rectangle.
+
+  The setSymbol() member assigns a symbol to the marker.
+  The symbol is drawn at the specified point.
+
+  With setLabel(), a label can be assigned to the marker.
+  The setLabelAlignment() member specifies where the label is
+  drawn. All the Align*-constants in Qt::AlignmentFlags (see Qt documentation)
+  are valid. The alignment refers to the center point of
+  the marker, which means, for example, that the label would be painted
+  left above the center point if the alignment was set to AlignLeft|AlignTop.
+*/
+
+class QWT_POLAR_EXPORT QwtPolarMarker: public QwtPolarItem
+{
+public:
+    explicit QwtPolarMarker();
+    virtual ~QwtPolarMarker();
+
+    virtual int rtti() const;
+
+    void setPosition( const QwtPointPolar & );
+    QwtPointPolar position() const;
+
+    void setSymbol( const QwtSymbol *s );
+    const QwtSymbol *symbol() const;
+
+    void setLabel( const QwtText& );
+    QwtText label() const;
+
+    void setLabelAlignment( Qt::Alignment );
+    Qt::Alignment labelAlignment() const;
+
+    virtual void draw( QPainter *painter,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, double radius,
+        const QRectF &canvasRect ) const;
+
+    virtual QwtInterval boundingInterval( int scaleId ) const;
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.cpp
new file mode 100644
index 0000000..52aeb88
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.cpp
@@ -0,0 +1,118 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_panner.h"
+#include "qwt_polar_plot.h"
+#include "qwt_polar_canvas.h"
+#include <qwt_scale_div.h>
+#include <qwt_point_polar.h>
+
+//! Create a plot panner for a polar plot canvas
+QwtPolarPanner::QwtPolarPanner( QwtPolarCanvas *canvas ):
+    QwtPanner( canvas )
+{
+    connect( this, SIGNAL( panned( int, int ) ),
+        SLOT( movePlot( int, int ) ) );
+}
+
+//! Destructor
+QwtPolarPanner::~QwtPolarPanner()
+{
+}
+
+//! \return observed plot canvas
+QwtPolarCanvas *QwtPolarPanner::canvas()
+{
+    return qobject_cast<QwtPolarCanvas *>( parent() );
+}
+
+//! \return observed plot canvas
+const QwtPolarCanvas *QwtPolarPanner::canvas() const
+{
+    return qobject_cast<const QwtPolarCanvas *>( parent() );
+}
+
+//! \return observed plot
+QwtPolarPlot *QwtPolarPanner::plot()
+{
+    QwtPolarCanvas *c = canvas();
+    if ( c )
+        return c->plot();
+
+    return NULL;
+}
+
+//! \return observed plot
+const QwtPolarPlot *QwtPolarPanner::plot() const
+{
+    const QwtPolarCanvas *c = canvas();
+    if ( c )
+        return c->plot();
+
+    return NULL;
+}
+
+/*!
+   Adjust the zoomed area according to dx/dy
+
+   \param dx Pixel offset in x direction
+   \param dy Pixel offset in y direction
+
+   \sa QwtPanner::panned(), QwtPolarPlot::zoom()
+*/
+void QwtPolarPanner::movePlot( int dx, int dy )
+{
+    QwtPolarPlot *plot = QwtPolarPanner::plot();
+    if ( plot == NULL || ( dx == 0 && dy == 0 ) )
+        return;
+
+    const QwtScaleMap map = plot->scaleMap( QwtPolar::Radius );
+
+    QwtPointPolar pos = plot->zoomPos();
+    if ( map.s1() <= map.s2() )
+    {
+        pos.setRadius(
+            map.transform( map.s1() + pos.radius() ) - map.p1() );
+        pos.setPoint( pos.toPoint() - QPointF( dx, -dy ) );
+        pos.setRadius(
+            map.invTransform( map.p1() + pos.radius() ) - map.s1() );
+    }
+    else
+    {
+        pos.setRadius(
+            map.transform( map.s1() - pos.radius() ) - map.p1() );
+        pos.setPoint( pos.toPoint() - QPointF( dx, -dy ) );
+        pos.setRadius(
+            map.s1() - map.invTransform( map.p1() + pos.radius() ) );
+    }
+
+    const bool doAutoReplot = plot->autoReplot();
+    plot->setAutoReplot( false );
+
+    plot->zoom( pos, plot->zoomFactor() );
+
+    plot->setAutoReplot( doAutoReplot );
+    plot->replot();
+}
+
+/*!
+  Block panning when the plot zoom factor is >= 1.0.
+
+  \param event Mouse event
+*/
+void QwtPolarPanner::widgetMousePressEvent( QMouseEvent *event )
+{
+    const QwtPolarPlot *plot = QwtPolarPanner::plot();
+    if ( plot )
+    {
+        if ( plot->zoomFactor() < 1.0 )
+            QwtPanner::widgetMousePressEvent( event );
+    }
+}
+
+
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.h
new file mode 100644
index 0000000..9f5057b
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_panner.h
@@ -0,0 +1,52 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_PANNER_H
+#define QWT_POLAR_PANNER_H 1
+
+#include "qwt_polar_global.h"
+#include "qwt_panner.h"
+
+class QwtPolarPlot;
+class QwtPolarCanvas;
+
+/*!
+  \brief QwtPolarPanner provides panning of a polar plot canvas
+
+  QwtPolarPanner is a panner for a QwtPolarCanvas, that
+  adjusts the visible area after dropping
+  the canvas on its new position.
+
+  Together with QwtPolarMagnifier individual ways
+  of navigating on a QwtPolarPlot widget can be implemented easily.
+
+  \sa QwtPolarMagnifier
+*/
+
+class QWT_POLAR_EXPORT QwtPolarPanner: public QwtPanner
+{
+    Q_OBJECT
+
+public:
+    explicit QwtPolarPanner( QwtPolarCanvas * );
+    virtual ~QwtPolarPanner();
+
+    QwtPolarPlot *plot();
+    const QwtPolarPlot *plot() const;
+
+    QwtPolarCanvas *canvas();
+    const QwtPolarCanvas *canvas() const;
+
+protected Q_SLOTS:
+    virtual void movePlot( int dx, int dy );
+
+protected:
+    virtual void widgetMousePressEvent( QMouseEvent * );
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.cpp
new file mode 100644
index 0000000..7a95fc4
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.cpp
@@ -0,0 +1,246 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_picker.h"
+#include "qwt_polar_plot.h"
+#include "qwt_polar_canvas.h"
+#include <qwt_scale_map.h>
+#include <qwt_picker_machine.h>
+#include <qwt_point_polar.h>
+
+class QwtPolarPicker::PrivateData
+{
+public:
+    PrivateData()
+    {
+    }
+};
+
+/*!
+  \brief Create a polar plot picker
+  \param canvas Plot canvas to observe, also the parent object
+*/
+
+QwtPolarPicker::QwtPolarPicker( QwtPolarCanvas *canvas ):
+    QwtPicker( canvas )
+{
+    d_data = new PrivateData;
+}
+
+/*!
+  Create a plot picker
+
+  \param rubberBand Rubberband style
+  \param trackerMode Tracker mode
+  \param canvas Plot canvas to observe, also the parent object
+
+  \sa QwtPicker, QwtPicker::setSelectionFlags(), QwtPicker::setRubberBand(),
+      QwtPicker::setTrackerMode
+
+  \sa QwtPolarPlot::autoReplot(), QwtPolarPlot::replot(), scaleRect()
+*/
+QwtPolarPicker::QwtPolarPicker( 
+        RubberBand rubberBand, DisplayMode trackerMode,
+        QwtPolarCanvas *canvas ):
+    QwtPicker( rubberBand, trackerMode, canvas )
+{
+    d_data = new PrivateData;
+}
+
+//! Destructor
+QwtPolarPicker::~QwtPolarPicker()
+{
+    delete d_data;
+}
+
+//! \return Observed plot canvas
+QwtPolarCanvas *QwtPolarPicker::canvas()
+{
+    return qobject_cast<QwtPolarCanvas *>( parentWidget() );
+}
+
+//! \return Observed plot canvas
+const QwtPolarCanvas *QwtPolarPicker::canvas() const
+{
+    return qobject_cast<const QwtPolarCanvas *>( parentWidget() );
+}
+
+//! \return Plot widget, containing the observed plot canvas
+QwtPolarPlot *QwtPolarPicker::plot()
+{
+    QwtPolarCanvas *w = canvas();
+    if ( w )
+        return w->plot();
+
+    return NULL;
+}
+
+//! \return Plot widget, containing the observed plot canvas
+const QwtPolarPlot *QwtPolarPicker::plot() const
+{
+    const QwtPolarCanvas *w = canvas();
+    if ( w )
+        return w->plot();
+
+    return NULL;
+}
+
+/*!
+  Translate a pixel position into a position string
+
+  \param pos Position in pixel coordinates
+  \return Position string
+*/
+QwtText QwtPolarPicker::trackerText( const QPoint &pos ) const
+{
+    const QwtPointPolar polarPoint = invTransform( pos );
+    return trackerTextPolar( polarPoint );
+}
+
+/*!
+  \brief Translate a position into a position string
+
+  In case of HLineRubberBand the label is the value of the
+  y position, in case of VLineRubberBand the value of the x position.
+  Otherwise the label contains x and y position separated by a ',' .
+
+  The format for the double to string conversion is "%.4f".
+
+  \param pos Position
+  \return Position string
+*/
+QwtText QwtPolarPicker::trackerTextPolar( const QwtPointPolar &pos ) const
+{
+    QString text;
+    text.sprintf( "%.4f, %.4f", pos.radius(), pos.azimuth() );
+
+    return QwtText( text );
+}
+
+/*!
+  Append a point to the selection and update rubberband and tracker.
+
+  \param pos Additional point
+  \sa isActive, begin(), end(), move(), appended()
+
+  \note The appended(const QPoint &), appended(const QDoublePoint &)
+        signals are emitted.
+*/
+void QwtPolarPicker::append( const QPoint &pos )
+{
+    QwtPicker::append( pos );
+    Q_EMIT appended( invTransform( pos ) );
+}
+
+/*!
+  Move the last point of the selection
+
+  \param pos New position
+  \sa isActive, begin(), end(), append()
+
+  \note The moved(const QPoint &), moved(const QDoublePoint &)
+        signals are emitted.
+*/
+void QwtPolarPicker::move( const QPoint &pos )
+{
+    QwtPicker::move( pos );
+    Q_EMIT moved( invTransform( pos ) );
+}
+
+/*!
+  Close a selection setting the state to inactive.
+
+  \param ok If true, complete the selection and emit selected signals
+            otherwise discard the selection.
+  \return true if the selection is accepted, false otherwise
+*/
+
+bool QwtPolarPicker::end( bool ok )
+{
+    ok = QwtPicker::end( ok );
+    if ( !ok )
+        return false;
+
+    QwtPolarPlot *plot = QwtPolarPicker::plot();
+    if ( !plot )
+        return false;
+
+    const QPolygon points = selection();
+    if ( points.count() == 0 )
+        return false;
+
+    QwtPickerMachine::SelectionType selectionType =
+        QwtPickerMachine::NoSelection;
+
+    if ( stateMachine() )
+        selectionType = stateMachine()->selectionType();
+
+    switch ( selectionType )
+    {
+        case QwtPickerMachine::PointSelection:
+        {
+            const QwtPointPolar pos = invTransform( points[0] );
+            Q_EMIT selected( pos );
+            break;
+        }
+        case QwtPickerMachine::RectSelection:
+        case QwtPickerMachine::PolygonSelection:
+        {
+            QVector<QwtPointPolar> polarPoints( points.count() );
+            for ( int i = 0; i < points.count(); i++ )
+                polarPoints[i] = invTransform( points[i] );
+
+            Q_EMIT selected( polarPoints );
+        }
+        default:
+            break;
+    }
+
+    return true;
+}
+
+/*!
+    Translate a point from widget into plot coordinates
+
+    \param pos Point in widget coordinates of the plot canvas
+    \return Point in plot coordinates
+    \sa transform(), canvas()
+*/
+QwtPointPolar QwtPolarPicker::invTransform( const QPoint &pos ) const
+{
+    QwtPointPolar polarPos;
+    if ( canvas() == NULL )
+        return QwtPointPolar();
+
+    return canvas()->invTransform( pos );
+}
+
+/*!
+    \return Bounding rectangle of the region, where picking is
+            supported.
+*/
+QRect QwtPolarPicker::pickRect() const
+{
+    const QRect cr = canvas()->contentsRect();
+    const QRect pr = plot()->plotRect( cr ).toRect();
+
+    return cr & pr;
+}
+
+QPainterPath QwtPolarPicker::pickArea() const
+{
+    const QRect cr = canvas()->contentsRect();
+
+    QPainterPath crPath;
+    crPath.addRect( cr );
+
+    QPainterPath prPath;
+    prPath.addEllipse( plot()->plotRect( cr ) );
+
+    return crPath.intersected( prPath );
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.h
new file mode 100644
index 0000000..12b4457
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_picker.h
@@ -0,0 +1,98 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_PICKER_H
+#define QWT_POLAR_PICKER_H
+
+#include "qwt_polar_global.h"
+#include "qwt_picker.h"
+#include <qvector.h>
+#include <qpainterpath.h>
+
+class QwtPolarPlot;
+class QwtPolarCanvas;
+class QwtPointPolar;
+
+/*!
+  \brief QwtPolarPicker provides selections on a plot canvas
+
+  QwtPolarPicker is a QwtPicker tailored for selections on
+  a polar plot canvas.
+*/
+
+class QWT_POLAR_EXPORT QwtPolarPicker: public QwtPicker
+{
+    Q_OBJECT
+
+public:
+    explicit QwtPolarPicker( QwtPolarCanvas * );
+    virtual ~QwtPolarPicker();
+
+    explicit QwtPolarPicker(
+        RubberBand rubberBand, DisplayMode trackerMode,
+        QwtPolarCanvas * );
+
+    QwtPolarPlot *plot();
+    const QwtPolarPlot *plot() const;
+
+    QwtPolarCanvas *canvas();
+    const QwtPolarCanvas *canvas() const;
+
+    virtual QRect pickRect() const;
+
+Q_SIGNALS:
+
+    /*!
+      A signal emitted in case of selectionFlags() & PointSelection.
+      \param pos Selected point
+    */
+    void selected( const QwtPointPolar &pos );
+
+    /*!
+      A signal emitting the selected points,
+      at the end of a selection.
+
+      \param points Selected points
+    */
+    void selected( const QVector<QwtPointPolar> &points );
+
+    /*!
+      A signal emitted when a point has been appended to the selection
+
+      \param pos Position of the appended point.
+      \sa append(). moved()
+    */
+    void appended( const QwtPointPolar &pos );
+
+    /*!
+      A signal emitted whenever the last appended point of the
+      selection has been moved.
+
+      \param pos Position of the moved last point of the selection.
+      \sa move(), appended()
+    */
+    void moved( const QwtPointPolar &pos );
+
+protected:
+    QwtPointPolar invTransform( const QPoint & ) const;
+
+    virtual QwtText trackerText( const QPoint & ) const;
+    virtual QwtText trackerTextPolar( const QwtPointPolar & ) const;
+
+    virtual void move( const QPoint & );
+    virtual void append( const QPoint & );
+    virtual bool end( bool ok = true );
+
+private:
+    virtual QPainterPath pickArea() const;
+
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
new file mode 100644
index 0000000..09cc540
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
@@ -0,0 +1,1362 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_plot.h"
+#include "qwt_polar_canvas.h"
+#include "qwt_polar_layout.h"
+#include <qwt_painter.h>
+#include <qwt_scale_engine.h>
+#include <qwt_scale_div.h>
+#include <qwt_text_label.h>
+#include <qwt_round_scale_draw.h>
+#include <qwt_legend.h>
+#include <qwt_dyngrid_layout.h>
+#include <qpointer.h>
+#include <qpaintengine.h>
+#include <qpainter.h>
+#include <qevent.h>
+
+static inline double qwtDistance(
+    const QPointF &p1, const QPointF &p2 )
+{
+    double dx = p2.x() - p1.x();
+    double dy = p2.y() - p1.y();
+    return qSqrt( dx * dx + dy * dy );
+}
+
+class QwtPolarPlot::ScaleData
+{
+public:
+    ScaleData():
+        isValid( false ),
+        scaleEngine( NULL )
+    {
+    }
+
+    ~ScaleData()
+    {
+        delete scaleEngine;
+    }
+
+    bool doAutoScale;
+
+    double minValue;
+    double maxValue;
+    double stepSize;
+
+    int maxMajor;
+    int maxMinor;
+
+    bool isValid;
+
+    QwtScaleDiv scaleDiv;
+    QwtScaleEngine *scaleEngine;
+};
+
+class QwtPolarPlot::PrivateData
+{
+public:
+    QBrush canvasBrush;
+
+    bool autoReplot;
+
+    QwtPointPolar zoomPos;
+    double zoomFactor;
+
+    ScaleData scaleData[QwtPolar::ScaleCount];
+    QPointer<QwtTextLabel> titleLabel;
+    QPointer<QwtPolarCanvas> canvas;
+    QPointer<QwtAbstractLegend> legend;
+    double azimuthOrigin;
+
+    QwtPolarLayout *layout;
+};
+
+/*!
+  Constructor
+  \param parent Parent widget
+ */
+QwtPolarPlot::QwtPolarPlot( QWidget *parent ):
+    QFrame( parent )
+{
+    initPlot( QwtText() );
+}
+
+/*!
+  Constructor
+  \param title Title text
+  \param parent Parent widget
+ */
+QwtPolarPlot::QwtPolarPlot( const QwtText &title, QWidget *parent ):
+    QFrame( parent )
+{
+    initPlot( title );
+}
+
+//! Destructor
+QwtPolarPlot::~QwtPolarPlot()
+{
+    detachItems( QwtPolarItem::Rtti_PolarItem, autoDelete() );
+
+    delete d_data->layout;
+    delete d_data;
+}
+
+/*!
+  Change the plot's title
+  \param title New title
+*/
+void QwtPolarPlot::setTitle( const QString &title )
+{
+    if ( title != d_data->titleLabel->text().text() )
+    {
+        d_data->titleLabel->setText( title );
+        if ( !title.isEmpty() )
+            d_data->titleLabel->show();
+        else
+            d_data->titleLabel->hide();
+    }
+}
+
+/*!
+  Change the plot's title
+  \param title New title
+*/
+void QwtPolarPlot::setTitle( const QwtText &title )
+{
+    if ( title != d_data->titleLabel->text() )
+    {
+        d_data->titleLabel->setText( title );
+        if ( !title.isEmpty() )
+            d_data->titleLabel->show();
+        else
+            d_data->titleLabel->hide();
+    }
+}
+
+//! \return the plot's title
+QwtText QwtPolarPlot::title() const
+{
+    return d_data->titleLabel->text();
+}
+
+//! \return the plot's title
+QwtTextLabel *QwtPolarPlot::titleLabel()
+{
+    return d_data->titleLabel;
+}
+
+//! \return the plot's titel label.
+const QwtTextLabel *QwtPolarPlot::titleLabel() const
+{
+    return d_data->titleLabel;
+}
+
+/*!
+  \brief Insert a legend
+
+  If the position legend is \c QwtPolarPlot::LeftLegend or \c QwtPolarPlot::RightLegend
+  the legend will be organized in one column from top to down.
+  Otherwise the legend items will be placed in a table
+  with a best fit number of columns from left to right.
+
+  If pos != QwtPolarPlot::ExternalLegend the plot widget will become
+  parent of the legend. It will be deleted when the plot is deleted,
+  or another legend is set with insertLegend().
+
+  \param legend Legend
+  \param pos The legend's position. For top/left position the number
+             of colums will be limited to 1, otherwise it will be set to
+             unlimited.
+
+  \param ratio Ratio between legend and the bounding rect
+               of title, canvas and axes. The legend will be shrinked
+               if it would need more space than the given ratio.
+               The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0
+               it will be reset to the default ratio.
+               The default vertical/horizontal ratio is 0.33/0.5.
+
+  \sa legend(), QwtPolarLayout::legendPosition(),
+      QwtPolarLayout::setLegendPosition()
+*/
+void QwtPolarPlot::insertLegend( QwtAbstractLegend *legend,
+    QwtPolarPlot::LegendPosition pos, double ratio )
+{
+    d_data->layout->setLegendPosition( pos, ratio );
+
+    if ( legend != d_data->legend )
+    {
+        if ( d_data->legend && d_data->legend->parent() == this )
+            delete d_data->legend;
+
+        d_data->legend = legend;
+
+        if ( d_data->legend )
+        {
+            connect( this,
+                SIGNAL( legendDataChanged(
+                    const QVariant &, const QList<QwtLegendData> & ) ),
+                d_data->legend,
+                SLOT( updateLegend(
+                    const QVariant &, const QList<QwtLegendData> & ) )
+            );
+
+            if ( d_data->legend->parent() != this )
+                d_data->legend->setParent( this );
+
+            updateLegend();
+
+            QwtLegend *lgd = qobject_cast<QwtLegend *>( legend );
+            if ( lgd )
+            {
+                switch ( d_data->layout->legendPosition() )
+                {
+                    case LeftLegend:
+                    case RightLegend:
+                    {
+                        if ( lgd->maxColumns() == 0     )
+                            lgd->setMaxColumns( 1 ); // 1 column: align vertical
+                        break;
+                    }
+                    case TopLegend:
+                    case BottomLegend:
+                    {
+                        lgd->setMaxColumns( 0 ); // unlimited
+                        break;
+                    }
+                    default:
+                        break;
+                }
+            }
+
+        }
+    }
+
+    updateLayout();
+}
+
+/*!
+  Emit legendDataChanged() for all plot item
+
+  \sa QwtPlotItem::legendData(), legendDataChanged()
+ */
+void QwtPolarPlot::updateLegend()
+{
+    const QwtPolarItemList& itmList = itemList();
+    for ( QwtPolarItemIterator it = itmList.begin();
+        it != itmList.end(); ++it )
+    {
+        updateLegend( *it );
+    }
+}
+
+/*!
+  Emit legendDataChanged() for a plot item
+
+  \param plotItem Plot item
+  \sa QwtPlotItem::legendData(), legendDataChanged()
+ */
+void QwtPolarPlot::updateLegend( const QwtPolarItem *plotItem )
+{
+    if ( plotItem == NULL )
+        return;
+
+    QList<QwtLegendData> legendData;
+
+    if ( plotItem->testItemAttribute( QwtPolarItem::Legend ) )
+        legendData = plotItem->legendData();
+
+    const QVariant itemInfo = itemToInfo( const_cast< QwtPolarItem *>( plotItem) );
+    Q_EMIT legendDataChanged( itemInfo, legendData );
+}
+
+/*!
+  \return the plot's legend
+  \sa insertLegend()
+*/
+QwtAbstractLegend *QwtPolarPlot::legend()
+{
+    return d_data->legend;
+}
+
+/*!
+  \return the plot's legend
+  \sa insertLegend()
+*/
+const QwtAbstractLegend *QwtPolarPlot::legend() const
+{
+    return d_data->legend;
+}
+
+/*!
+   \brief Set the background of the plot area
+
+   The plot area is the circle around the pole. It's radius
+   is defined by the radial scale.
+
+   \param brush Background Brush
+   \sa plotBackground(), plotArea()
+*/
+void QwtPolarPlot::setPlotBackground( const QBrush &brush )
+{
+    if ( brush != d_data->canvasBrush )
+    {
+        d_data->canvasBrush = brush;
+        autoRefresh();
+    }
+}
+
+/*!
+   \return plot background brush
+   \sa plotBackground(), plotArea()
+*/
+const QBrush &QwtPolarPlot::plotBackground() const
+{
+    return d_data->canvasBrush;
+}
+
+/*!
+  \brief Set or reset the autoReplot option
+
+  If the autoReplot option is set, the plot will be
+  updated implicitly by manipulating member functions.
+  Since this may be time-consuming, it is recommended
+  to leave this option switched off and call replot()
+  explicitly if necessary.
+
+  The autoReplot option is set to false by default, which
+  means that the user has to call replot() in order to make
+  changes visible.
+  \param enable \c true or \c false. Defaults to \c true.
+  \sa replot()
+*/
+void QwtPolarPlot::setAutoReplot( bool enable )
+{
+    d_data->autoReplot = enable;
+}
+
+//! \return true if the autoReplot option is set.
+bool QwtPolarPlot::autoReplot() const
+{
+    return d_data->autoReplot;
+}
+
+/*!
+  \brief Enable autoscaling
+
+  This member function is used to switch back to autoscaling mode
+  after a fixed scale has been set. Autoscaling calculates a useful
+  scale division from the bounding interval of all plot items with
+  the QwtPolarItem::AutoScale attribute.
+
+  Autoscaling is only supported for the radial scale and enabled as default.
+
+  \param scaleId Scale index
+
+  \sa hasAutoScale(), setScale(), setScaleDiv(),
+      QwtPolarItem::boundingInterval()
+*/
+void QwtPolarPlot::setAutoScale( int scaleId )
+{
+    if ( scaleId != QwtPolar::ScaleRadius )
+        return;
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+    if ( !scaleData.doAutoScale )
+    {
+        scaleData.doAutoScale = true;
+        autoRefresh();
+    }
+}
+
+/*!
+  \return \c true if autoscaling is enabled
+  \param scaleId Scale index
+  \sa setAutoScale()
+*/
+bool QwtPolarPlot::hasAutoScale( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return false;
+
+    return d_data->scaleData[scaleId].doAutoScale;
+}
+
+/*!
+  Set the maximum number of major scale intervals for a specified scale
+
+  \param scaleId Scale index
+  \param maxMinor maximum number of minor steps
+  \sa scaleMaxMajor()
+*/
+void QwtPolarPlot::setScaleMaxMinor( int scaleId, int maxMinor )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    maxMinor = qBound( 0, maxMinor, 100 );
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+
+    if ( maxMinor != scaleData.maxMinor )
+    {
+        scaleData.maxMinor = maxMinor;
+        scaleData.isValid = false;
+        autoRefresh();
+    }
+}
+
+/*!
+  \return the maximum number of minor ticks for a specified axis
+  \param scaleId Scale index
+  \sa setScaleMaxMinor()
+*/
+int QwtPolarPlot::scaleMaxMinor( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return 0;
+
+    return d_data->scaleData[scaleId].maxMinor;
+}
+
+/*!
+  Set the maximum number of major scale intervals for a specified scale
+
+  \param scaleId Scale index
+  \param maxMajor maximum number of major steps
+  \sa scaleMaxMajor()
+*/
+void QwtPolarPlot::setScaleMaxMajor( int scaleId, int maxMajor )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    maxMajor = qBound( 1, maxMajor, 10000 );
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+    if ( maxMajor != scaleData.maxMinor )
+    {
+        scaleData.maxMajor = maxMajor;
+        scaleData.isValid = false;
+        autoRefresh();
+    }
+}
+
+/*!
+  \return the maximum number of major ticks for a specified axis
+  \param scaleId Scale index
+
+  \sa setScaleMaxMajor()
+*/
+int QwtPolarPlot::scaleMaxMajor( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return 0;
+
+    return d_data->scaleData[scaleId].maxMajor;
+}
+
+/*!
+  Change the scale engine for an axis
+
+  \param scaleId Scale index
+  \param scaleEngine Scale engine
+
+  \sa axisScaleEngine()
+*/
+void QwtPolarPlot::setScaleEngine( int scaleId, QwtScaleEngine *scaleEngine )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+    if ( scaleEngine == NULL || scaleEngine == scaleData.scaleEngine )
+        return;
+
+    delete scaleData.scaleEngine;
+    scaleData.scaleEngine = scaleEngine;
+
+    scaleData.isValid = false;
+
+    autoRefresh();
+}
+
+/*!
+  \return Scale engine for a specific scale
+
+  \param scaleId Scale index
+  \sa setScaleEngine()
+*/
+QwtScaleEngine *QwtPolarPlot::scaleEngine( int scaleId )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return NULL;
+
+    return d_data->scaleData[scaleId].scaleEngine;
+}
+
+/*!
+  \return Scale engine for a specific scale
+
+  \param scaleId Scale index
+  \sa setScaleEngine()
+*/
+const QwtScaleEngine *QwtPolarPlot::scaleEngine( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return NULL;
+
+    return d_data->scaleData[scaleId].scaleEngine;
+}
+
+/*!
+  \brief Disable autoscaling and specify a fixed scale for a selected scale.
+  \param scaleId Scale index
+  \param min
+  \param max minimum and maximum of the scale
+  \param stepSize Major step size. If <code>step == 0</code>, the step size is
+            calculated automatically using the maxMajor setting.
+  \sa setScaleMaxMajor(), setAutoScale()
+*/
+void QwtPolarPlot::setScale( int scaleId,
+    double min, double max, double stepSize )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+
+    scaleData.isValid = false;
+
+    scaleData.minValue = min;
+    scaleData.maxValue = max;
+    scaleData.stepSize = stepSize;
+    scaleData.doAutoScale = false;
+
+    autoRefresh();
+}
+
+/*!
+  \brief Disable autoscaling and specify a fixed scale for a selected scale.
+  \param scaleId Scale index
+  \param scaleDiv Scale division
+  \sa setScale(), setAutoScale()
+*/
+void QwtPolarPlot::setScaleDiv( int scaleId, const QwtScaleDiv &scaleDiv )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    ScaleData &scaleData = d_data->scaleData[scaleId];
+
+    scaleData.scaleDiv = scaleDiv;
+    scaleData.isValid = true;
+    scaleData.doAutoScale = false;
+
+    autoRefresh();
+}
+
+/*!
+  \brief Return the scale division of a specified scale
+
+  scaleDiv(scaleId)->lBound(), scaleDiv(scaleId)->hBound()
+  are the current limits of the scale.
+
+  \param scaleId Scale index
+  \return Scale division
+
+  \sa QwtScaleDiv, setScaleDiv(), setScale()
+*/
+const QwtScaleDiv *QwtPolarPlot::scaleDiv( int scaleId ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return NULL;
+
+    return &d_data->scaleData[scaleId].scaleDiv;
+}
+
+/*!
+  \brief Return the scale division of a specified scale
+
+  scaleDiv(scaleId)->lBound(), scaleDiv(scaleId)->hBound()
+  are the current limits of the scale.
+
+  \param scaleId Scale index
+  \return Scale division
+
+  \sa QwtScaleDiv, setScaleDiv(), setScale()
+*/
+QwtScaleDiv *QwtPolarPlot::scaleDiv( int scaleId )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return NULL;
+
+    return &d_data->scaleData[scaleId].scaleDiv;
+}
+
+/*!
+  \brief Change the origin of the azimuth scale
+
+  The azimuth origin is the angle where the azimuth scale
+  shows the value 0.0.  The default origin is 0.0.
+
+  \param origin New origin
+  \sa azimuthOrigin()
+*/
+void QwtPolarPlot::setAzimuthOrigin( double origin )
+{
+    origin = ::fmod( origin, 2 * M_PI );
+    if ( origin != d_data->azimuthOrigin )
+    {
+        d_data->azimuthOrigin = origin;
+        autoRefresh();
+    }
+}
+
+/*!
+  The azimuth origin is the angle where the azimuth scale
+  shows the value 0.0.
+
+  \return Origin of the azimuth scale
+  \sa setAzimuthOrigin()
+*/
+double QwtPolarPlot::azimuthOrigin() const
+{
+    return d_data->azimuthOrigin;
+}
+
+/*!
+   \brief Translate and in/decrease the zoom factor
+
+   In zoom mode the zoom position is in the center of the
+   canvas. The radius of the circle depends on the size of the plot canvas,
+   that is devided by the zoom factor. Thus a factor < 1.0 zoom in.
+
+   Setting an invalid zoom position disables zooming.
+
+   \param zoomPos Center of the translation
+   \param zoomFactor Zoom factor
+
+   \sa unzoom(), zoomPos(), zoomFactor()
+*/
+void QwtPolarPlot::zoom( const QwtPointPolar &zoomPos, double zoomFactor )
+{
+    zoomFactor = qAbs( zoomFactor );
+    if ( zoomPos != d_data->zoomPos ||
+            zoomFactor != d_data->zoomFactor )
+    {
+        d_data->zoomPos = zoomPos;
+        d_data->zoomFactor = zoomFactor;
+        updateLayout();
+        autoRefresh();
+    }
+}
+
+/*!
+   Unzoom the plot
+   \sa zoom()
+*/
+void QwtPolarPlot::unzoom()
+{
+    if ( d_data->zoomFactor != 1.0 || d_data->zoomPos.isValid() )
+    {
+        d_data->zoomFactor = 1.0;
+        d_data->zoomPos = QwtPointPolar();
+        autoRefresh();
+    }
+}
+
+/*!
+   \return Zoom position
+   \sa zoom(), zoomFactor()
+*/
+QwtPointPolar QwtPolarPlot::zoomPos() const
+{
+    return d_data->zoomPos;
+}
+
+/*!
+   \return Zoom factor
+   \sa zoom(), zoomPos()
+*/
+double QwtPolarPlot::zoomFactor() const
+{
+    return d_data->zoomFactor;
+}
+
+/*!
+  Build a scale map
+
+  The azimuth map translates between the scale values and angles from
+  [0.0, 2 * PI[. The radial map translates scale values into the distance
+  from the pole. The radial map is calculated from the current geometry
+  of the canvas.
+
+  \param scaleId Scale index
+  \return Map for the scale on the canvas. With this map pixel coordinates can
+          translated to plot coordinates and vice versa.
+
+  \sa QwtScaleMap, transform(), invTransform()
+*/
+QwtScaleMap QwtPolarPlot::scaleMap( int scaleId ) const
+{
+    const QRectF pr = plotRect();
+    return scaleMap( scaleId, pr.width() / 2.0 );
+}
+
+/*!
+  Build a scale map
+
+  The azimuth map translates between the scale values and angles from
+  [0.0, 2 * PI[. The radial map translates scale values into the distance
+  from the pole.
+
+  \param scaleId Scale index
+  \param radius Radius of the plot are in pixels
+  \return Map for the scale on the canvas. With this map pixel coordinates can
+          translated to plot coordinates and vice versa.
+
+  \sa QwtScaleMap, transform(), invTransform()
+*/
+QwtScaleMap QwtPolarPlot::scaleMap( int scaleId, const double radius ) const
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return QwtScaleMap();
+
+    QwtScaleMap map;
+    map.setTransformation( scaleEngine( scaleId )->transformation() );
+
+    const QwtScaleDiv *sd = scaleDiv( scaleId );
+    map.setScaleInterval( sd->lowerBound(), sd->upperBound() );
+
+    if ( scaleId == QwtPolar::Azimuth )
+    {
+        map.setPaintInterval( d_data->azimuthOrigin,
+            d_data->azimuthOrigin + 2 * M_PI );
+    }
+    else
+    {
+        map.setPaintInterval( 0.0, radius );
+    }
+
+    return map;
+}
+
+/*!
+    \brief Qt event handler
+
+    Handles QEvent::LayoutRequest and QEvent::PolishRequest
+
+    \param e Qt Event
+    \return True, when the event was processed
+*/
+bool QwtPolarPlot::event( QEvent *e )
+{
+    bool ok = QWidget::event( e );
+    switch( e->type() )
+    {
+        case QEvent::LayoutRequest:
+        {
+            updateLayout();
+            break;
+        }
+        case QEvent::PolishRequest:
+        {
+            updateLayout();
+            replot();
+            break;
+        }
+        default:;
+    }
+    return ok;
+}
+
+//! Resize and update internal layout
+void QwtPolarPlot::resizeEvent( QResizeEvent *e )
+{
+    QFrame::resizeEvent( e );
+    updateLayout();
+}
+
+void QwtPolarPlot::initPlot( const QwtText &title )
+{
+    d_data = new PrivateData;
+    d_data->layout = new QwtPolarLayout;
+
+    QwtText text( title );
+    text.setRenderFlags( Qt::AlignCenter | Qt::TextWordWrap );
+
+    d_data->titleLabel = new QwtTextLabel( text, this );
+    d_data->titleLabel->setFont( QFont( fontInfo().family(), 14, QFont::Bold ) );
+    if ( !text.isEmpty() )
+        d_data->titleLabel->show();
+    else
+        d_data->titleLabel->hide();
+
+    d_data->canvas = new QwtPolarCanvas( this );
+
+    d_data->autoReplot = false;
+    d_data->canvasBrush = QBrush( Qt::white );
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+    {
+        ScaleData &scaleData = d_data->scaleData[scaleId];
+
+        if ( scaleId == QwtPolar::Azimuth )
+        {
+            scaleData.minValue = 0.0;
+            scaleData.maxValue = 360.0;
+            scaleData.stepSize = 30.0;
+        }
+        else
+        {
+            scaleData.minValue = 0.0;
+            scaleData.maxValue = 1000.0;
+            scaleData.stepSize = 0.0;
+        }
+
+        scaleData.doAutoScale = true;
+
+        scaleData.maxMinor = 5;
+        scaleData.maxMajor = 8;
+
+        scaleData.isValid = false;
+
+        scaleData.scaleEngine = new QwtLinearScaleEngine;
+    }
+    d_data->zoomFactor = 1.0;
+    d_data->azimuthOrigin = 0.0;
+
+    setSizePolicy( QSizePolicy::MinimumExpanding,
+                   QSizePolicy::MinimumExpanding );
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+        updateScale( scaleId );
+}
+
+//! Replots the plot if QwtPlot::autoReplot() is \c true.
+void QwtPolarPlot::autoRefresh()
+{
+    if ( d_data->autoReplot )
+        replot();
+}
+
+//! Rebuild the layout
+void QwtPolarPlot::updateLayout()
+{
+    d_data->layout->activate( this, contentsRect() );
+
+    // resize and show the visible widgets
+    if ( d_data->titleLabel )
+    {
+        if ( !d_data->titleLabel->text().isEmpty() )
+        {
+            d_data->titleLabel->setGeometry( d_data->layout->titleRect().toRect() );
+            if ( !d_data->titleLabel->isVisible() )
+                d_data->titleLabel->show();
+        }
+        else
+            d_data->titleLabel->hide();
+    }
+
+    if ( d_data->legend )
+    {
+        if ( d_data->legend->isEmpty() )
+        {
+            d_data->legend->hide();
+        }
+        else
+        {
+            const QRectF legendRect = d_data->layout->legendRect();
+            d_data->legend->setGeometry( legendRect.toRect() );
+            d_data->legend->show();
+        }
+    }
+
+    d_data->canvas->setGeometry( d_data->layout->canvasRect().toRect() );
+    Q_EMIT layoutChanged();
+}
+
+/*!
+  \brief Redraw the plot
+
+  If the autoReplot option is not set (which is the default)
+  or if any curves are attached to raw data, the plot has to
+  be refreshed explicitly in order to make changes visible.
+
+  \sa setAutoReplot()
+  \warning Calls canvas()->repaint, take care of infinite recursions
+*/
+void QwtPolarPlot::replot()
+{
+    bool doAutoReplot = autoReplot();
+    setAutoReplot( false );
+
+    for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
+        updateScale( scaleId );
+
+    d_data->canvas->invalidateBackingStore();
+    d_data->canvas->repaint();
+
+    setAutoReplot( doAutoReplot );
+}
+
+//!  \return the plot's canvas
+QwtPolarCanvas *QwtPolarPlot::canvas()
+{
+    return d_data->canvas;
+}
+
+//!  \return the plot's canvas
+const QwtPolarCanvas *QwtPolarPlot::canvas() const
+{
+    return d_data->canvas;
+}
+
+/*!
+  Redraw the canvas.
+  \param painter Painter used for drawing
+  \param canvasRect Contents rect of the canvas
+*/
+void QwtPolarPlot::drawCanvas( QPainter *painter,
+    const QRectF &canvasRect ) const
+{
+    const QRectF cr = canvasRect;
+    const QRectF pr = plotRect( cr );
+
+    const double radius = pr.width() / 2.0;
+
+    if ( d_data->canvasBrush.style() != Qt::NoBrush )
+    {
+        painter->save();
+        painter->setPen( Qt::NoPen );
+        painter->setBrush( d_data->canvasBrush );
+
+        if ( qwtDistance( pr.center(), cr.topLeft() ) < radius &&
+            qwtDistance( pr.center(), cr.topRight() ) < radius &&
+            qwtDistance( pr.center(), cr.bottomRight() ) < radius &&
+            qwtDistance( pr.center(), cr.bottomLeft() ) < radius )
+        {
+            QwtPainter::drawRect( painter, cr );
+        }
+        else
+        {
+            painter->setRenderHint( QPainter::Antialiasing, true );
+            QwtPainter::drawEllipse( painter, pr );
+        }
+        painter->restore();
+    }
+
+    drawItems( painter,
+        scaleMap( QwtPolar::Azimuth, radius ),
+        scaleMap( QwtPolar::Radius, radius ),
+        pr.center(), radius, canvasRect );
+}
+
+/*!
+  Redraw the canvas items.
+
+  \param painter Painter used for drawing
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param radius Radius of the complete plot area in painter coordinates
+  \param canvasRect Contents rect of the canvas in painter coordinates
+*/
+void QwtPolarPlot::drawItems( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double radius,
+    const QRectF &canvasRect ) const
+{
+    const QRectF pr = plotRect( canvasRect );
+
+    const QwtPolarItemList& itmList = itemList();
+    for ( QwtPolarItemIterator it = itmList.begin();
+            it != itmList.end(); ++it )
+    {
+        QwtPolarItem *item = *it;
+        if ( item && item->isVisible() )
+        {
+            painter->save();
+
+            // Unfortunately circular clipping slows down
+            // painting a lot. So we better try to avoid it.
+
+            bool doClipping = false;
+            if ( item->rtti() != QwtPolarItem::Rtti_PolarGrid )
+            {
+                const QwtInterval intv =
+                    item->boundingInterval( QwtPolar::Radius );
+
+                if ( !intv.isValid() )
+                    doClipping = true;
+                else
+                {
+                    if ( radialMap.s1() < radialMap.s2() )
+                        doClipping = intv.maxValue() > radialMap.s2();
+                    else
+                        doClipping = intv.minValue() < radialMap.s2();
+                }
+            }
+
+            if ( doClipping )
+            {
+                const int margin = item->marginHint();
+
+                const QRectF clipRect = pr.adjusted(
+                    -margin, -margin, margin, margin );
+                if ( !clipRect.contains( canvasRect ) )
+                {
+                    QRegion clipRegion( clipRect.toRect(), QRegion::Ellipse );
+                    painter->setClipRegion( clipRegion, Qt::IntersectClip );
+                }
+            }
+
+            painter->setRenderHint( QPainter::Antialiasing,
+                item->testRenderHint( QwtPolarItem::RenderAntialiased ) );
+
+            item->draw( painter, azimuthMap, radialMap,
+                pole, radius, canvasRect );
+
+            painter->restore();
+        }
+    }
+}
+
+/*!
+  Rebuild the scale
+  \param scaleId Scale index
+*/
+
+void QwtPolarPlot::updateScale( int scaleId )
+{
+    if ( scaleId < 0 || scaleId >= QwtPolar::ScaleCount )
+        return;
+
+    ScaleData &d = d_data->scaleData[scaleId];
+
+    double minValue = d.minValue;
+    double maxValue = d.maxValue;
+    double stepSize = d.stepSize;
+
+    if ( scaleId == QwtPolar::ScaleRadius && d.doAutoScale )
+    {
+        QwtInterval interval;
+
+        const QwtPolarItemList& itmList = itemList();
+        for ( QwtPolarItemIterator it = itmList.begin();
+                it != itmList.end(); ++it )
+        {
+            const QwtPolarItem *item = *it;
+            if ( item->testItemAttribute( QwtPolarItem::AutoScale ) )
+                interval |= item->boundingInterval( scaleId );
+        }
+
+        minValue = interval.minValue();
+        maxValue = interval.maxValue();
+
+        d.scaleEngine->autoScale( d.maxMajor,
+                                  minValue, maxValue, stepSize );
+        d.isValid = false;
+    }
+
+    if ( !d.isValid )
+    {
+        d.scaleDiv = d.scaleEngine->divideScale(
+            minValue, maxValue, d.maxMajor, d.maxMinor, stepSize );
+        d.isValid = true;
+    }
+
+    const QwtInterval interval = visibleInterval();
+
+    const QwtPolarItemList& itmList = itemList();
+    for ( QwtPolarItemIterator it = itmList.begin();
+            it != itmList.end(); ++it )
+    {
+        QwtPolarItem *item = *it;
+        item->updateScaleDiv( *scaleDiv( QwtPolar::Azimuth ),
+            *scaleDiv( QwtPolar::Radius ), interval );
+    }
+}
+
+/*!
+   \return Maximum of all item margin hints.
+   \sa QwtPolarItem::marginHint()
+*/
+int QwtPolarPlot::plotMarginHint() const
+{
+    int margin = 0;
+    const QwtPolarItemList& itmList = itemList();
+    for ( QwtPolarItemIterator it = itmList.begin();
+            it != itmList.end(); ++it )
+    {
+        QwtPolarItem *item = *it;
+        if ( item && item->isVisible() )
+        {
+            const int hint = item->marginHint();
+            if ( hint > margin )
+                margin = hint;
+        }
+    }
+    return margin;
+}
+
+/*!
+   The plot area depends on the size of the canvas
+   and the zoom parameters.
+
+   \return Bounding rect of the plot area
+
+*/
+QRectF QwtPolarPlot::plotRect() const
+{
+    return plotRect( canvas()->contentsRect() );
+}
+
+/*!
+   \brief Calculate the bounding rect of the plot area
+
+   The plot area depends on the zoom parameters.
+
+   \param canvasRect Rectangle of the canvas
+   \return Rectangle for displaying 100% of the plot
+*/
+QRectF QwtPolarPlot::plotRect( const QRectF &canvasRect ) const
+{
+    const QwtScaleDiv *sd = scaleDiv( QwtPolar::Radius );
+    const QwtScaleEngine *se = scaleEngine( QwtPolar::Radius );
+
+    const int margin = plotMarginHint();
+    const QRectF cr = canvasRect;
+    const int radius = qMin( cr.width(), cr.height() ) / 2 - margin;
+
+    QwtScaleMap map;
+    map.setTransformation( se->transformation() );
+    map.setPaintInterval( 0.0, radius / d_data->zoomFactor );
+    map.setScaleInterval( sd->lowerBound(), sd->upperBound() );
+
+    double v = map.s1();
+    if ( map.s1() <= map.s2() )
+        v += d_data->zoomPos.radius();
+    else
+        v -= d_data->zoomPos.radius();
+    v = map.transform( v );
+
+    const QPointF off =
+        QwtPointPolar( d_data->zoomPos.azimuth(), v ).toPoint();
+
+    QPointF center( cr.center().x(), cr.top() + margin + radius );
+    center -= QPointF( off.x(), -off.y() );
+
+    QRectF rect( 0, 0, 2 * map.p2(), 2 * map.p2() );
+    rect.moveCenter( center );
+
+    return rect;
+}
+
+/*!
+   \return Bounding interval of the radial scale that is
+           visible on the canvas.
+*/
+QwtInterval QwtPolarPlot::visibleInterval() const
+{
+    const QwtScaleDiv *sd = scaleDiv( QwtPolar::Radius );
+
+    const QRectF cRect = canvas()->contentsRect();
+    const QRectF pRect = plotRect( cRect );
+    if ( cRect.contains( pRect ) || !cRect.intersects( pRect ) )
+    {
+        return QwtInterval( sd->lowerBound(), sd->upperBound() );
+    }
+
+    const QPointF pole = pRect.center();
+    const QRectF scaleRect = pRect & cRect;
+
+    const QwtScaleMap map = scaleMap( QwtPolar::Radius );
+
+    double dmin = 0.0;
+    double dmax = 0.0;
+    if ( scaleRect.contains( pole ) )
+    {
+        dmin = 0.0;
+
+        QPointF corners[4];
+        corners[0] = scaleRect.bottomRight();
+        corners[1] = scaleRect.topRight();
+        corners[2] = scaleRect.topLeft();
+        corners[3] = scaleRect.bottomLeft();
+
+        dmax = 0.0;
+        for ( int i = 0; i < 4; i++ )
+        {
+            const double dist = qwtDistance( pole, corners[i] );
+            if ( dist > dmax )
+                dmax = dist;
+        }
+    }
+    else
+    {
+        if ( pole.x() < scaleRect.left() )
+        {
+            if ( pole.y() < scaleRect.top() )
+            {
+                dmin = qwtDistance( pole, scaleRect.topLeft() );
+                dmax = qwtDistance( pole, scaleRect.bottomRight() );
+            }
+            else if ( pole.y() > scaleRect.bottom() )
+            {
+                dmin = qwtDistance( pole, scaleRect.bottomLeft() );
+                dmax = qwtDistance( pole, scaleRect.topRight() );
+            }
+            else
+            {
+                dmin = scaleRect.left() - pole.x();
+                dmax = qMax( qwtDistance( pole, scaleRect.bottomRight() ),
+                    qwtDistance( pole, scaleRect.topRight() ) );
+            }
+        }
+        else if ( pole.x() > scaleRect.right() )
+        {
+            if ( pole.y() < scaleRect.top() )
+            {
+                dmin = qwtDistance( pole, scaleRect.topRight() );
+                dmax = qwtDistance( pole, scaleRect.bottomLeft() );
+            }
+            else if ( pole.y() > scaleRect.bottom() )
+            {
+                dmin = qwtDistance( pole, scaleRect.bottomRight() );
+                dmax = qwtDistance( pole, scaleRect.topLeft() );
+            }
+            else
+            {
+                dmin = pole.x() - scaleRect.right();
+                dmax = qMax( qwtDistance( pole, scaleRect.bottomLeft() ),
+                    qwtDistance( pole, scaleRect.topLeft() ) );
+            }
+        }
+        else if ( pole.y() < scaleRect.top() )
+        {
+            dmin = scaleRect.top() - pole.y();
+            dmax = qMax( qwtDistance( pole, scaleRect.bottomLeft() ),
+                qwtDistance( pole, scaleRect.bottomRight() ) );
+        }
+        else if ( pole.y() > scaleRect.bottom() )
+        {
+            dmin = pole.y() - scaleRect.bottom();
+            dmax = qMax( qwtDistance( pole, scaleRect.topLeft() ),
+                qwtDistance( pole, scaleRect.topRight() ) );
+        }
+    }
+
+    const double radius = pRect.width() / 2.0;
+    if ( dmax > radius )
+        dmax = radius;
+
+    QwtInterval interval;
+    interval.setMinValue( map.invTransform( dmin ) );
+    interval.setMaxValue( map.invTransform( dmax ) );
+
+    return interval;
+}
+
+/*!
+  \return Layout, responsible for the geometry of the plot components
+*/
+QwtPolarLayout *QwtPolarPlot::plotLayout()
+{
+    return d_data->layout;
+}
+
+/*!
+  \return Layout, responsible for the geometry of the plot components
+*/
+const QwtPolarLayout *QwtPolarPlot::plotLayout() const
+{
+    return d_data->layout;
+}
+
+/*!
+  \brief Attach/Detach a plot item 
+
+  \param plotItem Plot item
+  \param on When true attach the item, otherwise detach it
+ */
+void QwtPolarPlot::attachItem( QwtPolarItem *plotItem, bool on )
+{
+    if ( on )
+        insertItem( plotItem );
+    else
+        removeItem( plotItem );
+
+    Q_EMIT itemAttached( plotItem, on );
+
+    if ( plotItem->testItemAttribute( QwtPolarItem::Legend ) )
+    {
+        // the item wants to be represented on the legend
+
+        if ( on )
+        {
+            updateLegend( plotItem );
+        }
+        else
+        {
+            const QVariant itemInfo = itemToInfo( plotItem );
+            Q_EMIT legendDataChanged( itemInfo, QList<QwtLegendData>() );
+        }
+    }
+
+    if ( autoReplot() )
+        update();
+}
+
+/*!
+  \brief Build an information, that can be used to identify
+         a plot item on the legend.
+
+  The default implementation simply wraps the plot item
+  into a QVariant object. When overloading itemToInfo()
+  usually infoToItem() needs to reimplemeted too.
+
+\code
+    QVariant itemInfo;
+    qVariantSetValue( itemInfo, plotItem );
+\endcode
+
+  \param plotItem Plot item
+  \sa infoToItem()
+ */
+QVariant QwtPolarPlot::itemToInfo( QwtPolarItem *plotItem ) const
+{
+    QVariant itemInfo;
+    qVariantSetValue( itemInfo, plotItem );
+
+    return itemInfo;
+}
+
+/*!
+  \brief Identify the plot item according to an item info object,
+         that has bee generated from itemToInfo().
+
+  The default implementation simply tries to unwrap a QwtPlotItem 
+  pointer:
+
+\code
+    if ( itemInfo.canConvert<QwtPlotItem *>() )
+        return qvariant_cast<QwtPlotItem *>( itemInfo );
+\endcode
+  \param itemInfo Plot item
+  \return A plot item, when successful, otherwise a NULL pointer.
+  \sa itemToInfo()
+*/
+QwtPolarItem *QwtPolarPlot::infoToItem( const QVariant &itemInfo ) const
+{
+    if ( itemInfo.canConvert<QwtPolarItem *>() )
+        return qvariant_cast<QwtPolarItem *>( itemInfo );
+
+    return NULL;
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h
new file mode 100644
index 0000000..2e65aca
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h
@@ -0,0 +1,219 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_PLOT_H
+#define QWT_POLAR_PLOT_H 1
+
+#include "qwt_polar_global.h"
+#include "qwt_polar.h"
+#include "qwt_polar_itemdict.h"
+#include <qwt_interval.h>
+#include <qwt_scale_map.h>
+#include <qwt_point_polar.h>
+#include <qframe.h>
+
+class QwtRoundScaleDraw;
+class QwtScaleEngine;
+class QwtScaleDiv;
+class QwtTextLabel;
+class QwtPolarCanvas;
+class QwtPolarLayout;
+class QwtAbstractLegend;
+
+/*!
+  \brief A plotting widget, displaying a polar coordinate system
+
+  An unlimited number of plot items can be displayed on
+  its canvas. Plot items might be curves (QwtPolarCurve), markers
+  (QwtPolarMarker), the grid (QwtPolarGrid), or anything else derived
+  from QwtPolarItem.
+
+  The coordinate system is defined by a radial and a azimuth scale.
+  The scales at the axes can be explicitely set (QwtScaleDiv), or
+  are calculated from the plot items, using algorithms (QwtScaleEngine) which
+  can be configured separately for each axis. Autoscaling is supported
+  for the radial scale.
+
+  In opposite to QwtPlot the scales might be different from the
+  view, that is displayed on the canvas. The view can be changed by
+  zooming - f.e. by using QwtPolarPanner or QwtPolarMaginfier.
+*/
+class QWT_POLAR_EXPORT QwtPolarPlot: public QFrame, public QwtPolarItemDict
+{
+    Q_OBJECT
+
+    Q_PROPERTY( QBrush plotBackground READ plotBackground WRITE setPlotBackground )
+    Q_PROPERTY( double azimuthOrigin READ azimuthOrigin WRITE setAzimuthOrigin )
+
+
+public:
+    /*!
+        Position of the legend, relative to the canvas.
+        \sa insertLegend()
+     */
+    enum LegendPosition
+    {
+        //! The legend will be left from the canvas.
+        LeftLegend,
+
+        //! The legend will be right from the canvas.
+        RightLegend,
+
+        //! The legend will be below the canvas.
+        BottomLegend,
+
+        //! The legend will be between canvas and title.
+        TopLegend,
+
+        /*!
+          External means that only the content of the legend
+          will be handled by QwtPlot, but not its geometry.
+          This might be interesting if an application wants to
+          have a legend in an external window ( or on the canvas ).
+
+          \note The legend is not painted by QwtPolarRenderer
+         */
+        ExternalLegend
+    };
+
+    explicit QwtPolarPlot( QWidget *parent = NULL );
+    QwtPolarPlot( const QwtText &title, QWidget *parent = NULL );
+
+    virtual ~QwtPolarPlot();
+
+    void setTitle( const QString & );
+    void setTitle( const QwtText & );
+
+    QwtText title() const;
+
+    QwtTextLabel *titleLabel();
+    const QwtTextLabel *titleLabel() const;
+
+    void setAutoReplot( bool tf = true );
+    bool autoReplot() const;
+
+    void setAutoScale( int scaleId );
+    bool hasAutoScale( int scaleId ) const;
+
+    void setScaleMaxMinor( int scaleId, int maxMinor );
+    int scaleMaxMinor( int scaleId ) const;
+
+    int scaleMaxMajor( int scaleId ) const;
+    void setScaleMaxMajor( int scaleId, int maxMajor );
+
+    QwtScaleEngine *scaleEngine( int scaleId );
+    const QwtScaleEngine *scaleEngine( int scaleId ) const;
+    void setScaleEngine( int scaleId, QwtScaleEngine * );
+
+    void setScale( int scaleId, double min, double max, double step = 0 );
+
+    void setScaleDiv( int scaleId, const QwtScaleDiv & );
+    const QwtScaleDiv *scaleDiv( int scaleId ) const;
+    QwtScaleDiv *scaleDiv( int scaleId );
+
+    QwtScaleMap scaleMap( int scaleId, double radius ) const;
+    QwtScaleMap scaleMap( int scaleId ) const;
+
+    void updateScale( int scaleId );
+
+    double azimuthOrigin() const;
+
+    void zoom( const QwtPointPolar&, double factor );
+    void unzoom();
+
+    QwtPointPolar zoomPos() const;
+    double zoomFactor() const;
+
+    // Canvas
+
+    QwtPolarCanvas *canvas();
+    const QwtPolarCanvas *canvas() const;
+
+    void setPlotBackground ( const QBrush &c );
+    const QBrush& plotBackground() const;
+
+    virtual void drawCanvas( QPainter *, const QRectF & ) const;
+
+    // Legend
+
+    void insertLegend( QwtAbstractLegend *,
+        LegendPosition = RightLegend, double ratio = -1.0 );
+
+    QwtAbstractLegend *legend();
+    const QwtAbstractLegend *legend() const;
+
+    void updateLegend();
+    void updateLegend( const QwtPolarItem * );
+
+    // Layout
+    QwtPolarLayout *plotLayout();
+    const QwtPolarLayout *plotLayout() const;
+
+    QwtInterval visibleInterval() const;
+    QRectF plotRect() const;
+    QRectF plotRect( const QRectF & ) const;
+
+    int plotMarginHint() const;
+
+    virtual QVariant itemToInfo( QwtPolarItem * ) const;
+    virtual QwtPolarItem *infoToItem( const QVariant & ) const;
+
+Q_SIGNALS:
+    /*!
+      A signal indicating, that an item has been attached/detached
+
+      \param plotItem Plot item
+      \param on Attached/Detached
+     */
+    void itemAttached( QwtPolarItem *plotItem, bool on );
+
+    /*! 
+      A signal with the attributes how to update 
+      the legend entries for a plot item.
+                
+      \param itemInfo Info about a plot, build from itemToInfo()
+    
+      \sa itemToInfo(), infoToItem(), QwtAbstractLegend::updateLegend()
+     */
+    void legendDataChanged( const QVariant &itemInfo,
+        const QList<QwtLegendData> &data );
+
+    /*!
+      A signal that is emitted, whenever the layout of the plot
+      has been recalculated.
+     */
+    void layoutChanged();
+
+public Q_SLOTS:
+    virtual void replot();
+    void autoRefresh();
+    void setAzimuthOrigin( double );
+
+protected:
+    virtual bool event( QEvent * );
+    virtual void resizeEvent( QResizeEvent * );
+
+    virtual void updateLayout();
+
+    virtual void drawItems( QPainter *painter,
+        const QwtScaleMap &radialMap, const QwtScaleMap &azimuthMap,
+        const QPointF &pole, double radius,
+        const QRectF &canvasRect ) const;
+
+private:
+    friend class QwtPolarItem;
+    void attachItem( QwtPolarItem *, bool );
+
+    void initPlot( const QwtText & );
+
+    class ScaleData;
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp
new file mode 100644
index 0000000..a9dc4fa
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.cpp
@@ -0,0 +1,437 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_renderer.h"
+#include "qwt_polar_plot.h"
+#include "qwt_polar_layout.h"
+#include <qwt_legend.h>
+#include <qwt_dyngrid_layout.h>
+#include <qwt_text_label.h>
+#include <qwt_text.h>
+#include <qpainter.h>
+#include <qprinter.h>
+#include <qprintdialog.h>
+#include <qfiledialog.h>
+#include <qimagewriter.h>
+#include <qfileinfo.h>
+#include <qmath.h>
+#ifndef QWT_NO_POLAR_POLAR_SVG
+#ifdef QT_SVG_LIB
+#include <qsvggenerator.h>
+#endif
+#endif
+
+
+static inline double qwtDistance(
+    const QPointF &p1, const QPointF &p2 )
+{
+    double dx = p2.x() - p1.x();
+    double dy = p2.y() - p1.y();
+    return qSqrt( dx * dx + dy * dy );
+}
+
+class QwtPolarRenderer::PrivateData
+{
+public:
+    PrivateData():
+        plot( NULL )
+    {
+    }
+
+    QwtPolarPlot *plot;
+};
+
+/*!
+  Constructor
+  \param parent Parent object
+ */
+QwtPolarRenderer::QwtPolarRenderer( QObject *parent ):
+    QObject( parent )
+{
+    d_data = new PrivateData;
+}
+
+//! Destructor
+QwtPolarRenderer::~QwtPolarRenderer()
+{
+    delete d_data;
+}
+
+/*!
+  Render a polar plot to a file
+
+  The format of the document will be autodetected from the
+  suffix of the filename.
+
+  \param plot Plot widget
+  \param fileName Path of the file, where the document will be stored
+  \param sizeMM Size for the document in millimeters.
+  \param resolution Resolution in dots per Inch (dpi)
+*/
+void QwtPolarRenderer::renderDocument( QwtPolarPlot *plot,
+    const QString &fileName, const QSizeF &sizeMM, int resolution )
+{
+    renderDocument( plot, fileName,
+        QFileInfo( fileName ).suffix(), sizeMM, resolution );
+}
+
+/*!
+  Render a plot to a file
+
+  Supported formats are:
+
+  - pdf\n
+  - ps\n
+  - svg\n
+  - all image formats supported by Qt, see QImageWriter::supportedImageFormats()
+
+  \param plot Plot widget
+  \param fileName Path of the file, where the document will be stored
+  \param format Format for the document
+  \param sizeMM Size for the document in millimeters.
+  \param resolution Resolution in dots per Inch (dpi)
+
+  \sa renderTo(), render(), QwtPainter::setRoundingAlignment()
+*/
+void QwtPolarRenderer::renderDocument( QwtPolarPlot *plot,
+    const QString &fileName, const QString &format,
+    const QSizeF &sizeMM, int resolution )
+{
+    if ( plot == NULL || sizeMM.isEmpty() || resolution <= 0 )
+        return;
+
+    QString title = plot->title().text();
+    if ( title.isEmpty() )
+        title = "Plot Document";
+
+    const double mmToInch = 1.0 / 25.4;
+    const QSizeF size = sizeMM * mmToInch * resolution;
+
+    const QRectF documentRect( 0.0, 0.0, size.width(), size.height() );
+
+    const QString fmt = format.toLower();
+    if ( format == "pdf" )
+    {
+#ifndef QT_NO_PRINTER
+        QPrinter printer;
+        printer.setColorMode( QPrinter::Color );
+        printer.setFullPage( true );
+        printer.setPaperSize( sizeMM, QPrinter::Millimeter );
+        printer.setDocName( title );
+        printer.setOutputFileName( fileName );
+        printer.setOutputFormat( QPrinter::PdfFormat );
+        printer.setResolution( resolution );
+
+        QPainter painter( &printer );
+        render( plot, &painter, documentRect );
+#endif
+    }
+    else if ( format == "ps" )
+    {
+#if QT_VERSION < 0x050000
+#ifndef QT_NO_PRINTER
+        QPrinter printer;
+        printer.setColorMode( QPrinter::Color );
+        printer.setFullPage( true );
+        printer.setPaperSize( sizeMM, QPrinter::Millimeter );
+        printer.setDocName( title );
+        printer.setOutputFileName( fileName );
+        printer.setOutputFormat( QPrinter::PostScriptFormat );
+        printer.setResolution( resolution );
+
+        QPainter painter( &printer );
+        render( plot, &painter, documentRect );
+#endif
+#endif
+    }
+#ifndef QWT_NO_POLAR_SVG
+#ifdef QT_SVG_LIB
+#if QT_VERSION >= 0x040500
+    else if ( format == "svg" )
+    {
+        QSvgGenerator generator;
+        generator.setTitle( title );
+        generator.setFileName( fileName );
+        generator.setResolution( resolution );
+        generator.setViewBox( documentRect );
+
+        QPainter painter( &generator );
+        render( plot, &painter, documentRect );
+    }
+#endif
+#endif
+#endif
+    else
+    {
+        if ( QImageWriter::supportedImageFormats().indexOf(
+            format.toLatin1() ) >= 0 )
+        {
+            const QRect imageRect = documentRect.toRect();
+            const int dotsPerMeter = qRound( resolution * mmToInch * 1000.0 );
+
+            QImage image( imageRect.size(), QImage::Format_ARGB32 );
+            image.setDotsPerMeterX( dotsPerMeter );
+            image.setDotsPerMeterY( dotsPerMeter );
+            image.fill( QColor( Qt::white ).rgb() );
+
+            QPainter painter( &image );
+            render( plot, &painter, imageRect );
+            painter.end();
+
+            image.save( fileName, format.toLatin1() );
+        }
+    }
+}
+
+/*!
+  \brief Render the plot to a \c QPaintDevice
+
+  This function renders the contents of a QwtPolarPlot instance to
+  \c QPaintDevice object. The target rectangle is derived from
+  its device metrics.
+
+  \param plot Plot to be rendered
+  \param paintDevice device to paint on, f.e a QImage
+
+  \sa renderDocument(), render(), QwtPainter::setRoundingAlignment()
+*/
+
+void QwtPolarRenderer::renderTo(
+    QwtPolarPlot *plot, QPaintDevice &paintDevice ) const
+{
+    int w = paintDevice.width();
+    int h = paintDevice.height();
+
+    QPainter p( &paintDevice );
+    render( plot, &p, QRectF( 0, 0, w, h ) );
+}
+
+
+/*!
+  \brief Render the plot to a QPrinter
+
+  This function renders the contents of a QwtPolarPlot instance to
+  \c QPaintDevice object. The size is derived from the printer
+  metrics.
+
+  \param plot Plot to be rendered
+  \param printer Printer to paint on
+
+  \sa renderDocument(), render(), QwtPainter::setRoundingAlignment()
+*/
+
+void QwtPolarRenderer::renderTo(
+    QwtPolarPlot *plot, QPrinter &printer ) const
+{
+    int w = printer.width();
+    int h = printer.height();
+
+    QRectF rect( 0, 0, w, h );
+    double aspect = rect.width() / rect.height();
+    if ( ( aspect < 1.0 ) )
+        rect.setHeight( aspect * rect.width() );
+
+    QPainter p( &printer );
+    render( plot, &p, rect );
+}
+
+#ifndef QWT_NO_POLAR_SVG
+#ifdef QT_SVG_LIB
+#if QT_VERSION >= 0x040500
+
+/*!
+  \brief Render the plot to a QSvgGenerator
+
+  If the generator has a view box, the plot will be rendered into it.
+  If it has no viewBox but a valid size the target coordinates
+  will be (0, 0, generator.width(), generator.height()). Otherwise
+  the target rectangle will be QRectF(0, 0, 800, 600);
+
+  \param plot Plot to be rendered
+  \param generator SVG generator
+*/
+void QwtPolarRenderer::renderTo(
+    QwtPolarPlot *plot, QSvgGenerator &generator ) const
+{
+    QRectF rect = generator.viewBoxF();
+    if ( rect.isEmpty() )
+        rect.setRect( 0, 0, generator.width(), generator.height() );
+
+    if ( rect.isEmpty() )
+        rect.setRect( 0, 0, 800, 600 ); // something
+
+    QPainter p( &generator );
+    render( plot, &p, rect );
+}
+#endif
+#endif
+#endif
+
+/*!
+   \brief Render the plot to a given rectangle ( f.e QPrinter, QSvgRenderer )
+
+   \param plot Plot widget to be rendered
+   \param painter Painter
+   \param plotRect Bounding rectangle for the plot
+*/
+void QwtPolarRenderer::render( QwtPolarPlot *plot,
+    QPainter *painter, const QRectF &plotRect ) const
+{
+    if ( plot == NULL || painter == NULL || !painter->isActive() ||
+        !plotRect.isValid() || plot->size().isNull() )
+    {
+        return;
+    }
+
+    d_data->plot = plot;
+
+    /*
+      The layout engine uses the same methods as they are used
+      by the Qt layout system. Therefore we need to calculate the
+      layout in screen coordinates and paint with a scaled painter.
+     */
+    QTransform transform;
+    transform.scale(
+        double( painter->device()->logicalDpiX() ) / plot->logicalDpiX(),
+        double( painter->device()->logicalDpiY() ) / plot->logicalDpiY() );
+
+    const QRectF layoutRect = transform.inverted().mapRect( plotRect );
+
+    QwtPolarLayout *layout = plot->plotLayout();
+
+    // All paint operations need to be scaled according to
+    // the paint device metrics.
+
+    QwtPolarLayout::Options layoutOptions =
+        QwtPolarLayout::IgnoreScrollbars | QwtPolarLayout::IgnoreFrames;
+
+    layout->activate( plot, layoutRect, layoutOptions );
+
+    painter->save();
+    painter->setWorldTransform( transform, true );
+
+    painter->save();
+    renderTitle( painter, layout->titleRect() );
+    painter->restore();
+
+    painter->save();
+    renderLegend( plot, painter, layout->legendRect() );
+    painter->restore();
+
+    const QRectF canvasRect = layout->canvasRect();
+
+    painter->save();
+    painter->setClipRect( canvasRect );
+    plot->drawCanvas( painter, canvasRect );
+    painter->restore();
+
+    painter->restore();
+
+    layout->invalidate();
+
+    d_data->plot = NULL;
+}
+
+/*!
+  Render the title into a given rectangle.
+
+  \param painter Painter
+  \param rect Bounding rectangle
+*/
+
+void QwtPolarRenderer::renderTitle( QPainter *painter, const QRectF &rect ) const
+{
+    QwtTextLabel *title = d_data->plot->titleLabel();
+
+    painter->setFont( title->font() );
+
+    const QColor color = title->palette().color(
+        QPalette::Active, QPalette::Text );
+
+    painter->setPen( color );
+    title->text().draw( painter, rect );
+}
+
+/*!
+  Render the legend into a given rectangle.
+
+  \param plot Plot widget
+  \param painter Painter
+  \param rect Bounding rectangle
+*/
+void QwtPolarRenderer::renderLegend( const QwtPolarPlot *plot,
+    QPainter *painter, const QRectF &rect ) const
+{
+    if ( plot->legend() )
+        plot->legend()->renderLegend( painter, rect, true );
+}
+
+/*!
+   \brief Execute a file dialog and render the plot to the selected file
+
+   The document will be rendered in 85 dpi for a size 30x30 cm
+
+   \param plot Plot widget
+   \param documentName Default document name
+   \param sizeMM Size for the document in millimeters.
+   \param resolution Resolution in dots per Inch (dpi)
+
+   \sa renderDocument()
+*/
+bool QwtPolarRenderer::exportTo( QwtPolarPlot *plot, 
+    const QString &documentName, const QSizeF &sizeMM, int resolution )
+{
+    if ( plot == NULL )
+        return false;
+
+    QString fileName = documentName;
+
+    // What about translation 
+
+#ifndef QT_NO_FILEDIALOG
+    const QList<QByteArray> imageFormats =
+        QImageWriter::supportedImageFormats();
+
+    QStringList filter;
+#ifndef QT_NO_PRINTER
+    filter += QString( "PDF " ) + tr( "Documents" ) + " (*.pdf)";
+#endif
+#ifndef QWT_NO_SVG
+    filter += QString( "SVG " ) + tr( "Documents" ) + " (*.svg)";
+#endif
+#ifndef QT_NO_PRINTER
+    filter += QString( "Postscript " ) + tr( "Documents" ) + " (*.ps)";
+#endif
+
+    if ( imageFormats.size() > 0 )
+    {
+        QString imageFilter( tr( "Images" ) );
+        imageFilter += " (";
+        for ( int i = 0; i < imageFormats.size(); i++ )
+        {
+            if ( i > 0 )
+                imageFilter += " ";
+            imageFilter += "*.";
+            imageFilter += imageFormats[i];
+        }
+        imageFilter += ")";
+
+        filter += imageFilter;
+    }
+
+    fileName = QFileDialog::getSaveFileName(
+        NULL, tr( "Export File Name" ), fileName,
+        filter.join( ";;" ), NULL, QFileDialog::DontConfirmOverwrite );
+#endif
+    if ( fileName.isEmpty() )
+        return false;
+
+    renderDocument( plot, fileName, sizeMM, resolution );
+
+    return true;
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.h
new file mode 100644
index 0000000..993e332
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_renderer.h
@@ -0,0 +1,72 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_RENDERER_H
+#define QWT_POLAR_RENDERER_H 1
+
+#include "qwt_polar_global.h"
+#include <qobject.h>
+#include <qsize.h>
+
+class QwtPolarPlot;
+class QRectF;
+class QPainter;
+class QPrinter;
+class QPaintDevice;
+#ifndef QWT_NO_POLAR_SVG
+#ifdef QT_SVG_LIB
+class QSvgGenerator;
+#endif
+#endif
+
+/*!
+  \brief Renderer for exporting a polar plot to a document, a printer
+         or anything else, that is supported by QPainter/QPaintDevice
+*/
+class QWT_POLAR_EXPORT QwtPolarRenderer: public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit QwtPolarRenderer( QObject *parent = NULL );
+    virtual ~QwtPolarRenderer();
+
+    void renderDocument( QwtPolarPlot *, const QString &format,
+        const QSizeF &sizeMM, int resolution = 85 );
+
+    void renderDocument( QwtPolarPlot *,
+        const QString &title, const QString &format,
+        const QSizeF &sizeMM, int resolution = 85 );
+
+#ifndef QWT_NO_POLAR_SVG
+#ifdef QT_SVG_LIB
+#if QT_VERSION >= 0x040500
+    void renderTo( QwtPolarPlot *, QSvgGenerator & ) const;
+#endif
+#endif
+#endif
+    void renderTo( QwtPolarPlot *, QPrinter & ) const;
+    void renderTo( QwtPolarPlot *, QPaintDevice & ) const;
+
+    virtual void render( QwtPolarPlot *,
+        QPainter *, const QRectF &rect ) const;
+
+    bool exportTo( QwtPolarPlot *, const QString &documentName,
+        const QSizeF &sizeMM = QSizeF( 200, 200 ), int resolution = 85 );
+
+    virtual void renderTitle( QPainter *, const QRectF & ) const;
+
+    virtual void renderLegend(
+        const QwtPolarPlot *, QPainter *, const QRectF & ) const;
+
+private:
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+#endif
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.cpp
new file mode 100644
index 0000000..325b07a
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.cpp
@@ -0,0 +1,495 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#include "qwt_polar_spectrogram.h"
+#include "qwt_polar.h"
+#include "qwt_polar_plot.h"
+#include <qwt_color_map.h>
+#include <qwt_scale_map.h>
+#include <qwt_raster_data.h>
+#include <qwt_math.h>
+#include <qpainter.h>
+#if QT_VERSION >= 0x040400
+#include <qthread.h>
+#include <qfuture.h>
+#include <qtconcurrentrun.h>
+#endif
+
+#if QWT_VERSION < 0x060100
+
+static inline double qwtFastAtan( double x )
+{
+    if ( x < -1.0 )
+        return -M_PI_2 - x / ( x * x + 0.28 );
+
+    if ( x > 1.0 )
+        return M_PI_2 - x / ( x * x + 0.28 );
+
+    return x / ( 1.0 + x * x * 0.28 );
+}
+
+static inline double qwtFastAtan2( double y, double x )
+{
+    if ( x > 0 )
+        return qwtFastAtan( y / x );
+
+    if ( x < 0 )
+    {
+        const double d = qwtFastAtan( y / x );
+        return ( y >= 0 ) ? d + M_PI : d - M_PI;
+    }
+
+    if ( y < 0.0 )
+        return -M_PI_2;
+
+    if ( y > 0.0 )
+        return M_PI_2;
+
+    return 0.0;
+}
+
+#endif // QWT_VERSION < 0x060100
+
+#if QT_VERSION < 0x040601
+#define qAtan2(y, x) ::atan2(y, x)
+#endif
+
+static bool qwtNeedsClipping( const QRectF &plotRect, const QRectF &rect )
+{
+    QPointF points[4];
+    points[0] = rect.topLeft();
+    points[1] = rect.topRight();
+    points[2] = rect.bottomLeft();
+    points[3] = rect.bottomRight();
+
+    const double radius = plotRect.width() / 2.0;
+    const QPointF pole = plotRect.center();
+
+    for ( int i = 0; i < 4; i++ )
+    {
+        const double dx = points[i].x() - pole.x();
+        const double dy = points[i].y() - pole.y();
+
+        if ( qSqrt( dx * dx + dy * dy ) > radius )
+            return true;
+    }
+
+    return false;
+}
+
+class QwtPolarSpectrogram::TileInfo
+{
+public:
+    QPoint imagePos;
+    QRect rect;
+    QImage *image;
+};
+
+class QwtPolarSpectrogram::PrivateData
+{
+public:
+    PrivateData():
+        data( NULL )
+    {
+        colorMap = new QwtLinearColorMap();
+    }
+
+    ~PrivateData()
+    {
+        delete data;
+        delete colorMap;
+    }
+
+    QwtRasterData *data;
+    QwtColorMap *colorMap;
+
+    QwtPolarSpectrogram::PaintAttributes paintAttributes;
+};
+
+//!  Constructor
+QwtPolarSpectrogram::QwtPolarSpectrogram():
+    QwtPolarItem( QwtText( "Spectrogram" ) )
+{
+    d_data = new PrivateData;
+
+    setItemAttribute( QwtPolarItem::AutoScale );
+    setItemAttribute( QwtPolarItem::Legend, false );
+
+    setZ( 20.0 );
+}
+
+//! Destructor
+QwtPolarSpectrogram::~QwtPolarSpectrogram()
+{
+    delete d_data;
+}
+
+//! \return QwtPolarItem::Rtti_PolarSpectrogram
+int QwtPolarSpectrogram::rtti() const
+{
+    return QwtPolarItem::Rtti_PolarSpectrogram;
+}
+
+/*!
+  Set the data to be displayed
+
+  \param data Spectrogram Data
+  \sa data()
+
+  \warning QwtRasterData::initRaster() is called each time before the
+           image is rendered, but without any useful parameters.
+           Also QwtRasterData::rasterHint() is not used.
+*/
+void QwtPolarSpectrogram::setData( QwtRasterData *data )
+{
+    if ( data != d_data->data )
+    {
+        delete d_data->data;
+        d_data->data = data;
+
+        itemChanged();
+    }
+}
+
+/*!
+  \return Spectrogram data
+  \sa setData()
+*/
+const QwtRasterData *QwtPolarSpectrogram::data() const
+{
+    return d_data->data;
+}
+
+/*!
+  Change the color map
+
+  Often it is useful to display the mapping between intensities and
+  colors as an additional plot axis, showing a color bar.
+
+  \param colorMap Color Map
+
+  \sa colorMap(), QwtScaleWidget::setColorBarEnabled(),
+      QwtScaleWidget::setColorMap()
+*/
+void QwtPolarSpectrogram::setColorMap( QwtColorMap *colorMap )
+{
+    if ( d_data->colorMap != colorMap )
+    {
+        delete d_data->colorMap;
+        d_data->colorMap = colorMap;
+    }
+
+    itemChanged();
+}
+
+/*!
+   \return Color Map used for mapping the intensity values to colors
+   \sa setColorMap()
+*/
+const QwtColorMap *QwtPolarSpectrogram::colorMap() const
+{
+    return d_data->colorMap;
+}
+
+/*!
+  Specify an attribute how to draw the curve
+
+  \param attribute Paint attribute
+  \param on On/Off
+  \sa testPaintAttribute()
+*/
+void QwtPolarSpectrogram::setPaintAttribute( PaintAttribute attribute, bool on )
+{
+    if ( on )
+        d_data->paintAttributes |= attribute;
+    else
+        d_data->paintAttributes &= ~attribute;
+}
+
+/*!
+    \param attribute Paint attribute
+    \return True, when attribute has been set
+    \sa setPaintAttribute()
+*/
+bool QwtPolarSpectrogram::testPaintAttribute( PaintAttribute attribute ) const
+{
+    return ( d_data->paintAttributes & attribute );
+}
+
+/*!
+  Draw the spectrogram
+
+  \param painter Painter
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param radius Radius of the complete plot area in painter coordinates
+  \param canvasRect Contents rect of the canvas in painter coordinates
+*/
+void QwtPolarSpectrogram::draw( QPainter *painter,
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, double,
+    const QRectF &canvasRect ) const
+{
+    const QRectF plotRect = plot()->plotRect( canvasRect.toRect() );
+
+    QRegion clipRegion( canvasRect.toRect() );
+    if ( qwtNeedsClipping( plotRect, canvasRect ) )
+    {
+        // For large plotRects the ellipse becomes a huge polygon.
+        // So we better clip only, when we really need to.
+
+        clipRegion &= QRegion( plotRect.toRect(), QRegion::Ellipse );
+    }
+
+    QRect imageRect = canvasRect.toRect();
+
+    if ( painter->hasClipping() )
+        imageRect &= painter->clipRegion().boundingRect();
+
+    const QwtInterval radialInterval =
+        boundingInterval( QwtPolar::ScaleRadius );
+    if ( radialInterval.isValid() )
+    {
+        const double radius = radialMap.transform( radialInterval.maxValue() ) -
+                              radialMap.transform( radialInterval.minValue() );
+
+        QRectF r( 0, 0, 2 * radius, 2 * radius );
+        r.moveCenter( pole );
+
+        clipRegion &= QRegion( r.toRect(), QRegion::Ellipse );;
+
+        imageRect &= r.toRect();
+    }
+
+    const QImage image = renderImage( azimuthMap, radialMap, pole, imageRect );
+
+    painter->save();
+    painter->setClipRegion( clipRegion );
+
+    painter->drawImage( imageRect, image );
+
+    painter->restore();
+}
+
+/*!
+   \brief Render an image from the data and color map.
+
+   The area is translated into a rect of the paint device.
+   For each pixel of this rect the intensity is mapped
+   into a color.
+
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param rect Target rectangle of the image in painter coordinates
+
+   \return A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending
+           on the color map.
+
+   \sa QwtRasterData::intensity(), QwtColorMap::rgb(),
+       QwtColorMap::colorIndex()
+*/
+QImage QwtPolarSpectrogram::renderImage(
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, const QRect &rect ) const
+{
+    if ( d_data->data == NULL || d_data->colorMap == NULL )
+        return QImage();
+
+    QImage image( rect.size(), d_data->colorMap->format() == QwtColorMap::RGB
+                  ? QImage::Format_ARGB32 : QImage::Format_Indexed8 );
+
+    const QwtInterval intensityRange = d_data->data->interval( Qt::ZAxis );
+    if ( !intensityRange.isValid() )
+        return image;
+
+    if ( d_data->colorMap->format() == QwtColorMap::Indexed )
+        image.setColorTable( d_data->colorMap->colorTable( intensityRange ) );
+
+    /*
+     For the moment we only announce the composition of the image by
+     calling initRaster(), but we don't pass any useful parameters.
+     ( How to map rect into something, that is useful to initialize a matrix
+       of values in polar coordinates ? )
+     */
+    d_data->data->initRaster( QRectF(), QSize() );
+
+
+#if QT_VERSION >= 0x040400 && !defined(QT_NO_QFUTURE)
+    uint numThreads = renderThreadCount();
+
+    if ( numThreads <= 0 )
+        numThreads = QThread::idealThreadCount();
+
+    if ( numThreads <= 0 )
+        numThreads = 1;
+
+    const int numRows = rect.height() / numThreads;
+
+
+    QVector<TileInfo> tileInfos;
+    for ( uint i = 0; i < numThreads; i++ )
+    {
+        QRect tile( rect.x(), rect.y() + i * numRows, rect.width(), numRows );
+        if ( i == numThreads - 1 )
+            tile.setHeight( rect.height() - i * numRows );
+
+        TileInfo tileInfo;
+        tileInfo.imagePos = rect.topLeft();
+        tileInfo.rect = tile;
+        tileInfo.image = ℑ
+
+        tileInfos += tileInfo;
+    }
+
+    QVector< QFuture<void> > futures;
+    for ( int i = 0; i < tileInfos.size(); i++ )
+    {
+        if ( i == tileInfos.size() - 1 )
+        {
+            renderTile( azimuthMap, radialMap, pole, &tileInfos[i] );
+        }
+        else
+        {
+            futures += QtConcurrent::run( this, &QwtPolarSpectrogram::renderTile,
+                azimuthMap, radialMap, pole, &tileInfos[i] );
+        }
+    }
+    for ( int i = 0; i < futures.size(); i++ )
+        futures[i].waitForFinished();
+
+#else // QT_VERSION < 0x040400
+    renderTile( azimuthMap, radialMap, pole, rect.topLeft(), rect, &image );
+#endif
+
+    d_data->data->discardRaster();
+
+    return image;
+}
+
+void QwtPolarSpectrogram::renderTile(
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, TileInfo *tileInfo ) const
+{
+    renderTile( azimuthMap, radialMap, pole,
+        tileInfo->imagePos, tileInfo->rect, tileInfo->image );
+}
+
+/*!
+  \brief Render a sub-rectangle of an image 
+
+  renderTile() is called by renderImage() to render different parts
+  of the image by concurrent threads.
+
+  \param azimuthMap Maps azimuth values to values related to 0.0, M_2PI
+  \param radialMap Maps radius values into painter coordinates.
+  \param pole Position of the pole in painter coordinates
+  \param imagePos Top/left position of the image in painter coordinates
+  \param tile Sub-rectangle of the tile in painter coordinates
+  \param image Image to be rendered
+
+   \sa setRenderThreadCount()
+   \note renderTile needs to be reentrant
+*/
+void QwtPolarSpectrogram::renderTile(
+    const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+    const QPointF &pole, const QPoint &imagePos,
+    const QRect &tile, QImage *image ) const
+{
+    const QwtInterval intensityRange = d_data->data->interval( Qt::ZAxis );
+    if ( !intensityRange.isValid() )
+        return;
+
+    const bool doFastAtan = testPaintAttribute( ApproximatedAtan );
+
+    const int y0 = imagePos.y();
+    const int y1 = tile.top();
+    const int y2 = tile.bottom();
+
+    const int x0 = imagePos.x();
+    const int x1 = tile.left();
+    const int x2 = tile.right();
+
+    if ( d_data->colorMap->format() == QwtColorMap::RGB )
+    {
+        for ( int y = y1; y <= y2; y++ )
+        {
+            const double dy = pole.y() - y;
+            const double dy2 = qwtSqr( dy );
+
+            QRgb *line = reinterpret_cast<QRgb *>( image->scanLine( y - y0 ) );
+            line += x1 - x0;
+
+            for ( int x = x1; x <= x2; x++ )
+            {
+                const double dx = x - pole.x();
+
+                double a =  doFastAtan ? qwtFastAtan2( dy, dx ) : qAtan2( dy, dx );
+                if ( a < 0.0 )
+                    a += 2 * M_PI;
+                if ( a < azimuthMap.p1() )
+                    a += 2 * M_PI;
+
+                const double r = qSqrt( qwtSqr( dx ) + dy2 );
+
+                const double azimuth = azimuthMap.invTransform( a );
+                const double radius = radialMap.invTransform( r );
+
+                const double value = d_data->data->value( azimuth, radius );
+                *line++ = d_data->colorMap->rgb( intensityRange, value );
+            }
+        }
+    }
+    else if ( d_data->colorMap->format() == QwtColorMap::Indexed )
+    {
+        for ( int y = y1; y <= y2; y++ )
+        {
+            const double dy = pole.y() - y;
+            const double dy2 = qwtSqr( dy );
+
+            unsigned char *line = image->scanLine( y - y0 );
+            line += x1 - x0;
+            for ( int x = x1; x <= x2; x++ )
+            {
+                const double dx = x - pole.x();
+
+                double a =  doFastAtan ? qwtFastAtan2( dy, dx ) : qAtan2( dy, dx );
+                if ( a < 0.0 )
+                    a += 2 * M_PI;
+                if ( a < azimuthMap.p1() )
+                    a += 2 * M_PI;
+
+                const double r = qSqrt( qwtSqr( dx ) + dy2 );
+
+                const double azimuth = azimuthMap.invTransform( a );
+                const double radius = radialMap.invTransform( r );
+
+                const double value = d_data->data->value( azimuth, radius );
+                *line++ = d_data->colorMap->colorIndex( intensityRange, value );
+            }
+        }
+    }
+}
+
+/*!
+   Interval, that is necessary to display the item
+   This interval can be useful for operations like clipping or autoscaling
+
+   \param scaleId Scale index
+   \return bounding interval ( == position )
+
+   \sa position()
+*/
+QwtInterval QwtPolarSpectrogram::boundingInterval( int scaleId ) const
+{
+    if ( scaleId == QwtPolar::ScaleRadius )
+        return d_data->data->interval( Qt::YAxis );
+
+    return QwtPolarItem::boundingInterval( scaleId );
+}
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.h
new file mode 100644
index 0000000..4bbf8f2
--- /dev/null
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_spectrogram.h
@@ -0,0 +1,92 @@
+/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
+ * QwtPolar Widget Library
+ * Copyright (C) 2008   Uwe Rathmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the Qwt License, Version 1.0
+ *****************************************************************************/
+
+#ifndef QWT_POLAR_SPECTROGRAM_H
+#define QWT_POLAR_SPECTROGRAM_H
+
+#include "qwt_polar_global.h"
+#include "qwt_polar_item.h"
+#include <qimage.h>
+
+class QwtRasterData;
+class QwtColorMap;
+
+/*!
+  \brief An item, which displays a spectrogram
+
+  A spectrogram displays threedimenional data, where the 3rd dimension
+  ( the intensity ) is displayed using colors. The colors are calculated
+  from the values using a color map.
+
+  \sa QwtRasterData, QwtColorMap
+*/
+class QWT_POLAR_EXPORT QwtPolarSpectrogram: public QwtPolarItem
+{
+public:
+    /*!
+        Attributes to modify the drawing algorithm.
+        The default setting disables ApproximatedAtan
+
+        \sa setPaintAttribute(), testPaintAttribute()
+    */
+    enum PaintAttribute
+    {
+        /*!
+           Use qwtFastAtan2 instead of atan2 for translating
+           widget into polar coordinates.
+         */
+
+        ApproximatedAtan = 0x01
+    };
+
+    //! Paint attributes
+    typedef QFlags<PaintAttribute> PaintAttributes;
+
+    explicit QwtPolarSpectrogram();
+    virtual ~QwtPolarSpectrogram();
+
+    void setData( QwtRasterData *data );
+    const QwtRasterData *data() const;
+
+    void setColorMap( QwtColorMap * );
+    const QwtColorMap *colorMap() const;
+
+    void setPaintAttribute( PaintAttribute, bool on = true );
+    bool testPaintAttribute( PaintAttribute ) const;
+
+    virtual int rtti() const;
+
+    virtual void draw( QPainter *painter,
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, double radius,
+        const QRectF &canvasRect ) const;
+
+    virtual QwtInterval boundingInterval( int scaleId ) const;
+
+protected:
+    virtual QImage renderImage(
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, const QRect &rect ) const;
+
+    virtual void renderTile(
+        const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
+        const QPointF &pole, const QPoint &imagePos,
+        const QRect &tile, QImage *image ) const;
+
+private:
+    class TileInfo;
+    void renderTile( const QwtScaleMap &, const QwtScaleMap &,
+        const QPointF &pole, TileInfo * ) const;
+
+    class PrivateData;
+    PrivateData *d_data;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarSpectrogram::PaintAttributes )
+
+#endif
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 29fad44..1882ecd 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -262,15 +262,26 @@ static void dumpBacktrace( unsigned int depth )
   SYMBOL_INFO *symbol = ( SYMBOL_INFO * ) qgsMalloc( sizeof( SYMBOL_INFO ) + 256 );
   symbol->MaxNameLen = 255;
   symbol->SizeOfStruct = sizeof( SYMBOL_INFO );
+  IMAGEHLP_LINE *line = ( IMAGEHLP_LINE * ) qgsMalloc( sizeof( IMAGEHLP_LINE ) );
+  line->SizeOfStruct = sizeof( IMAGEHLP_LINE );
 
   for ( int i = 0; i < nFrames; i++ )
   {
+    DWORD dwDisplacement;
     SymFromAddr( GetCurrentProcess(), ( DWORD64 )( buffer[ i ] ), 0, symbol );
     symbol->Name[ 255 ] = 0;
-    myPrint( "%d: %s [%x]\n", i, symbol->Name, symbol->Address );
+    if ( SymGetLineFromAddr( GetCurrentProcess(), ( DWORD64 )( buffer[i] ), &dwDisplacement, line ) )
+    {
+      myPrint( "%s(%d) : (%s) frame %d, address %x\n", line->FileName, line->LineNumber, symbol->Name, i, symbol->Address );
+    }
+    else
+    {
+      myPrint( "%s(%d) : (%s) unknown source location, frame %d, address %x [GetLastError()=%d]\n", __FILE__, __LINE__, symbol->Name, i, symbol->Address, GetLastError() );
+    }
   }
 
   qgsFree( symbol );
+  qgsFree( line );
 #else
   Q_UNUSED( depth );
 #endif
diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp
index 47a1b49..8059bbc 100644
--- a/src/app/qgisapp.cpp
+++ b/src/app/qgisapp.cpp
@@ -79,7 +79,6 @@
 #include <QNetworkReply>
 #include <QNetworkProxy>
 #include <QAuthenticator>
-#include <QNetworkDiskCache>
 
 //
 // Mac OS X Includes
@@ -398,7 +397,7 @@ static void setTitleBarText_( QWidget & qgisApp )
 */
 static QgsMessageOutput *messageOutputViewer_()
 {
-  if ( QThread::currentThread() == QApplication::instance()->thread() )
+  if ( QThread::currentThread() == qApp->thread() )
     return new QgsMessageViewer( QgisApp::instance() );
   else
     return new QgsMessageOutputConsole();
@@ -3081,8 +3080,18 @@ void QgisApp::about()
     QString versionString = "<html><body><div align='center'><table width='100%'>";
 
     versionString += "<tr>";
-    versionString += "<td>" + tr( "QGIS version" )       + "</td><td>" + QGis::QGIS_VERSION + "</td>";
-    versionString += "<td>" + tr( "QGIS code revision" ) + QString( "</td><td><a href=\"https://github.com/qgis/QGIS/commit/%1\">%1</a></td>" ).arg( QGis::QGIS_DEV_VERSION );
+    versionString += "<td>" + tr( "QGIS version" )       + "</td><td>" + QGis::QGIS_VERSION + "</td><td>";
+
+
+    if ( QString( QGis::QGIS_DEV_VERSION ) == "exported" )
+    {
+      versionString += tr( "QGIS code branch" ) + QString( "</td><td><a href=\"https://github.com/qgis/QGIS/tree/release-%1_%2\">Release %1.%2</a></td>" )
+                       .arg( QGis::QGIS_VERSION_INT / 10000 ).arg( QGis::QGIS_VERSION_INT / 100 % 100 );
+    }
+    else
+    {
+      versionString += tr( "QGIS code revision" ) + QString( "</td><td><a href=\"https://github.com/qgis/QGIS/commit/%1\">%1</a></td>" ).arg( QGis::QGIS_DEV_VERSION );
+    }
 
     versionString += "</tr><tr>";
 
@@ -7025,37 +7034,38 @@ QgsVectorLayer *QgisApp::pasteToNewMemoryVector()
 
   QString typeName = QString( QGis::featureType( wkbType ) ).remove( "WKB" );
 
-  typeName += QString( "?memoryid=%1" ).arg( QUuid::createUuid().toString() );
-
-  QgsDebugMsg( QString( "output wkbType = %1 typeName = %2" ).arg( wkbType ).arg( typeName ) );
-
-  QString message;
-
   if ( features.isEmpty() )
   {
-    message = tr( "No features in clipboard." ); // should not happen
+    // should not happen
+    messageBar()->pushMessage( tr( "Paste features" ),
+                               tr( "No features in clipboard." ),
+                               QgsMessageBar::WARNING, messageTimeout() );
+    return nullptr;
   }
   else if ( typeCounts.isEmpty() )
   {
-    message = tr( "No features with geometry found, point type layer will be created." );
+    messageBar()->pushMessage( tr( "Paste features" ),
+                               tr( "No features with geometry found, point type layer will be created." ),
+                               QgsMessageBar::INFO, messageTimeout() );
   }
   else if ( typeCounts.size() > 1 )
   {
-    message = tr( "Multiple geometry types found, features with geometry different from %1 will be created without geometry." ).arg( typeName );
+    messageBar()->pushMessage( tr( "Paste features" ),
+                               tr( "Multiple geometry types found, features with geometry different from %1 will be created without geometry." ).arg( typeName ),
+                               QgsMessageBar::INFO, messageTimeout() );
   }
 
-  if ( !message.isEmpty() )
-  {
-    QMessageBox::warning( this, tr( "Warning" ), message, QMessageBox::Ok );
-    return nullptr;
-  }
+  typeName += QString( "?memoryid=%1" ).arg( QUuid::createUuid().toString() );
+  QgsDebugMsg( QString( "output wkbType = %1 typeName = %2" ).arg( wkbType ).arg( typeName ) );
 
   QgsVectorLayer *layer = new QgsVectorLayer( typeName, "pasted_features", "memory" );
 
   if ( !layer->isValid() || !layer->dataProvider() )
   {
     delete layer;
-    QMessageBox::warning( this, tr( "Warning" ), tr( "Cannot create new layer" ), QMessageBox::Ok );
+    messageBar()->pushMessage( tr( "Paste features" ),
+                               tr( "Cannot create new layer." ),
+                               QgsMessageBar::WARNING, messageTimeout() );
     return nullptr;
   }
 
@@ -7067,9 +7077,9 @@ QgsVectorLayer *QgisApp::pasteToNewMemoryVector()
     QgsDebugMsg( QString( "field %1 (%2)" ).arg( f.name(), QVariant::typeToName( f.type() ) ) );
     if ( !layer->addAttribute( f ) )
     {
-      QMessageBox::warning( this, tr( "Warning" ),
-                            tr( "Cannot create field %1 (%2,%3)" ).arg( f.name(), f.typeName(), QVariant::typeToName( f.type() ) ),
-                            QMessageBox::Ok );
+      messageBar()->pushMessage( tr( "Paste features" ),
+                                 tr( "Cannot create field %1 (%2,%3)" ).arg( f.name(), f.typeName(), QVariant::typeToName( f.type() ) ),
+                                 QgsMessageBar::WARNING, messageTimeout() );
       delete layer;
       return nullptr;
     }
@@ -10867,6 +10877,8 @@ void QgisApp::namSetup()
 
 void QgisApp::namAuthenticationRequired( QNetworkReply *reply, QAuthenticator *auth )
 {
+  Q_ASSERT( qApp->thread() == QThread::currentThread() );
+
   QString username = auth->user();
   QString password = auth->password();
 
@@ -10885,31 +10897,38 @@ void QgisApp::namAuthenticationRequired( QNetworkReply *reply, QAuthenticator *a
     }
   }
 
+  for ( ;; )
   {
-    QMutexLocker lock( QgsCredentials::instance()->mutex() );
+    bool ok;
 
-    for ( ;; )
     {
-      bool ok = QgsCredentials::instance()->get(
-                  QString( "%1 at %2" ).arg( auth->realm(), reply->url().host() ),
-                  username, password,
-                  tr( "Authentication required" ) );
-      if ( !ok )
-        return;
+      QMutexLocker lock( QgsCredentials::instance()->mutex() );
+      ok = QgsCredentials::instance()->get(
+             QString( "%1 at %2" ).arg( auth->realm(), reply->url().host() ),
+             username, password,
+             tr( "Authentication required" ) );
+    }
+    if ( !ok )
+      return;
 
-      if ( reply->isFinished() )
-        return;
+    if ( reply->isFinished() )
+      return;
 
-      if ( auth->user() != username || ( password != auth->password() && !password.isNull() ) )
-        break;
+    if ( auth->user() != username || ( password != auth->password() && !password.isNull() ) )
+      break;
 
-      // credentials didn't change - stored ones probably wrong? clear password and retry
+    // credentials didn't change - stored ones probably wrong? clear password and retry
+    {
+      QMutexLocker lock( QgsCredentials::instance()->mutex() );
       QgsCredentials::instance()->put(
         QString( "%1 at %2" ).arg( auth->realm(), reply->url().host() ),
         username, QString::null );
     }
+  }
 
-    // save credentials
+  // save credentials
+  {
+    QMutexLocker lock( QgsCredentials::instance()->mutex() );
     QgsCredentials::instance()->put(
       QString( "%1 at %2" ).arg( auth->realm(), reply->url().host() ),
       username, password
@@ -10933,27 +10952,34 @@ void QgisApp::namProxyAuthenticationRequired( const QNetworkProxy &proxy, QAuthe
   QString username = auth->user();
   QString password = auth->password();
 
+  for ( ;; )
   {
-    QMutexLocker lock( QgsCredentials::instance()->mutex() );
+    bool ok;
 
-    for ( ;; )
     {
-      bool ok = QgsCredentials::instance()->get(
-                  QString( "proxy %1:%2 [%3]" ).arg( proxy.hostName() ).arg( proxy.port() ).arg( auth->realm() ),
-                  username, password,
-                  tr( "Proxy authentication required" ) );
-      if ( !ok )
-        return;
+      QMutexLocker lock( QgsCredentials::instance()->mutex() );
+      ok = QgsCredentials::instance()->get(
+             QString( "proxy %1:%2 [%3]" ).arg( proxy.hostName() ).arg( proxy.port() ).arg( auth->realm() ),
+             username, password,
+             tr( "Proxy authentication required" ) );
+    }
+    if ( !ok )
+      return;
 
-      if ( auth->user() != username || ( password != auth->password() && !password.isNull() ) )
-        break;
+    if ( auth->user() != username || ( password != auth->password() && !password.isNull() ) )
+      break;
 
-      // credentials didn't change - stored ones probably wrong? clear password and retry
+    // credentials didn't change - stored ones probably wrong? clear password and retry
+    {
+      QMutexLocker lock( QgsCredentials::instance()->mutex() );
       QgsCredentials::instance()->put(
         QString( "proxy %1:%2 [%3]" ).arg( proxy.hostName() ).arg( proxy.port() ).arg( auth->realm() ),
         username, QString::null );
     }
+  }
 
+  {
+    QMutexLocker lock( QgsCredentials::instance()->mutex() );
     QgsCredentials::instance()->put(
       QString( "proxy %1:%2 [%3]" ).arg( proxy.hostName() ).arg( proxy.port() ).arg( auth->realm() ),
       username, password
@@ -11042,7 +11068,7 @@ void QgisApp::namSslErrors( QNetworkReply *reply, const QList<QSslError> &errors
     {
       QgsDebugMsg( "Restarting network reply timeout" );
       timer->setSingleShot( true );
-      timer->start( s.value( "/qgis/networkAndProxy/networkTimeout", "20000" ).toInt() );
+      timer->start( s.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt() );
     }
   }
 }
diff --git a/src/app/qgsconfigureshortcutsdialog.cpp b/src/app/qgsconfigureshortcutsdialog.cpp
index 7e37e7e..9903b62 100644
--- a/src/app/qgsconfigureshortcutsdialog.cpp
+++ b/src/app/qgsconfigureshortcutsdialog.cpp
@@ -224,7 +224,8 @@ void QgsConfigureShortcutsDialog::loadShortcuts()
     actionName = child.attribute( "name" );
     actionShortcut = child.attribute( "shortcut" );
     action = QgsShortcutsManager::instance()->actionByName( actionName );
-    QgsShortcutsManager::instance()->setActionShortcut( action, actionShortcut );
+    if ( action )
+      QgsShortcutsManager::instance()->setActionShortcut( action, actionShortcut );
     child = child.nextSiblingElement();
   }
 
diff --git a/src/app/qgsdiagramproperties.cpp b/src/app/qgsdiagramproperties.cpp
index 2b9716d..0064e89 100644
--- a/src/app/qgsdiagramproperties.cpp
+++ b/src/app/qgsdiagramproperties.cpp
@@ -826,7 +826,7 @@ void QgsDiagramProperties::showAddAttributeExpressionDialog()
       newItem->setText( 0, expression );
       newItem->setText( 2, expression );
       newItem->setData( 0, Qt::UserRole, expression );
-      newItem->setFlags( newItem->flags() & ~Qt::ItemIsDropEnabled );
+      newItem->setFlags(( newItem->flags() | Qt::ItemIsEditable ) & ~Qt::ItemIsDropEnabled );
 
       //set initial color for diagram category
       int red = 1 + ( int )( 255.0 * qrand() / ( RAND_MAX + 1.0 ) );
diff --git a/src/app/qgslabelinggui.cpp b/src/app/qgslabelinggui.cpp
index 4025192..8321f73 100644
--- a/src/app/qgslabelinggui.cpp
+++ b/src/app/qgslabelinggui.cpp
@@ -1716,6 +1716,7 @@ void QgsLabelingGui::updateSvgWidgets( const QString& svgPath )
 void QgsLabelingGui::on_mShapeSVGSelectorBtn_clicked()
 {
   QgsSvgSelectorDialog svgDlg( this );
+  svgDlg.setWindowTitle( tr( "Select SVG file" ) );
   svgDlg.svgSelector()->setSvgPath( mShapeSVGPathLineEdit->text().trimmed() );
 
   if ( svgDlg.exec() == QDialog::Accepted )
diff --git a/src/app/qgspluginregistry.cpp b/src/app/qgspluginregistry.cpp
index 9b13c01..c8bdd91 100644
--- a/src/app/qgspluginregistry.cpp
+++ b/src/app/qgspluginregistry.cpp
@@ -292,6 +292,8 @@ void QgsPluginRegistry::loadPythonPlugin( const QString& packageName )
     // add to settings
     settings.setValue( "/PythonPlugins/" + packageName, true );
     QgsMessageLog::logMessage( QObject::tr( "Loaded %1 (package: %2)" ).arg( pluginName, packageName ), QObject::tr( "Plugins" ), QgsMessageLog::INFO );
+
+    settings.remove( "/PythonPlugins/watchDog/" + packageName );
   }
 }
 
@@ -370,6 +372,8 @@ void QgsPluginRegistry::loadCppPlugin( const QString& theFullPathName )
               QgsDebugMsg( QString( "plugin parent already set" ) );
             }
           }
+
+          settings.remove( "/Plugins/watchDog/" + baseName );
         }
         else
         {
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index e9b4194..ac5b91c 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -149,6 +149,7 @@ SET(QGIS_CORE_SRCS
   qgsmimedatautils.cpp
   qgsmultirenderchecker.cpp
   qgsnetworkaccessmanager.cpp
+  qgsnetworkdiskcache.cpp
   qgsnetworkcontentfetcher.cpp
   qgsnetworkreplyparser.cpp
   qgsobjectcustomproperties.cpp
@@ -451,6 +452,7 @@ SET(QGIS_CORE_MOC_HDRS
   qgsmessagelog.h
   qgsmessageoutput.h
   qgsnetworkaccessmanager.h
+  qgsnetworkdiskcache.h
   qgsnetworkcontentfetcher.h
   qgsnetworkreplyparser.h
   qgsofflineediting.h
diff --git a/src/core/composer/qgscomposermapgrid.cpp b/src/core/composer/qgscomposermapgrid.cpp
index 2ebf6ad..9f89f73 100644
--- a/src/core/composer/qgscomposermapgrid.cpp
+++ b/src/core/composer/qgscomposermapgrid.cpp
@@ -1773,6 +1773,7 @@ int QgsComposerMapGrid::xGridLinesCRSTransform( const QgsRectangle& bbox, const
       }
       catch ( QgsCsException & cse )
       {
+        Q_UNUSED( cse );
         QgsDebugMsg( QString( "Caught CRS exception %1" ).arg( cse.what() ) );
       }
 
@@ -1848,6 +1849,7 @@ int QgsComposerMapGrid::yGridLinesCRSTransform( const QgsRectangle& bbox, const
       }
       catch ( QgsCsException & cse )
       {
+        Q_UNUSED( cse );
         QgsDebugMsg( QString( "Caught CRS exception %1" ).arg( cse.what() ) );
       }
 
@@ -2406,6 +2408,7 @@ int QgsComposerMapGrid::crsGridParams( QgsRectangle& crsRect, QgsCoordinateTrans
   }
   catch ( QgsCsException & cse )
   {
+    Q_UNUSED( cse );
     QgsDebugMsg( QString( "Caught CRS exception %1" ).arg( cse.what() ) );
     return 1;
   }
diff --git a/src/core/composer/qgscomposerpicture.cpp b/src/core/composer/qgscomposerpicture.cpp
index 4551845..3745ac8 100644
--- a/src/core/composer/qgscomposerpicture.cpp
+++ b/src/core/composer/qgscomposerpicture.cpp
@@ -26,6 +26,8 @@
 #include "qgsmessagelog.h"
 #include "qgsdatadefined.h"
 #include "qgsnetworkcontentfetcher.h"
+#include "qgssymbollayerv2utils.h"
+#include "qgssvgcache.h"
 #include <QDomDocument>
 #include <QDomElement>
 #include <QFileInfo>
@@ -44,19 +46,28 @@ QgsComposerPicture::QgsComposerPicture( QgsComposition *composition )
     , mRotationMap( nullptr )
     , mResizeMode( QgsComposerPicture::Zoom )
     , mPictureAnchor( UpperLeft )
+    , mSvgFillColor( QColor( 255, 255, 255 ) )
+    , mSvgBorderColor( QColor( 0, 0, 0 ) )
+    , mSvgBorderWidth( 0.2 )
     , mHasExpressionError( false )
+    , mLoadingSvg( false )
 {
   mPictureWidth = rect().width();
   init();
 }
 
-QgsComposerPicture::QgsComposerPicture() : QgsComposerItem( nullptr ),
-    mMode( Unknown ),
-    mPictureRotation( 0 ),
-    mRotationMap( nullptr ),
-    mResizeMode( QgsComposerPicture::Zoom ),
-    mPictureAnchor( UpperLeft ),
-    mHasExpressionError( false )
+QgsComposerPicture::QgsComposerPicture()
+    : QgsComposerItem( nullptr )
+    , mMode( Unknown )
+    , mPictureRotation( 0 )
+    , mRotationMap( nullptr )
+    , mResizeMode( QgsComposerPicture::Zoom )
+    , mPictureAnchor( UpperLeft )
+    , mSvgFillColor( QColor( 255, 255, 255 ) )
+    , mSvgBorderColor( QColor( 0, 0, 0 ) )
+    , mSvgBorderWidth( 0.2 )
+    , mHasExpressionError( false )
+    , mLoadingSvg( false )
 {
   mPictureHeight = rect().height();
   init();
@@ -371,7 +382,9 @@ void QgsComposerPicture::loadLocalPicture( const QString &path )
     if ( sourceFileSuffix.compare( "svg", Qt::CaseInsensitive ) == 0 )
     {
       //try to open svg
-      mSVG.load( pic.fileName() );
+      const QByteArray &svgContent = QgsSvgCache::instance()->svgContent( pic.fileName(), rect().width(), mSvgFillColor, mSvgBorderColor, mSvgBorderWidth,
+                                     1.0, 1.0 );
+      mSVG.load( svgContent );
       if ( mSVG.isValid() )
       {
         mMode = SVG;
@@ -512,7 +525,6 @@ QRectF QgsComposerPicture::boundedSVGRect( double deviceWidth, double deviceHeig
 
 void QgsComposerPicture::setSceneRect( const QRectF& rectangle )
 {
-
   QSizeF currentPictureSize = pictureSize();
 
   if ( mResizeMode == QgsComposerPicture::Clip )
@@ -520,63 +532,71 @@ void QgsComposerPicture::setSceneRect( const QRectF& rectangle )
     QgsComposerItem::setSceneRect( rectangle );
     mPictureWidth = rectangle.width();
     mPictureHeight = rectangle.height();
-    return;
   }
-
-  QRectF newRect = rectangle;
-
-  if ( mResizeMode == ZoomResizeFrame && !rect().isEmpty() && !( currentPictureSize.isEmpty() ) )
+  else
   {
-    QSizeF targetImageSize;
-    if ( qgsDoubleNear( mPictureRotation, 0.0 ) )
+    QRectF newRect = rectangle;
+
+    if ( mResizeMode == ZoomResizeFrame && !rect().isEmpty() && !( currentPictureSize.isEmpty() ) )
     {
-      targetImageSize = currentPictureSize;
+      QSizeF targetImageSize;
+      if ( qgsDoubleNear( mPictureRotation, 0.0 ) )
+      {
+        targetImageSize = currentPictureSize;
+      }
+      else
+      {
+        //calculate aspect ratio of bounds of rotated image
+        QTransform tr;
+        tr.rotate( mPictureRotation );
+        QRectF rotatedBounds = tr.mapRect( QRectF( 0, 0, currentPictureSize.width(), currentPictureSize.height() ) );
+        targetImageSize = QSizeF( rotatedBounds.width(), rotatedBounds.height() );
+      }
+
+      //if height has changed more than width, then fix width and set height correspondingly
+      //else, do the opposite
+      if ( qAbs( rect().width() - rectangle.width() ) <
+           qAbs( rect().height() - rectangle.height() ) )
+      {
+        newRect.setHeight( targetImageSize.height() * newRect.width() / targetImageSize.width() );
+      }
+      else
+      {
+        newRect.setWidth( targetImageSize.width() * newRect.height() / targetImageSize.height() );
+      }
     }
-    else
+    else if ( mResizeMode == FrameToImageSize )
     {
-      //calculate aspect ratio of bounds of rotated image
-      QTransform tr;
-      tr.rotate( mPictureRotation );
-      QRectF rotatedBounds = tr.mapRect( QRectF( 0, 0, currentPictureSize.width(), currentPictureSize.height() ) );
-      targetImageSize = QSizeF( rotatedBounds.width(), rotatedBounds.height() );
+      if ( !( currentPictureSize.isEmpty() ) )
+      {
+        newRect.setWidth( currentPictureSize.width() * 25.4 / mComposition->printResolution() );
+        newRect.setHeight( currentPictureSize.height() * 25.4 / mComposition->printResolution() );
+      }
     }
 
-    //if height has changed more than width, then fix width and set height correspondingly
-    //else, do the opposite
-    if ( qAbs( rect().width() - rectangle.width() ) <
-         qAbs( rect().height() - rectangle.height() ) )
+    //find largest scaling of picture with this rotation which fits in item
+    if ( mResizeMode == Zoom || mResizeMode == ZoomResizeFrame )
     {
-      newRect.setHeight( targetImageSize.height() * newRect.width() / targetImageSize.width() );
+      QRectF rotatedImageRect = QgsComposerUtils::largestRotatedRectWithinBounds( QRectF( 0, 0, currentPictureSize.width(), currentPictureSize.height() ), newRect, mPictureRotation );
+      mPictureWidth = rotatedImageRect.width();
+      mPictureHeight = rotatedImageRect.height();
     }
     else
     {
-      newRect.setWidth( targetImageSize.width() * newRect.height() / targetImageSize.height() );
+      mPictureWidth = newRect.width();
+      mPictureHeight = newRect.height();
     }
-  }
-  else if ( mResizeMode == FrameToImageSize )
-  {
-    if ( !( currentPictureSize.isEmpty() ) )
-    {
-      newRect.setWidth( currentPictureSize.width() * 25.4 / mComposition->printResolution() );
-      newRect.setHeight( currentPictureSize.height() * 25.4 / mComposition->printResolution() );
-    }
-  }
 
-  //find largest scaling of picture with this rotation which fits in item
-  if ( mResizeMode == Zoom || mResizeMode == ZoomResizeFrame )
-  {
-    QRectF rotatedImageRect = QgsComposerUtils::largestRotatedRectWithinBounds( QRectF( 0, 0, currentPictureSize.width(), currentPictureSize.height() ), newRect, mPictureRotation );
-    mPictureWidth = rotatedImageRect.width();
-    mPictureHeight = rotatedImageRect.height();
+    QgsComposerItem::setSceneRect( newRect );
+    emit itemChanged();
   }
-  else
+
+  if ( mMode == SVG && !mLoadingSvg )
   {
-    mPictureWidth = newRect.width();
-    mPictureHeight = newRect.height();
+    mLoadingSvg = true;
+    refreshPicture();
+    mLoadingSvg = false;
   }
-
-  QgsComposerItem::setSceneRect( newRect );
-  emit itemChanged();
 }
 
 void QgsComposerPicture::setRotation( double r )
@@ -727,6 +747,9 @@ bool QgsComposerPicture::writeXML( QDomElement& elem, QDomDocument & doc ) const
   composerPictureElem.setAttribute( "pictureHeight", QString::number( mPictureHeight ) );
   composerPictureElem.setAttribute( "resizeMode", QString::number( static_cast< int >( mResizeMode ) ) );
   composerPictureElem.setAttribute( "anchorPoint", QString::number( static_cast< int >( mPictureAnchor ) ) );
+  composerPictureElem.setAttribute( "svgFillColor", QgsSymbolLayerV2Utils::encodeColor( mSvgFillColor ) );
+  composerPictureElem.setAttribute( "svgBorderColor", QgsSymbolLayerV2Utils::encodeColor( mSvgBorderColor ) );
+  composerPictureElem.setAttribute( "svgBorderWidth", QString::number( mSvgBorderWidth ) );
 
   //rotation
   composerPictureElem.setAttribute( "pictureRotation", QString::number( mPictureRotation ) );
@@ -757,6 +780,10 @@ bool QgsComposerPicture::readXML( const QDomElement& itemElem, const QDomDocumen
   //when loading from xml, default to anchor point of middle to match pre 2.4 behaviour
   mPictureAnchor = static_cast< QgsComposerItem::ItemPositionMode >( itemElem.attribute( "anchorPoint", QString::number( QgsComposerItem::Middle ) ).toInt() );
 
+  mSvgFillColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "svgFillColor", QgsSymbolLayerV2Utils::encodeColor( QColor( 255, 255, 255 ) ) ) );
+  mSvgBorderColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "svgBorderColor", QgsSymbolLayerV2Utils::encodeColor( QColor( 0, 0, 0 ) ) ) );
+  mSvgBorderWidth = itemElem.attribute( "svgBorderWidth", "0.2" ).toDouble();
+
   QDomNodeList composerItemList = itemElem.elementsByTagName( "ComposerItem" );
   if ( !composerItemList.isEmpty() )
   {
@@ -840,6 +867,24 @@ void QgsComposerPicture::setPictureAnchor( QgsComposerItem::ItemPositionMode anc
   update();
 }
 
+void QgsComposerPicture::setSvgFillColor( const QColor& color )
+{
+  mSvgFillColor = color;
+  refreshPicture();
+}
+
+void QgsComposerPicture::setSvgBorderColor( const QColor& color )
+{
+  mSvgBorderColor = color;
+  refreshPicture();
+}
+
+void QgsComposerPicture::setSvgBorderWidth( double width )
+{
+  mSvgBorderWidth = width;
+  refreshPicture();
+}
+
 bool QgsComposerPicture::usePictureExpression() const
 {
   return dataDefinedProperty( QgsComposerObject::PictureSource )->isActive();
diff --git a/src/core/composer/qgscomposerpicture.h b/src/core/composer/qgscomposerpicture.h
index 71cc00c..1829e4f 100644
--- a/src/core/composer/qgscomposerpicture.h
+++ b/src/core/composer/qgscomposerpicture.h
@@ -179,6 +179,57 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
      */
     ItemPositionMode pictureAnchor() const { return mPictureAnchor; }
 
+    /** Returns the fill color used for parameterized SVG files.
+     * @see setSvgFillColor()
+     * @see svgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    QColor svgFillColor() const { return mSvgFillColor; }
+
+    /** Sets the fill color used for parameterized SVG files.
+     * @param color fill color.
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgFillColor()
+     * @see setSvgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgFillColor( const QColor& color );
+
+    /** Returns the border color used for parameterized SVG files.
+     * @see setSvgBorderColor()
+     * @see svgFillColor()
+     * @note added in QGIS 2.14.1
+     */
+    QColor svgBorderColor() const { return mSvgBorderColor; }
+
+    /** Sets the border color used for parameterized SVG files.
+     * @param color border color.
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgBorderlColor()
+     * @see setSvgFillColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgBorderColor( const QColor& color );
+
+    /** Returns the border width (in mm) used for parameterized SVG files.
+     * @see setSvgBorderWidth()
+     * @see svgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    double svgBorderWidth() const { return mSvgBorderWidth; }
+
+    /** Sets the border width used for parameterized SVG files.
+     * @param width border width in mm
+     * @note this setting only has an effect on parameterized SVG files, and is ignored for
+     * non-parameterized SVG files.
+     * @see svgBorderWidth()
+     * @see setSvgBorderColor()
+     * @note added in QGIS 2.14.1
+     */
+    void setSvgBorderWidth( double width );
+
     /** Returns whether the picture item is using an expression for the image source.
      * @returns true if the picture is using an expression for the source, false if
      * it is using a single static file path for the source.
@@ -323,8 +374,13 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
     ResizeMode mResizeMode;
     QgsComposerItem::ItemPositionMode mPictureAnchor;
 
+    QColor mSvgFillColor;
+    QColor mSvgBorderColor;
+    double mSvgBorderWidth;
+
     bool mHasExpressionError;
     bool mLoaded;
+    bool mLoadingSvg;
 
     /** Loads an image file into the picture item and redraws the item*/
     void loadPicture( const QString &path );
diff --git a/src/core/geometry/qgsgeometrycollectionv2.cpp b/src/core/geometry/qgsgeometrycollectionv2.cpp
index 1f58626..2cec10c 100644
--- a/src/core/geometry/qgsgeometrycollectionv2.cpp
+++ b/src/core/geometry/qgsgeometrycollectionv2.cpp
@@ -374,6 +374,10 @@ bool QgsGeometryCollectionV2::nextVertex( QgsVertexId& id, QgsPointV2& vertex )
     id.ring = -1;
     id.vertex = -1;
   }
+  if ( mGeometries.isEmpty() )
+  {
+    return false;
+  }
 
   QgsAbstractGeometryV2* geom = mGeometries.at( id.part );
   if ( geom->nextVertex( id, vertex ) )
diff --git a/src/core/geometry/qgsgeometryfactory.cpp b/src/core/geometry/qgsgeometryfactory.cpp
index 657dfbc..20ff13c 100644
--- a/src/core/geometry/qgsgeometryfactory.cpp
+++ b/src/core/geometry/qgsgeometryfactory.cpp
@@ -51,6 +51,7 @@ QgsAbstractGeometryV2* QgsGeometryFactory::geomFromWkb( QgsConstWkbPtr wkbPtr )
     }
     catch ( const QgsWkbException &e )
     {
+      Q_UNUSED( e );
       QgsDebugMsg( "WKB exception: " + e.what() );
       delete geom;
       geom = nullptr;
diff --git a/src/core/geometry/qgsgeos.cpp b/src/core/geometry/qgsgeos.cpp
index 568657f..cab0f51 100644
--- a/src/core/geometry/qgsgeos.cpp
+++ b/src/core/geometry/qgsgeos.cpp
@@ -1989,7 +1989,7 @@ GEOSGeometry* QgsGeos::reshapeLine( const GEOSGeometry* line, const GEOSGeometry
       currentGeomOverlapsReshapeLine = true;
 
     //logic to decide if this part belongs to the result
-    if ( nEndpointsSameAsOriginalLine == 1 && nEndpointsOnOriginalLine == 2 && currentGeomOverlapsOriginalGeom )
+    if ( !isRing && nEndpointsSameAsOriginalLine == 1 && nEndpointsOnOriginalLine == 2 && currentGeomOverlapsOriginalGeom )
     {
       resultLineParts.push_back( GEOSGeom_clone_r( geosinit.ctxt, currentGeom ) );
     }
diff --git a/src/core/qgscoordinatereferencesystem.cpp b/src/core/qgscoordinatereferencesystem.cpp
index c424009..6a50078 100644
--- a/src/core/qgscoordinatereferencesystem.cpp
+++ b/src/core/qgscoordinatereferencesystem.cpp
@@ -1657,7 +1657,11 @@ bool QgsCoordinateReferenceSystem::loadIDs( QHash<int, QString> &wkts )
            epsg == 2303 || epsg == 2304 || epsg == 2305 || epsg == 2306 || epsg == 2307 || epsg == 2963 || epsg == 2985 || epsg == 2986 || epsg == 3052 ||
            epsg == 3053 || epsg == 3139 || epsg == 3144 || epsg == 3145 || epsg == 3173 || epsg == 3295 || epsg == 3993 || epsg == 4087 || epsg == 4088 ||
            epsg == 5017 || epsg == 5221 || epsg == 5224 || epsg == 5225 || epsg == 5514 || epsg == 5515 || epsg == 5516 || epsg == 5819 || epsg == 5820 ||
-           epsg == 5821 || epsg == 32600 || epsg == 32663 || epsg == 32700 )
+           epsg == 5821 || epsg == 6200 || epsg == 6201 || epsg == 6202 || epsg == 6244 || epsg == 6245 || epsg == 6246 || epsg == 6247 || epsg == 6248 ||
+           epsg == 6249 || epsg == 6250 || epsg == 6251 || epsg == 6252 || epsg == 6253 || epsg == 6254 || epsg == 6255 || epsg == 6256 || epsg == 6257 ||
+           epsg == 6258 || epsg == 6259 || epsg == 6260 || epsg == 6261 || epsg == 6262 || epsg == 6263 || epsg == 6264 || epsg == 6265 || epsg == 6266 ||
+           epsg == 6267 || epsg == 6268 || epsg == 6269 || epsg == 6270 || epsg == 6271 || epsg == 6272 || epsg == 6273 || epsg == 6274 || epsg == 6275 ||
+           epsg == 32600 || epsg == 32663 || epsg == 32700 )
         continue;
 
       if ( OSRImportFromEPSG( crs, epsg ) != OGRERR_NONE )
diff --git a/src/core/qgsexpression.cpp b/src/core/qgsexpression.cpp
index b31e06e..c83c9eb 100644
--- a/src/core/qgsexpression.cpp
+++ b/src/core/qgsexpression.cpp
@@ -1597,17 +1597,22 @@ static QVariant pointAt( const QVariantList& values, const QgsExpressionContext*
 {
   FEAT_FROM_CONTEXT( context, f );
   int idx = getIntValue( values.at( 0 ), parent );
-  ENSURE_GEOM_TYPE( f, g, QGis::Line );
-  QgsPolyline polyline = g->asPolyline();
-  if ( idx < 0 )
-    idx += polyline.count();
+  const QgsGeometry* g = f.constGeometry();
+  if ( !g || g->isEmpty() )
+    return QVariant();
 
-  if ( idx < 0 || idx >= polyline.count() )
+  if ( idx < 0 )
+  {
+    idx += g->geometry()->nCoordinates();
+  }
+  if ( idx < 0 || idx >= g->geometry()->nCoordinates() )
   {
     parent->setEvalErrorString( QObject::tr( "Index is out of range" ) );
     return QVariant();
   }
-  return QVariant( QPointF( polyline[idx].x(), polyline[idx].y() ) );
+
+  QgsPoint p = g->vertexAt( idx );
+  return QVariant( QPointF( p.x(), p.y() ) );
 }
 
 static QVariant fcnXat( const QVariantList& values, const QgsExpressionContext* f, QgsExpression* parent )
diff --git a/src/core/qgsexpressionlexer.ll b/src/core/qgsexpressionlexer.ll
index 7abb339..6240b40 100644
--- a/src/core/qgsexpressionlexer.ll
+++ b/src/core/qgsexpressionlexer.ll
@@ -106,6 +106,7 @@ col_first    [A-Za-z_]|{non_ascii}
 col_next     [A-Za-z0-9_]|{non_ascii}
 column_ref  {col_first}{col_next}*
 
+deprecated_function "$"[xXyY]_?[aA][tT]
 special_col "$"{column_ref}
 variable "@"{column_ref}
 
@@ -193,6 +194,8 @@ string      "'"{str_char}*"'"
 
 {string}  { TEXT_FILTER(stripText); return STRING; }
 
+{deprecated_function} { TEXT; return FUNCTION; }
+
 {special_col}        { TEXT; return SPECIAL_COL; }
 
 {variable}        { TEXT; return VARIABLE; }
diff --git a/src/core/qgshttptransaction.cpp b/src/core/qgshttptransaction.cpp
index 71180ec..10e4372 100644
--- a/src/core/qgshttptransaction.cpp
+++ b/src/core/qgshttptransaction.cpp
@@ -58,7 +58,7 @@ QgsHttpTransaction::QgsHttpTransaction( const QString& uri,
   Q_UNUSED( userName );
   Q_UNUSED( password );
   QSettings s;
-  mNetworkTimeoutMsec = s.value( "/qgis/networkAndProxy/networkTimeout", "20000" ).toInt();
+  mNetworkTimeoutMsec = s.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt();
 }
 
 QgsHttpTransaction::QgsHttpTransaction()
@@ -69,7 +69,7 @@ QgsHttpTransaction::QgsHttpTransaction()
     , mWatchdogTimer( nullptr )
 {
   QSettings s;
-  mNetworkTimeoutMsec = s.value( "/qgis/networkAndProxy/networkTimeout", "20000" ).toInt();
+  mNetworkTimeoutMsec = s.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt();
 }
 
 QgsHttpTransaction::~QgsHttpTransaction()
diff --git a/src/core/qgsmaprenderer.cpp b/src/core/qgsmaprenderer.cpp
index 3ceed4e..5177579 100644
--- a/src/core/qgsmaprenderer.cpp
+++ b/src/core/qgsmaprenderer.cpp
@@ -694,6 +694,7 @@ void QgsMapRenderer::setDestinationCrs( const QgsCoordinateReferenceSystem& crs,
       }
       catch ( QgsCsException &e )
       {
+        Q_UNUSED( e );
         QgsDebugMsg( QString( "Transform error caught: %1" ).arg( e.what() ) );
       }
     }
diff --git a/src/core/qgsmaprenderercustompainterjob.cpp b/src/core/qgsmaprenderercustompainterjob.cpp
index cc541f3..e71147e 100644
--- a/src/core/qgsmaprenderercustompainterjob.cpp
+++ b/src/core/qgsmaprenderercustompainterjob.cpp
@@ -217,10 +217,12 @@ void QgsMapRendererCustomPainterJob::staticRender( QgsMapRendererCustomPainterJo
   }
   catch ( QgsException & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled QgsException: " + e.what() );
   }
   catch ( std::exception & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled std::exception: " + QString::fromAscii( e.what() ) );
   }
   catch ( ... )
diff --git a/src/core/qgsmaprendererparalleljob.cpp b/src/core/qgsmaprendererparalleljob.cpp
index 0b252b9..ceff20e 100644
--- a/src/core/qgsmaprendererparalleljob.cpp
+++ b/src/core/qgsmaprendererparalleljob.cpp
@@ -237,10 +237,12 @@ void QgsMapRendererParallelJob::renderLayerStatic( LayerRenderJob& job )
   }
   catch ( QgsException & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled QgsException: " + e.what() );
   }
   catch ( std::exception & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled std::exception: " + QString::fromAscii( e.what() ) );
   }
   catch ( ... )
@@ -263,10 +265,12 @@ void QgsMapRendererParallelJob::renderLabelsStatic( QgsMapRendererParallelJob* s
   }
   catch ( QgsException & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled QgsException: " + e.what() );
   }
   catch ( std::exception & e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( "Caught unhandled std::exception: " + QString::fromAscii( e.what() ) );
   }
   catch ( ... )
diff --git a/src/core/qgsmaptopixelgeometrysimplifier.cpp b/src/core/qgsmaptopixelgeometrysimplifier.cpp
index 208df47..215293c 100644
--- a/src/core/qgsmaptopixelgeometrysimplifier.cpp
+++ b/src/core/qgsmaptopixelgeometrysimplifier.cpp
@@ -413,6 +413,7 @@ bool QgsMapToPixelSimplifier::simplifyGeometry( QgsGeometry *geometry, int simpl
   }
   catch ( const QgsWkbException &e )
   {
+    Q_UNUSED( e );
     QgsDebugMsg( QString( "Exception thrown by simplifier: %1" ) .arg( e.what() ) );
   }
   delete [] targetWkb;
diff --git a/src/core/qgsnetworkaccessmanager.cpp b/src/core/qgsnetworkaccessmanager.cpp
index 1acb553..42f833a 100644
--- a/src/core/qgsnetworkaccessmanager.cpp
+++ b/src/core/qgsnetworkaccessmanager.cpp
@@ -30,14 +30,17 @@
 #include <QSettings>
 #include <QTimer>
 #include <QNetworkReply>
-#include <QNetworkDiskCache>
+#include <QThreadStorage>
 
 #ifndef QT_NO_OPENSSL
 #include <QSslConfiguration>
 #endif
 
+#include "qgsnetworkdiskcache.h"
 #include "qgsauthmanager.h"
 
+QgsNetworkAccessManager *QgsNetworkAccessManager::smMainNAM = 0;
+
 /// @cond PRIVATE
 class QgsNetworkProxyFactory : public QNetworkProxyFactory
 {
@@ -99,13 +102,22 @@ class QgsNetworkProxyFactory : public QNetworkProxyFactory
 //
 QgsNetworkAccessManager* QgsNetworkAccessManager::instance()
 {
-  static QgsNetworkAccessManager* sInstance( new QgsNetworkAccessManager( QApplication::instance() ) );
-  return sInstance;
+  static QThreadStorage<QgsNetworkAccessManager> sInstances;
+  QgsNetworkAccessManager *nam = &sInstances.localData();
+
+  if ( nam->thread() == qApp->thread() )
+    smMainNAM = nam;
+
+  if ( !nam->mInitialized )
+    nam->setupDefaultProxyAndCache();
+
+  return nam;
 }
 
 QgsNetworkAccessManager::QgsNetworkAccessManager( QObject *parent )
     : QNetworkAccessManager( parent )
     , mUseSystemProxy( false )
+    , mInitialized( false )
 {
   setProxyFactory( new QgsNetworkProxyFactory() );
 }
@@ -205,7 +217,7 @@ QNetworkReply *QgsNetworkAccessManager::createRequest( QNetworkAccessManager::Op
   timer->setObjectName( "timeoutTimer" );
   connect( timer, SIGNAL( timeout() ), this, SLOT( abortRequest() ) );
   timer->setSingleShot( true );
-  timer->start( s.value( "/qgis/networkAndProxy/networkTimeout", "20000" ).toInt() );
+  timer->start( s.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt() );
 
   connect( reply, SIGNAL( downloadProgress( qint64, qint64 ) ), timer, SLOT( start() ) );
   connect( reply, SIGNAL( uploadProgress( qint64, qint64 ) ), timer, SLOT( start() ) );
@@ -221,6 +233,8 @@ void QgsNetworkAccessManager::abortRequest()
   QNetworkReply *reply = qobject_cast<QNetworkReply *>( timer->parent() );
   Q_ASSERT( reply );
 
+  QgsDebugMsg( QString( "Abort [reply:%1]" ).arg(( qint64 ) reply, 0, 16 ) );
+
   QgsMessageLog::logMessage( tr( "Network request %1 timed out" ).arg( reply->url().toString() ), tr( "Network" ) );
 
   if ( reply->isRunning() )
@@ -270,36 +284,36 @@ QNetworkRequest::CacheLoadControl QgsNetworkAccessManager::cacheLoadControlFromN
 
 void QgsNetworkAccessManager::setupDefaultProxyAndCache()
 {
-  QNetworkProxy proxy;
-  QStringList excludes;
-
-  QSettings settings;
-
+  mInitialized = true;
   mUseSystemProxy = false;
 
-  if ( this != instance() )
-  {
-    Qt::ConnectionType connectionType = thread() == instance()->thread() ? Qt::AutoConnection : Qt::BlockingQueuedConnection;
+  Q_ASSERT( smMainNAM );
 
+  if ( smMainNAM != this )
+  {
     connect( this, SIGNAL( authenticationRequired( QNetworkReply *, QAuthenticator * ) ),
-             instance(), SIGNAL( authenticationRequired( QNetworkReply *, QAuthenticator * ) ),
-             connectionType );
+             smMainNAM, SIGNAL( authenticationRequired( QNetworkReply *, QAuthenticator * ) ),
+             Qt::BlockingQueuedConnection );
 
     connect( this, SIGNAL( proxyAuthenticationRequired( const QNetworkProxy &, QAuthenticator * ) ),
-             instance(), SIGNAL( proxyAuthenticationRequired( const QNetworkProxy &, QAuthenticator * ) ),
-             connectionType );
+             smMainNAM, SIGNAL( proxyAuthenticationRequired( const QNetworkProxy &, QAuthenticator * ) ),
+             Qt::BlockingQueuedConnection );
 
     connect( this, SIGNAL( requestTimedOut( QNetworkReply* ) ),
-             instance(), SIGNAL( requestTimedOut( QNetworkReply* ) ) );
+             smMainNAM, SIGNAL( requestTimedOut( QNetworkReply* ) ) );
 
 #ifndef QT_NO_OPENSSL
     connect( this, SIGNAL( sslErrors( QNetworkReply *, const QList<QSslError> & ) ),
-             instance(), SIGNAL( sslErrors( QNetworkReply *, const QList<QSslError> & ) ),
-             connectionType );
+             smMainNAM, SIGNAL( sslErrors( QNetworkReply *, const QList<QSslError> & ) ),
+             Qt::BlockingQueuedConnection );
 #endif
   }
 
   // check if proxy is enabled
+  QSettings settings;
+  QNetworkProxy proxy;
+  QStringList excludes;
+
   bool proxyEnabled = settings.value( "proxy/proxyEnabled", false ).toBool();
   if ( proxyEnabled )
   {
@@ -354,9 +368,9 @@ void QgsNetworkAccessManager::setupDefaultProxyAndCache()
 
   setFallbackProxyAndExcludes( proxy, excludes );
 
-  QNetworkDiskCache *newcache = qobject_cast<QNetworkDiskCache*>( cache() );
+  QgsNetworkDiskCache *newcache = qobject_cast<QgsNetworkDiskCache*>( cache() );
   if ( !newcache )
-    newcache = new QNetworkDiskCache( this );
+    newcache = new QgsNetworkDiskCache( this );
 
   QString cacheDirectory = settings.value( "cache/directory", QgsApplication::qgisSettingsDirPath() + "cache" ).toString();
   qint64 cacheSize = settings.value( "cache/size", 50 * 1024 * 1024 ).toULongLong();
@@ -370,21 +384,3 @@ void QgsNetworkAccessManager::setupDefaultProxyAndCache()
   if ( cache() != newcache )
     setCache( newcache );
 }
-
-void QgsNetworkAccessManager::sendGet( const QNetworkRequest & request )
-{
-  QgsDebugMsg( "Entered" );
-  QNetworkReply * reply = get( request );
-  emit requestSent( reply, QObject::sender() );
-}
-
-void QgsNetworkAccessManager::deleteReply( QNetworkReply * reply )
-{
-  QgsDebugMsg( "Entered" );
-  if ( !reply )
-  {
-    return;
-  }
-  reply->abort();
-  reply->deleteLater();
-}
diff --git a/src/core/qgsnetworkaccessmanager.h b/src/core/qgsnetworkaccessmanager.h
index 262b264..10bb7fb 100644
--- a/src/core/qgsnetworkaccessmanager.h
+++ b/src/core/qgsnetworkaccessmanager.h
@@ -82,31 +82,13 @@ class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager
     //! Setup the NAM according to the user's settings
     void setupDefaultProxyAndCache();
 
+    //! return whether the system proxy should be used
     bool useSystemProxy() { return mUseSystemProxy; }
 
-  public slots:
-    /** Send GET request, calls get().
-     * Emits requestSent().
-     * @param request request to be sent
-     */
-    void sendGet( const QNetworkRequest & request );
-    /** Abort and delete reply. This slot may be used to abort reply created by instance of this class
-     * (and which was not moved to another thread) from a different thread. Such reply cannot
-     * be aborted directly from a different thread. The reply must be also deleted
-     * in this slot, otherwise it could happen that abort signal comes after the reply was deleted.
-     * @param reply reply to be aborted.
-     */
-    void deleteReply( QNetworkReply * reply );
-
   signals:
     void requestAboutToBeCreated( QNetworkAccessManager::Operation, const QNetworkRequest &, QIODevice * );
     void requestCreated( QNetworkReply * );
     void requestTimedOut( QNetworkReply * );
-    /** Emitted when request was sent by request()
-     * @param reply request reply
-     * @param sender the object which called request() slot.
-     */
-    void requestSent( QNetworkReply * reply, QObject *sender );
 
   private slots:
     void abortRequest();
@@ -119,6 +101,8 @@ class CORE_EXPORT QgsNetworkAccessManager : public QNetworkAccessManager
     QNetworkProxy mFallbackProxy;
     QStringList mExcludedURLs;
     bool mUseSystemProxy;
+    bool mInitialized;
+    static QgsNetworkAccessManager *smMainNAM;
 };
 
 #endif // QGSNETWORKACCESSMANAGER_H
diff --git a/src/core/qgsnetworkdiskcache.cpp b/src/core/qgsnetworkdiskcache.cpp
new file mode 100644
index 0000000..2a1a821
--- /dev/null
+++ b/src/core/qgsnetworkdiskcache.cpp
@@ -0,0 +1,115 @@
+/***************************************************************************
+ qgsnetworkdiskcache.cpp  -  Thread-safe interface for QNetworkDiskCache
+    -------------------
+    begin                : 2016-03-05
+    copyright            : (C) 2016 by Juergen E. Fischer
+    email                : jef at norbit dot de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+
+#include "qgsnetworkdiskcache.h"
+
+QgsNetworkDiskCache::ExpirableNetworkDiskCache QgsNetworkDiskCache::smDiskCache;
+QMutex QgsNetworkDiskCache::smDiskCacheMutex;
+
+QgsNetworkDiskCache::QgsNetworkDiskCache( QObject *parent )
+    : QNetworkDiskCache( parent )
+{
+}
+
+QgsNetworkDiskCache::~QgsNetworkDiskCache()
+{
+}
+
+QString QgsNetworkDiskCache::cacheDirectory() const
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.cacheDirectory();
+}
+
+void QgsNetworkDiskCache::setCacheDirectory( const QString &cacheDir )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  smDiskCache.setCacheDirectory( cacheDir );
+}
+
+qint64 QgsNetworkDiskCache::maximumCacheSize() const
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.maximumCacheSize();
+}
+
+void QgsNetworkDiskCache::setMaximumCacheSize( qint64 size )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  smDiskCache.setMaximumCacheSize( size );
+}
+
+qint64 QgsNetworkDiskCache::cacheSize() const
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.cacheSize();
+}
+
+QNetworkCacheMetaData QgsNetworkDiskCache::metaData( const QUrl &url )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.metaData( url );
+}
+
+void QgsNetworkDiskCache::updateMetaData( const QNetworkCacheMetaData &metaData )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  smDiskCache.updateMetaData( metaData );
+}
+
+QIODevice *QgsNetworkDiskCache::data( const QUrl &url )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.data( url );
+}
+
+bool QgsNetworkDiskCache::remove( const QUrl &url )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.remove( url );
+}
+
+QIODevice *QgsNetworkDiskCache::prepare( const QNetworkCacheMetaData &metaData )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.prepare( metaData );
+}
+
+void QgsNetworkDiskCache::insert( QIODevice *device )
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  smDiskCache.insert( device );
+}
+
+QNetworkCacheMetaData QgsNetworkDiskCache::fileMetaData( const QString &fileName ) const
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.fileMetaData( fileName );
+}
+
+qint64 QgsNetworkDiskCache::expire()
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.runExpire();
+}
+
+void QgsNetworkDiskCache::clear()
+{
+  QMutexLocker lock( &smDiskCacheMutex );
+  return smDiskCache.clear();
+}
diff --git a/src/core/qgsnetworkdiskcache.h b/src/core/qgsnetworkdiskcache.h
new file mode 100644
index 0000000..a385f81
--- /dev/null
+++ b/src/core/qgsnetworkdiskcache.h
@@ -0,0 +1,100 @@
+/***************************************************************************
+ qgsnetworkdiskcache.h  -  Thread-safe interface for QNetworkDiskCache
+    -------------------
+    begin                : 2016-03-05
+    copyright            : (C) 2016 by Juergen E. Fischer
+    email                : jef at norbit dot de
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef QGSNETWORKDISKCACHE_H
+#define QGSNETWORKDISKCACHE_H
+
+#include <QNetworkDiskCache>
+#include <QMutex>
+
+class QNetworkDiskCache;
+
+/**
+ * Wrapper implementation of QNetworkDiskCache with all methods guarded by a
+ * mutex soly for internal use of QgsNetworkAccessManagers
+ *
+ * @note not available in Python bindings
+ */
+class QgsNetworkDiskCache : public QNetworkDiskCache
+{
+    Q_OBJECT
+
+  public:
+    ~QgsNetworkDiskCache();
+
+    //! @see QNetworkDiskCache::cacheDirectory
+    QString cacheDirectory() const;
+
+    //! @see QNetworkDiskCache::setCacheDirectory
+    void setCacheDirectory( const QString &cacheDir );
+
+    //! @see QNetworkDiskCache::maximumCacheSize()
+    qint64 maximumCacheSize() const;
+
+    //! @see QNetworkDiskCache::setMaximumCacheSize()
+    void setMaximumCacheSize( qint64 size );
+
+    //! @see QNetworkDiskCache::metaData()
+    QNetworkCacheMetaData metaData( const QUrl &url ) override;
+
+    //! @see QNetworkDiskCache::updateMetaData()
+    void updateMetaData( const QNetworkCacheMetaData &metaData ) override;
+
+    //! @see QNetworkDiskCache::data()
+    QIODevice *data( const QUrl &url ) override;
+
+    //! @see QNetworkDiskCache::remove()
+    bool remove( const QUrl &url ) override;
+
+    //! @see QNetworkDiskCache::cacheSize()
+    qint64 cacheSize() const override;
+
+    //! @see QNetworkDiskCache::prepare()
+    QIODevice *prepare( const QNetworkCacheMetaData &metaData ) override;
+
+    //! @see QNetworkDiskCache::insert()
+    void insert( QIODevice *device ) override;
+
+    //! @see QNetworkDiskCache::fileMetaData()
+    QNetworkCacheMetaData fileMetaData( const QString &fileName ) const;
+
+  public slots:
+    //! @see QNetworkDiskCache::clear()
+    void clear() override;
+
+  protected:
+    //! @see QNetworkDiskCache::expire()
+    virtual qint64 expire() override;
+
+  private:
+    QgsNetworkDiskCache( QObject *parent );
+    Q_DISABLE_COPY( QgsNetworkDiskCache )
+
+    class ExpirableNetworkDiskCache : public QNetworkDiskCache
+    {
+      public:
+        ExpirableNetworkDiskCache( QObject *parent = 0 ) : QNetworkDiskCache( parent ) {}
+        qint64 runExpire() { return QNetworkDiskCache::expire(); }
+    };
+
+    static ExpirableNetworkDiskCache smDiskCache;
+    static QMutex smDiskCacheMutex;
+
+    friend class QgsNetworkAccessManager;
+};
+
+#endif // QGSNETWORKDISKCACHE_H
diff --git a/src/core/qgspointlocator.cpp b/src/core/qgspointlocator.cpp
index dcd31db..f6c242f 100644
--- a/src/core/qgspointlocator.cpp
+++ b/src/core/qgspointlocator.cpp
@@ -671,6 +671,7 @@ bool QgsPointLocator::rebuildIndex( int maxFeaturesToIndex )
       }
       catch ( const QgsException& e )
       {
+        Q_UNUSED( e );
         // See http://hub.qgis.org/issues/12634
         QgsDebugMsg( QString( "could not transform bounding box to map, skipping the snap filter (%1)" ).arg( e.what() ) );
       }
@@ -692,6 +693,7 @@ bool QgsPointLocator::rebuildIndex( int maxFeaturesToIndex )
       }
       catch ( const QgsException& e )
       {
+        Q_UNUSED( e );
         // See http://hub.qgis.org/issues/12634
         QgsDebugMsg( QString( "could not transform geometry to map, skipping the snap for it (%1)" ).arg( e.what() ) );
         continue;
@@ -770,6 +772,7 @@ void QgsPointLocator::onFeatureAdded( QgsFeatureId fid )
       }
       catch ( const QgsException& e )
       {
+        Q_UNUSED( e );
         // See http://hub.qgis.org/issues/12634
         QgsDebugMsg( QString( "could not transform geometry to map, skipping the snap for it (%1)" ).arg( e.what() ) );
         return;
diff --git a/src/core/qgsslconnect.cpp b/src/core/qgsslconnect.cpp
index 9ccfe75..b3b8951 100644
--- a/src/core/qgsslconnect.cpp
+++ b/src/core/qgsslconnect.cpp
@@ -14,6 +14,7 @@
  ***************************************************************************/
 
 #include "qgsslconnect.h"
+#include "qgslogger.h"
 
 #include <sqlite3.h>
 #include <spatialite.h>
@@ -52,6 +53,11 @@ int QgsSLConnect::sqlite3_close( sqlite3 *db )
     spatialite_cleanup_ex( mSLconns.take( db ) );
 #endif
 
+  if ( res != SQLITE_OK )
+  {
+    QgsDebugMsg( QString( "sqlite3_close() failed: %1" ).arg( res ) );
+  }
+
   return res;
 }
 
@@ -85,5 +91,10 @@ int QgsSLConnect::sqlite3_close_v2( sqlite3 *db )
     spatialite_cleanup_ex( mSLconns.take( db ) );
 #endif
 
+  if ( res != SQLITE_OK )
+  {
+    QgsDebugMsg( QString( "sqlite3_close() failed: %1" ).arg( res ) );
+  }
+
   return res;
 }
diff --git a/src/core/qgssqlexpressioncompiler.cpp b/src/core/qgssqlexpressioncompiler.cpp
index 669b1cb..b436002 100644
--- a/src/core/qgssqlexpressioncompiler.cpp
+++ b/src/core/qgssqlexpressioncompiler.cpp
@@ -162,10 +162,22 @@ QgsSqlExpressionCompiler::Result QgsSqlExpressionCompiler::compileNode( const Qg
           break;
 
         case QgsExpression::boOr:
+          if ( mFlags.testFlag( NoNullInBooleanLogic ) )
+          {
+            if ( nodeIsNullLiteral( n->opLeft() ) || nodeIsNullLiteral( n->opRight() ) )
+              return Fail;
+          }
+
           op = "OR";
           break;
 
         case QgsExpression::boAnd:
+          if ( mFlags.testFlag( NoNullInBooleanLogic ) )
+          {
+            if ( nodeIsNullLiteral( n->opLeft() ) || nodeIsNullLiteral( n->opRight() ) )
+              return Fail;
+          }
+
           op = "AND";
           break;
 
@@ -297,3 +309,12 @@ QgsSqlExpressionCompiler::Result QgsSqlExpressionCompiler::compileNode( const Qg
 
   return Fail;
 }
+
+bool QgsSqlExpressionCompiler::nodeIsNullLiteral( const QgsExpression::Node* node ) const
+{
+  if ( node->nodeType() != QgsExpression::ntLiteral )
+    return false;
+
+  const QgsExpression::NodeLiteral* nLit = static_cast<const QgsExpression::NodeLiteral*>( node );
+  return nLit->value().isNull();
+}
diff --git a/src/core/qgssqlexpressioncompiler.h b/src/core/qgssqlexpressioncompiler.h
index 56c143b..5e0da3b 100644
--- a/src/core/qgssqlexpressioncompiler.h
+++ b/src/core/qgssqlexpressioncompiler.h
@@ -49,6 +49,7 @@ class CORE_EXPORT QgsSqlExpressionCompiler
     {
       CaseInsensitiveStringMatch = 0x01,  //!< Provider performs case-insensitive string matching for all strings
       LikeIsCaseInsensitive = 0x02, //!< Provider treats LIKE as case-insensitive
+      NoNullInBooleanLogic = 0x04, //!< Provider does not support using NULL with boolean logic, eg "(...) OR NULL"
     };
     Q_DECLARE_FLAGS( Flags, Flag )
 
@@ -98,6 +99,8 @@ class CORE_EXPORT QgsSqlExpressionCompiler
 
     Flags mFlags;
 
+    bool nodeIsNullLiteral( const QgsExpression::Node* node ) const;
+
 };
 
 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsSqlExpressionCompiler::Flags )
diff --git a/src/core/qgsvectorfilewriter.cpp b/src/core/qgsvectorfilewriter.cpp
index 462c1a8..536147b 100644
--- a/src/core/qgsvectorfilewriter.cpp
+++ b/src/core/qgsvectorfilewriter.cpp
@@ -362,12 +362,19 @@ void QgsVectorFileWriter::init( QString vectorFileName, QString fileEncoding, co
 
     switch ( attrField.type() )
     {
+#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM < 2000000
       case QVariant::LongLong:
         ogrType = OFTString;
         ogrWidth = ogrWidth > 0 && ogrWidth <= 21 ? ogrWidth : 21;
         ogrPrecision = -1;
         break;
-
+#else
+      case QVariant::LongLong:
+        ogrType = OFTInteger64;
+        ogrWidth = ogrWidth > 0 && ogrWidth <= 20 ? ogrWidth : 20;
+        ogrPrecision = 0;
+        break;
+#endif
       case QVariant::String:
         ogrType = OFTString;
         if ( ogrWidth <= 0 || ogrWidth > 255 )
diff --git a/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp b/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
index f05de18..1d4d089 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
@@ -450,6 +450,12 @@ QSet< QString > QgsSingleSymbolRendererV2::legendKeysForFeature( QgsFeature& fea
   return QSet< QString >() << QString();
 }
 
+void QgsSingleSymbolRendererV2::setLegendSymbolItem( const QString& key, QgsSymbolV2* symbol )
+{
+  Q_UNUSED( key );
+  setSymbol( symbol );
+}
+
 QgsSingleSymbolRendererV2* QgsSingleSymbolRendererV2::convertFromRenderer( const QgsFeatureRendererV2 *renderer )
 {
   QgsSingleSymbolRendererV2* r = nullptr;
diff --git a/src/core/symbology-ng/qgssinglesymbolrendererv2.h b/src/core/symbology-ng/qgssinglesymbolrendererv2.h
index 1d3e315..4edeadc 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.h
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.h
@@ -86,6 +86,8 @@ class CORE_EXPORT QgsSingleSymbolRendererV2 : public QgsFeatureRendererV2
 
     virtual QSet< QString > legendKeysForFeature( QgsFeature& feature, QgsRenderContext& context ) override;
 
+    virtual void setLegendSymbolItem( const QString& key, QgsSymbolV2* symbol ) override;
+
     //! creates a QgsSingleSymbolRendererV2 from an existing renderer.
     //! @note added in 2.5
     //! @returns a new renderer if the conversion was possible, otherwise 0.
diff --git a/src/core/symbology-ng/qgsstylev2.cpp b/src/core/symbology-ng/qgsstylev2.cpp
index d489783..e51cef1 100644
--- a/src/core/symbology-ng/qgsstylev2.cpp
+++ b/src/core/symbology-ng/qgsstylev2.cpp
@@ -104,9 +104,7 @@ bool QgsStyleV2::addSymbol( const QString& name, QgsSymbolV2* symbol, bool updat
 
 bool QgsStyleV2::saveSymbol( const QString& name, QgsSymbolV2* symbol, int groupid, const QStringList& tags )
 {
-  // TODO add support for tags and groups
-  Q_UNUSED( tags );
-
+  // TODO add support for groups
   QDomDocument doc( "dummy" );
   QDomElement symEl = QgsSymbolLayerV2Utils::saveSymbol( name, symbol, doc );
   if ( symEl.isNull() )
@@ -128,6 +126,8 @@ bool QgsStyleV2::saveSymbol( const QString& name, QgsSymbolV2* symbol, int group
     return false;
   }
 
+  tagSymbol( SymbolEntity, name, tags );
+
   emit symbolSaved( name, symbol );
 
   return true;
@@ -209,9 +209,6 @@ bool QgsStyleV2::addColorRamp( const QString& name, QgsVectorColorRampV2* colorR
 
 bool QgsStyleV2::saveColorRamp( const QString& name, QgsVectorColorRampV2* ramp, int groupid, const QStringList& tags )
 {
-  // TODO add support for groups and tags
-  Q_UNUSED( tags );
-
   // insert it into the database
   QDomDocument doc( "dummy" );
   QDomElement rampEl = QgsSymbolLayerV2Utils::saveColorRamp( name, ramp, doc );
@@ -234,6 +231,8 @@ bool QgsStyleV2::saveColorRamp( const QString& name, QgsVectorColorRampV2* ramp,
     return false;
   }
 
+  tagSymbol( ColorrampEntity, name, tags );
+
   return true;
 }
 
@@ -654,6 +653,27 @@ int QgsStyleV2::addTag( const QString& tagname )
   return static_cast< int >( sqlite3_last_insert_rowid( mCurrentDB ) );
 }
 
+QStringList QgsStyleV2::tags() const
+{
+  if ( !mCurrentDB )
+    return QStringList();
+
+  sqlite3_stmt *ppStmt;
+
+  char *query = sqlite3_mprintf( "SELECT name FROM tag" );
+  int nError = sqlite3_prepare_v2( mCurrentDB, query, -1, &ppStmt, nullptr );
+
+  QStringList tagList;
+  while ( nError == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
+  {
+    tagList << QString::fromUtf8( reinterpret_cast< const char * >( sqlite3_column_text( ppStmt, 0 ) ) );
+  }
+
+  sqlite3_finalize( ppStmt );
+
+  return tagList;
+}
+
 void QgsStyleV2::rename( StyleEntity type, int id, const QString& newName )
 {
   char *query;
@@ -781,6 +801,7 @@ QStringList QgsStyleV2::findSymbols( StyleEntity type, const QString& qword )
     return QStringList();
   }
 
+  // first find symbols with matching name
   QString item = ( type == SymbolEntity ) ? "symbol" : "colorramp";
   char *query = sqlite3_mprintf( "SELECT name FROM %q WHERE name LIKE '%%%q%%'",
                                  item.toUtf8().constData(), qword.toUtf8().constData() );
@@ -788,7 +809,7 @@ QStringList QgsStyleV2::findSymbols( StyleEntity type, const QString& qword )
   sqlite3_stmt *ppStmt;
   int nErr = sqlite3_prepare_v2( mCurrentDB, query, -1, &ppStmt, nullptr );
 
-  QStringList symbols;
+  QSet< QString > symbols;
   while ( nErr == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
   {
     symbols << QString::fromUtf8( reinterpret_cast< const char * >( sqlite3_column_text( ppStmt, 0 ) ) );
@@ -796,7 +817,54 @@ QStringList QgsStyleV2::findSymbols( StyleEntity type, const QString& qword )
 
   sqlite3_finalize( ppStmt );
 
-  return symbols;
+  // next add symbols with matching tags
+  query = sqlite3_mprintf( "SELECT id FROM tag WHERE name LIKE '%%%q%%'", qword.toUtf8().constData() );
+  nErr = sqlite3_prepare_v2( mCurrentDB, query, -1, &ppStmt, NULL );
+
+  QStringList tagids;
+  while ( nErr == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
+  {
+    tagids << QString::fromUtf8(( const char * ) sqlite3_column_text( ppStmt, 0 ) );
+  }
+
+  sqlite3_finalize( ppStmt );
+
+
+  QString dummy = tagids.join( ", " );
+
+  if ( type == SymbolEntity )
+  {
+    query = sqlite3_mprintf( "SELECT symbol_id FROM tagmap WHERE tag_id IN (%q)",
+                             dummy.toUtf8().constData() );
+  }
+  else
+  {
+    query = sqlite3_mprintf( "SELECT colorramp_id FROM ctagmap WHERE tag_id IN (%q)",
+                             dummy.toUtf8().constData() );
+  }
+  nErr = sqlite3_prepare_v2( mCurrentDB, query, -1, &ppStmt, NULL );
+
+  QStringList symbolids;
+  while ( nErr == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
+  {
+    symbolids << QString::fromUtf8(( const char * ) sqlite3_column_text( ppStmt, 0 ) );
+  }
+
+  sqlite3_finalize( ppStmt );
+
+
+  dummy = symbolids.join( ", " );
+  query = sqlite3_mprintf( "SELECT name FROM %q  WHERE id IN (%q)",
+                           item.toUtf8().constData(), dummy.toUtf8().constData() );
+  nErr = sqlite3_prepare_v2( mCurrentDB, query, -1, &ppStmt, NULL );
+  while ( nErr == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
+  {
+    symbols << QString::fromUtf8(( const char * ) sqlite3_column_text( ppStmt, 0 ) );
+  }
+
+  sqlite3_finalize( ppStmt );
+
+  return symbols.toList();
 }
 
 bool QgsStyleV2::tagSymbol( StyleEntity type, const QString& symbol, const QStringList& tags )
@@ -870,6 +938,11 @@ bool QgsStyleV2::detagSymbol( StyleEntity type, const QString& symbol, const QSt
   {
     symbolid = sqlite3_column_int( ppStmt, 0 );
   }
+  else
+  {
+    sqlite3_finalize( ppStmt );
+    return false;
+  }
 
   sqlite3_finalize( ppStmt );
 
diff --git a/src/core/symbology-ng/qgsstylev2.h b/src/core/symbology-ng/qgsstylev2.h
index 76cdb61..2e931a8 100644
--- a/src/core/symbology-ng/qgsstylev2.h
+++ b/src/core/symbology-ng/qgsstylev2.h
@@ -122,6 +122,12 @@ class CORE_EXPORT QgsStyleV2 : public QObject
      */
     int addTag( const QString& tagName );
 
+    /** Returns a list of all tags in the style database
+     * @note added in QGIS 2.16
+     * @see addTag()
+     */
+    QStringList tags() const;
+
     //! return a map of groupid and names for the given parent group
     QgsSymbolGroupMap childGroupNames( const QString& parent = "" );
 
diff --git a/src/gui/attributetable/qgsdualview.cpp b/src/gui/attributetable/qgsdualview.cpp
index 10aeb0d..a054239 100644
--- a/src/gui/attributetable/qgsdualview.cpp
+++ b/src/gui/attributetable/qgsdualview.cpp
@@ -107,17 +107,17 @@ void QgsDualView::columnBoxInit()
   QString displayExpression = mLayerCache->layer()->displayExpression();
 
   // if no display expression is saved: use display field instead
-  if ( displayExpression == "" )
+  if ( displayExpression.isEmpty() )
   {
-    if ( mLayerCache->layer()->displayField() != "" )
+    if ( !mLayerCache->layer()->displayField().isEmpty() )
     {
       defaultField = mLayerCache->layer()->displayField();
       displayExpression = QString( "COALESCE(\"%1\", '<NULL>')" ).arg( defaultField );
     }
   }
 
-  // if neither diaplay expression nor display field is saved...
-  if ( displayExpression == "" )
+  // if neither display expression nor display field is saved...
+  if ( displayExpression.isEmpty() )
   {
     QgsAttributeList pkAttrs = mLayerCache->layer()->pkAttributeList();
 
@@ -168,7 +168,7 @@ void QgsDualView::columnBoxInit()
 
     if ( mLayerCache->layer()->editFormConfig()->widgetType( fieldIndex ) != "Hidden" )
     {
-      QIcon icon = QgsApplication::getThemeIcon( "/mActionNewAttribute.png" );
+      QIcon icon = mLayerCache->layer()->fields().iconForField( fieldIndex );
       QString text = field.name();
 
       // Generate action for the preview popup button of the feature list
diff --git a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
index 85a5a97..9ff23a1 100644
--- a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
+++ b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
@@ -144,10 +144,10 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
           continue;
 
         QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layerNode->layer() );
-        if ( vl && vl->geometryType() != QGis::NoGeometry )
+        if ( !vl || vl->geometryType() != QGis::NoGeometry )
         {
-          mCanvas->setDestinationCrs( vl->crs() );
-          mCanvas->setMapUnits( vl->crs().mapUnits() );
+          mCanvas->setDestinationCrs( layerNode->layer()->crs() );
+          mCanvas->setMapUnits( layerNode->layer()->crs().mapUnits() );
           break;
         }
       }
diff --git a/src/gui/qgscredentialdialog.cpp b/src/gui/qgscredentialdialog.cpp
index 0f4cbb8..9394ec5 100644
--- a/src/gui/qgscredentialdialog.cpp
+++ b/src/gui/qgscredentialdialog.cpp
@@ -67,6 +67,7 @@ bool QgsCredentialDialog::request( const QString& realm, QString &username, QStr
 
 void QgsCredentialDialog::requestCredentials( const QString& realm, QString *username, QString *password, const QString& message, bool *ok )
 {
+  Q_ASSERT( qApp->thread() == thread() && thread() == QThread::currentThread() );
   QgsDebugMsg( "Entering." );
   stackedWidget->setCurrentIndex( 0 );
 
diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp
index aa81c15..babf0c4 100644
--- a/src/gui/qgsmapcanvas.cpp
+++ b/src/gui/qgsmapcanvas.cpp
@@ -532,6 +532,7 @@ void QgsMapCanvas::setDestinationCrs( const QgsCoordinateReferenceSystem &crs )
       }
       catch ( QgsCsException &e )
       {
+        Q_UNUSED( e );
         QgsDebugMsg( QString( "Transform error caught: %1" ).arg( e.what() ) );
       }
     }
diff --git a/src/gui/qgsrasterlayersaveasdialog.cpp b/src/gui/qgsrasterlayersaveasdialog.cpp
index 89bce90..779a232 100644
--- a/src/gui/qgsrasterlayersaveasdialog.cpp
+++ b/src/gui/qgsrasterlayersaveasdialog.cpp
@@ -119,7 +119,9 @@ QgsRasterLayerSaveAsDialog::QgsRasterLayerSaveAsDialog( QgsRasterLayer* rasterLa
   mTilesGroupBox->hide();
 
   mCrsSelector->setLayerCrs( mLayerCrs );
-  mCrsSelector->setCrs( mCurrentCrs );
+  //default to layer CRS - see http://hub.qgis.org/issues/14209 for discussion
+  mCrsSelector->setCrs( mLayerCrs );
+
   connect( mCrsSelector, SIGNAL( crsChanged( QgsCoordinateReferenceSystem ) ),
            this, SLOT( crsChanged() ) );
 
diff --git a/src/plugins/evis/evis.cpp b/src/plugins/evis/evis.cpp
index 76bb100..8dbe555 100644
--- a/src/plugins/evis/evis.cpp
+++ b/src/plugins/evis/evis.cpp
@@ -116,9 +116,9 @@ void eVis::initGui()
   mEventBrowserActionPointer->setWhatsThis( tr( "Open an Event Browser to explore the current layer's features" ) );
 
   // Connect the action to the runmQGisIface->mapCanvas()
-  connect( mDatabaseConnectionActionPointer, SIGNAL( activated() ), this, SLOT( launchDatabaseConnection() ) );
+  connect( mDatabaseConnectionActionPointer, SIGNAL( triggered() ), this, SLOT( launchDatabaseConnection() ) );
   connect( mEventIdToolActionPointer, SIGNAL( triggered() ), this, SLOT( launchEventIdTool() ) );
-  connect( mEventBrowserActionPointer, SIGNAL( activated() ), this, SLOT( launchEventBrowser() ) );
+  connect( mEventBrowserActionPointer, SIGNAL( triggered() ), this, SLOT( launchEventBrowser() ) );
 
 
   // Add the icon to the toolbar
diff --git a/src/plugins/geometry_checker/utils/qgsgeomutils.h b/src/plugins/geometry_checker/utils/qgsgeomutils.h
index 0046ad9..57583a4 100644
--- a/src/plugins/geometry_checker/utils/qgsgeomutils.h
+++ b/src/plugins/geometry_checker/utils/qgsgeomutils.h
@@ -39,13 +39,22 @@ namespace QgsGeomUtils
    */
   inline int polyLineSize( const QgsAbstractGeometryV2* geom, int iPart, int iRing, bool* isClosed = nullptr )
   {
-    int nVerts = geom->vertexCount( iPart, iRing );
-    QgsPointV2 front = geom->vertexAt( QgsVertexId( iPart, iRing, 0 ) );
-    QgsPointV2 back = geom->vertexAt( QgsVertexId( iPart, iRing, nVerts - 1 ) );
-    bool closed = back == front;
-    if ( isClosed )
-      *isClosed = closed;
-    return closed ? nVerts - 1 : nVerts;
+    if ( !geom->isEmpty() )
+    {
+      int nVerts = geom->vertexCount( iPart, iRing );
+      QgsPointV2 front = geom->vertexAt( QgsVertexId( iPart, iRing, 0 ) );
+      QgsPointV2 back = geom->vertexAt( QgsVertexId( iPart, iRing, nVerts - 1 ) );
+      bool closed = back == front;
+      if ( isClosed )
+        *isClosed = closed;
+      return closed ? nVerts - 1 : nVerts;
+    }
+    else
+    {
+      if ( isClosed )
+        *isClosed = true;
+      return 0;
+    }
   }
 
   double sharedEdgeLength( const QgsAbstractGeometryV2* geom1, const QgsAbstractGeometryV2* geom2, double tol );
diff --git a/src/plugins/globe/CMakeLists.txt b/src/plugins/globe/CMakeLists.txt
index d05a421..c068663 100644
--- a/src/plugins/globe/CMakeLists.txt
+++ b/src/plugins/globe/CMakeLists.txt
@@ -55,6 +55,7 @@ QT4_ADD_RESOURCES(globe_plugin_RCC_SRCS ${globe_plugin_RCCS})
 ADD_LIBRARY (globeplugin MODULE ${globe_plugin_SRCS} ${globe_plugin_MOC_SRCS} ${globe_plugin_RCC_SRCS} ${globe_plugin_UIS_H})
 
 INCLUDE_DIRECTORIES(SYSTEM
+     ${Qt5OpenGL_INCLUDE_DIRS}
      ${OSGEARTH_INCLUDE_DIR}
      ${OSG_INCLUDE_DIR}
      ${GEOS_INCLUDE_DIR}
@@ -82,6 +83,7 @@ TARGET_LINK_LIBRARIES(globeplugin
   qgis_core
   qgis_gui
   ${QT_QTOPENGL_LIBRARY}
+  ${Qt5OpenGL_LIBRARIES}
   ${OSGDB_LIBRARY}
   ${OSGGA_LIBRARY}
   ${OSGUTIL_LIBRARY}
diff --git a/src/plugins/globe/globe_plugin.cpp b/src/plugins/globe/globe_plugin.cpp
index 0ef9489..5efcfae 100644
--- a/src/plugins/globe/globe_plugin.cpp
+++ b/src/plugins/globe/globe_plugin.cpp
@@ -57,7 +57,11 @@
 #include <osgEarth/Map>
 #include <osgEarth/MapNode>
 #include <osgEarth/TileSource>
+#if OSGEARTH_MIN_VERSION_REQUIRED(2,7,0)
+#include <osgEarthUtil/Sky>
+#else
 #include <osgEarthUtil/SkyNode>
+#endif
 #include <osgEarthUtil/AutoClipPlaneHandler>
 #include <osgEarthDrivers/gdal/GDALOptions>
 #include <osgEarthDrivers/tms/TMSOptions>
@@ -394,9 +398,18 @@ void GlobePlugin::run()
     }
 
     // Set a home viewpoint
+#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 7, 0 )
+    osgEarth::Util::Viewpoint vp;
+    vp.focalPoint()->vec3d() = osg::Vec3d( -90, 0, 0 );
+    vp.heading() = 0.0;
+    vp.pitch() = -90.0;
+    vp.range() = 2e7;
+    manip->setHomeViewpoint( vp, 1.0 );
+#else
     manip->setHomeViewpoint(
       osgEarth::Util::Viewpoint( osg::Vec3d( -90, 0, 0 ), 0.0, -90.0, 2e7 ),
       1.0 );
+#endif
 
     setupControls();
 
@@ -454,12 +467,14 @@ void GlobePlugin::setupMap()
   //nodeOptions.proxySettings() =
   //nodeOptions.enableLighting() = false;
 
+#if OSGEARTH_VERSION_LESS_THAN( 2, 7, 0 )
   //LoadingPolicy loadingPolicy( LoadingPolicy::MODE_SEQUENTIAL );
   TerrainOptions terrainOptions;
   //terrainOptions.loadingPolicy() = loadingPolicy;
   terrainOptions.compositingTechnique() = TerrainOptions::COMPOSITING_MULTITEXTURE_FFP;
   //terrainOptions.lodFallOff() = 6.0;
   nodeOptions.setTerrainOptions( terrainOptions );
+#endif
 
   // The MapNode will render the Map object in the scene graph.
   mMapNode = new osgEarth::MapNode( map, nodeOptions );
@@ -605,7 +620,15 @@ void GlobePlugin::syncExtent()
 
   OE_NOTICE << "map extent: " << height << " camera distance: " << distance << std::endl;
 
+#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 7, 0 )
+  osgEarth::Util::Viewpoint viewpoint;
+  viewpoint.focalPoint()->vec3d() = osg::Vec3d( extent.center().x(), extent.center().y(), 0.0 );
+  viewpoint.heading() = 0.0;
+  viewpoint.pitch() = -90.0;
+  viewpoint.range() = distance;
+#else
   osgEarth::Util::Viewpoint viewpoint( osg::Vec3d( extent.center().x(), extent.center().y(), 0.0 ), 0.0, -90.0, distance );
+#endif
   manip->setViewpoint( viewpoint, 4.0 );
 }
 
@@ -930,17 +953,28 @@ void GlobePlugin::setSkyParameters( bool enabled, const QDateTime& dateTime, boo
     {
       // Create if not yet done
       if ( !mSkyNode.get() )
+#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 7, 0 )
+        mSkyNode = SkyNode::create( mMapNode );
+#else
         mSkyNode = new SkyNode( mMapNode->getMap() );
+#endif
 
-#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 4, 0 )
+#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 4, 0 ) && OSGEARTH_VERSION_LESS_THAN( 2, 7, 0 )
       mSkyNode->setAutoAmbience( autoAmbience );
 #else
       Q_UNUSED( autoAmbience );
 #endif
+#if OSGEARTH_VERSION_GREATER_OR_EQUAL( 2, 7, 0 )
+      mSkyNode->setDateTime( DateTime( dateTime.date().year()
+                                       , dateTime.date().month()
+                                       , dateTime.date().day()
+                                       , dateTime.time().hour() + dateTime.time().minute() / 60.0 ) );
+#else
       mSkyNode->setDateTime( dateTime.date().year()
                              , dateTime.date().month()
                              , dateTime.date().day()
                              , dateTime.time().hour() + dateTime.time().minute() / 60.0 );
+#endif
       //sky->setSunPosition( osg::Vec3(0,-1,0) );
       mSkyNode->attach( mOsgViewer );
       mRootNode->addChild( mSkyNode );
diff --git a/src/providers/grass/qgsgrass.cpp b/src/providers/grass/qgsgrass.cpp
index d5bf993..cb55e4c 100644
--- a/src/providers/grass/qgsgrass.cpp
+++ b/src/providers/grass/qgsgrass.cpp
@@ -2061,14 +2061,20 @@ QProcess *QgsGrass::startModule( const QString& gisdbase, const QString&  locati
   out.flush();
   QgsDebugMsg( gisrcFile.fileName() );
   gisrcFile.close();
-  QStringList environment = QProcess::systemEnvironment();
-  environment.append( "GISRC=" + gisrcFile.fileName() );
-  environment.append( "GRASS_MESSAGE_FORMAT=gui" );
+  QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
+  QStringList paths = QgsGrass::grassModulesPaths();
+  // PYTHONPATH necessary for t.list.py
+  // PATH necessary for g.parser called by t.list.py
+  paths += environment.value( "PATH" ).split( QgsGrass::pathSeparator() );
+  environment.insert( "PATH", paths.join( QgsGrass::pathSeparator() ) );
+  environment.insert( "PYTHONPATH", QgsGrass::getPythonPath() );
+  environment.insert( "GISRC", gisrcFile.fileName() );
+  environment.insert( "GRASS_MESSAGE_FORMAT", "gui" );
   // Normaly modules must be run in a mapset owned by user, because each module calls G_gisinit()
   // which checks if G_mapset() is owned by user. The check is disabled by GRASS_SKIP_MAPSET_OWNER_CHECK.
-  environment.append( "GRASS_SKIP_MAPSET_OWNER_CHECK=1" );
+  environment.insert( "GRASS_SKIP_MAPSET_OWNER_CHECK", "1" );
 
-  process->setEnvironment( environment );
+  process->setProcessEnvironment( environment );
 
   QgsDebugMsg( modulePath + " " + arguments.join( " " ) );
   process->start( modulePath, arguments );
diff --git a/src/providers/memory/qgsmemoryprovider.cpp b/src/providers/memory/qgsmemoryprovider.cpp
index 6bc381e..1dfcae1 100644
--- a/src/providers/memory/qgsmemoryprovider.cpp
+++ b/src/providers/memory/qgsmemoryprovider.cpp
@@ -108,8 +108,8 @@ QgsMemoryProvider::QgsMemoryProvider( const QString& uri )
   {
     QList<QgsField> attributes;
     QRegExp reFieldDef( "\\:"
-                        "(int|integer|real|double|string|date|time|datetime)" // type
-                        "(?:\\((\\d+)"                // length
+                        "(int|integer|long|int8|real|double|string|date|time|datetime)" // type
+                        "(?:\\((\\-?\\d+)"                // length
                         "(?:\\,(\\d+))?"                // precision
                         "\\))?"
                         "$", Qt::CaseInsensitive );
@@ -131,7 +131,13 @@ QgsMemoryProvider::QgsMemoryProvider( const QString& uri )
         {
           type = QVariant::Int;
           typeName = "integer";
-          length = 10;
+          length = -1;
+        }
+        else if ( typeName == "int8" || typeName == "long" )
+        {
+          type = QVariant::LongLong;
+          typeName = "int8";
+          length = -1;
         }
         else if ( typeName == "real" || typeName == "double" )
         {
diff --git a/src/providers/mssql/qgsmssqlfeatureiterator.cpp b/src/providers/mssql/qgsmssqlfeatureiterator.cpp
index 53214d4..560d344 100644
--- a/src/providers/mssql/qgsmssqlfeatureiterator.cpp
+++ b/src/providers/mssql/qgsmssqlfeatureiterator.cpp
@@ -284,7 +284,7 @@ bool QgsMssqlFeatureIterator::fetchFeature( QgsFeature& feature )
     for ( int i = 0; i < mAttributesToFetch.count(); i++ )
     {
       QVariant v = mQuery->value( i );
-      const QgsField &fld = mSource->mFields.at( i );
+      const QgsField &fld = mSource->mFields.at( mAttributesToFetch.at( i ) );
       if ( v.type() != fld.type() )
         v = QgsVectorDataProvider::convertValue( fld.type(), v.toString() );
       feature.setAttribute( mAttributesToFetch.at( i ), v );
diff --git a/src/providers/ogr/qgsogrexpressioncompiler.cpp b/src/providers/ogr/qgsogrexpressioncompiler.cpp
index e729a24..a54c6ec 100644
--- a/src/providers/ogr/qgsogrexpressioncompiler.cpp
+++ b/src/providers/ogr/qgsogrexpressioncompiler.cpp
@@ -17,7 +17,7 @@
 #include "qgsogrprovider.h"
 
 QgsOgrExpressionCompiler::QgsOgrExpressionCompiler( QgsOgrFeatureSource* source )
-    : QgsSqlExpressionCompiler( source->mFields, QgsSqlExpressionCompiler::CaseInsensitiveStringMatch )
+    : QgsSqlExpressionCompiler( source->mFields, QgsSqlExpressionCompiler::CaseInsensitiveStringMatch | QgsSqlExpressionCompiler::NoNullInBooleanLogic )
     , mSource( source )
 {
 }
@@ -95,5 +95,12 @@ QString QgsOgrExpressionCompiler::quotedIdentifier( const QString& identifier )
 QString QgsOgrExpressionCompiler::quotedValue( const QVariant& value, bool& ok )
 {
   ok = true;
+
+  if ( value.type() == QVariant::Bool )
+  {
+    // No support for boolean literals, so fake them
+    return value.toBool() ? "(1=1)" : "(1=0)";
+  }
+
   return QgsOgrUtils::quotedValue( value );
 }
diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp
index ab907d7..7e6df60 100644
--- a/src/providers/ogr/qgsogrprovider.cpp
+++ b/src/providers/ogr/qgsogrprovider.cpp
@@ -874,8 +874,8 @@ QgsRectangle QgsOgrProvider::extent()
 
           mExtent->MinX = qMin( mExtent->MinX, env.MinX );
           mExtent->MinY = qMin( mExtent->MinY, env.MinY );
-          mExtent->MaxX = qMin( mExtent->MaxX, env.MaxX );
-          mExtent->MaxY = qMin( mExtent->MaxY, env.MaxY );
+          mExtent->MaxX = qMax( mExtent->MaxX, env.MaxX );
+          mExtent->MaxY = qMax( mExtent->MaxY, env.MaxY );
         }
 
         OGR_F_Destroy( f );
@@ -1356,7 +1356,7 @@ bool QgsOgrProvider::createSpatialIndex()
   {
     QByteArray sql = "CREATE SPATIAL INDEX ON " + quotedIdentifier( layerName );  // quote the layer name so spaces are handled
     QgsDebugMsg( QString( "SQL: %1" ).arg( FROM8( sql ) ) );
-    OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), "" );
+    OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), nullptr );
   }
 
   QFileInfo fi( mFilePath );     // to get the base name
@@ -1369,9 +1369,9 @@ bool QgsOgrProvider::createAttributeIndex( int field )
 {
   QByteArray quotedLayerName = quotedIdentifier( OGR_FD_GetName( OGR_L_GetLayerDefn( ogrOrigLayer ) ) );
   QByteArray dropSql = "DROP INDEX ON " + quotedLayerName;
-  OGR_DS_ExecuteSQL( ogrDataSource, dropSql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), "SQL" );
+  OGR_DS_ExecuteSQL( ogrDataSource, dropSql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), nullptr );
   QByteArray createSql = "CREATE INDEX ON " + quotedLayerName + " USING " + mEncoding->fromUnicode( fields()[field].name() );
-  OGR_DS_ExecuteSQL( ogrDataSource, createSql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), "SQL" );
+  OGR_DS_ExecuteSQL( ogrDataSource, createSql.constData(), OGR_L_GetSpatialFilter( ogrOrigLayer ), nullptr );
 
   QFileInfo fi( mFilePath );     // to get the base name
   //find out, if the .idm file is there
@@ -2434,7 +2434,7 @@ void QgsOgrProvider::uniqueValues( int index, QList<QVariant> &uniqueValues, int
   sql += " ORDER BY " + mEncoding->fromUnicode( fld.name() ) + " ASC";  // quoting of fieldname produces a syntax error
 
   QgsDebugMsg( QString( "SQL: %1" ).arg( mEncoding->toUnicode( sql ) ) );
-  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, "SQL" );
+  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, nullptr );
   if ( !l )
   {
     QgsDebugMsg( "Failed to execute SQL" );
@@ -2472,7 +2472,7 @@ QVariant QgsOgrProvider::minimumValue( int index )
     sql += " WHERE " + mEncoding->fromUnicode( mSubsetString );
   }
 
-  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, "SQL" );
+  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, nullptr );
   if ( !l )
   {
     QgsDebugMsg( QString( "Failed to execute SQL: %1" ).arg( mEncoding->toUnicode( sql ) ) );
@@ -2511,7 +2511,7 @@ QVariant QgsOgrProvider::maximumValue( int index )
     sql += " WHERE " + mEncoding->fromUnicode( mSubsetString );
   }
 
-  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, "SQL" );
+  OGRLayerH l = OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, nullptr );
   if ( !l )
   {
     QgsDebugMsg( QString( "Failed to execute SQL: %1" ).arg( mEncoding->toUnicode( sql ) ) );
diff --git a/src/providers/spatialite/qgsspatialitefeatureiterator.cpp b/src/providers/spatialite/qgsspatialitefeatureiterator.cpp
index 59a708d..7be3917 100644
--- a/src/providers/spatialite/qgsspatialitefeatureiterator.cpp
+++ b/src/providers/spatialite/qgsspatialitefeatureiterator.cpp
@@ -235,11 +235,17 @@ bool QgsSpatiaLiteFeatureIterator::rewind()
 
 bool QgsSpatiaLiteFeatureIterator::close()
 {
-  if ( !mHandle )
+  if ( mClosed )
     return false;
 
   iteratorClosed();
 
+  if ( !mHandle )
+  {
+    mClosed = true;
+    return false;
+  }
+
   if ( sqliteStatement )
   {
     sqlite3_finalize( sqliteStatement );
@@ -319,7 +325,7 @@ bool QgsSpatiaLiteFeatureIterator::prepareStatement( const QString& whereClause,
 
 QString QgsSpatiaLiteFeatureIterator::quotedPrimaryKey()
 {
-  return !( mSource->isQuery || mSource->mViewBased ) ? "ROWID" : QgsSpatiaLiteProvider::quotedIdentifier( mSource->mPrimaryKey );
+  return mSource->mPrimaryKey.isEmpty() ? "ROWID" : QgsSpatiaLiteProvider::quotedIdentifier( mSource->mPrimaryKey );
 }
 
 QString QgsSpatiaLiteFeatureIterator::whereClauseFid()
diff --git a/src/providers/spatialite/qgsspatialiteprovider.cpp b/src/providers/spatialite/qgsspatialiteprovider.cpp
index b5878e4..7738ce1 100644
--- a/src/providers/spatialite/qgsspatialiteprovider.cpp
+++ b/src/providers/spatialite/qgsspatialiteprovider.cpp
@@ -674,6 +674,12 @@ void QgsSpatiaLiteProvider::loadFieldsAbstractInterface( gaiaVectorLayerPtr lyr
     }
   }
 
+  // for views try to get the primary key from the meta table
+  if ( mViewBased && mPrimaryKey.isEmpty() )
+  {
+    determineViewPrimaryKey();
+  }
+
   updatePrimaryKeyCapabilities();
 
   sqlite3_free_table( results );
@@ -798,26 +804,9 @@ void QgsSpatiaLiteProvider::loadFields()
     // for views try to get the primary key from the meta table
     if ( mViewBased && mPrimaryKey.isEmpty() )
     {
-      QString sql = QString( "SELECT view_rowid"
-                             " FROM views_geometry_columns"
-                             " WHERE upper(view_name) = upper(%1) and upper(view_geometry) = upper(%2)" ).arg( quotedValue( mTableName ),
-                                 quotedValue( mGeometryColumn ) );
-
-      ret = sqlite3_get_table( sqliteHandle, sql.toUtf8().constData(), &results, &rows, &columns, &errMsg );
-      if ( ret == SQLITE_OK )
-      {
-        if ( rows > 0 )
-        {
-          mPrimaryKey = results[1 * columns];
-          int idx = attributeFields.fieldNameIndex( mPrimaryKey );
-          if ( idx != -1 )
-            mPrimaryKeyAttrs << idx;
-        }
-        sqlite3_free_table( results );
-      }
+      determineViewPrimaryKey();
     }
 
-
   }
   else
   {
@@ -906,6 +895,33 @@ error:
   }
 }
 
+
+void QgsSpatiaLiteProvider::determineViewPrimaryKey()
+{
+  QString sql = QString( "SELECT view_rowid"
+                         " FROM views_geometry_columns"
+                         " WHERE upper(view_name) = upper(%1) and upper(view_geometry) = upper(%2)" ).arg( quotedValue( mTableName ),
+                             quotedValue( mGeometryColumn ) );
+
+  char **results;
+  int rows;
+  int columns;
+  char *errMsg = nullptr;
+  int ret = sqlite3_get_table( sqliteHandle, sql.toUtf8().constData(), &results, &rows, &columns, &errMsg );
+  if ( ret == SQLITE_OK )
+  {
+    if ( rows > 0 )
+    {
+      mPrimaryKey = results[1 * columns];
+      int idx = attributeFields.fieldNameIndex( mPrimaryKey );
+      if ( idx != -1 )
+        mPrimaryKeyAttrs << idx;
+    }
+    sqlite3_free_table( results );
+  }
+}
+
+
 bool QgsSpatiaLiteProvider::hasTriggers()
 {
   int ret;
@@ -3578,6 +3594,11 @@ QString QgsSpatiaLiteProvider::geomParam() const
   return geometry;
 }
 
+static void deleteWkbBlob( void* wkbBlob )
+{
+  delete[]( char* )wkbBlob;
+}
+
 bool QgsSpatiaLiteProvider::addFeatures( QgsFeatureList & flist )
 {
   sqlite3_stmt *stmt = nullptr;
@@ -3661,7 +3682,7 @@ bool QgsSpatiaLiteProvider::addFeatures( QgsFeatureList & flist )
             if ( !wkb )
               sqlite3_bind_null( stmt, ++ia );
             else
-              sqlite3_bind_blob( stmt, ++ia, wkb, wkb_size, free );
+              sqlite3_bind_blob( stmt, ++ia, wkb, wkb_size, deleteWkbBlob );
           }
         }
 
@@ -3732,6 +3753,9 @@ bool QgsSpatiaLiteProvider::addFeatures( QgsFeatureList & flist )
           break;
         }
       }
+
+      sqlite3_finalize( stmt );
+
       if ( ret == SQLITE_DONE || ret == SQLITE_ROW )
       {
         ret = sqlite3_exec( sqliteHandle, "COMMIT", nullptr, nullptr, &errMsg );
@@ -4051,7 +4075,7 @@ bool QgsSpatiaLiteProvider::changeGeometryValues( const QgsGeometryMap &geometry
     if ( !wkb )
       sqlite3_bind_null( stmt, 1 );
     else
-      sqlite3_bind_blob( stmt, 1, wkb, wkb_size, free );
+      sqlite3_bind_blob( stmt, 1, wkb, wkb_size, deleteWkbBlob );
     sqlite3_bind_int64( stmt, 2, FID_TO_NUMBER( iter.key() ) );
 
     // performing actual row update
diff --git a/src/providers/spatialite/qgsspatialiteprovider.h b/src/providers/spatialite/qgsspatialiteprovider.h
index 2c8f592..d2c0ef8 100644
--- a/src/providers/spatialite/qgsspatialiteprovider.h
+++ b/src/providers/spatialite/qgsspatialiteprovider.h
@@ -258,6 +258,9 @@ class QgsSpatiaLiteProvider: public QgsVectorDataProvider
     /** Loads fields from input file to member attributeFields */
     void loadFields();
 
+    /** For views, try to get primary key from a dedicated meta table */
+    void determineViewPrimaryKey();
+
     /** Check if a table/view has any triggers.  Triggers can be used on views to make them editable.*/
     bool hasTriggers();
 
diff --git a/src/providers/virtual/CMakeLists.txt b/src/providers/virtual/CMakeLists.txt
index c89b2d6..23dcf14 100644
--- a/src/providers/virtual/CMakeLists.txt
+++ b/src/providers/virtual/CMakeLists.txt
@@ -35,6 +35,7 @@ INCLUDE_DIRECTORIES(
 )
 INCLUDE_DIRECTORIES(SYSTEM
   ${POSTGRES_INCLUDE_DIR}
+  ${SQLITE3_INCLUDE_DIR}
   ${SPATIALITE_INCLUDE_DIR}
   ${GEOS_INCLUDE_DIR}
   ${QSCINTILLA_INCLUDE_DIR}
diff --git a/src/providers/virtual/qgsvirtuallayerprovider.cpp b/src/providers/virtual/qgsvirtuallayerprovider.cpp
index 90053f3..1663187 100644
--- a/src/providers/virtual/qgsvirtuallayerprovider.cpp
+++ b/src/providers/virtual/qgsvirtuallayerprovider.cpp
@@ -237,7 +237,7 @@ bool QgsVirtualLayerProvider::createIt()
           continue;
 
         const QgsVectorLayer* vl = static_cast<const QgsVectorLayer*>( l );
-        if (( vl->name() == tname ) || ( vl->id() == tname ) )
+        if (( vl->name() == tname ) || ( vl->name().toLower() == tname.toLower() ) || ( vl->id() == tname ) )
         {
           mDefinition.addSource( tname, vl->id() );
           found = true;
diff --git a/src/providers/wcs/qgswcscapabilities.cpp b/src/providers/wcs/qgswcscapabilities.cpp
index a3abcda..f98af95 100644
--- a/src/providers/wcs/qgswcscapabilities.cpp
+++ b/src/providers/wcs/qgswcscapabilities.cpp
@@ -17,8 +17,6 @@
  *   (at your option) any later version.                                   *
  *                                                                         *
  ***************************************************************************/
-#include <typeinfo>
-
 #include "qgslogger.h"
 #include "qgswcscapabilities.h"
 #include "qgsowsconnection.h"
@@ -32,25 +30,13 @@
 #include "qgsrectangle.h"
 #include "qgscoordinatereferencesystem.h"
 #include "qgsnetworkaccessmanager.h"
-#include <qgsmessageoutput.h>
-#include <qgsmessagelog.h>
+#include "qgsmessageoutput.h"
+#include "qgsmessagelog.h"
 
 #include <QNetworkRequest>
 #include <QNetworkReply>
-#include <QNetworkProxy>
-#include <QNetworkDiskCache>
-
-#include <QUrl>
-#include <QIcon>
-#include <QImage>
-#include <QImageReader>
-#include <QPainter>
-#include <QPixmap>
 #include <QSet>
-#include <QSettings>
 #include <QEventLoop>
-#include <QCoreApplication>
-#include <QTime>
 
 #ifdef _MSC_VER
 #include <float.h>
@@ -175,10 +161,9 @@ bool QgsWcsCapabilities::sendRequest( QString const & url )
   connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ) );
   connect( mCapabilitiesReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( capabilitiesReplyProgress( qint64, qint64 ) ) );
 
-  while ( mCapabilitiesReply )
-  {
-    QCoreApplication::processEvents( QEventLoop::ExcludeUserInputEvents );
-  }
+  QEventLoop loop;
+  connect( this, SIGNAL( downloadFinished() ), &loop, SLOT( quit() ) );
+  loop.exec( QEventLoop::ExcludeUserInputEvents );
 
   if ( mCapabilitiesResponse.isEmpty() )
   {
@@ -271,7 +256,10 @@ bool QgsWcsCapabilities::retrieveServerCapabilities( const QString& preferredVer
 
   QString url = getCapabilitiesUrl( preferredVersion );
 
-  if ( ! sendRequest( url ) ) { return false; }
+  if ( !sendRequest( url ) )
+  {
+    return false;
+  }
 
   QgsDebugMsg( "Converting to Dom." );
 
@@ -325,7 +313,10 @@ bool QgsWcsCapabilities::describeCoverage( QString const &identifier, bool force
 
   QString url = getDescribeCoverageUrl( coverage->identifier );
 
-  if ( ! sendRequest( url ) ) { return false; }
+  if ( !sendRequest( url ) )
+  {
+    return false;
+  }
 
   QgsDebugMsg( "Converting to Dom." );
 
@@ -416,6 +407,8 @@ void QgsWcsCapabilities::capabilitiesReplyFinished()
 
   mCapabilitiesReply->deleteLater();
   mCapabilitiesReply = nullptr;
+
+  emit downloadFinished();
 }
 
 void QgsWcsCapabilities::capabilitiesReplyProgress( qint64 bytesReceived, qint64 bytesTotal )
diff --git a/src/providers/wcs/qgswcscapabilities.h b/src/providers/wcs/qgswcscapabilities.h
index afa8213..c13687e 100644
--- a/src/providers/wcs/qgswcscapabilities.h
+++ b/src/providers/wcs/qgswcscapabilities.h
@@ -206,13 +206,14 @@ class QgsWcsCapabilities : public QObject
     static QStringList domElementsTexts( const QDomElement &element, const QString &path );
 
   signals:
-
     /** \brief emit a signal to notify of a progress event */
     void progressChanged( int theProgress, int theTotalSteps );
 
     /** \brief emit a signal to be caught by qgisapp and display a msg on status bar */
     void statusChanged( QString const &  theStatusQString );
 
+    void downloadFinished();
+
   private slots:
     void capabilitiesReplyFinished();
     void capabilitiesReplyProgress( qint64, qint64 );
diff --git a/src/providers/wcs/qgswcsprovider.cpp b/src/providers/wcs/qgswcsprovider.cpp
index 672782c..cf73afc 100644
--- a/src/providers/wcs/qgswcsprovider.cpp
+++ b/src/providers/wcs/qgswcsprovider.cpp
@@ -3,7 +3,7 @@
                          OGC Web Coverage Service layers
                              -------------------
     begin                : 2 July, 2012
-    copyright            : (C) (C) 2012 by Radim Blazek
+    copyright            : (C) 2012 by Radim Blazek
     email                : radim dot blazek at gmail.com
 
     Based on qgswmsprovider.cpp written by Brendan Morley.
@@ -19,8 +19,6 @@
  *                                                                         *
  ***************************************************************************/
 
-#include <typeinfo>
-
 #include "qgslogger.h"
 #include "qgswcsprovider.h"
 #include "qgscoordinatetransform.h"
@@ -31,20 +29,14 @@
 #include "qgscoordinatereferencesystem.h"
 #include "qgsnetworkaccessmanager.h"
 #include "qgsnetworkreplyparser.h"
-#include "qgsmessageoutput.h"
 #include "qgsmessagelog.h"
 
 #include <QNetworkRequest>
 #include <QNetworkReply>
 #include <QNetworkProxy>
-#include <QNetworkDiskCache>
 
 #include <QUrl>
-#include <QRegExp>
-#include <QSettings>
 #include <QEventLoop>
-#include <QCoreApplication>
-#include <QTime>
 #include <QFile>
 
 #ifdef QGISDEBUG
@@ -1589,14 +1581,6 @@ QString QgsWcsProvider::nodeAttribute( const QDomElement &e, const QString& name
   return defValue;
 }
 
-void QgsWcsProvider::showMessageBox( const QString& title, const QString& text )
-{
-  QgsMessageOutput *message = QgsMessageOutput::createMessageOutput();
-  message->setTitle( title );
-  message->setMessage( text, QgsMessageOutput::MessageText );
-  message->showMessage();
-}
-
 QMap<QString, QString> QgsWcsProvider::supportedMimes()
 {
   QMap<QString, QString> mimes;
@@ -1670,16 +1654,13 @@ QGISEXTERN bool isProvider()
 int QgsWcsDownloadHandler::sErrors = 0;
 
 QgsWcsDownloadHandler::QgsWcsDownloadHandler( const QUrl& url, QgsWcsAuthorization& auth, QNetworkRequest::CacheLoadControl cacheLoadControl, QByteArray& cachedData, const QString& wcsVersion, QgsError& cachedError )
-    : mNAM( new QgsNetworkAccessManager )
-    , mAuth( auth )
+    : mAuth( auth )
     , mEventLoop( new QEventLoop )
     , mCacheReply( nullptr )
     , mCachedData( cachedData )
     , mWcsVersion( wcsVersion )
     , mCachedError( cachedError )
 {
-  mNAM->setupDefaultProxyAndCache();
-
   QNetworkRequest request( url );
   if ( !mAuth.setAuthorization( request ) )
   {
@@ -1690,7 +1671,7 @@ QgsWcsDownloadHandler::QgsWcsDownloadHandler( const QUrl& url, QgsWcsAuthorizati
   request.setAttribute( QNetworkRequest::CacheSaveControlAttribute, true );
   request.setAttribute( QNetworkRequest::CacheLoadControlAttribute, cacheLoadControl );
 
-  mCacheReply = mNAM->get( request );
+  mCacheReply = QgsNetworkAccessManager::instance()->get( request );
   connect( mCacheReply, SIGNAL( finished() ), this, SLOT( cacheReplyFinished() ) );
   connect( mCacheReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( cacheReplyProgress( qint64, qint64 ) ) );
 }
@@ -1698,7 +1679,6 @@ QgsWcsDownloadHandler::QgsWcsDownloadHandler( const QUrl& url, QgsWcsAuthorizati
 QgsWcsDownloadHandler::~QgsWcsDownloadHandler()
 {
   delete mEventLoop;
-  delete mNAM;
 }
 
 void QgsWcsDownloadHandler::blockingDownload()
@@ -1726,7 +1706,7 @@ void QgsWcsDownloadHandler::cacheReplyFinished()
                                    tr( "WCS" ) );
         return;
       }
-      mCacheReply = mNAM->get( request );
+      mCacheReply = QgsNetworkAccessManager::instance()->get( request );
       connect( mCacheReply, SIGNAL( finished() ), this, SLOT( cacheReplyFinished() ) );
       connect( mCacheReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( cacheReplyProgress( qint64, qint64 ) ) );
 
@@ -1890,7 +1870,7 @@ void QgsWcsDownloadHandler::cacheReplyFinished()
 
       mCacheReply->deleteLater();
 
-      mCacheReply = mNAM->get( request );
+      mCacheReply = QgsNetworkAccessManager::instance()->get( request );
       connect( mCacheReply, SIGNAL( finished() ), this, SLOT( cacheReplyFinished() ), Qt::DirectConnection );
       connect( mCacheReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( cacheReplyProgress( qint64, qint64 ) ), Qt::DirectConnection );
 
diff --git a/src/providers/wcs/qgswcsprovider.h b/src/providers/wcs/qgswcsprovider.h
index c40f0d4..8d84cbd 100644
--- a/src/providers/wcs/qgswcsprovider.h
+++ b/src/providers/wcs/qgswcsprovider.h
@@ -211,8 +211,6 @@ class QgsWcsProvider : public QgsRasterDataProvider, QgsGdalProviderBase
     void dataChanged();
 
   private:
-    void showMessageBox( const QString& title, const QString& text );
-
     // case insensitive attribute value lookup
     static QString nodeAttribute( const QDomElement &e, const QString& name, const QString& defValue = QString::null );
 
@@ -433,7 +431,6 @@ class QgsWcsDownloadHandler : public QObject
   protected:
     void finish() { QMetaObject::invokeMethod( mEventLoop, "quit", Qt::QueuedConnection ); }
 
-    QgsNetworkAccessManager* mNAM;
     QgsWcsAuthorization& mAuth;
     QEventLoop* mEventLoop;
 
diff --git a/src/providers/wfs/qgswfsdataitems.cpp b/src/providers/wfs/qgswfsdataitems.cpp
index 6543bff..c3eac87 100644
--- a/src/providers/wfs/qgswfsdataitems.cpp
+++ b/src/providers/wfs/qgswfsdataitems.cpp
@@ -22,6 +22,7 @@
 
 #include <QSettings>
 #include <QCoreApplication>
+#include <QEventLoop>
 
 
 QgsWFSLayerItem::QgsWFSLayerItem( QgsDataItem* parent, QString name, QgsDataSourceURI uri, QString featureType, QString title, QString crsString )
@@ -42,7 +43,6 @@ QgsWFSConnectionItem::QgsWFSConnectionItem( QgsDataItem* parent, QString name, Q
     : QgsDataCollectionItem( parent, name, path )
     , mUri( uri )
     , mCapabilities( nullptr )
-    , mGotCapabilities( false )
 {
   mIconName = "mIconWfs.svg";
 }
@@ -53,21 +53,17 @@ QgsWFSConnectionItem::~QgsWFSConnectionItem()
 
 QVector<QgsDataItem*> QgsWFSConnectionItem::createChildren()
 {
-  mGotCapabilities = false;
-
   QgsDataSourceURI uri;
   uri.setEncodedUri( mUri );
   QgsDebugMsg( "mUri = " + mUri );
 
   mCapabilities = new QgsWFSCapabilities( mUri );
-  connect( mCapabilities, SIGNAL( gotCapabilities() ), this, SLOT( gotCapabilities() ) );
 
   mCapabilities->requestCapabilities();
 
-  while ( !mGotCapabilities )
-  {
-    QCoreApplication::processEvents( QEventLoop::ExcludeUserInputEvents );
-  }
+  QEventLoop loop;
+  connect( mCapabilities, SIGNAL( gotCapabilities() ), &loop, SLOT( quit() ) );
+  loop.exec( QEventLoop::ExcludeUserInputEvents );
 
   QVector<QgsDataItem*> layers;
   if ( mCapabilities->errorCode() == QgsWFSCapabilities::NoError )
@@ -92,11 +88,6 @@ QVector<QgsDataItem*> QgsWFSConnectionItem::createChildren()
   return layers;
 }
 
-void QgsWFSConnectionItem::gotCapabilities()
-{
-  mGotCapabilities = true;
-}
-
 QList<QAction*> QgsWFSConnectionItem::actions()
 {
   QList<QAction*> lst;
diff --git a/src/providers/wfs/qgswfsdataitems.h b/src/providers/wfs/qgswfsdataitems.h
index ade3131..b5e5afb 100644
--- a/src/providers/wfs/qgswfsdataitems.h
+++ b/src/providers/wfs/qgswfsdataitems.h
@@ -52,8 +52,6 @@ class QgsWFSConnectionItem : public QgsDataCollectionItem
     virtual QList<QAction*> actions() override;
 
   private slots:
-    void gotCapabilities();
-
     void editConnection();
     void deleteConnection();
 
@@ -61,7 +59,6 @@ class QgsWFSConnectionItem : public QgsDataCollectionItem
     QString mUri;
 
     QgsWFSCapabilities* mCapabilities;
-    bool mGotCapabilities;
 };
 
 
diff --git a/src/providers/wms/qgswmscapabilities.cpp b/src/providers/wms/qgswmscapabilities.cpp
index 8c09177..edc33fb 100644
--- a/src/providers/wms/qgswmscapabilities.cpp
+++ b/src/providers/wms/qgswmscapabilities.cpp
@@ -1872,7 +1872,6 @@ QgsWmsCapabilitiesDownload::QgsWmsCapabilitiesDownload( bool forceRefresh, QObje
     , mIsAborted( false )
     , mForceRefresh( forceRefresh )
 {
-  connectManager();
 }
 
 QgsWmsCapabilitiesDownload::QgsWmsCapabilitiesDownload( const QString& baseUrl, const QgsWmsAuthorization& auth, bool forceRefresh, QObject *parent )
@@ -1883,17 +1882,6 @@ QgsWmsCapabilitiesDownload::QgsWmsCapabilitiesDownload( const QString& baseUrl,
     , mIsAborted( false )
     , mForceRefresh( forceRefresh )
 {
-  connectManager();
-}
-
-void QgsWmsCapabilitiesDownload::connectManager()
-{
-  // The instance of this class may live on a thread different from QgsNetworkAccessManager instance's thread,
-  // so we cannot call QgsNetworkAccessManager::get() directly and we must send a signal instead.
-  connect( this, SIGNAL( sendRequest( const QNetworkRequest & ) ),
-           QgsNetworkAccessManager::instance(), SLOT( sendGet( const QNetworkRequest & ) ) );
-  connect( this, SIGNAL( deleteReply( QNetworkReply * ) ),
-           QgsNetworkAccessManager::instance(), SLOT( deleteReply( QNetworkReply * ) ) );
 }
 
 QgsWmsCapabilitiesDownload::~QgsWmsCapabilitiesDownload()
@@ -1934,9 +1922,9 @@ bool QgsWmsCapabilitiesDownload::downloadCapabilities()
   request.setAttribute( QNetworkRequest::CacheLoadControlAttribute, mForceRefresh ? QNetworkRequest::AlwaysNetwork : QNetworkRequest::PreferCache );
   request.setAttribute( QNetworkRequest::CacheSaveControlAttribute, true );
 
-  connect( QgsNetworkAccessManager::instance(), SIGNAL( requestSent( QNetworkReply *, QObject * ) ),
-           SLOT( requestSent( QNetworkReply *, QObject * ) ) );
-  emit sendRequest( request );
+  mCapabilitiesReply = QgsNetworkAccessManager::instance()->get( request );
+  connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ), Qt::DirectConnection );
+  connect( mCapabilitiesReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( capabilitiesReplyProgress( qint64, qint64 ) ), Qt::DirectConnection );
 
   QEventLoop loop;
   connect( this, SIGNAL( downloadFinished() ), &loop, SLOT( quit() ) );
@@ -1945,40 +1933,13 @@ bool QgsWmsCapabilitiesDownload::downloadCapabilities()
   return mError.isEmpty();
 }
 
-void QgsWmsCapabilitiesDownload::requestSent( QNetworkReply * reply, QObject *sender )
-{
-  QgsDebugMsg( "Entered" );
-  if ( sender != this ) // it is not our reply
-  {
-    return;
-  }
-  disconnect( QgsNetworkAccessManager::instance(), SIGNAL( requestSent( QNetworkReply *, QObject * ) ),
-              this, SLOT( requestSent( QNetworkReply *, QObject * ) ) );
-
-  if ( !reply )
-  {
-    emit downloadFinished();
-    return;
-  }
-  if ( mIsAborted )
-  {
-    emit deleteReply( reply );
-    emit downloadFinished();
-    return;
-  }
-  // Note: the reply was created on QgsNetworkAccessManager's thread
-  mCapabilitiesReply = reply;
-  connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ), Qt::DirectConnection );
-  connect( mCapabilitiesReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( capabilitiesReplyProgress( qint64, qint64 ) ), Qt::DirectConnection );
-}
-
 void QgsWmsCapabilitiesDownload::abort()
 {
   QgsDebugMsg( "Entered" );
   mIsAborted = true;
   if ( mCapabilitiesReply )
   {
-    emit deleteReply( mCapabilitiesReply );
+    mCapabilitiesReply->deleteLater();
     mCapabilitiesReply = nullptr;
   }
 }
@@ -2029,11 +1990,9 @@ void QgsWmsCapabilitiesDownload::capabilitiesReplyFinished()
           mCapabilitiesReply = nullptr;
 
           QgsDebugMsg( QString( "redirected getcapabilities: %1 forceRefresh=%2" ).arg( redirect.toString() ).arg( mForceRefresh ) );
-          //mCapabilitiesReply = QgsNetworkAccessManager::instance()->get( request );
-          connect( QgsNetworkAccessManager::instance(),
-                   SIGNAL( requestSent( QNetworkReply *, QObject * ) ),
-                   SLOT( requestSent( QNetworkReply *, QObject * ) ) );
-          emit sendRequest( request );
+          mCapabilitiesReply = QgsNetworkAccessManager::instance()->get( request );
+          connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ), Qt::DirectConnection );
+          connect( mCapabilitiesReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( capabilitiesReplyProgress( qint64, qint64 ) ), Qt::DirectConnection );
           return;
         }
       }
diff --git a/src/providers/wms/qgswmscapabilities.h b/src/providers/wms/qgswmscapabilities.h
index 7d5b52c..c0273a9 100644
--- a/src/providers/wms/qgswmscapabilities.h
+++ b/src/providers/wms/qgswmscapabilities.h
@@ -685,11 +685,6 @@ class QgsWmsCapabilities
 
 
 /** Class that handles download of capabilities.
- * Methods of this class may only be called directly from the thread to which instance of the class has affinity.
- * It is possible to connect to abort() slot from another thread however.
- */
-/* The requirement to call methods only from the thread to which this class instance has affinity guarantees that
- * abort() cannot be called in the middle of another method and makes it simple to check if the request was aborted.
  */
 class QgsWmsCapabilitiesDownload : public QObject
 {
@@ -710,8 +705,7 @@ class QgsWmsCapabilitiesDownload : public QObject
 
     QByteArray response() const { return mHttpCapabilitiesResponse; }
 
-  public slots:
-    /** Abort network request immediately */
+    //! Abort network request immediately
     void abort();
 
   signals:
@@ -721,14 +715,7 @@ class QgsWmsCapabilitiesDownload : public QObject
     /** \brief emit a signal once the download is finished */
     void downloadFinished();
 
-    /** Send request via signal/slot to main another thread */
-    void sendRequest( const QNetworkRequest & request );
-
-    /** Abort request through QgsNetworkAccessManager */
-    void deleteReply( QNetworkReply * reply );
-
   protected slots:
-    void requestSent( QNetworkReply * reply, QObject *sender );
     void capabilitiesReplyFinished();
     void capabilitiesReplyProgress( qint64, qint64 );
 
@@ -752,9 +739,6 @@ class QgsWmsCapabilitiesDownload : public QObject
 
     bool mIsAborted;
     bool mForceRefresh;
-
-  private:
-    void connectManager();
 };
 
 
diff --git a/src/providers/wms/qgswmsprovider.cpp b/src/providers/wms/qgswmsprovider.cpp
index dc3b3ba..9df9a3f 100644
--- a/src/providers/wms/qgswmsprovider.cpp
+++ b/src/providers/wms/qgswmsprovider.cpp
@@ -24,10 +24,6 @@
  *                                                                         *
  ***************************************************************************/
 
-#include <QTimer>
-
-#include <typeinfo>
-
 #include "qgslogger.h"
 #include "qgswmsprovider.h"
 #include "qgswmsconnection.h"
@@ -50,27 +46,19 @@
 #include <QNetworkRequest>
 #include <QNetworkReply>
 #include <QNetworkProxy>
-#include <QNetworkDiskCache>
-
-#include <QtXmlPatterns/QXmlSchema>
-#include <QtXmlPatterns/QXmlSchemaValidator>
-
 #include <QUrl>
-#include <QIcon>
 #include <QImage>
 #include <QImageReader>
 #include <QPainter>
-#include <QSet>
 #include <QSettings>
 #include <QEventLoop>
-#include <QCoreApplication>
 #include <QTextCodec>
-#include <QTime>
 #include <QThread>
-
 #include <QScriptEngine>
 #include <QScriptValue>
 #include <QScriptValueIterator>
+#include <QNetworkDiskCache>
+#include <QTimer>
 
 #include <ogr_api.h>
 
@@ -555,10 +543,6 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, in
 
     QgsWmsImageDownloadHandler handler( dataSourceUri(), url, mSettings.authorization(), mCachedImage );
     handler.downloadBlocking();
-
-    //QTime t;
-    //t.start();
-
   }
   else
   {
@@ -3191,14 +3175,11 @@ QgsWmsImageDownloadHandler::QgsWmsImageDownloadHandler( const QString& providerU
     : mProviderUri( providerUri )
     , mCachedImage( image )
     , mEventLoop( new QEventLoop )
-    , mNAM( new QgsNetworkAccessManager )
 {
-  mNAM->setupDefaultProxyAndCache();
-
   QNetworkRequest request( url );
   auth.setAuthorization( request );
   request.setAttribute( QNetworkRequest::CacheSaveControlAttribute, true );
-  mCacheReply = mNAM->get( request );
+  mCacheReply = QgsNetworkAccessManager::instance()->get( request );
   connect( mCacheReply, SIGNAL( finished() ), this, SLOT( cacheReplyFinished() ) );
   connect( mCacheReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( cacheReplyProgress( qint64, qint64 ) ) );
 
@@ -3208,7 +3189,6 @@ QgsWmsImageDownloadHandler::QgsWmsImageDownloadHandler( const QString& providerU
 
 QgsWmsImageDownloadHandler::~QgsWmsImageDownloadHandler()
 {
-  delete mNAM;
   delete mEventLoop;
 }
 
@@ -3229,7 +3209,7 @@ void QgsWmsImageDownloadHandler::cacheReplyFinished()
       mCacheReply->deleteLater();
 
       QgsDebugMsg( QString( "redirected getmap: %1" ).arg( redirect.toString() ) );
-      mCacheReply = mNAM->get( QNetworkRequest( redirect.toUrl() ) );
+      mCacheReply = QgsNetworkAccessManager::instance()->get( QNetworkRequest( redirect.toUrl() ) );
       connect( mCacheReply, SIGNAL( finished() ), this, SLOT( cacheReplyFinished() ) );
       return;
     }
@@ -3333,12 +3313,9 @@ QgsWmsTiledImageDownloadHandler::QgsWmsTiledImageDownloadHandler( const QString&
     , mCachedImage( cachedImage )
     , mCachedViewExtent( cachedViewExtent )
     , mEventLoop( new QEventLoop )
-    , mNAM( new QgsNetworkAccessManager )
     , mTileReqNo( tileReqNo )
     , mSmoothPixmapTransform( smoothPixmapTransform )
 {
-  mNAM->setupDefaultProxyAndCache();
-
   Q_FOREACH ( const TileRequest& r, requests )
   {
     QNetworkRequest request( r.url );
@@ -3350,7 +3327,7 @@ QgsWmsTiledImageDownloadHandler::QgsWmsTiledImageDownloadHandler( const QString&
     request.setAttribute( static_cast<QNetworkRequest::Attribute>( TileRect ), r.rect );
     request.setAttribute( static_cast<QNetworkRequest::Attribute>( TileRetry ), 0 );
 
-    QNetworkReply *reply = mNAM->get( request );
+    QNetworkReply *reply = QgsNetworkAccessManager::instance()->get( request );
     connect( reply, SIGNAL( finished() ), this, SLOT( tileReplyFinished() ) );
 
     mReplies << reply;
@@ -3359,7 +3336,6 @@ QgsWmsTiledImageDownloadHandler::QgsWmsTiledImageDownloadHandler( const QString&
 
 QgsWmsTiledImageDownloadHandler::~QgsWmsTiledImageDownloadHandler()
 {
-  delete mNAM;
   delete mEventLoop;
 }
 
@@ -3393,9 +3369,9 @@ void QgsWmsTiledImageDownloadHandler::tileReplyFinished()
   }
 #endif
 
-  if ( mNAM->cache() )
+  if ( QgsNetworkAccessManager::instance()->cache() )
   {
-    QNetworkCacheMetaData cmd = mNAM->cache()->metaData( reply->request().url() );
+    QNetworkCacheMetaData cmd = QgsNetworkAccessManager::instance()->cache()->metaData( reply->request().url() );
 
     QNetworkCacheMetaData::RawHeaderList hl;
     Q_FOREACH ( const QNetworkCacheMetaData::RawHeader &h, cmd.rawHeaders() )
@@ -3412,7 +3388,7 @@ void QgsWmsTiledImageDownloadHandler::tileReplyFinished()
       cmd.setExpirationDate( QDateTime::currentDateTime().addSecs( s.value( "/qgis/defaultTileExpiry", "24" ).toInt() * 60 * 60 ) );
     }
 
-    mNAM->cache()->updateMetaData( cmd );
+    QgsNetworkAccessManager::instance()->cache()->updateMetaData( cmd );
   }
 
   int tileReqNo = reply->request().attribute( static_cast<QNetworkRequest::Attribute>( TileReqNo ) ).toInt();
@@ -3448,7 +3424,7 @@ void QgsWmsTiledImageDownloadHandler::tileReplyFinished()
       reply->deleteLater();
 
       QgsDebugMsg( QString( "redirected gettile: %1" ).arg( redirect.toString() ) );
-      reply = mNAM->get( request );
+      reply = QgsNetworkAccessManager::instance()->get( request );
       mReplies << reply;
 
       connect( reply, SIGNAL( finished() ), this, SLOT( tileReplyFinished() ) );
@@ -3624,7 +3600,7 @@ void QgsWmsTiledImageDownloadHandler::repeatTileRequest( QNetworkRequest const &
   QgsDebugMsg( QString( "repeat tileRequest %1 %2(retry %3) for url: %4" ).arg( tileReqNo ).arg( tileNo ).arg( retry ).arg( url ) );
   request.setAttribute( static_cast<QNetworkRequest::Attribute>( TileRetry ), retry );
 
-  QNetworkReply *reply = mNAM->get( request );
+  QNetworkReply *reply = QgsNetworkAccessManager::instance()->get( request );
   mReplies << reply;
   connect( reply, SIGNAL( finished() ), this, SLOT( tileReplyFinished() ) );
 }
diff --git a/src/providers/wms/qgswmsprovider.h b/src/providers/wms/qgswmsprovider.h
index d39215b..7e2bed2 100644
--- a/src/providers/wms/qgswmsprovider.h
+++ b/src/providers/wms/qgswmsprovider.h
@@ -589,7 +589,6 @@ class QgsWmsImageDownloadHandler : public QObject
     QImage* mCachedImage;
 
     QEventLoop* mEventLoop;
-    QgsNetworkAccessManager* mNAM;
 };
 
 
@@ -635,7 +634,6 @@ class QgsWmsTiledImageDownloadHandler : public QObject
     QgsRectangle mCachedViewExtent;
 
     QEventLoop* mEventLoop;
-    QgsNetworkAccessManager* mNAM;
 
     int mTileReqNo;
     bool mSmoothPixmapTransform;
diff --git a/src/server/qgsserverprojectparser.cpp b/src/server/qgsserverprojectparser.cpp
index 2f4c282..f81fdb2 100644
--- a/src/server/qgsserverprojectparser.cpp
+++ b/src/server/qgsserverprojectparser.cpp
@@ -231,6 +231,8 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
 
   if ( layer )
   {
+    if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) )
+      QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
     if ( layer->type() == QgsMapLayer::VectorLayer )
       addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
 
@@ -270,11 +272,9 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
     layer->readLayerXML( const_cast<QDomElement&>( elem ) ); //should be changed to const in QgsMapLayer
     //layer->setLayerName( layerName( elem ) );
 
-    if ( layer->type() == QgsMapLayer::VectorLayer )
-    {
-      addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
-    }
-
+    // Insert layer in registry and cache before addValueRelationLayersForLayer
+    if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) )
+      QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
     if ( useCache )
     {
       QgsMSLayerCache::instance()->insertLayer( absoluteUri, id, layer, mProjectPath );
@@ -284,6 +284,11 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
       //todo: fixme
       //mLayersToRemove.push_back( layer );
     }
+
+    if ( layer->type() == QgsMapLayer::VectorLayer )
+    {
+      addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
+    }
   }
   return layer;
 }
diff --git a/src/server/qgswfsprojectparser.cpp b/src/server/qgswfsprojectparser.cpp
index 3675d5a..c09c38b 100644
--- a/src/server/qgswfsprojectparser.cpp
+++ b/src/server/qgswfsprojectparser.cpp
@@ -468,6 +468,8 @@ void QgsWFSProjectParser::describeFeatureType( const QString& aTypeName, QDomEle
           QVariant::Type attributeType = fields[idx].type();
           if ( attributeType == QVariant::Int )
             attElem.setAttribute( "type", "integer" );
+          else if ( attributeType == QVariant::LongLong )
+            attElem.setAttribute( "type", "long" );
           else if ( attributeType == QVariant::Double )
             attElem.setAttribute( "type", "double" );
           else if ( attributeType == QVariant::Bool )
diff --git a/src/ui/composer/qgscomposerpicturewidgetbase.ui b/src/ui/composer/qgscomposerpicturewidgetbase.ui
index 271bc6b..4df6a8f 100644
--- a/src/ui/composer/qgscomposerpicturewidgetbase.ui
+++ b/src/ui/composer/qgscomposerpicturewidgetbase.ui
@@ -23,7 +23,16 @@
    <property name="spacing">
     <number>0</number>
    </property>
-   <property name="margin">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
     <number>0</number>
    </property>
    <item>
@@ -51,9 +60,9 @@
       <property name="geometry">
        <rect>
         <x>0</x>
-        <y>0</y>
+        <y>-127</y>
         <width>314</width>
-        <height>554</height>
+        <height>683</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="mainLayout">
@@ -313,6 +322,127 @@
         </widget>
        </item>
        <item>
+        <widget class="QgsCollapsibleGroupBoxBasic" name="groupBox">
+         <property name="title">
+          <string>SVG Parameters</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_3">
+          <item row="2" column="1">
+           <widget class="QgsDoubleSpinBox" name="mOutlineWidthSpinBox">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>1</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="suffix">
+             <string> mm</string>
+            </property>
+            <property name="decimals">
+             <number>2</number>
+            </property>
+            <property name="maximum">
+             <double>9999.000000000000000</double>
+            </property>
+            <property name="singleStep">
+             <double>0.200000000000000</double>
+            </property>
+            <property name="value">
+             <double>0.200000000000000</double>
+            </property>
+            <property name="showClearButton" stdset="0">
+             <bool>false</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QgsColorButtonV2" name="mOutlineColorButton">
+            <property name="minimumSize">
+             <size>
+              <width>120</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>120</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QgsColorButtonV2" name="mFillColorButton">
+            <property name="minimumSize">
+             <size>
+              <width>120</width>
+              <height>0</height>
+             </size>
+            </property>
+            <property name="maximumSize">
+             <size>
+              <width>120</width>
+              <height>16777215</height>
+             </size>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="mBorderColorLabel">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Outline color</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="mBorderWidthLabel">
+            <property name="text">
+             <string>Outline width</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_6">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Fill color</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="2">
+           <spacer name="horizontalSpacer">
+            <property name="orientation">
+             <enum>Qt::Horizontal</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>40</width>
+              <height>20</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item>
         <widget class="QgsCollapsibleGroupBoxBasic" name="mRotationGroupBox">
          <property name="focusPolicy">
           <enum>Qt::StrongFocus</enum>
@@ -374,6 +504,12 @@
    <extends>QDoubleSpinBox</extends>
    <header>qgsdoublespinbox.h</header>
   </customwidget>
+  <customwidget>
+   <class>QgsColorButtonV2</class>
+   <extends>QToolButton</extends>
+   <header>qgscolorbuttonv2.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <tabstops>
   <tabstop>scrollArea</tabstop>
@@ -388,6 +524,9 @@
   <tabstop>mSearchDirectoriesComboBox</tabstop>
   <tabstop>mRemoveDirectoryButton</tabstop>
   <tabstop>mAddDirectoryButton</tabstop>
+  <tabstop>mFillColorButton</tabstop>
+  <tabstop>mOutlineColorButton</tabstop>
+  <tabstop>mOutlineWidthSpinBox</tabstop>
   <tabstop>mRotationGroupBox</tabstop>
   <tabstop>mPictureRotationSpinBox</tabstop>
   <tabstop>mRotationFromComposerMapCheckBox</tabstop>
diff --git a/src/ui/qgsabout.ui b/src/ui/qgsabout.ui
index f44be6f..e58b219 100644
--- a/src/ui/qgsabout.ui
+++ b/src/ui/qgsabout.ui
@@ -239,6 +239,16 @@ p, li { white-space: pre-wrap; }
             </widget>
            </item>
            <item>
+            <widget class="QLabel" name="label">
+             <property name="text">
+              <string><p>QGIS Splash screen map courtesy of Stadt Essen</p><p>Thanks to the Linux hotel (Essen) for hosting the 2012 and 2014 developer meetings</p></string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+            </widget>
+           </item>
+           <item>
             <spacer name="spacer">
              <property name="orientation">
               <enum>Qt::Vertical</enum>
diff --git a/src/ui/qgsdiagrampropertiesbase.ui b/src/ui/qgsdiagrampropertiesbase.ui
index 8b71860..9ea9ca8 100644
--- a/src/ui/qgsdiagrampropertiesbase.ui
+++ b/src/ui/qgsdiagrampropertiesbase.ui
@@ -342,8 +342,8 @@
                   <rect>
                    <x>0</x>
                    <y>0</y>
-                   <width>630</width>
-                   <height>376</height>
+                   <width>337</width>
+                   <height>113</height>
                   </rect>
                  </property>
                  <layout class="QHBoxLayout" name="horizontalLayout_6">
@@ -765,7 +765,7 @@
                        <item row="5" column="0">
                         <widget class="QLabel" name="mAngleOffsetLabel">
                          <property name="text">
-                          <string>Start Angle</string>
+                          <string>Start angle</string>
                          </property>
                         </widget>
                        </item>
@@ -941,8 +941,8 @@
                   <rect>
                    <x>0</x>
                    <y>0</y>
-                   <width>630</width>
-                   <height>376</height>
+                   <width>525</width>
+                   <height>283</height>
                   </rect>
                  </property>
                  <layout class="QGridLayout" name="gridLayout_11">
@@ -1247,8 +1247,8 @@
                   <rect>
                    <x>0</x>
                    <y>0</y>
-                   <width>630</width>
-                   <height>376</height>
+                   <width>296</width>
+                   <height>303</height>
                   </rect>
                  </property>
                  <layout class="QGridLayout" name="gridLayout_12">
@@ -1609,8 +1609,8 @@
                   <rect>
                    <x>0</x>
                    <y>0</y>
-                   <width>630</width>
-                   <height>376</height>
+                   <width>106</width>
+                   <height>161</height>
                   </rect>
                  </property>
                  <layout class="QVBoxLayout" name="verticalLayout_3">
diff --git a/src/ui/qgsrulebasedrendererv2widget.ui b/src/ui/qgsrulebasedrendererv2widget.ui
index a283c48..2cd64d3 100644
--- a/src/ui/qgsrulebasedrendererv2widget.ui
+++ b/src/ui/qgsrulebasedrendererv2widget.ui
@@ -11,7 +11,16 @@
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="margin">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
     <number>0</number>
    </property>
    <item>
@@ -134,7 +143,7 @@
      <item>
       <widget class="QPushButton" name="btnRenderingOrder">
        <property name="text">
-        <string>Rendering order...</string>
+        <string>Symbol levels...</string>
        </property>
       </widget>
      </item>
diff --git a/tests/src/core/testqgscomposerpicture.cpp b/tests/src/core/testqgscomposerpicture.cpp
index 9e5fc77..92b582c 100644
--- a/tests/src/core/testqgscomposerpicture.cpp
+++ b/tests/src/core/testqgscomposerpicture.cpp
@@ -56,6 +56,8 @@ class TestQgsComposerPicture : public QObject
     void pictureSvgZoomAndResize();
     void pictureSvgFrameToImage();
 
+    void svgParameters();
+
     void pictureExpression();
     void pictureInvalidExpression();
 
@@ -66,6 +68,7 @@ class TestQgsComposerPicture : public QObject
     QString mReport;
     QString mPngImage;
     QString mSvgImage;
+    QString mSvgParamsImage;
 };
 
 TestQgsComposerPicture::TestQgsComposerPicture()
@@ -85,6 +88,7 @@ void TestQgsComposerPicture::initTestCase()
 
   mPngImage = QString( TEST_DATA_DIR ) + "/sample_image.png";
   mSvgImage = QString( TEST_DATA_DIR ) + "/sample_svg.svg";
+  mSvgParamsImage = QString( TEST_DATA_DIR ) + "/svg_params.svg";
 
   mComposition = new QgsComposition( *mMapSettings );
   mComposition->setPaperSize( 297, 210 ); //A4 landscape
@@ -364,6 +368,25 @@ void TestQgsComposerPicture::pictureSvgFrameToImage()
   mComposerPicture->setPicturePath( mPngImage );
 }
 
+void TestQgsComposerPicture::svgParameters()
+{
+  //test rendering an SVG file with parameters
+  mComposition->addComposerPicture( mComposerPicture );
+  mComposerPicture->setResizeMode( QgsComposerPicture::Zoom );
+  mComposerPicture->setPicturePath( mSvgParamsImage );
+  mComposerPicture->setSvgFillColor( QColor( 30, 90, 200, 100 ) );
+  mComposerPicture->setSvgBorderColor( QColor( 255, 45, 20, 200 ) );
+  mComposerPicture->setSvgBorderWidth( 2.2 );
+
+  QgsCompositionChecker checker( "composerpicture_svg_params", mComposition );
+  checker.setControlPathPrefix( "composer_picture" );
+  QVERIFY( checker.testComposition( mReport, 0, 0 ) );
+
+  mComposition->removeItem( mComposerPicture );
+  mComposerPicture->setSceneRect( QRectF( 70, 70, 100, 100 ) );
+  mComposerPicture->setPicturePath( mPngImage );
+}
+
 void TestQgsComposerPicture::pictureExpression()
 {
   //test picture source via expression
diff --git a/tests/src/core/testqgsexpression.cpp b/tests/src/core/testqgsexpression.cpp
index d1a8f28..ad81e47 100644
--- a/tests/src/core/testqgsexpression.cpp
+++ b/tests/src/core/testqgsexpression.cpp
@@ -1243,10 +1243,65 @@ class TestQgsExpression: public QObject
       vPerimeter = exp3.evaluate( &context );
       QCOMPARE( vPerimeter.toDouble(), 26. );
 
+      QgsExpression deprecatedExpXAt( "$x_at(1)" );
+      context.setFeature( fPolygon );
+      QVariant xAt = deprecatedExpXAt.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 10.0 );
+      context.setFeature( fPolyline );
+      xAt = deprecatedExpXAt.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 10.0 );
+
+      QgsExpression deprecatedExpXAtNeg( "$x_at(-2)" );
+      context.setFeature( fPolygon );
+      xAt = deprecatedExpXAtNeg.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 2.0 );
+
+      QgsExpression deprecatedExpYAt( "$y_at(2)" );
+      context.setFeature( fPolygon );
+      QVariant yAt = deprecatedExpYAt.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 6.0 );
+      QgsExpression deprecatedExpYAt2( "$y_at(1)" );
+      context.setFeature( fPolyline );
+      yAt = deprecatedExpYAt2.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 0.0 );
+
+      QgsExpression deprecatedExpYAtNeg( "$y_at(-2)" );
+      context.setFeature( fPolygon );
+      yAt = deprecatedExpYAtNeg.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 6.0 );
+
+      QgsExpression expXAt( "x_at(1)" );
+      context.setFeature( fPolygon );
+      xAt = expXAt.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 10.0 );
+      context.setFeature( fPolyline );
+      xAt = expXAt.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 10.0 );
+
+      QgsExpression expXAtNeg( "x_at(-2)" );
+      context.setFeature( fPolygon );
+      xAt = expXAtNeg.evaluate( &context );
+      QCOMPARE( xAt.toDouble(), 2.0 );
+
+      QgsExpression expYAt( "y_at(2)" );
+      context.setFeature( fPolygon );
+      yAt = expYAt.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 6.0 );
+      QgsExpression expYAt2( "$y_at(1)" );
+      context.setFeature( fPolyline );
+      yAt = expYAt2.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 0.0 );
+
+      QgsExpression expYAtNeg( "y_at(-2)" );
+      context.setFeature( fPolygon );
+      yAt = expYAtNeg.evaluate( &context );
+      QCOMPARE( yAt.toDouble(), 6.0 );
+
       QgsExpression exp4( "bounds_width($geometry)" );
       QVariant vBoundsWidth = exp4.evaluate( &fPolygon );
       QCOMPARE( vBoundsWidth.toDouble(), 8.0 );
 
+      context.setFeature( fPolygon );
       vBoundsWidth = exp4.evaluate( &context );
       QCOMPARE( vBoundsWidth.toDouble(), 8.0 );
 
diff --git a/tests/src/core/testqgsgeometry.cpp b/tests/src/core/testqgsgeometry.cpp
index 19805cd..f0e9663 100644
--- a/tests/src/core/testqgsgeometry.cpp
+++ b/tests/src/core/testqgsgeometry.cpp
@@ -34,6 +34,7 @@
 #include "qgslinestringv2.h"
 #include "qgspolygonv2.h"
 #include "qgscircularstringv2.h"
+#include "qgsgeometrycollectionv2.h"
 
 //qgs unit test utility class
 #include "qgsrenderchecker.h"
@@ -360,6 +361,9 @@ void TestQgsGeometry::isEmpty()
 
   geom.setGeometry( 0 );
   QVERIFY( geom.isEmpty() );
+
+  QgsGeometryCollectionV2 collection;
+  QVERIFY( collection.isEmpty() );
 }
 
 void TestQgsGeometry::pointV2()
diff --git a/tests/src/core/testqgsstylev2.cpp b/tests/src/core/testqgsstylev2.cpp
index 92f0cc1..06c2461 100644
--- a/tests/src/core/testqgsstylev2.cpp
+++ b/tests/src/core/testqgsstylev2.cpp
@@ -65,6 +65,7 @@ class TestStyleV2 : public QObject
     void testCreateColorRamps();
     void testLoadColorRamps();
     void testSaveLoad();
+    void testTags();
 
 };
 
@@ -255,5 +256,114 @@ void TestStyleV2::testSaveLoad()
   testLoadColorRamps();
 }
 
+void TestStyleV2::testTags()
+{
+  mStyle->clear();
+  //add some tags
+  int id = mStyle->addTag( "red" );
+  QCOMPARE( id, mStyle->tagId( "red" ) );
+  id = mStyle->addTag( "starry" );
+  QCOMPARE( id, mStyle->tagId( "starry" ) );
+  id = mStyle->addTag( "circle" );
+  QCOMPARE( id, mStyle->tagId( "circle" ) );
+  id = mStyle->addTag( "blue" );
+  QCOMPARE( id, mStyle->tagId( "blue" ) );
+  id = mStyle->addTag( "purple" );
+  QCOMPARE( id, mStyle->tagId( "purple" ) );
+
+  QStringList tags = mStyle->tags();
+  QCOMPARE( tags.count(), 5 );
+  QVERIFY( tags.contains( "red" ) );
+  QVERIFY( tags.contains( "starry" ) );
+  QVERIFY( tags.contains( "circle" ) );
+  QVERIFY( tags.contains( "blue" ) );
+  QVERIFY( tags.contains( "purple" ) );
+
+  //remove tag
+  mStyle->remove( QgsStyleV2::TagEntity, mStyle->tagId( "purple" ) );
+  mStyle->remove( QgsStyleV2::TagEntity, -999 ); //bad id
+  tags = mStyle->tags();
+  QCOMPARE( tags.count(), 4 );
+  QVERIFY( !tags.contains( "purple" ) );
+
+  //add some symbols
+  QVERIFY( mStyle->saveSymbol( "symbol1", QgsMarkerSymbolV2::createSimple( QgsStringMap() ), 0, QStringList() << "red" << "starry" ) );
+  mStyle->addSymbol( "blue starry", QgsMarkerSymbolV2::createSimple( QgsStringMap() ), true );
+  mStyle->addSymbol( "red circle", QgsMarkerSymbolV2::createSimple( QgsStringMap() ), true );
+
+  //tag them
+  QVERIFY( mStyle->tagSymbol( QgsStyleV2::SymbolEntity, "blue starry", QStringList() << "blue" << "starry" ) );
+  QVERIFY( mStyle->tagSymbol( QgsStyleV2::SymbolEntity, "red circle", QStringList() << "red" << "circle" ) );
+  //bad symbol name
+  QVERIFY( !mStyle->tagSymbol( QgsStyleV2::SymbolEntity, "no symbol", QStringList() << "red" << "circle" ) );
+  //tag which hasn't been added yet
+  QVERIFY( mStyle->tagSymbol( QgsStyleV2::SymbolEntity, "red circle", QStringList() << "round" ) );
+  tags = mStyle->tags();
+  QVERIFY( tags.contains( "round" ) );
+
+  //check that tags have been applied
+  tags = mStyle->tagsOfSymbol( QgsStyleV2::SymbolEntity, "blue starry" );
+  QCOMPARE( tags.count(), 2 );
+  QVERIFY( tags.contains( "blue" ) );
+  QVERIFY( tags.contains( "starry" ) );
+  tags = mStyle->tagsOfSymbol( QgsStyleV2::SymbolEntity, "red circle" );
+  QCOMPARE( tags.count(), 3 );
+  QVERIFY( tags.contains( "red" ) );
+  QVERIFY( tags.contains( "circle" ) );
+  QVERIFY( tags.contains( "round" ) );
+  tags = mStyle->tagsOfSymbol( QgsStyleV2::SymbolEntity, "symbol1" );
+  QCOMPARE( tags.count(), 2 );
+  QVERIFY( tags.contains( "red" ) );
+  QVERIFY( tags.contains( "starry" ) );
+
+  //remove a tag, including a non-present tag
+  QVERIFY( mStyle->detagSymbol( QgsStyleV2::SymbolEntity, "blue starry", QStringList() << "bad" << "blue" ) );
+  tags = mStyle->tagsOfSymbol( QgsStyleV2::SymbolEntity, "blue starry" );
+  QCOMPARE( tags.count(), 1 );
+  QVERIFY( tags.contains( "starry" ) );
+
+  //try to remove tag from non-existing symbol
+  QVERIFY( !mStyle->detagSymbol( QgsStyleV2::SymbolEntity, "no symbol!", QStringList() << "bad" << "blue" ) );
+
+  //check symbols with tag
+  QStringList symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "red" ) );
+  QCOMPARE( symbols.count(), 2 );
+  QVERIFY( symbols.contains( "symbol1" ) );
+  QVERIFY( symbols.contains( "red circle" ) );
+  symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "starry" ) );
+  QCOMPARE( symbols.count(), 2 );
+  QVERIFY( symbols.contains( "symbol1" ) );
+  QVERIFY( symbols.contains( "blue starry" ) );
+  symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "circle" ) );
+  QCOMPARE( symbols.count(), 1 );
+  QVERIFY( symbols.contains( "red circle" ) );
+  symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "round" ) );
+  QCOMPARE( symbols.count(), 1 );
+  QVERIFY( symbols.contains( "red circle" ) );
+  symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "blue" ) );
+  QVERIFY( symbols.isEmpty() );
+  symbols = mStyle->symbolsWithTag( QgsStyleV2::SymbolEntity, mStyle->tagId( "no tag" ) );
+  QVERIFY( symbols.isEmpty() );
+
+  //searching returns symbols with matching tags
+  symbols = mStyle->findSymbols( QgsStyleV2::SymbolEntity, "red" );
+  QCOMPARE( symbols.count(), 2 );
+  QVERIFY( symbols.contains( "symbol1" ) );
+  QVERIFY( symbols.contains( "red circle" ) );
+  symbols = mStyle->findSymbols( QgsStyleV2::SymbolEntity, "symbol1" );
+  QCOMPARE( symbols.count(), 1 );
+  QVERIFY( symbols.contains( "symbol1" ) );
+  symbols = mStyle->findSymbols( QgsStyleV2::SymbolEntity, "starry" );
+  QCOMPARE( symbols.count(), 2 );
+  QVERIFY( symbols.contains( "symbol1" ) );
+  QVERIFY( symbols.contains( "blue starry" ) );
+  symbols = mStyle->findSymbols( QgsStyleV2::SymbolEntity, "blue" );
+  QCOMPARE( symbols.count(), 1 );
+  QVERIFY( symbols.contains( "blue starry" ) );
+  symbols = mStyle->findSymbols( QgsStyleV2::SymbolEntity, "round" );
+  QCOMPARE( symbols.count(), 1 );
+  QVERIFY( symbols.contains( "red circle" ) );
+}
+
 QTEST_MAIN( TestStyleV2 )
 #include "testqgsstylev2.moc"
diff --git a/tests/src/providers/testqgswcspublicservers.cpp b/tests/src/providers/testqgswcspublicservers.cpp
index a2589b6..abdcdc7 100644
--- a/tests/src/providers/testqgswcspublicservers.cpp
+++ b/tests/src/providers/testqgswcspublicservers.cpp
@@ -78,7 +78,7 @@ void TestQgsWcsPublicServers::init()
   // Unfortunately this seems to be the only way to set timeout, we try to reset it
   // at the end but it can be canceled before ...
   QSettings settings;
-  mOrigTimeout = settings.value( "/qgis/networkAndProxy/networkTimeout", "20000" ).toInt();
+  mOrigTimeout = settings.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt();
   settings.setValue( "/qgis/networkAndProxy/networkTimeout", mTimeout );
 
   //mCacheDir = QDir( "./wcstestcache" );
diff --git a/tests/src/python/providertestbase.py b/tests/src/python/providertestbase.py
index 7b8707e..26e6d86 100644
--- a/tests/src/python/providertestbase.py
+++ b/tests/src/python/providertestbase.py
@@ -384,3 +384,14 @@ class ProviderTestCase(object):
 
         # Test rewinding closed iterator
         self.assertFalse(f_it.rewind(), 'Rewinding closed iterator successful, should not be allowed')
+
+    def testGetFeaturesSubsetAttributes(self):
+        """ Test that expected results are returned when using subsets of attributes """
+
+        tests = {'pk': set([1, 2, 3, 4, 5]),
+                 'cnt': set([-200, 300, 100, 200, 400]),
+                 'name': set(['Pear', 'Orange', 'Apple', 'Honey', NULL]),
+                 'name2': set(['NuLl', 'PEaR', 'oranGe', 'Apple', 'Honey'])}
+        for field, expected in tests.iteritems():
+            result = set([f[field] for f in self.provider.getFeatures(QgsFeatureRequest().setSubsetOfAttributes([field], self.provider.fields()))])
+            self.assertEqual(result, expected, 'Expected {}, got {}'.format(expected, result))
diff --git a/tests/src/python/test_provider_memory.py b/tests/src/python/test_provider_memory.py
index ba2f949..3165a56 100644
--- a/tests/src/python/test_provider_memory.py
+++ b/tests/src/python/test_provider_memory.py
@@ -227,6 +227,7 @@ class TestPyQgsMemoryProvider(unittest.TestCase, ProviderTestCase):
 
         # Add some fields to the layer
         myFields = [QgsField('TestInt', QVariant.Int, 'integer', 2, 0),
+                    QgsField('TestLong', QVariant.LongLong, 'long', -1, 0),
                     QgsField('TestDbl', QVariant.Double, 'double', 8, 6),
                     QgsField('TestString', QVariant.String, 'string', 50, 0),
                     QgsField('TestDate', QVariant.Date, 'date'),
diff --git a/tests/src/python/test_provider_spatialite.py b/tests/src/python/test_provider_spatialite.py
index 3d91897..ef7ca26 100644
--- a/tests/src/python/test_provider_spatialite.py
+++ b/tests/src/python/test_provider_spatialite.py
@@ -14,6 +14,7 @@ __revision__ = '$Format:%H$'
 
 import qgis
 import os
+import shutil
 import tempfile
 
 from qgis.core import QgsVectorLayer, QgsPoint, QgsFeature
@@ -202,6 +203,16 @@ class TestQgsSpatialiteProvider(unittest.TestCase, ProviderTestCase):
         fields = [f.name() for f in l.dataProvider().fields()]
         assert('Geometry' not in fields)
 
+    def test_invalid_iterator(self):
+        """ Test invalid iterator """
+        corrupt_dbname = self.dbname + '.corrupt'
+        shutil.copy(self.dbname, corrupt_dbname)
+        layer = QgsVectorLayer("dbname=%s table=test_pg (geometry)" % corrupt_dbname, "test_pg", "spatialite")
+        # Corrupt the database
+        open(corrupt_dbname, 'wb').write('')
+        layer.getFeatures()
+        layer = None
+        os.unlink(corrupt_dbname)
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_qgsgeometry.py b/tests/src/python/test_qgsgeometry.py
index ac99c95..7938146 100644
--- a/tests/src/python/test_qgsgeometry.py
+++ b/tests/src/python/test_qgsgeometry.py
@@ -1658,6 +1658,21 @@ class TestQgsGeometry(unittest.TestCase):
         wkt = c.exportToWkt()
         assert compareWkt(expWkt, wkt), "testRegression13274 failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
 
+    def testReshape(self):
+        """ Test geometry reshaping """
+        g = QgsGeometry.fromWkt('Polygon ((0 0, 1 0, 1 1, 0 1, 0 0))')
+        g.reshapeGeometry([QgsPoint(0, 1.5), QgsPoint(1.5, 0)])
+        expWkt = 'Polygon ((0.5 1, 0 1, 0 0, 1 0, 1 0.5, 0.5 1))'
+        wkt = g.exportToWkt()
+        assert compareWkt(expWkt, wkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
+
+        # Test reshape a geometry involving the first/last vertex (http://hub.qgis.org/issues/14443)
+        g.reshapeGeometry([QgsPoint(0.5, 1), QgsPoint(0, 0.5)])
+
+        expWkt = 'Polygon ((0 0.5, 0 0, 1 0, 1 0.5, 0.5 1, 0 0.5))'
+        wkt = g.exportToWkt()
+        assert compareWkt(expWkt, wkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
+
     def testConvertToMultiType(self):
         """ Test converting geometries to multi type """
         point = QgsGeometry.fromWkt('Point (1 2)')
diff --git a/tests/src/python/test_qgsserver.py b/tests/src/python/test_qgsserver.py
index a91f4d8..d41c8da 100644
--- a/tests/src/python/test_qgsserver.py
+++ b/tests/src/python/test_qgsserver.py
@@ -21,6 +21,7 @@ from qgis.server import QgsServer
 from qgis.core import QgsMessageLog
 from qgis.testing import unittest
 from utilities import unitTestDataPath
+import osgeo.gdal
 
 # Strip path and content length because path may vary
 RE_STRIP_PATH = r'MAP=[^&]+|Content-Length: \d+'
@@ -163,6 +164,11 @@ class TestQgsServer(unittest.TestCase):
         """
         response = re.sub(RE_STRIP_PATH, '', response)
         expected = re.sub(RE_STRIP_PATH, '', expected)
+
+        # for older GDAL versions (<2.0), id field will be integer type
+        if int(osgeo.gdal.VersionInfo()[:1]) < 2:
+            expected = expected.replace('typeName="Integer64" precision="0" length="10" editType="TextEdit" type="qlonglong"', 'typeName="Integer" precision="0" length="10" editType="TextEdit" type="int"')
+
         self.assertEqual(response, expected, msg="request %s failed.\n Query: %s\n Expected:\n%s\n\n Response:\n%s" % (query_string, request, expected, response))
 
     def test_project_wms(self):
@@ -240,10 +246,15 @@ class TestQgsServer(unittest.TestCase):
         """
         response = re.sub(RE_STRIP_PATH, '', response)
         expected = re.sub(RE_STRIP_PATH, '', expected)
+
+        # for older GDAL versions (<2.0), id field will be integer type
+        if int(osgeo.gdal.VersionInfo()[:1]) < 2:
+            expected = expected.replace('<element type="long" name="id"/>', '<element type="integer" name="id"/>')
+
         self.assertEqual(response, expected, msg="request %s failed.\n Query: %s\n Expected:\n%s\n\n Response:\n%s" % (query_string, request, expected, response))
 
     def test_project_wfs(self):
-        """Test some WMS request"""
+        """Test some WFS request"""
         for request in ('GetCapabilities', 'DescribeFeatureType'):
             self.wfs_request_compare(request)
 
diff --git a/tests/testdata/control_images/atlas/expected_atlas_autoscale1/expected_atlas_autoscale1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_autoscale1/expected_atlas_autoscale1_mask.png
index 4ac67fe..8874fda 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_autoscale1/expected_atlas_autoscale1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_autoscale1/expected_atlas_autoscale1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_autoscale2/expected_atlas_autoscale2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_autoscale2/expected_atlas_autoscale2_mask.png
index f6d1740..a5ae11d 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_autoscale2/expected_atlas_autoscale2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_autoscale2/expected_atlas_autoscale2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api1/expected_atlas_autoscale_old_api1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api1/expected_atlas_autoscale_old_api1_mask.png
index 4ac67fe..8874fda 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api1/expected_atlas_autoscale_old_api1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api1/expected_atlas_autoscale_old_api1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api2/expected_atlas_autoscale_old_api2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api2/expected_atlas_autoscale_old_api2_mask.png
index f6d1740..a5ae11d 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api2/expected_atlas_autoscale_old_api2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_autoscale_old_api2/expected_atlas_autoscale_old_api2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_filtering1/expected_atlas_filtering1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_filtering1/expected_atlas_filtering1_mask.png
index 292aa42..cb5603d 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_filtering1/expected_atlas_filtering1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_filtering1/expected_atlas_filtering1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_fixedscale1/expected_atlas_fixedscale1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_fixedscale1/expected_atlas_fixedscale1_mask.png
index 8b1a51d..3e8ce88 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_fixedscale1/expected_atlas_fixedscale1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_fixedscale1/expected_atlas_fixedscale1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_fixedscale2/expected_atlas_fixedscale2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_fixedscale2/expected_atlas_fixedscale2_mask.png
index 1261657..61e74c4 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_fixedscale2/expected_atlas_fixedscale2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_fixedscale2/expected_atlas_fixedscale2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api1/expected_atlas_fixedscale_old_api1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api1/expected_atlas_fixedscale_old_api1_mask.png
index 8b1a51d..3e8ce88 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api1/expected_atlas_fixedscale_old_api1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api1/expected_atlas_fixedscale_old_api1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api2/expected_atlas_fixedscale_old_api2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api2/expected_atlas_fixedscale_old_api2_mask.png
index 1261657..61e74c4 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api2/expected_atlas_fixedscale_old_api2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_fixedscale_old_api2/expected_atlas_fixedscale_old_api2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_hiding1/expected_atlas_hiding1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_hiding1/expected_atlas_hiding1_mask.png
index 8e16c42..ce7408e 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_hiding1/expected_atlas_hiding1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_hiding1/expected_atlas_hiding1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_hiding2/expected_atlas_hiding2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_hiding2/expected_atlas_hiding2_mask.png
index 9493726..3124a44 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_hiding2/expected_atlas_hiding2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_hiding2/expected_atlas_hiding2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_predefinedscales1/expected_atlas_predefinedscales1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_predefinedscales1/expected_atlas_predefinedscales1_mask.png
index 0f214ce..59d1c39 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_predefinedscales1/expected_atlas_predefinedscales1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_predefinedscales1/expected_atlas_predefinedscales1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_predefinedscales2/expected_atlas_predefinedscales2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_predefinedscales2/expected_atlas_predefinedscales2_mask.png
index d030f62..28301cb 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_predefinedscales2/expected_atlas_predefinedscales2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_predefinedscales2/expected_atlas_predefinedscales2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_sorting1/expected_atlas_sorting1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_sorting1/expected_atlas_sorting1_mask.png
index e9ff702..221b9c8 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_sorting1/expected_atlas_sorting1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_sorting1/expected_atlas_sorting1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_sorting2/expected_atlas_sorting2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_sorting2/expected_atlas_sorting2_mask.png
index ad9a2c1..4477a1d 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_sorting2/expected_atlas_sorting2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_sorting2/expected_atlas_sorting2_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_two_maps1/expected_atlas_two_maps1_mask.png b/tests/testdata/control_images/atlas/expected_atlas_two_maps1/expected_atlas_two_maps1_mask.png
index e361be4..f619da6 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_two_maps1/expected_atlas_two_maps1_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_two_maps1/expected_atlas_two_maps1_mask.png differ
diff --git a/tests/testdata/control_images/atlas/expected_atlas_two_maps2/expected_atlas_two_maps2_mask.png b/tests/testdata/control_images/atlas/expected_atlas_two_maps2/expected_atlas_two_maps2_mask.png
index 981456d..3ce2c20 100644
Binary files a/tests/testdata/control_images/atlas/expected_atlas_two_maps2/expected_atlas_two_maps2_mask.png and b/tests/testdata/control_images/atlas/expected_atlas_two_maps2/expected_atlas_two_maps2_mask.png differ
diff --git a/tests/testdata/control_images/composer_items/expected_composerrotation_label/expected_composerrotation_label_mask.png b/tests/testdata/control_images/composer_items/expected_composerrotation_label/expected_composerrotation_label_mask.png
index 36f38ed..ff647ce 100644
Binary files a/tests/testdata/control_images/composer_items/expected_composerrotation_label/expected_composerrotation_label_mask.png and b/tests/testdata/control_images/composer_items/expected_composerrotation_label/expected_composerrotation_label_mask.png differ
diff --git a/tests/testdata/control_images/composer_items/expected_composerrotation_maprotation/expected_composerrotation_maprotation_mask.png b/tests/testdata/control_images/composer_items/expected_composerrotation_maprotation/expected_composerrotation_maprotation_mask.png
new file mode 100644
index 0000000..b529c13
Binary files /dev/null and b/tests/testdata/control_images/composer_items/expected_composerrotation_maprotation/expected_composerrotation_maprotation_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated/expected_composermap_exteriorticks_annotated_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated/expected_composermap_exteriorticks_annotated_mask.png
index 27d257d..8b711c3 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated/expected_composermap_exteriorticks_annotated_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated/expected_composermap_exteriorticks_annotated_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated2/expected_composermap_exteriorticks_annotated2_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated2/expected_composermap_exteriorticks_annotated2_mask.png
index beb1be2..eab04e5 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated2/expected_composermap_exteriorticks_annotated2_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_exteriorticks_annotated2/expected_composermap_exteriorticks_annotated2_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_filteredannotations/expected_composermap_filteredannotations_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_filteredannotations/expected_composermap_filteredannotations_mask.png
index f1ab14a..9a9bbd9 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_filteredannotations/expected_composermap_filteredannotations_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_filteredannotations/expected_composermap_filteredannotations_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated/expected_composermap_interiorexteriorticks_annotated_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated/expected_composermap_interiorexteriorticks_annotated_mask.png
index 7b3f273..70dc3cf 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated/expected_composermap_interiorexteriorticks_annotated_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated/expected_composermap_interiorexteriorticks_annotated_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated2/expected_composermap_interiorexteriorticks_annotated2_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated2/expected_composermap_interiorexteriorticks_annotated2_mask.png
index beb1be2..eab04e5 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated2/expected_composermap_interiorexteriorticks_annotated2_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorexteriorticks_annotated2/expected_composermap_interiorexteriorticks_annotated2_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated/expected_composermap_interiorticks_annotated_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated/expected_composermap_interiorticks_annotated_mask.png
index 7b3f273..70dc3cf 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated/expected_composermap_interiorticks_annotated_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated/expected_composermap_interiorticks_annotated_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated2/expected_composermap_interiorticks_annotated2_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated2/expected_composermap_interiorticks_annotated2_mask.png
index 9f6c899..6f96ca0 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated2/expected_composermap_interiorticks_annotated2_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_interiorticks_annotated2/expected_composermap_interiorticks_annotated2_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated/expected_composermap_lineborder_annotated_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated/expected_composermap_lineborder_annotated_mask.png
index 5bc0011..881ed8b 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated/expected_composermap_lineborder_annotated_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated/expected_composermap_lineborder_annotated_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated2/expected_composermap_lineborder_annotated2_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated2/expected_composermap_lineborder_annotated2_mask.png
index a0adabd..ae4adaf 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated2/expected_composermap_lineborder_annotated2_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_lineborder_annotated2/expected_composermap_lineborder_annotated2_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_rotatedannotations/expected_composermap_rotatedannotations_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_rotatedannotations/expected_composermap_rotatedannotations_mask.png
index 4d91026..d287aa3 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_rotatedannotations/expected_composermap_rotatedannotations_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_rotatedannotations/expected_composermap_rotatedannotations_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_inside/expected_composermap_verticaldescending_inside_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_inside/expected_composermap_verticaldescending_inside_mask.png
index 4b24e5f..442394b 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_inside/expected_composermap_verticaldescending_inside_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_inside/expected_composermap_verticaldescending_inside_mask.png differ
diff --git a/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_outside/expected_composermap_verticaldescending_outside_mask.png b/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_outside/expected_composermap_verticaldescending_outside_mask.png
index abb4644..22ce458 100644
Binary files a/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_outside/expected_composermap_verticaldescending_outside_mask.png and b/tests/testdata/control_images/composer_mapgrid/expected_composermap_verticaldescending_outside/expected_composermap_verticaldescending_outside_mask.png differ
diff --git a/tests/testdata/control_images/composer_picture/expected_composerpicture_svg_params/expected_composerpicture_svg_params.png b/tests/testdata/control_images/composer_picture/expected_composerpicture_svg_params/expected_composerpicture_svg_params.png
new file mode 100644
index 0000000..e477e40
Binary files /dev/null and b/tests/testdata/control_images/composer_picture/expected_composerpicture_svg_params/expected_composerpicture_svg_params.png differ
diff --git a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_doublebox/expected_composerscalebar_doublebox_mask.png b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_doublebox/expected_composerscalebar_doublebox_mask.png
index 2609c54..e76e54e 100644
Binary files a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_doublebox/expected_composerscalebar_doublebox_mask.png and b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_doublebox/expected_composerscalebar_doublebox_mask.png differ
diff --git a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_numeric/expected_composerscalebar_numeric_mask.png b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_numeric/expected_composerscalebar_numeric_mask.png
index e4bb3f2..cffe085 100644
Binary files a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_numeric/expected_composerscalebar_numeric_mask.png and b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_numeric/expected_composerscalebar_numeric_mask.png differ
diff --git a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_singlebox/expected_composerscalebar_singlebox_mask.png b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_singlebox/expected_composerscalebar_singlebox_mask.png
index 8d18912..129a961 100644
Binary files a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_singlebox/expected_composerscalebar_singlebox_mask.png and b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_singlebox/expected_composerscalebar_singlebox_mask.png differ
diff --git a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_tick/expected_composerscalebar_tick_mask.png b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_tick/expected_composerscalebar_tick_mask.png
index a7e048c..38e2cd2 100644
Binary files a/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_tick/expected_composerscalebar_tick_mask.png and b/tests/testdata/control_images/composer_scalebar/expected_composerscalebar_tick/expected_composerscalebar_tick_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_align/expected_composerattributetable_align_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_align/expected_composerattributetable_align_mask.png
index 898a4bf..4d48661 100755
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_align/expected_composerattributetable_align_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_align/expected_composerattributetable_align_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_autowrap/expected_composerattributetable_autowrap_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_autowrap/expected_composerattributetable_autowrap_mask.png
index 30c63cb..f2c92d2 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_autowrap/expected_composerattributetable_autowrap_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_autowrap/expected_composerattributetable_autowrap_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_cellstyle/expected_composerattributetable_cellstyle_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_cellstyle/expected_composerattributetable_cellstyle_mask.png
index 36bd62f..1c1571d 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_cellstyle/expected_composerattributetable_cellstyle_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_cellstyle/expected_composerattributetable_cellstyle_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_columnwidth/expected_composerattributetable_columnwidth_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_columnwidth/expected_composerattributetable_columnwidth_mask.png
index cc95322..43a28a2 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_columnwidth/expected_composerattributetable_columnwidth_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_columnwidth/expected_composerattributetable_columnwidth_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_drawempty/expected_composerattributetable_drawempty_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_drawempty/expected_composerattributetable_drawempty_mask.png
index 42fe686..1ae66f2 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_drawempty/expected_composerattributetable_drawempty_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_drawempty/expected_composerattributetable_drawempty_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_headersonly/expected_composerattributetable_headersonly_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_headersonly/expected_composerattributetable_headersonly_mask.png
index 73f629d..d96fbd6 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_headersonly/expected_composerattributetable_headersonly_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_headersonly/expected_composerattributetable_headersonly_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_multiline/expected_composerattributetable_multiline_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_multiline/expected_composerattributetable_multiline_mask.png
index 7f3c2ff..524ee42 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_multiline/expected_composerattributetable_multiline_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_multiline/expected_composerattributetable_multiline_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_render/expected_composerattributetable_render_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_render/expected_composerattributetable_render_mask.png
index c206dc4..460014a 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_render/expected_composerattributetable_render_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_render/expected_composerattributetable_render_mask.png differ
diff --git a/tests/testdata/control_images/composer_table/expected_composerattributetable_showmessage/expected_composerattributetable_showmessage_mask.png b/tests/testdata/control_images/composer_table/expected_composerattributetable_showmessage/expected_composerattributetable_showmessage_mask.png
index f8a81ee..0bc9364 100644
Binary files a/tests/testdata/control_images/composer_table/expected_composerattributetable_showmessage/expected_composerattributetable_showmessage_mask.png and b/tests/testdata/control_images/composer_table/expected_composerattributetable_showmessage/expected_composerattributetable_showmessage_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_basic/expected_legend_basic_mask.png b/tests/testdata/control_images/legend/expected_legend_basic/expected_legend_basic_mask.png
index 48ff6e5..52f5ef1 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_basic/expected_legend_basic_mask.png and b/tests/testdata/control_images/legend/expected_legend_basic/expected_legend_basic_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_big_marker/expected_legend_big_marker_mask.png b/tests/testdata/control_images/legend/expected_legend_big_marker/expected_legend_big_marker_mask.png
index 6ac3e14..135770c 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_big_marker/expected_legend_big_marker_mask.png and b/tests/testdata/control_images/legend/expected_legend_big_marker/expected_legend_big_marker_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_filter_by_expression/expected_legend_filter_by_expression_mask.png b/tests/testdata/control_images/legend/expected_legend_filter_by_expression/expected_legend_filter_by_expression_mask.png
index 670fac0..239d050 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_filter_by_expression/expected_legend_filter_by_expression_mask.png and b/tests/testdata/control_images/legend/expected_legend_filter_by_expression/expected_legend_filter_by_expression_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_filter_by_map/expected_legend_filter_by_map_mask.png b/tests/testdata/control_images/legend/expected_legend_filter_by_map/expected_legend_filter_by_map_mask.png
index 73cd9ff..4f0a269 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_filter_by_map/expected_legend_filter_by_map_mask.png and b/tests/testdata/control_images/legend/expected_legend_filter_by_map/expected_legend_filter_by_map_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_filter_by_map_dupe/expected_legend_filter_by_map_dupe_mask.png b/tests/testdata/control_images/legend/expected_legend_filter_by_map_dupe/expected_legend_filter_by_map_dupe_mask.png
index a5a2e8d..3f6a2b7 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_filter_by_map_dupe/expected_legend_filter_by_map_dupe_mask.png and b/tests/testdata/control_images/legend/expected_legend_filter_by_map_dupe/expected_legend_filter_by_map_dupe_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_filter_by_polygon/expected_legend_filter_by_polygon_mask.png b/tests/testdata/control_images/legend/expected_legend_filter_by_polygon/expected_legend_filter_by_polygon_mask.png
index 670fac0..239d050 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_filter_by_polygon/expected_legend_filter_by_polygon_mask.png and b/tests/testdata/control_images/legend/expected_legend_filter_by_polygon/expected_legend_filter_by_polygon_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_long_symbol_text/expected_legend_long_symbol_text_mask.png b/tests/testdata/control_images/legend/expected_legend_long_symbol_text/expected_legend_long_symbol_text_mask.png
index 308ca02..ebe1fb3 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_long_symbol_text/expected_legend_long_symbol_text_mask.png and b/tests/testdata/control_images/legend/expected_legend_long_symbol_text/expected_legend_long_symbol_text_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_raster_border/expected_legend_raster_border_mask.png b/tests/testdata/control_images/legend/expected_legend_raster_border/expected_legend_raster_border_mask.png
index 6eea4de..fce1c35 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_raster_border/expected_legend_raster_border_mask.png and b/tests/testdata/control_images/legend/expected_legend_raster_border/expected_legend_raster_border_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_three_columns/expected_legend_three_columns_mask.png b/tests/testdata/control_images/legend/expected_legend_three_columns/expected_legend_three_columns_mask.png
index 4ca557f..0b50ada 100644
Binary files a/tests/testdata/control_images/legend/expected_legend_three_columns/expected_legend_three_columns_mask.png and b/tests/testdata/control_images/legend/expected_legend_three_columns/expected_legend_three_columns_mask.png differ
diff --git a/tests/testdata/provider/testdata_mssql.sql b/tests/testdata/provider/testdata_mssql.sql
index 2f4b9f2..ac03a13 100644
--- a/tests/testdata/provider/testdata_mssql.sql
+++ b/tests/testdata/provider/testdata_mssql.sql
@@ -5,6 +5,7 @@ CREATE TABLE qgis_test.[someData] (
     cnt integer,
     name nvarchar(max) DEFAULT 'qgis',
     name2 nvarchar(max) DEFAULT 'qgis',
+    num_char nvarchar(max),
     geom geometry
 );
 
@@ -20,12 +21,12 @@ CREATE TABLE qgis_test.[date_times] (
        datetime_field datetime
 );
 
-INSERT INTO qgis_test.[someData] (pk, cnt, name, name2, geom) VALUES
-(5, -200, NULL, 'NuLl', geometry::STGeomFromText( 'Point(-71.123 78.23)', 4326 )),
-(3,  300, 'Pear', 'PEaR', NULL),
-(1,  100, 'Orange', 'oranGe', geometry::STGeomFromText( 'Point(-70.332 66.33)', 4326 )),
-(2,  200, 'Apple', 'Apple', geometry::STGeomFromText( 'Point(-68.2 70.8)', 4326 )),
-(4,  400, 'Honey', 'Honey', geometry::STGeomFromText( 'Point(-65.32 78.3)', 4326 ))
+INSERT INTO qgis_test.[someData] (pk, cnt, name, name2, num_char, geom) VALUES
+(5, -200, NULL, 'NuLl', '5', geometry::STGeomFromText( 'Point(-71.123 78.23)', 4326 )),
+(3,  300, 'Pear', 'PEaR', '3', NULL),
+(1,  100, 'Orange', 'oranGe', '1', geometry::STGeomFromText( 'Point(-70.332 66.33)', 4326 )),
+(2,  200, 'Apple', 'Apple', '2', geometry::STGeomFromText( 'Point(-68.2 70.8)', 4326 )),
+(4,  400, 'Honey', 'Honey', '4', geometry::STGeomFromText( 'Point(-65.32 78.3)', 4326 ))
 ;
 
 INSERT INTO qgis_test.[some_poly_data] (pk, geom) VALUES
diff --git a/tests/testdata/qgis_server/getprojectsettings.txt b/tests/testdata/qgis_server/getprojectsettings.txt
index 5378873..cda888d 100644
--- a/tests/testdata/qgis_server/getprojectsettings.txt
+++ b/tests/testdata/qgis_server/getprojectsettings.txt
@@ -150,7 +150,7 @@ Content-Type: text/xml; charset=utf-8
     </Style>
     <TreeName>testlayer èé</TreeName>
     <Attributes>
-     <Attribute typeName="Integer" precision="0" length="10" editType="TextEdit" type="int" comment="" name="id"/>
+     <Attribute typeName="Integer64" precision="0" length="10" editType="TextEdit" type="qlonglong" comment="" name="id"/>
      <Attribute typeName="String" precision="0" length="10" editType="TextEdit" type="QString" comment="" name="name"/>
      <Attribute typeName="String" precision="0" length="13" editType="TextEdit" type="QString" comment="" name="utf8nameè"/>
     </Attributes>
diff --git a/tests/testdata/qgis_server/wfs_describefeaturetype.txt b/tests/testdata/qgis_server/wfs_describefeaturetype.txt
index d0d7c22..b28c330 100644
--- a/tests/testdata/qgis_server/wfs_describefeaturetype.txt
+++ b/tests/testdata/qgis_server/wfs_describefeaturetype.txt
@@ -9,7 +9,7 @@ Content-Type: text/xml; charset=utf-8
    <extension base="gml:AbstractFeatureType">
     <sequence>
      <element minOccurs="0" maxOccurs="1" type="gml:GeometryPropertyType" name="geometry"/>
-     <element type="integer" name="id"/>
+     <element type="long" name="id"/>
      <element type="string" name="name"/>
      <element type="string" name="utf8nameè"/>
     </sequence>
diff --git a/tests/testdata/svg_params.svg b/tests/testdata/svg_params.svg
new file mode 100644
index 0000000..a8ca9a8
--- /dev/null
+++ b/tests/testdata/svg_params.svg
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1"
+	 id="svg2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:output_extension="org.inkscape.output.svg.inkscape" sodipodi:docbase="s:\Data\FacilityIcons" sodipodi:docname="amenity_firestation.svg" inkscape:version="0.46" s [...]
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="580px" height="580px"
+	 viewBox="0 0 580 580" enable-background="new 0 0 580 580" xml:space="preserve">
+<sodipodi:namedview  showgrid="false" inkscape:cy="384.03014" inkscape:cx="1288.5636" inkscape:zoom="0.44481281" pagecolor="#ffffff" bordercolor="#666666" guidetolerance="10.0" objecttolerance="10.0" gridtolerance="10.0" borderopacity="1.0" id="base" inkscape:current-layer="svg2" inkscape:window-y="-4" inkscape:window-x="-4" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="1003" inkscape:window-width="1400">
+	</sodipodi:namedview>
+<defs>
+	
+	
+		<inkscape:perspective  inkscape:vp_z="580 : 290 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 290 : 1" sodipodi:type="inkscape:persp3d" id="perspective3653" inkscape:persp3d-origin="290 : 193.33333 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="355.02399 : 217.53 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 217.53 : 1" sodipodi:type="inkscape:persp3d" id="perspective2512" inkscape:persp3d-origin="177.51199 : 145.02 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d" id="perspective3305" inkscape:persp3d-origin="372.04724 : 350.78739 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d" id="perspective3354" inkscape:persp3d-origin="372.04724 : 350.78739 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d" id="perspective3569" inkscape:persp3d-origin="372.04724 : 350.78739 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d" id="perspective3604" inkscape:persp3d-origin="372.04724 : 350.78739 : 1">
+		</inkscape:perspective>
+	
+		<inkscape:perspective  inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d" id="perspective4346" inkscape:persp3d-origin="372.04724 : 350.78739 : 1">
+		</inkscape:perspective>
+</defs>
+<path id="path4356" sodipodi:nodetypes="cscccccccccccc" fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width)" stroke-miterlimit="10" d="
+	M170.847,479.718c-36.582-20.633-58.877-68.876-42.415-140.977c11.548-50.58,45.201-113.004,19.41-164.982
+	c31.286,21.625,63.813,73.047,96.618,131.125c2.262-62.808-30.329-103.959-6.901-189.787
+	c16.076,106.179,80.559,112.76,113.296,209.339c13.925-45.408,42.891-60.354,28.756-173.107
+	c142.343,194.397,61.214,263.454,32.781,332.988l9.201-96.618c-44.644,129.05-80.412,152.857-112.721,181.734
+	c18.057-60.578,25.178-121.156-11.502-181.734c-8.906,99.462-34.04,78.764-39.108,158.73
+	c-50.254-37.93-60.576-76.838-69.588-140.327C181.838,413.533,170.293,444.584,170.847,479.718z"/>
+<path id="path4358" sodipodi:nodetypes="ccc" fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width)" stroke-miterlimit="10" d="
+	M274.941,15.604c-37.226,151.158,30.739,149.83,68.438,238.67C369.822,117.287,290.717,148.109,274.941,15.604z"/>
+</svg>

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