Skip to content

Commit c76ea1d

Browse files
authored
Merge pull request #23 from WhereGroup/plugin_name_in_msgbar
Add (localized) plugin name to messagebar messages
2 parents df5a41f + 6cc0555 commit c76ea1d

File tree

8 files changed

+33
-216
lines changed

8 files changed

+33
-216
lines changed

controller.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from .filters import FilterDefinition, Predicate
1010
from .helpers import getSupportedLayers, removeFilterFromLayer, addFilterToLayer, refreshLayerTree, hasLayerException, \
1111
warnAboutCurveGeoms
12-
from .settings import FILTER_COMMENT_START, FILTER_COMMENT_STOP
12+
from .settings import FILTER_COMMENT_START, LOCALIZED_PLUGIN_NAME
1313

1414

1515
class FilterController(QObject):
@@ -72,13 +72,13 @@ def refreshFilter(self):
7272
def setFilterFromSelection(self):
7373
layer = iface.activeLayer()
7474
if not layer or not layer.type() == QgsMapLayerType.VectorLayer:
75-
iface.messageBar().pushInfo('', self.tr('Select a polygon layer'))
75+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, self.tr('Select a polygon layer'))
7676
return
7777
if not layer.geometryType() == QgsWkbTypes.PolygonGeometry:
78-
iface.messageBar().pushInfo('', self.tr('Select a polygon layer'))
78+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, self.tr('Select a polygon layer'))
7979
return
8080
if not layer.selectedFeatureCount():
81-
iface.messageBar().pushInfo('', self.tr('No features selected'))
81+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, self.tr('No features selected'))
8282
return
8383
crs = iface.activeLayer().crs()
8484
geom = QgsGeometry().unaryUnion([feature.geometry() for feature in layer.selectedFeatures()])
@@ -114,7 +114,7 @@ def stopSketchingTool(self):
114114
def onSketchFinished(self, geometry: QgsGeometry):
115115
self.stopSketchingTool()
116116
if not geometry.isGeosValid():
117-
iface.messageBar().pushMessage(self.tr("Geometry is not valid"), level=Qgis.Warning, duration=3)
117+
iface.messageBar().pushWarning(LOCALIZED_PLUGIN_NAME, self.tr("Geometry is not valid"))
118118
return
119119
self.initFilter()
120120
self.currentFilter.name = self.tr('New filter from sketch')

filters.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from qgis.core import QgsVectorLayer, QgsGeometry, QgsCoordinateReferenceSystem
77
from qgis.utils import iface
88

9-
from .settings import FILTER_COMMENT_START, FILTER_COMMENT_STOP
9+
from .settings import FILTER_COMMENT_START, FILTER_COMMENT_STOP, LOCALIZED_PLUGIN_NAME
1010
from .helpers import tr, saveSettingsValue, readSettingsValue, allSettingsValues, removeSettingsValue, \
1111
getLayerGeomName, matchFormatString
1212

@@ -140,13 +140,13 @@ def loadAllFilterDefinitions() -> List[FilterDefinition]:
140140

141141
def saveFilterDefinition(filterDef: FilterDefinition) -> None:
142142
if not filterDef:
143-
iface.messageBar().pushInfo("", tr("No current filter"))
143+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, tr("No current filter"))
144144
return
145145
if not filterDef.isValid:
146-
iface.messageBar().pushInfo("", tr("Current filter definition is not valid"))
146+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, tr("Current filter definition is not valid"))
147147
return
148148
if not filterDef.name:
149-
iface.messageBar().pushInfo("", tr("Please provide a name for the filter"))
149+
iface.messageBar().pushInfo(LOCALIZED_PLUGIN_NAME, tr("Please provide a name for the filter"))
150150
return
151151
if filterDef.isSaved:
152152
return

helpers.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55

66
from osgeo import ogr
77
from qgis.PyQt.QtCore import QCoreApplication
8-
from qgis.core import Qgis, QgsExpressionContextUtils, QgsSettings, QgsMapLayer, QgsMapLayerType, QgsVectorLayer,\
8+
from qgis.core import QgsExpressionContextUtils, QgsSettings, QgsMapLayer, QgsMapLayerType, QgsVectorLayer,\
99
QgsWkbTypes
1010
from qgis.utils import iface
1111

