[QGIS Commit] r11241 - in trunk/qgis: i18n scripts src/app src/app/composer src/core src/core/pal src/plugins/diagram_overlay src/plugins/geoprocessing src/providers/ogr src/providers/osm

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat Aug 1 15:20:10 EDT 2009


Author: jef
Date: 2009-08-01 15:20:09 -0400 (Sat, 01 Aug 2009)
New Revision: 11241

Modified:
   trunk/qgis/i18n/qgis_de.ts
   trunk/qgis/scripts/update_ts_files.sh
   trunk/qgis/src/app/CMakeLists.txt
   trunk/qgis/src/app/composer/qgscompositionwidget.cpp
   trunk/qgis/src/app/qgsattributetypedialog.cpp
   trunk/qgis/src/app/qgsmaptooladdvertex.h
   trunk/qgis/src/app/qgsmaptooldeletepart.h
   trunk/qgis/src/app/qgsmaptooldeletering.h
   trunk/qgis/src/app/qgsmaptooldeletevertex.h
   trunk/qgis/src/app/qgsmaptoolmovevertex.h
   trunk/qgis/src/app/qgsmaptoolnodetool.cpp
   trunk/qgis/src/app/qgsmaptoolsimplify.cpp
   trunk/qgis/src/app/qgsvectorlayerproperties.cpp
   trunk/qgis/src/app/qgsvectorlayerproperties.h
   trunk/qgis/src/core/pal/layer.cpp
   trunk/qgis/src/core/qgis.h
   trunk/qgis/src/plugins/diagram_overlay/qgspiediagramfactory.cpp
   trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp
   trunk/qgis/src/providers/ogr/CMakeLists.txt
   trunk/qgis/src/providers/ogr/qgsogrprovider.h
   trunk/qgis/src/providers/osm/CMakeLists.txt
   trunk/qgis/src/providers/osm/osmprovider.h
Log:
misc cleanups:
- added Q_OBJECT to various classes where lupdate was complaining
- fix some warnings (mostly potentially uninitialized variables)
- introduce doubleNear(a,b,epsilon) to compare doubles
- fix new composer pagesizes
- cleanup edit type labels in vector properties (marked translation strings,
  synced with qgsattributetypeedit.ui, removed redundant code)
- allow update_ts_files.sh for specified languages
- german translation update



Modified: trunk/qgis/i18n/qgis_de.ts
===================================================================
--- trunk/qgis/i18n/qgis_de.ts	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/i18n/qgis_de.ts	2009-08-01 19:20:09 UTC (rev 11241)
@@ -4,9 +4,8 @@
 <context>
     <name></name>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="443"/>
         <source>&amp;Geoprocessing</source>
-        <translation>&amp;Geodatenverarbeitung</translation>
+        <translation type="obsolete">&amp;Geodatenverarbeitung</translation>
     </message>
 </context>
 <context>
@@ -2701,7 +2700,7 @@
     </message>
     <message>
         <location filename="../src/plugins/interpolation/qgsgridfilewriter.cpp" line="65"/>
-        <location filename="../src/plugins/interpolation/qgstininterpolator.cpp" line="88"/>
+        <location filename="../src/plugins/interpolation/qgstininterpolator.cpp" line="93"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
@@ -2893,7 +2892,7 @@
         <translation>Version 1.1.0</translation>
     </message>
     <message>
-        <location filename="../src/plugins/interpolation/qgstininterpolator.cpp" line="88"/>
+        <location filename="../src/plugins/interpolation/qgstininterpolator.cpp" line="93"/>
         <source>Building triangulation...</source>
         <translation>Triangulation wird aufgebaut...</translation>
     </message>
@@ -5677,23 +5676,23 @@
 <context>
     <name>QgsAttributeTypeDialog</name>
     <message>
-        <location filename="../src/app/qgsattributetypedialog.cpp" line="256"/>
-        <location filename="../src/app/qgsattributetypedialog.cpp" line="283"/>
+        <location filename="../src/app/qgsattributetypedialog.cpp" line="222"/>
+        <location filename="../src/app/qgsattributetypedialog.cpp" line="243"/>
         <source>Current minimum for this value is %1 and current maximum is %2.</source>
         <translation>Aktuelles Minimum für diesen Wert ist %1 und das aktuelle Maximum ist %2.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetypedialog.cpp" line="288"/>
+        <location filename="../src/app/qgsattributetypedialog.cpp" line="248"/>
         <source>Attribute has no integer or real type, therefore range is not usable.</source>
         <translation>Attribut hat weder Ganz- noch Fließkommazahltyp, daher kann Bereich hier nicht benutzt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetypedialog.cpp" line="396"/>
+        <location filename="../src/app/qgsattributetypedialog.cpp" line="356"/>
         <source>Enumeration is not available for this attribute</source>
         <translation>Aufzählungen sind für dieses Attribut nicht verfügbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetypedialog.cpp" line="487"/>
+        <location filename="../src/app/qgsattributetypedialog.cpp" line="447"/>
         <location filename="../src/ui/qgsattributetypeedit.ui" line="14"/>
         <source>Attribute Edit Dialog</source>
         <translation>Attributbearbeitungsdialog</translation>
@@ -6948,124 +6947,175 @@
 <context>
     <name>QgsCompositionWidget</name>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="34"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="205"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="296"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="35"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="244"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="360"/>
         <source>Landscape</source>
         <translation>Querformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="35"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="300"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="36"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="364"/>
         <source>Portrait</source>
         <translation>Hochformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="116"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="150"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="165"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="134"/>