12-
from .settings import SUPPORTED_STORAGE_TYPES, GROUP, FILTER_COMMENT_START, FILTER_COMMENT_STOP, LAYER_EXCEPTION_VARIABLE
12+
from .settings import SUPPORTED_STORAGE_TYPES, GROUP, FILTER_COMMENT_START, FILTER_COMMENT_STOP, \
13+
LAYER_EXCEPTION_VARIABLE, LOCALIZED_PLUGIN_NAME
1314

1415

1516
def tr(message):
@@ -181,6 +182,6 @@ def warnAboutCurveGeoms(layers: Iterable[QgsMapLayer]):
181182
continue
182183
if layer.storageType().upper() in ['GPKG', 'SQLITE'] and QgsWkbTypes.isCurvedType(layer.wkbType()):
183184
txt = tr('The layer "{layername}" has an unsupported geometry type: '
184-
'"Circularstring", "CompoundCurve", "CurvePolygon", "MultiCurve", "MultiSurface", '
185+
'"CircularString", "CompoundCurve", "CurvePolygon", "MultiCurve", "MultiSurface", '
185186
'"Curve" or "Surface".').format(layername=layer.name())
186-
iface.messageBar().pushMessage(txt, level=Qgis.Warning)
187+
iface.messageBar().pushWarning(LOCALIZED_PLUGIN_NAME, txt)

i18n/spatial_filter.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
FORMS = ../ui/named_filters_dialog.ui
2-
SOURCES = ../spatial_filter.py ../filters.py ../widgets.py ../helpers.py ../models.py ../controller.py
2+
SOURCES = ../spatial_filter.py ../filters.py ../widgets.py ../helpers.py ../models.py ../controller.py ../settings.py
33
TRANSLATIONS = spatial_filter_de.ts

i18n/spatial_filter_de.qm

257 Bytes
Binary file not shown.

i18n/spatial_filter_de.ts

Lines changed: 5 additions & 199 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
<TS version="2.1" language="de_DE" sourcelanguage="en_US">
44
<context>
55
<name>@default</name>
6-
<message>
7-
<location filename="../widgets.py" line="166"/>
8-
<source>Filter Toolbar</source>
9-
<translation type="obsolete">Filterwerkzeugleiste</translation>
10-
</message>
116
<message>
127
<location filename="../filters.py" line="146"/>
138
<source>Current filter definition is not valid</source>
@@ -38,66 +33,6 @@
3833
<source>Delete?</source>
3934
<translation>Löschen?</translation>
4035
</message>
41-
<message>
42-
<location filename="../widgets.py" line="35"/>
43-
<source>Set rectangular filter</source>
44-
<translation type="obsolete">Rechteckigen Filter setzen</translation>
45-
</message>
46-
<message>
47-
<location filename="../widgets.py" line="124"/>
48-
<source>Change Name</source>
49-
<translation type="obsolete">Namen ändern</translation>
50-
</message>
51-
<message>
52-
<location filename="../widgets.py" line="124"/>
53-
<source>New Name:</source>
54-
<translation type="obsolete">Neuer Name:</translation>
55-
</message>
56-
<message>
57-
<location filename="../widgets.py" line="138"/>
58-
<source>Chose geometric predicate</source>
59-
<translation type="obsolete">Geometrisches Prädikat wählen</translation>
60-
</message>
61-
<message>
62-
<location filename="../widgets.py" line="177"/>
63-
<source>Toggle filter on/off</source>
64-
<translation type="obsolete">Filter ein/aus</translation>
65-
</message>
66-
<message>
67-
<location filename="../widgets.py" line="205"/>
68-
<source>Set rectangular filter geometry</source>
69-
<translation type="obsolete">Rechteckige Filtergeometrie erstellen</translation>
70-
</message>
71-
<message>
72-
<location filename="../widgets.py" line="210"/>
73-
<source>Set filter geometry from selection</source>
74-
<translation type="obsolete">Filtergeometrie aus Auswahl erstellen</translation>
75-
</message>
76-
<message>
77-
<location filename="../widgets.py" line="218"/>
78-
<source>Save current filter</source>
79-
<translation type="obsolete">Filter speichern</translation>
80-
</message>
81-
<message>
82-
<location filename="../widgets.py" line="223"/>
83-
<source>Manage filters</source>
84-
<translation type="obsolete">Filter verwalten</translation>
85-
</message>
86-
<message>
87-
<location filename="../controller.py" line="60"/>
88-
<source>No filter geometry set</source>
89-
<translation type="obsolete">Keine Filtergeometrie gesetzt</translation>
90-
</message>
91-
<message>
92-
<location filename="../controller.py" line="71"/>
93-
<source>Chose a polygon-Layer</source>
94-
<translation type="obsolete">Polygonlayer auswählen</translation>
95-
</message>
96-
<message>
97-
<location filename="../controller.py" line="74"/>
98-
<source>No features selected</source>
99-
<translation type="obsolete">Keine Features gewählt</translation>
100-
</message>
10136
<message>
10237
<location filename="../filters.py" line="177"/>
10338
<source>Current settings will be lost. Apply anyway?</source>
@@ -123,38 +58,15 @@
12358
<source>Unknown filter</source>
12459
<translation>Unbekannter Filter</translation>
12560
</message>
126-
<message>
127-
<location filename="../helpers.py" line="181"/>
128-
<source>The layer &quot;{layername}&quot; has an unsupported geometry type: &quot;Circularstring&quot;, &quot;CompoundCurve&quot;, &quot;CurvePolygon&quot;, &quot;MultiCurve&quot;, &quot;MultiSurface&quot;, &quot;Curve&quot; or &quot;Surface&quot;.</source>
129-
<translation>Der Layer &quot;{layername}&quot; hat einen nicht unterstüzten Geometrietyp: &quot;Circularstring&quot;, &quot;CompoundCurve&quot;, &quot;CurvePolygon&quot;, &quot;MultiCurve&quot;, &quot;MultiSurface&quot;, &quot;Curve&quot; oder &quot;Surface&quot;.</translation>
130-
</message>
13161
<message>
13262
<location filename="../helpers.py" line="184"/>
133-
<source>A layer contains an unsupported geometry type: &quot;Circularstring&quot;, &quot;CompoundCurve&quot;, &quot;CurvePolygon&quot;, &quot;MultiCurve&quot;, &quot;MultiSurface&quot;, &quot;Curve&quot; oder &quot;Surface&quot;.</source>
134-
<translation type="obsolete">Ein Layer hat einen unicht unterstützten Geometrietyp: &quot;Circularstring&quot;, &quot;CompoundCurve&quot;, &quot;CurvePolygon&quot;, &quot;MultiCurve&quot;, &quot;MultiSurface&quot;, &quot;Curve&quot; oder &quot;Surface&quot;.</translation>
135-
</message>
136-
</context>
137-
<context>
138-
<name>Controller</name>
139-
<message>
140-
<location filename="../controller.py" line="62"/>
141-
<source>No filter geometry set</source>
142-
<translation type="obsolete">Keine Filtergeometrie gesetzt</translation>
63+
<source>The layer &quot;{layername}&quot; has an unsupported geometry type: &quot;CircularString&quot;, &quot;CompoundCurve&quot;, &quot;CurvePolygon&quot;, &quot;MultiCurve&quot;, &quot;MultiSurface&quot;, &quot;Curve&quot; or &quot;Surface&quot;.</source>
64+
<translation>Der Layer &amp;quot;{layername}&amp;quot; hat einen nicht unterstützten Geometrietyp: &amp;quot;CircularString&amp;quot;, &amp;quot;CompoundCurve&amp;quot;, &amp;quot;CurvePolygon&amp;quot;, &amp;quot;MultiCurve&amp;quot;, &amp;quot;MultiSurface&amp;quot;, &amp;quot;Curve&amp;quot; oder &amp;quot;Surface&amp;quot;.</translation>
14365
</message>
14466
<message>
145-
<location filename="../controller.py" line="70"/>
146-
<source>Select a polygon layer</source>
147-
<translation type="obsolete">Polygonlayer auswählen</translation>
148-
</message>
149-
<message>
150-
<location filename="../controller.py" line="73"/>
151-
<source>No features selected</source>
152-
<translation type="obsolete">Keine Features gewählt</translation>
153-
</message>
154-
<message>
155-
<location filename="../controller.py" line="19"/>
156-
<source>New Filter</source>
157-
<translation type="obsolete">Neuer Filter</translation>
67+
<location filename="../settings.py" line="7"/>
68+
<source>Spatial Filter</source>
69+
<translation>Räumlicher Filter</translation>
15870
</message>
15971
</context>
16072
<context>
@@ -172,11 +84,6 @@
17284
</context>
17385
<context>
17486
<name>FilterController</name>
175-
<message>
176-
<location filename="../controller.py" line="21"/>
177-
<source>New Filter</source>
178-
<translation type="obsolete">Neuer Filter</translation>
179-
</message>
18087
<message>
18188
<location filename="../controller.py" line="78"/>
18289
<source>Select a polygon layer</source>
@@ -203,49 +110,6 @@
203110
<translation>Neuer Filter aus Skizze</translation>
204111
</message>
205112
</context>
206-
<context>
207-
<name>FilterManager</name>
208-
<message>
209-
<location filename="../filters.py" line="110"/>
210-
<source>Current filter definition is not valid</source>
211-
<translation type="obsolete">Aktuelle Filterdefinition ist ungültig</translation>
212-
</message>
213-
<message>
214-
<location filename="../filters.py" line="113"/>
215-
<source>Please provide a name for the filter</source>
216-
<translation type="obsolete">Bitte zuerst einen Filternamen vergeben</translation>
217-
</message>
218-
<message>
219-
<location filename="../filters.py" line="132"/>
220-
<source>Overwrite settings for filter</source>
221-
<translation type="obsolete">Einstellungen überschreiben für Filter</translation>
222-
</message>
223-
<message>
224-
<location filename="../filters.py" line="133"/>
225-
<source>Overwrite?</source>
226-
<translation type="obsolete">Überschreiben?</translation>
227-
</message>
228-
<message>
229-
<location filename="../filters.py" line="138"/>
230-
<source>Delete filter</source>
231-
<translation type="obsolete">Filter löschen</translation>
232-
</message>
233-
<message>
234-
<location filename="../filters.py" line="139"/>
235-
<source>Delete?</source>
236-
<translation type="obsolete">Löschen?</translation>
237-
</message>
238-
<message>
239-
<location filename="../filters.py" line="127"/>
240-
<source>Current settings will be lost. Apply anyway?</source>
241-
<translation type="obsolete">Aktuelle Einstellungen gehen verloren. Trotzdem anwenden?</translation>
242-
</message>
243-
<message>
244-
<location filename="../filters.py" line="128"/>
245-
<source>Continue?</source>
246-
<translation type="obsolete">Fortfahren?</translation>
247-
</message>
248-
</context>
249113
<context>
250114
<name>FilterToolbar</name>
251115
<message>
@@ -258,16 +122,6 @@
258122
<source>Filter from selected features</source>
259123
<translation>Filter aus gewählten Features</translation>
260124
</message>
261-
<message>
262-
<location filename="../widgets.py" line="176"/>
263-
<source>Toggle filter on/off</source>
264-
<translation type="obsolete">Filter ein/aus</translation>
265-
</message>
266-
<message>
267-
<location filename="../widgets.py" line="338"/>
268-
<source>Save current filter</source>
269-
<translation type="obsolete">Filter speichern</translation>
270-
</message>
271125
<message>
272126
<location filename="../widgets.py" line="349"/>
273127
<source>Manage filters</source>
@@ -283,16 +137,6 @@
283137
<source>Show filter geometry</source>
284138
<translation>Filtergeometrie anzeigen</translation>
285139
</message>
286-
<message>
287-
<location filename="../widgets.py" line="364"/>
288-
<source>Activate filter</source>
289-
<translation type="obsolete">Filter aktivieren</translation>
290-
</message>
291-
<message>
292-
<location filename="../widgets.py" line="362"/>
293-
<source>Deactivate filter</source>
294-
<translation type="obsolete">Filter deaktivieren</translation>
295-
</message>
296140
<message>
297141
<location filename="../widgets.py" line="397"/>
298142
<source>No filter geometry set</source>
@@ -313,11 +157,6 @@
313157
<source>Draw a filter polygon on the canvas</source>
314158
<translation>Filter-Polygon in der Karte zeichnen</translation>
315159
</message>
316-
<message>
317-
<location filename="../widgets.py" line="444"/>
318-
<source>Geometry is not valid</source>
319-
<translation type="obsolete">Geometrie ist ungültig</translation>
320-
</message>
321160
<message>
322161
<location filename="../widgets.py" line="286"/>
323162
<source>Remove current filter</source>
@@ -372,11 +211,6 @@
372211
<source>Active Filter:</source>
373212
<translation>Aktiver Filter:</translation>
374213
</message>
375-
<message>
376-
<location filename="../ui/named_filters_dialog.ui" line="36"/>
377-
<source>Name...</source>
378-
<translation type="obsolete">Name...</translation>
379-
</message>
380214
<message>
381215
<location filename="../ui/named_filters_dialog.ui" line="49"/>
382216
<source>Named Filters:</source>
@@ -397,30 +231,12 @@
397231
<source>Close</source>
398232
<translation>Schließen</translation>
399233
</message>
400-
<message>
401-
<location filename="../widgets.py" line="173"/>
402-
<source>Change Name</source>
403-
<translation type="obsolete">Namen ändern</translation>
404-
</message>
405-
<message>
406-
<location filename="../widgets.py" line="173"/>
407-
<source>New Name:</source>
408-
<translation type="obsolete">Neuer Name:</translation>
409-
</message>
410234
<message>
411235
<location filename="../ui/named_filters_dialog.ui" line="36"/>
412236
<source>Save</source>
413237
<translation>Speichern</translation>
414238
</message>
415239
</context>
416-
<context>
417-
<name>PredicateAction</name>
418-
<message>
419-
<location filename="../widgets.py" line="137"/>
420-
<source>Geometric predicate</source>
421-
<translation type="obsolete">Räumlicher Operator</translation>
422-
</message>
423-
</context>
424240
<context>
425241
<name>PredicateButton</name>
426242
<message>
@@ -443,21 +259,11 @@
443259
<source>BBOX</source>
444260
<translation>BBOX</translation>
445261
</message>
446-
<message>
447-
<location filename="../widgets.py" line="219"/>
448-
<source>Compare features to the filters bounding box</source>
449-
<translation type="obsolete">Vergleiche Features mit Bounding Box des Filters</translation>
450-
</message>
451262
<message>
452263
<location filename="../widgets.py" line="222"/>
453264
<source>GEOM</source>
454265
<translation>GEOM</translation>
455266
</message>
456-
<message>
457-
<location filename="../widgets.py" line="226"/>
458-
<source>Compare features to the exact filter geometry</source>
459-
<translation type="obsolete">Vergleiche Features mit exakter Filtergeometrie</translation>
460-
</message>
461267
<message>
462268
<location filename="../widgets.py" line="188"/>
463269
<source>intersects</source>

settings.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
from qgis.PyQt.QtCore import QCoreApplication
2+
3+
def tr(message):
4+
return QCoreApplication.translate('@default', message)
5+
6+
7+
LOCALIZED_PLUGIN_NAME = tr("Spatial Filter") # for use in messages etc.
8+
19
GROUP = 'SpatialFilter' # The section name for filter definitions stored in QSettings
210
GROUP_SYMBOL = 'SpatialFilterSymbol' # Section to store symbol settings
311
LAYER_EXCEPTION_VARIABLE = 'SpatialFilterException'

0 commit comments

Comments
 (0)