+        <source>ANSI A (Letter; 8.5x11 inches)</source>
+        <translation>ANSI A (Brief; 8,5x11 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="135"/>
+        <source>ANSI B (Tabloid; 11x17 inches)</source>
+        <translation>ANSI B (Tabloid; 11x17 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="136"/>
+        <source>ANSI C (17x22 inches)</source>
+        <translation>ANSI C (17x22 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="137"/>
+        <source>ANSI D (22x34 inches)</source>
+        <translation>ANSI D (22x34 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="138"/>
+        <source>ANSI E (34x44 inches)</source>
+        <translation>ANSI E (34x44 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="139"/>
+        <source>Arch A (9x12 inches)</source>
+        <translation>Arch A (9x12 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="140"/>
+        <source>Arch B (12x18 inches)</source>
+        <translation>Arch B (12x18 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="141"/>
+        <source>Arch C (18x24 inches)</source>
+        <translation>Arch C (18x24 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="142"/>
+        <source>Arch D (24x36 inches)</source>
+        <translation>Arch D (24x36 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="143"/>
+        <source>Arch E (36x48 inches)</source>
+        <translation>Arch E (36x48 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="144"/>
+        <source>Arch E1 (30x42 inches)</source>
+        <translation>Arch E1 (30x42 Zoll)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="148"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="161"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="178"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="211"/>
         <source>Custom</source>
         <translation>Benutzerdefiniert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="117"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="118"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="120"/>
         <source>A5 (148x210 mm)</source>
         <translation>A5 (148x210 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="119"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="120"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="30"/>
+        <source>mm</source>
+        <translation>mm</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="31"/>
+        <source>inch</source>
+        <translation>Zoll</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="121"/>
         <source>A4 (210x297 mm)</source>
         <translation>A4 (210x297 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="121"/>
         <location filename="../src/app/composer/qgscompositionwidget.cpp" line="122"/>
         <source>A3 (297x420 mm)</source>
         <translation>A3 (297x420 mm)</translation>
     </message>
     <message>
         <location filename="../src/app/composer/qgscompositionwidget.cpp" line="123"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="124"/>
         <source>A2 (420x594 mm)</source>
         <translation>A2 (420x594 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="125"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="126"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="124"/>
         <source>A1 (594x841 mm)</source>
         <translation>A1 (594x841 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="127"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="128"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="125"/>
         <source>A0 (841x1189 mm)</source>
         <translation>A0 (841x1189 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="129"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="130"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="126"/>
         <source>B5 (176 x 250 mm)</source>
         <translation>B5 (176 x 250 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="131"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="132"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="127"/>
         <source>B4 (250 x 353 mm)</source>
         <translation>B4 (250 x 353 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="133"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="134"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="128"/>
         <source>B3 (353 x 500 mm)</source>
         <translation>B3 (353 x 500 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="135"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="136"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="129"/>
         <source>B2 (500 x 707 mm)</source>
         <translation>B2 (500 x 707 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="137"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="138"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="130"/>
         <source>B1 (707 x 1000 mm)</source>
         <translation>B1 (707 x 1000 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="139"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="140"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="131"/>
         <source>B0 (1000 x 1414 mm)</source>
         <translation>B0 (1000 x 1414 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="141"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="142"/>
         <source>Letter (8.5x11 inches)</source>
-        <translation>Letter (8.5x11 inches)</translation>
+        <translation type="obsolete">Letter (8.5x11 inches)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="143"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="144"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="133"/>
         <source>Legal (8.5x14 inches)</source>
         <translation>Legal (8.5x14 inches)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="82"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="457"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="83"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="522"/>
         <source>Solid</source>
         <translation>Ausgefüllt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="83"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="461"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="84"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="526"/>
         <source>Dots</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="84"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="465"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="85"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="530"/>
         <source>Crosses</source>
         <translation>Kreuze</translation>
     </message>
@@ -11941,13 +11991,13 @@
     <name>QgsInterpolationDialog</name>
     <message>
         <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="56"/>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="342"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="343"/>
         <source>Triangular interpolation (TIN)</source>
         <translation>Unregelmäßiges Dreiecksnetz (TIN)</translation>
     </message>
     <message>
         <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="57"/>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="338"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="339"/>
         <source>Inverse Distance Weighting (IDW)</source>
         <translation>Inverse Distanzwichtung (IDW)</translation>
     </message>
@@ -11972,24 +12022,24 @@
         <translation>Bitte geben Sie eine gültigen Dateiname an</translation>
     </message>
     <message>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="162"/>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="271"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="163"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="272"/>
         <source>Break lines</source>
         <translation>Bruchkanten</translation>
     </message>
     <message>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="166"/>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="270"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="167"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="271"/>
         <source>Structure lines</source>
         <translation>Strukturlinien</translation>
     </message>
     <message>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="269"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="270"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="296"/>
+        <location filename="../src/plugins/interpolation/qgsinterpolationdialog.cpp" line="297"/>
         <source>Save interpolated raster as...</source>
         <translation>Interpoliertes Raster speichern unter...</translation>
     </message>
@@ -12472,52 +12522,52 @@
 <context>
     <name>QgsLegend</name>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="109"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="119"/>
         <source>group</source>
         <translation>Gruppe</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="454"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="513"/>
         <source>&amp;Remove</source>
         <translation>&amp;Entfernen</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="447"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="506"/>
         <source>&amp;Make to toplevel item</source>
         <translation>In oberste Ebene &amp;bringen</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="459"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="518"/>
         <source>Re&amp;name</source>
         <translation>Umbe&amp;nennen</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="464"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="523"/>
         <source>&amp;Add group</source>
         <translation>Gruppe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="465"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="524"/>
         <source>&amp;Expand all</source>
         <translation>Alles ausklapp&amp;en</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="466"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="525"/>
         <source>&amp;Collapse all</source>
         <translation>Alles zusammenfalten</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="468"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="527"/>
         <source>Show file groups</source>
         <translation>Zeige Dateigruppen</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="1875"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="1937"/>
         <source>No Layer Selected</source>
         <translation>Keinen Layer ausgewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/legend/qgslegend.cpp" line="1876"/>
+        <location filename="../src/app/legend/qgslegend.cpp" line="1938"/>
         <source>To open an attribute table, you must select a vector layer in the legend</source>
         <translation>Um eine Attributtabelle zu öffnen, müssen Sie einen Vektorlayer in der Legende auswählen</translation>
     </message>
@@ -13255,23 +13305,23 @@
 <context>
     <name>QgsMapToolSimplify</name>
     <message>
-        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="114"/>
+        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="115"/>
         <source>Geometry simplified</source>
         <translation>Geometrie vereinfacht</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="278"/>
-        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="299"/>
+        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="279"/>
+        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="300"/>
         <source>Unsupported operation</source>
         <translation>Nicht unterstützte Operation</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="278"/>
+        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="279"/>
         <source>Multipart features are not supported for simplification.</source>
         <translation>Vereinfachung wird für mehrteilige Objekte nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="299"/>
+        <location filename="../src/app/qgsmaptoolsimplify.cpp" line="300"/>
         <source>This feature cannot be simplified. Check if feature has enough vertices to be simplified.</source>
         <translation>Diese Objekt kann nicht vereinfacht werden.  Prüfen Sie, ob das Objekt dazu genügend Stützpunkte hat.</translation>
     </message>
@@ -15214,7 +15264,7 @@
         <translation>Puffer Objekte in Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="363"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="362"/>
         <source>Error connecting to the database</source>
         <translation>Fehler beim Verbinden mit der Datenbank</translation>
     </message>
@@ -15225,6 +15275,7 @@
     </message>
     <message>
         <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="83"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="442"/>
         <source>&amp;Geoprocessing</source>
         <translation>&amp;Geodatenverarbeitung</translation>
     </message>
@@ -15234,32 +15285,32 @@
         <translation>Konnte die Geometriespalte nicht hinzufügen.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="352"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="351"/>
         <source>Unable to create table</source>
         <translation>Kann die Tabelle nicht erstellen.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="369"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="368"/>
         <source>No GEOS support</source>
         <translation>Keine GEOS-Unterstützung.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="370"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="369"/>
         <source>Buffer function requires GEOS support in PostGIS</source>
         <translation>Pufferfunktion benötigt GEOS-Unterstützung in PostGIS.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="382"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="381"/>
         <source>No Active Layer</source>
         <translation>Kein aktiver Layer</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="383"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="382"/>
         <source>You must select a layer in the legend to buffer</source>
         <translation>Wählen Sie einen Layer in der Legende, der gepuffert werden soll.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="375"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="374"/>
         <source>Not a PostgreSQL/PostGIS Layer</source>
         <translation>Kein PostgreSQL/PostGIS Layer</translation>
     </message>
@@ -15274,12 +15325,12 @@
         <translation>Geometriespalte konnte nicht zur Ausgabetabelle %1-%2 hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="353"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="352"/>
         <source>Failed to create the output table %1</source>
         <translation>Konnte Ausgabetabelle %1 nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="376"/>
+        <location filename="../src/plugins/geoprocessing/qgspggeoprocessing.cpp" line="375"/>
         <source>%1 is not a PostgreSQL/PostGIS layer.
 Geoprocessing functions are only available for PostgreSQL/PostGIS Layers</source>
         <translation>%1 ist kein PostgreSQL/PostGIS layer.
@@ -20616,315 +20667,339 @@
 <context>
     <name>QgsVectorLayerProperties</name>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="153"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="155"/>
         <source>id</source>
         <translation>ID</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="154"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="156"/>
         <source>name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="155"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="157"/>
         <source>type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="156"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="158"/>
         <source>length</source>
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="157"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="159"/>
         <source>precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="158"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="160"/>
         <source>comment</source>
         <translation>Kommentar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="159"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="161"/>
         <source>edit widget</source>
         <translation>Bearbeitungselement</translation>
     </message>
     <message>
-        <source>values</source>
-        <translation type="obsolete">Werte</translation>
-    </message>
-    <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="160"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="162"/>
         <source>alias</source>
         <translation>Alias</translation>
     </message>
     <message>
-        <source>line edit</source>
-        <translation type="obsolete">Textfeld</translation>
-    </message>
-    <message>
-        <source>unique values</source>
-        <translation type="obsolete">eindeutige Werte</translation>
-    </message>
-    <message>
-        <source>unique values (editable)</source>
-        <translation type="obsolete">eindeutige Werte (änderbar)</translation>
-    </message>
-    <message>
-        <source>value map</source>
-        <translation type="obsolete">Wertabbildung</translation>
-    </message>
-    <message>
-        <source>classification</source>
-        <translation type="obsolete">Klassifizierung</translation>
-    </message>
-    <message>
-        <source>range (editable)</source>
-        <translation type="obsolete">Bereich (änderbar)</translation>
-    </message>
-    <message>
-        <source>range (slider)</source>
-        <translation type="obsolete">Bereich (Schieberegler)</translation>
-    </message>
-    <message>
-        <source>file name</source>
-        <translation type="obsolete">Dateiname</translation>
-    </message>
-    <message>
-        <source>enumeration</source>
-        <translation type="obsolete">Aufzählung</translation>
-    </message>
-    <message>
-        <source>immutable</source>
-        <translation type="obsolete">nicht veränderbar</translation>
-    </message>
-    <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="358"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="303"/>
         <source>Name conflict</source>
         <translation>Namenskonflikt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="358"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="303"/>
         <source>The attribute could not be inserted. The name already exists in the table.</source>
         <translation>Das Attribut konnte nicht eingefügt werden, da der Name bereits vorhanden ist.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="370"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="315"/>
         <source>Added attribute</source>
         <translation>Attribut hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="395"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="340"/>
         <source>Deleted attribute</source>
         <translation>Attribute gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="430"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="375"/>
         <source>Transparency: %1%</source>
         <translation>Transparenz: %1%</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="444"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="523"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="389"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="468"/>
         <source>Single Symbol</source>
         <translation>Einzelsymbol</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="448"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="526"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="393"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="471"/>
         <source>Graduated Symbol</source>
         <translation>Abgestuftes Symbol</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="452"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="527"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="397"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="472"/>
         <source>Continuous Color</source>
         <translation>Fortlaufende Farbe</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="456"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="528"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="401"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="473"/>
         <source>Unique Value</source>
         <translation>Eindeutiger Wert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="481"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="426"/>
         <source>This button opens the PostgreSQL query builder and allows you to create a subset of features to display on the map canvas rather than displaying all features in the layer</source>
         <translation>Dieser Knopf öffnet den PostgreSQL-Query-Builder und ermöglicht, statt aller Objekte, eine Untermenge der Objekte auf dem Kartenfenster darzustellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="484"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="429"/>
         <source>The query used to limit the features in the layer is shown here. This is currently only supported for PostgreSQL layers. To enter or modify the query, click on the Query Builder button</source>
         <translation>Die Abfrage zur Begrenzung der Anzahl der Objekte wird hier angezeigt. Dies wird im Moment nur bei PostgreSQL-Layern unterstützt. Klicken Sie auf auf &apos;Query Builder&apos;, um eine Abfrage einzugeben oder zu ändern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="794"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="799"/>
+        <source>Line Edit</source>
+        <translation type="obsolete">Eingabezeile</translation>
+    </message>
+    <message>
+        <source>Unique Values</source>
+        <translation type="obsolete">Eindeutige Werte</translation>
+    </message>
+    <message>
+        <source>Unique Values Editable</source>
+        <translation type="obsolete">Eindeutige Werte (bearbeitbar)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="553"/>
+        <source>Classification</source>
+        <translation>Klassifikation</translation>
+    </message>
+    <message>
+        <source>Value Map</source>
+        <translation type="obsolete">Wertabbildung</translation>
+    </message>
+    <message>
+        <source>Edit Range</source>
+        <translation type="obsolete">Bereich</translation>
+    </message>
+    <message>
+        <source>Slider Range</source>
+        <translation type="obsolete">Schieber (Bereich)</translation>
+    </message>
+    <message>
+        <source>File Name</source>
+        <translation type="obsolete">Dateiname</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="721"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="726"/>
         <source>Spatial Index</source>
         <translation>Räumlicher Index</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="794"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="721"/>
         <source>Creation of spatial index successful</source>
         <translation>Räumlichen Indexes erfolgreich erstellt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="799"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="726"/>
         <source>Creation of spatial index failed</source>
         <translation>Erstellung des räumlichen Indexes schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="812"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="739"/>
         <source>General:</source>
         <translation>Allgemein:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="819"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="746"/>
         <source>Layer comment: %1</source>
         <translation>Layerkommentar: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="825"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="752"/>
         <source>Storage type of this layer: %1</source>
         <translation>Datenspeicher dieses Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="830"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="757"/>
         <source>Source for this layer: %1</source>
         <translation>Quelle dieses Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="846"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="773"/>
         <source>Geometry type of the features in this layer: %1</source>
         <translation>Geometrietyp der Objekte dieses Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="853"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="780"/>
         <source>The number of features in this layer: %1</source>
         <translation>Anzahl der Objekte dieses Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="857"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="784"/>
         <source>Editing capabilities of this layer: %1</source>
         <translation>Bearbeitungseigenschaften dieses Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="864"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="791"/>
         <source>Extents:</source>
         <translation>Ausdehnung:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="895"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="822"/>
         <source>Layer Spatial Reference System:</source>
         <translation>Räumliches Bezugssystem des Layers:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="907"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="834"/>
         <source>Project (Output) Spatial Reference System:</source>
         <translation>Räumliches Bezugssystem des Projekts (Ausgabe):</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="931"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="858"/>
         <source>Attribute field info:</source>
         <translation>Attributefeldinformationen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="938"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="865"/>
         <source>Field</source>
         <translation>Feld</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="941"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="868"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="944"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="871"/>
         <source>Length</source>
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="947"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="874"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="950"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="877"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1026"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1042"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="953"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="969"/>
         <source>Default Style</source>
         <translation>Vorgabestil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1057"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="984"/>
         <source>Load layer properties from style file (.qml)</source>
         <translation>Layereigenschaften aus der Stildatei (.qml) laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1059"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1078"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1120"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1139"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="986"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1005"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1047"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1066"/>
         <source>QGIS Layer Style File (*.qml)</source>
         <translation>QGIS-Layerstildatei (*.qml)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1095"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1159"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1022"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1086"/>
         <source>Saved Style</source>
         <translation>Gespeicherter Stil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1100"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1164"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1027"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1091"/>
         <source>QGIS</source>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1101"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1165"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1028"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1092"/>
         <source>Unknown style format: %1</source>
         <translation>Stilformat unbekannt: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1118"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1045"/>
         <source>Save layer properties as style file (.qml)</source>
         <translation>Layereigenschaften als Stildatei (.qml) speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="868"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="795"/>
         <source>In layer spatial reference system units : </source>
         <translation>In Bezugssystemeinheiten des Projekts: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="212"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="550"/>
+        <source>Line edit</source>
+        <translation>Eingabezeile</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="551"/>
+        <source>Unique values</source>
+        <translation>Eindeutige Werte</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="552"/>
+        <source>Unique values editable</source>
+        <translation>Eindeutige Werte (bearbeitbar)</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="554"/>
+        <source>Value map</source>
+        <translation>Wertabbildung</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="555"/>
+        <source>Edit range</source>
+        <translation>Eingabezeile mit Bereich</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="556"/>
+        <source>Slider range</source>
+        <translation>Schieberbereich</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="557"/>
+        <source>File name</source>
+        <translation type="unfinished">Dateiname</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="558"/>
         <source>Enumeration</source>
         <translation>Aufzählung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="215"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="559"/>
         <source>Immutable</source>
         <translation>Unveränderbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="869"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="883"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="796"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="810"/>
         <source>xMin,yMin %1,%2 : xMax,yMax %3,%4</source>
         <translation>xMin,yMin %1;%2 : xMax,yMax %3;%4</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="882"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="920"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="809"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="847"/>
         <source>In project spatial reference system units : </source>
         <translation>In Bezugssystemeinheiten des Projekts: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="921"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="848"/>
         <source>(Invalid transformation of layer extents)</source>
         <translation>(Transformation der Layerausdehnung ungültig)</translation>
     </message>

Modified: trunk/qgis/scripts/update_ts_files.sh
===================================================================
--- trunk/qgis/scripts/update_ts_files.sh	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/scripts/update_ts_files.sh	2009-08-01 19:20:09 UTC (rev 11241)
@@ -14,8 +14,14 @@
 #first tar the qt_xx.ts files in i18n folder such that lupdate does not 
 #merge the qgis strings to them
 echo Creating qt_ts.tar
-tar -cvf i18n/qt_ts.tar i18n/qt_*.ts
-rm i18n/qt_*.ts
+tar --remove-files -cvf i18n/qt_ts.tar i18n/qt_*.ts
+exclude=
+for i in "$@"; do
+  exclude="$exclude --exclude i18n/qgis_$i.ts"
+done
+if [ -n "$exclude" ]; then
+  tar --remove-files -cvf i18n/qgis_ts.tar i18n/qgis_*.ts$exclude
+fi
 echo Updating python plugin translations
 for i in python/plugins/*/.; do
 	cd $i
@@ -34,4 +40,9 @@
 echo Removing qmake project file
 rm qgis_ts.pro
 echo Unpacking qt_ts.tar
-tar -xvf i18n/qt_ts.tar
+tar -xvf i18n/qt_ts.tar 
+rm i18n/qt_ts.tar
+if [ -f i18n/qgis_ts.tar ]; then
+  echo Unpacking i18n/qgis_ts.tar
+  rm i18n/qgis_ts.tar
+fi

Modified: trunk/qgis/src/app/CMakeLists.txt
===================================================================
--- trunk/qgis/src/app/CMakeLists.txt	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/CMakeLists.txt	2009-08-01 19:20:09 UTC (rev 11241)
@@ -135,6 +135,11 @@
   qgsmaptoolmovefeature.h
   qgsmaptoolnodetool.h
   qgsmaptoolselect.h
+  qgsmaptooladdvertex.h
+  qgsmaptooldeletering.h
+  qgsmaptooldeletepart.h
+  qgsmaptooldeletevertex.h
+  qgsmaptoolmovevertex.h
   qgsmaptoolsimplify.h
 
   qgsmeasuretool.h

Modified: trunk/qgis/src/app/composer/qgscompositionwidget.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscompositionwidget.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/composer/qgscompositionwidget.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -14,6 +14,7 @@
  *                                                                         *
  ***************************************************************************/
 
+#include <qgis.h>
 #include "qgscompositionwidget.h"
 #include "qgscomposition.h"
 #include <QColorDialog>
@@ -115,6 +116,7 @@
   QList<QgsCompositionPaper> formats;
 
   formats
+  // ISO formats
   << QgsCompositionPaper( tr( "A5 (148x210 mm)" ), 148, 210 )
   << QgsCompositionPaper( tr( "A4 (210x297 mm)" ), 210, 297 )
   << QgsCompositionPaper( tr( "A3 (297x420 mm)" ), 297, 420 )
@@ -127,18 +129,19 @@
   << QgsCompositionPaper( tr( "B2 (500 x 707 mm)" ), 500, 707 )
   << QgsCompositionPaper( tr( "B1 (707 x 1000 mm)" ), 707, 1000 )
   << QgsCompositionPaper( tr( "B0 (1000 x 1414 mm)" ), 1000, 1414 )
-  << QgsCompositionPaper( tr( "Legal (8.5x14 inches)" ), 216, 356 )
-  << QgsCompositionPaper( tr( "ANSI A (Letter; 8.5x11 inches)" ),  216, 279 )
-  << QgsCompositionPaper( tr( "ANSI B (Tabloid; 11x17 inches)" ),  279, 432 )
-  << QgsCompositionPaper( tr( "ANSI C (17x22 inches)" ),  432, 559 )
-  << QgsCompositionPaper( tr( "ANSI D (22x34 inches)" ),  559, 864 )
-  << QgsCompositionPaper( tr( "ANSI E (34x44 inches)" ),  864, 1118 )
-  << QgsCompositionPaper( tr( "Arch A (9x12 inches)" ),  229, 305 )
-  << QgsCompositionPaper( tr( "Arch B (12x18 inches)" ), 305, 457 )
-  << QgsCompositionPaper( tr( "Arch C (18x24 inches)" ), 457, 610 )
-  << QgsCompositionPaper( tr( "Arch D (24x36 inches)" ), 610, 914 )
-  << QgsCompositionPaper( tr( "Arch E (36x48 inches)" ), 914, 1219 )
-  << QgsCompositionPaper( tr( "Arch E1 (30x42 inches)" ), 762, 1067 )
+  // North american formats
+  << QgsCompositionPaper( tr( "Legal (8.5x14 inches)" ), 215.9, 355.6 )
+  << QgsCompositionPaper( tr( "ANSI A (Letter; 8.5x11 inches)" ), 215.9, 279.4 )
+  << QgsCompositionPaper( tr( "ANSI B (Tabloid; 11x17 inches)" ), 279.4, 431.8 )
+  << QgsCompositionPaper( tr( "ANSI C (17x22 inches)" ), 431.8, 558.8 )
+  << QgsCompositionPaper( tr( "ANSI D (22x34 inches)" ), 558.8, 863.6 )
+  << QgsCompositionPaper( tr( "ANSI E (34x44 inches)" ), 863.6, 1117.6 )
+  << QgsCompositionPaper( tr( "Arch A (9x12 inches)" ), 228.6, 304.8 )
+  << QgsCompositionPaper( tr( "Arch B (12x18 inches)" ), 304.8, 457.2 )
+  << QgsCompositionPaper( tr( "Arch C (18x24 inches)" ), 457.2, 609.6 )
+  << QgsCompositionPaper( tr( "Arch D (24x36 inches)" ), 609.6, 914.4 )
+  << QgsCompositionPaper( tr( "Arch E (36x48 inches)" ), 914.4, 1219.2 )
+  << QgsCompositionPaper( tr( "Arch E1 (30x42 inches)" ), 762, 1066.8 )
   ;
 
   mPaperSizeComboBox->blockSignals( true );
@@ -257,12 +260,12 @@
   if ( mPaperUnitsComboBox->currentIndex() == 0 )
   {
     // mm
-    le->setText( QString::number( v ) );
+    le->setText( QString("%1").arg( v ) );
   }
   else
   {
     // inch (show width in inch)
-    le->setText( QString::number( v / 25.4 ) );
+    le->setText( QString("%1").arg( v / 25.4 ) );
   }
 }
 
@@ -369,11 +372,12 @@
     QgsCompositionPaper currentPaper = paper_it.value();
 
     //consider width and height values may be exchanged
-    if (( currentPaper.mWidth == paperWidth && currentPaper.mHeight == paperHeight )
-        || ( currentPaper.mWidth == paperHeight && currentPaper.mHeight == paperWidth ) )
+    if (( doubleNear( currentPaper.mWidth, paperWidth ) && doubleNear( currentPaper.mHeight, paperHeight ) )
+        || ( doubleNear( currentPaper.mWidth, paperHeight ) && doubleNear( currentPaper.mHeight, paperWidth ) ) )
     {
       mPaperSizeComboBox->setCurrentIndex( mPaperSizeComboBox->findText( paper_it.key() ) );
       found = true;
+      break;
     }
   }
 

Modified: trunk/qgis/src/app/qgsattributetypedialog.cpp
===================================================================
--- trunk/qgis/src/app/qgsattributetypedialog.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsattributetypedialog.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -25,6 +25,8 @@
 
 #include <QTableWidgetItem>
 
+#include <climits>
+#include <cfloat>
 
 QgsAttributeTypeDialog::QgsAttributeTypeDialog( QgsVectorLayer *vl )
     : QDialog(),
@@ -123,80 +125,49 @@
 }
 
 
-void QgsAttributeTypeDialog::setPageForIndex( int index )
+void QgsAttributeTypeDialog::setPageForEditType( QgsVectorLayer::EditType editType )
 {
-  if ( mLayer->editType( index ) ==  QgsVectorLayer::LineEdit )
+  switch ( editType )
   {
-    setPage( 0 );
+    case QgsVectorLayer::Classification:
+      setPage( 1 );
+      break;
+
+    case QgsVectorLayer::EditRange:
+    case QgsVectorLayer::SliderRange:
+      setPage( 2 );
+      break;
+
+    case QgsVectorLayer::UniqueValues:
+    case QgsVectorLayer::UniqueValuesEditable:
+      setPage( 3 );
+      break;
+
+    case QgsVectorLayer::FileName:
+      setPage( 4 );
+      break;
+
+    case QgsVectorLayer::ValueMap:
+      setPage( 5 );
+      break;
+
+    case QgsVectorLayer::Enumeration:
+      setPage( 6 );
+      break;
+
+    case QgsVectorLayer::Immutable:
+      setPage( 7 );
+      break;
+
+    case QgsVectorLayer::LineEdit:
+      setPage( 0 );
+      break;
   }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::Classification )
-  {
-    setPage( 1 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::EditRange ||
-            mLayer->editType( index ) == QgsVectorLayer::SliderRange )
-  {
-    setPage( 2 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::UniqueValues ||
-            mLayer->editType( index ) == QgsVectorLayer::UniqueValuesEditable )
-  {
-    setPage( 3 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::FileName )
-  {
-    setPage( 4 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::ValueMap )
-  {
-    setPage( 5 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::Enumeration )
-  {
-    setPage( 6 );
-  }
-  else if ( mLayer->editType( index ) == QgsVectorLayer::Immutable )
-  {
-    setPage( 7 );
-  }
 }
 
-void QgsAttributeTypeDialog::setPageForEditType( QgsVectorLayer::EditType editType )
+void QgsAttributeTypeDialog::setPageForIndex( int index )
 {
-  if ( editType ==  QgsVectorLayer::LineEdit )
-  {
-    setPage( 0 );
-  }
-  else if ( editType == QgsVectorLayer::Classification )
-  {
-    setPage( 1 );
-  }
-  else if ( editType == QgsVectorLayer::EditRange ||
-            editType == QgsVectorLayer::SliderRange )
-  {
-    setPage( 2 );
-  }
-  else if ( editType == QgsVectorLayer::UniqueValues ||
-            editType == QgsVectorLayer::UniqueValuesEditable )
-  {
-    setPage( 3 );
-  }
-  else if ( editType == QgsVectorLayer::FileName )
-  {
-    setPage( 4 );
-  }
-  else if ( editType == QgsVectorLayer::ValueMap )
-  {
-    setPage( 5 );
-  }
-  else if ( editType == QgsVectorLayer::Enumeration )
-  {
-    setPage( 6 );
-  }
-  else if ( editType == QgsVectorLayer::Immutable )
-  {
-    setPage( 7 );
-  }
+  setPageForEditType( mLayer->editType( index ) );
 }
 
 void QgsAttributeTypeDialog::setValueMap( QMap<QString, QVariant> valueMap )
@@ -234,16 +205,10 @@
   if ( mLayer->pendingFields()[index].type() == QVariant::Int )
   {
     sliderRadioButton->setDisabled( false );
-    int min;
-    int max;
-    //filling initial values
-    if ( mLayer->nextFeature( f ) )
+    int min = INT_MIN;
+    int max = INT_MAX;
+    while ( mLayer->nextFeature( f ) )
     {
-      min = f.attributeMap()[index].toInt();
-      max = f.attributeMap()[index].toInt();
-    }
-    for ( ; mLayer->nextFeature( f ); )
-    {
       QVariant val = f.attributeMap()[index];
       if ( val.isValid() && !val.isNull() )
       {
@@ -258,18 +223,12 @@
   }
   else if ( mLayer->pendingFields()[index].type() == QVariant::Double )
   {
-    double dMin;
-    double dMax;
+    double dMin = -DBL_MAX;
+    double dMax = DBL_MAX;
 
-    if ( mLayer->nextFeature( f ) )
-    {
-      dMin = f.attributeMap()[index].toDouble();
-      dMax = f.attributeMap()[index].toDouble();
-    }
-
     sliderRadioButton->setDisabled( true );
     editableRadioButton->setChecked( true );
-    for ( ; mLayer->nextFeature( f ); )
+    while ( mLayer->nextFeature( f ) )
     {
       QVariant val = f.attributeMap()[index];
       if ( val.isValid() && !val.isNull() )

Modified: trunk/qgis/src/app/qgsmaptooladdvertex.h
===================================================================
--- trunk/qgis/src/app/qgsmaptooladdvertex.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptooladdvertex.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -25,6 +25,8 @@
 /**Map tool to add vertices to line/polygon features*/
 class QgsMapToolAddVertex: public QgsMapToolVertexEdit
 {
+  Q_OBJECT
+
   public:
     QgsMapToolAddVertex( QgsMapCanvas* canvas );
     virtual ~QgsMapToolAddVertex();

Modified: trunk/qgis/src/app/qgsmaptooldeletepart.h
===================================================================
--- trunk/qgis/src/app/qgsmaptooldeletepart.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptooldeletepart.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -23,6 +23,8 @@
 /**Map tool to delete vertices from line/polygon features*/
 class QgsMapToolDeletePart: public QgsMapToolVertexEdit
 {
+  Q_OBJECT
+
   public:
     QgsMapToolDeletePart( QgsMapCanvas* canvas );
     virtual ~QgsMapToolDeletePart();

Modified: trunk/qgis/src/app/qgsmaptooldeletering.h
===================================================================
--- trunk/qgis/src/app/qgsmaptooldeletering.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptooldeletering.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -23,6 +23,8 @@
 
 class QgsMapToolDeleteRing : public QgsMapToolVertexEdit
 {
+  Q_OBJECT
+
   public:
     QgsMapToolDeleteRing( QgsMapCanvas* canvas );
     virtual ~QgsMapToolDeleteRing();

Modified: trunk/qgis/src/app/qgsmaptooldeletevertex.h
===================================================================
--- trunk/qgis/src/app/qgsmaptooldeletevertex.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptooldeletevertex.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -25,6 +25,8 @@
 
 class QgsMapToolDeleteVertex: public QgsMapToolVertexEdit
 {
+  Q_OBJECT
+
   public:
     QgsMapToolDeleteVertex( QgsMapCanvas* canvas );
     virtual ~QgsMapToolDeleteVertex();

Modified: trunk/qgis/src/app/qgsmaptoolmovevertex.h
===================================================================
--- trunk/qgis/src/app/qgsmaptoolmovevertex.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptoolmovevertex.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -26,6 +26,8 @@
 /**A maptool to move vertices of line or polygon fetures*/
 class QgsMapToolMoveVertex: public QgsMapToolVertexEdit
 {
+  Q_OBJECT
+
   public:
     QgsMapToolMoveVertex( QgsMapCanvas* canvas );
     virtual ~QgsMapToolMoveVertex();

Modified: trunk/qgis/src/app/qgsmaptoolnodetool.cpp
===================================================================
--- trunk/qgis/src/app/qgsmaptoolnodetool.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptoolnodetool.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -235,7 +235,7 @@
       trb->setColor( Qt::red );
 
       int tVertex = resultIt.value().snappedVertexNr;
-      int tVertexBackup, tVertexAfter;
+      int tVertexBackup = -1, tVertexAfter = -1;
       int tVertexFirst = tVertex;//vertex number to check for cycling
       QgsFeature topolFeature;
 

Modified: trunk/qgis/src/app/qgsmaptoolsimplify.cpp
===================================================================
--- trunk/qgis/src/app/qgsmaptoolsimplify.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsmaptoolsimplify.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -24,7 +24,8 @@
 #include <QMouseEvent>
 #include <QMessageBox>
 
-#include <math.h>
+#include <cmath>
+#include <cfloat>
 
 QgsSimplifyDialog::QgsSimplifyDialog( QWidget* parent )
     : QDialog( parent )
@@ -193,14 +194,14 @@
   found = false;
   int requiredCnt = ( isLine ? 2 : 4 ); //4 for polygon is correct because first and last points are the same
   bool bottomFound = false;
-  double highTol, lowTol;// two boundaries to be used when no directly correct solution is found
+  double highTol = DBL_MAX, lowTol = DBL_MIN;// two boundaries to be used when no directly correct solution is found
   // calculate minimum tolerance where minimum (requiredCnt) of vertexes are left in geometry
   while ( !found )
   {
 
     int foundVertexes = QgsSimplifyFeature::simplifyPoints( pts, tol ).size();
     if ( foundVertexes < requiredCnt + 1 )
-    { //requred or lower number of verticies found
+    { //required or lower number of verticies found
       if ( foundVertexes == requiredCnt )
       {
         found = true;
@@ -211,7 +212,7 @@
         bottomFound = true;
         highTol = tol;
         tol = ( highTol + lowTol ) / 2;
-        if ( highTol / lowTol < 1.00000001 )
+        if ( doubleNear( highTol, lowTol ) )
         { //solving problem that two points are in same distance from  line, so they will be both excluded at same time
           //so some time more than required count of vertices can stay
           found = true;
@@ -225,7 +226,7 @@
       {
         lowTol = tol;
         tol = ( highTol + lowTol ) / 2;
-        if ( highTol / lowTol < 1.00000001 )
+        if ( doubleNear( highTol, lowTol ) )
         { //solving problem that two points are in same distance from  line, so they will be both excluded at same time
           //so some time more than required count of vertices can stay
           found = true;

Modified: trunk/qgis/src/app/qgsvectorlayerproperties.cpp
===================================================================
--- trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsvectorlayerproperties.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -71,6 +71,8 @@
     mRendererDialog( 0 )
 {
   setupUi( this );
+  setupEditTypes();
+
   connect( buttonBox, SIGNAL( accepted() ), this, SLOT( accept() ) );
   connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) );
   connect( buttonBox->button( QDialogButtonBox::Apply ), SIGNAL( clicked() ), this, SLOT( apply() ) );
@@ -181,41 +183,7 @@
   for ( int i = 0; i < 6; i++ )
     tblAttributes->item( row, i )->setFlags( tblAttributes->item( row, i )->flags() & ~Qt::ItemIsEditable );
 
-  QString buttonText;
-  switch ( layer->editType( idx ) )
-  {
-    case QgsVectorLayer::LineEdit:
-      buttonText = "Line Edit";
-      break;
-    case QgsVectorLayer::UniqueValues:
-      buttonText = "Unique Values";
-      break;
-    case QgsVectorLayer::UniqueValuesEditable:
-      buttonText = "Unique Values Editable";
-      break;
-    case QgsVectorLayer::Classification:
-      buttonText = "Classification";
-      break;
-    case QgsVectorLayer::ValueMap:
-      buttonText = "Value Map";
-      break;
-    case QgsVectorLayer::EditRange:
-      buttonText = "Edit Range";
-      break;
-    case QgsVectorLayer::SliderRange:
-      buttonText = "Slider Range";
-      break;
-    case QgsVectorLayer::FileName:
-      buttonText = "File Name";
-      break;
-    case QgsVectorLayer::Enumeration:
-      buttonText =  tr( "Enumeration" );
-      break;
-    case QgsVectorLayer::Immutable:
-      buttonText =  tr( "Immutable" );
-      break;
-  }
-  QPushButton * pb = new QPushButton( buttonText );
+  QPushButton * pb = new QPushButton( editTypeButtonText( layer->editType( idx ) ) );
   tblAttributes->setCellWidget( row, 6, pb );
   connect( pb, SIGNAL( pressed() ), this, SLOT( attributeTypeDialog( ) ) );
   mButtonMap.insert( idx, pb );
@@ -276,45 +244,22 @@
 
   QgsVectorLayer::EditType editType = attributeTypeDialog.editType();
   mEditTypeMap.insert( index, editType );
+
   QString buttonText;
   switch ( editType )
   {
-    case QgsVectorLayer::LineEdit:
-      buttonText = "Line Edit";
-      break;
-    case QgsVectorLayer::UniqueValues:
-      buttonText = "Unique Values";
-      break;
-    case QgsVectorLayer::UniqueValuesEditable:
-      buttonText = "Unique Values Editable";
-      break;
-    case QgsVectorLayer::Classification:
-      buttonText = "Classification";
-      break;
     case QgsVectorLayer::ValueMap:
-      buttonText = "Value Map";
       mValueMaps.insert( index, attributeTypeDialog.valueMap() );
       break;
     case QgsVectorLayer::EditRange:
-      buttonText = "Edit Range";
-      mRanges.insert( index, attributeTypeDialog.rangeData() );
-      break;
     case QgsVectorLayer::SliderRange:
-      buttonText = "Slider Range";
       mRanges.insert( index, attributeTypeDialog.rangeData() );
       break;
-    case QgsVectorLayer::FileName:
-      buttonText = "File Name";
+    default:
       break;
-    case QgsVectorLayer::Enumeration:
-      buttonText = "Enumeration";
-      break;
-    case QgsVectorLayer::Immutable:
-      buttonText = "Immutable";
-      break;
   }
   QPushButton *pb = dynamic_cast<QPushButton*>( tblAttributes->cellWidget( index, 6 ) );
-  pb->setText( buttonText );
+  pb->setText( editTypeButtonText( editType ) );
 
 }
 
@@ -595,53 +540,35 @@
   QgsContextHelp::run( context_id );
 }
 
+QMap< QgsVectorLayer::EditType, QString > QgsVectorLayerProperties::editTypeMap;
 
-QgsVectorLayer::EditType QgsVectorLayerProperties::getEditType( QString text )
+void QgsVectorLayerProperties::setupEditTypes()
 {
-  if ( text == "Line Edit" )
-  {
-    return QgsVectorLayer::LineEdit;
-  }
-  else if ( text == "Unique Values" )
-  {
-    return QgsVectorLayer::UniqueValues;
-  }
-  else if ( text == "Unique Values Editable" )
-  {
-    return QgsVectorLayer::UniqueValuesEditable;
-  }
-  else if ( text == "Classification" )
-  {
-    return QgsVectorLayer::Classification;
-  }
-  else if ( text == "Value Map" )
-  {
-    return QgsVectorLayer::ValueMap;
-  }
-  else if ( text == "Edit Range" )
-  {
-    return QgsVectorLayer::EditRange;
-  }
-  else if ( text == "Slider Range" )
-  {
-    return QgsVectorLayer::SliderRange;
-  }
-  else if ( text == "File Name" )
-  {
-    return QgsVectorLayer::FileName;
-  }
-  else if ( text == "Enumeration" )
-  {
-    return QgsVectorLayer::Enumeration;
-  }
-  else if ( text == "Immutable" )
-  {
-    return QgsVectorLayer::Immutable;
-  }
-  return QgsVectorLayer::LineEdit;
+  if ( !editTypeMap.isEmpty() )
+    return;
+
+  editTypeMap.insert( QgsVectorLayer::LineEdit, tr( "Line edit" ) );
+  editTypeMap.insert( QgsVectorLayer::UniqueValues, tr( "Unique values" ) );
+  editTypeMap.insert( QgsVectorLayer::UniqueValuesEditable, tr( "Unique values editable" ) );
+  editTypeMap.insert( QgsVectorLayer::Classification, tr( "Classification" ) );
+  editTypeMap.insert( QgsVectorLayer::ValueMap, tr( "Value map" ) );
+  editTypeMap.insert( QgsVectorLayer::EditRange, tr( "Edit range" ) );
+  editTypeMap.insert( QgsVectorLayer::SliderRange, tr( "Slider range" ) );
+  editTypeMap.insert( QgsVectorLayer::FileName, tr( "File name" ) );
+  editTypeMap.insert( QgsVectorLayer::Enumeration, tr( "Enumeration" ) );
+  editTypeMap.insert( QgsVectorLayer::Immutable, tr( "Immutable" ) );
 }
 
+QString QgsVectorLayerProperties::editTypeButtonText( QgsVectorLayer::EditType type )
+{
+  return editTypeMap[ type ];
+}
 
+QgsVectorLayer::EditType QgsVectorLayerProperties::editTypeFromButtonText( QString text )
+{
+  return editTypeMap.key( text );
+}
+
 void QgsVectorLayerProperties::apply()
 {
   //
@@ -685,7 +612,7 @@
     if ( !pb )
       continue;
 
-    QgsVectorLayer::EditType editType = getEditType( pb->text() );
+    QgsVectorLayer::EditType editType = editTypeFromButtonText( pb->text() );
     layer->setEditType( idx, editType );
 
     if ( editType == QgsVectorLayer::ValueMap )

Modified: trunk/qgis/src/app/qgsvectorlayerproperties.h
===================================================================
--- trunk/qgis/src/app/qgsvectorlayerproperties.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/app/qgsvectorlayerproperties.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -143,7 +143,10 @@
     //QPixmap bufferPixmap;
     static const int context_id = 94000531;
 
-    QgsVectorLayer::EditType getEditType( QString text );
+    static QMap< QgsVectorLayer::EditType, QString > editTypeMap;
+    static void setupEditTypes();
+    static QString editTypeButtonText( QgsVectorLayer::EditType type );
+    static QgsVectorLayer::EditType editTypeFromButtonText( QString text );
 };
 
 inline QString QgsVectorLayerProperties::displayName()

Modified: trunk/qgis/src/core/pal/layer.cpp
===================================================================
--- trunk/qgis/src/core/pal/layer.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/core/pal/layer.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -555,9 +555,7 @@
   return label_unit;
 }
 
-
-
-/*
+#if 0
 void Layer::setFeatureGeom (const char * geom_id, const char *the_geomHex){
 
 
@@ -630,7 +628,7 @@
       }
    }
 }
-*/
+#endif
 
 
 } // end namespace

Modified: trunk/qgis/src/core/qgis.h
===================================================================
--- trunk/qgis/src/core/qgis.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/core/qgis.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -20,6 +20,8 @@
 #define QGIS_H
 #include <QEvent>
 #include <QString>
+#include <cmath>
+#include <cfloat>
 /** \ingroup core
  * The QGis class provides global constants for use throughout the application.
  */
@@ -112,6 +114,15 @@
   return u.f;
 }
 
+//
+// compare two doubles (but allow some difference)
+//
+inline bool doubleNear( double a, double b, double epsilon = 4 * DBL_EPSILON )
+{
+  const double diff = a - b;
+  return diff>-epsilon && diff<=epsilon;
+}
+
 /** Wkt string that represents a geographic coord sys */
 const  QString GEOWkt =
   "GEOGCS[\"WGS 84\", "

Modified: trunk/qgis/src/plugins/diagram_overlay/qgspiediagramfactory.cpp
===================================================================
--- trunk/qgis/src/plugins/diagram_overlay/qgspiediagramfactory.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/plugins/diagram_overlay/qgspiediagramfactory.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -58,7 +58,7 @@
     }
   }
 
-  if ( sum - 0.0 < 0.000000000000001 )
+  if ( doubleNear( sum, 0.0 ) )
   {
     p.end();
     delete diagramImage;

Modified: trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp
===================================================================
--- trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/plugins/geoprocessing/qgspggeoprocessing.cpp	2009-08-01 19:20:09 UTC (rev 11241)
@@ -343,8 +343,7 @@
 
                 QMessageBox::critical( 0, tr( "Unable to add geometry column" ),
                                        tr( "Unable to add geometry column to the output table %1-%2" )
-                                       .arg( bb->bufferLayerName() ).arg( PQerrorMessage( conn ) ) ) );
-
+                                       .arg( bb->bufferLayerName() ).arg( PQerrorMessage( conn ) ) );
               }
             }
             else

Modified: trunk/qgis/src/providers/ogr/CMakeLists.txt
===================================================================
--- trunk/qgis/src/providers/ogr/CMakeLists.txt	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/providers/ogr/CMakeLists.txt	2009-08-01 19:20:09 UTC (rev 11241)
@@ -1,6 +1,13 @@
 
 SET (OGR_SRCS qgsogrprovider.cpp)
 
+SET(OGR_MOC_HDRS qgsogrprovider.h)
+
+########################################################
+# Build
+
+QT4_WRAP_CPP(OGR_MOC_SRCS ${OGR_MOC_HDRS})
+
 INCLUDE_DIRECTORIES(
   .
   ../../core
@@ -8,8 +15,9 @@
   ${GEOS_INCLUDE_DIR}
 )
 
-ADD_LIBRARY(ogrprovider MODULE ${OGR_SRCS})
 
+ADD_LIBRARY(ogrprovider MODULE ${OGR_SRCS} ${OGR_MOC_SRCS})
+
 TARGET_LINK_LIBRARIES(ogrprovider
   ${QT_QTCORE_LIBRARY} 
   ${QT_QTXML_LIBRARY} 

Modified: trunk/qgis/src/providers/ogr/qgsogrprovider.h
===================================================================
--- trunk/qgis/src/providers/ogr/qgsogrprovider.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/providers/ogr/qgsogrprovider.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -30,6 +30,8 @@
   */
 class QgsOgrProvider : public QgsVectorDataProvider
 {
+  Q_OBJECT
+
   public:
 
     /**

Modified: trunk/qgis/src/providers/osm/CMakeLists.txt
===================================================================
--- trunk/qgis/src/providers/osm/CMakeLists.txt	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/providers/osm/CMakeLists.txt	2009-08-01 19:20:09 UTC (rev 11241)
@@ -9,9 +9,14 @@
 osmstyle.cpp
 )
 
+SET(OSM_MOC_HDRS osmprovider.h)
+
+
 ########################################################
 # Build
 
+QT4_WRAP_CPP(OSM_MOC_SRCS ${OSM_MOC_HDRS})
+
 INCLUDE_DIRECTORIES (
   ../../core
   ../../core/renderer

Modified: trunk/qgis/src/providers/osm/osmprovider.h
===================================================================
--- trunk/qgis/src/providers/osm/osmprovider.h	2009-08-01 18:04:36 UTC (rev 11240)
+++ trunk/qgis/src/providers/osm/osmprovider.h	2009-08-01 19:20:09 UTC (rev 11241)
@@ -27,6 +27,8 @@
 
 class QgsOSMDataProvider: public QgsVectorDataProvider
 {
+  Q_OBJECT
+
   public:
 
     /**



More information about the QGIS-commit mailing list