Skip to content

Commit 33fb34c

Browse files
committed
settings follow-up
1 parent 8a77ca3 commit 33fb34c

File tree

3 files changed

+30
-46
lines changed

3 files changed

+30
-46
lines changed

swiss_locator/core/filters/swiss_locator_filter.py

+1-9
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from qgis.PyQt.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
3232

3333
from qgis.core import (
34-
metaEnumFromType,
3534
Qgis,
3635
QgsLocatorFilter,
3736
QgsLocatorResult,
@@ -121,7 +120,6 @@ def __init__(
121120
self.result_found = False
122121
self.access_managers = {}
123122
self.minimum_search_length = 2
124-
self.me = metaEnumFromType(QgsLocatorFilter.Priority)
125123

126124
self.nam = QNetworkAccessManager()
127125
self.nam.setRedirectPolicy(
@@ -163,13 +161,7 @@ def name(self):
163161
return self.__class__.__name__
164162

165163
def priority(self):
166-
(value, ok) = self.me.keyToValue(
167-
self.settings.filters[self.type.value]["priority"].value()
168-
)
169-
if ok:
170-
return QgsLocatorFilter.Priority(value)
171-
else:
172-
return QgsLocatorFilter.Priority.Medium
164+
return self.settings.filters[self.type.value]["priority"].value()
173165

174166
def displayName(self):
175167
# this should be re-implemented

swiss_locator/core/settings.py

+13-14
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
# ---------------------------------------------------------------------
2626

2727
from qgis.core import (
28-
metaEnumFromType,
2928
QgsLocatorFilter,
3029
QgsSettingsTree,
3130
QgsSettingsEntryBool,
31+
QgsSettingsEntryEnumFlag,
3232
QgsSettingsEntryString,
3333
QgsSettingsEntryInteger,
3434
QgsSettingsEntryStringList,
@@ -61,59 +61,58 @@ def __new__(cls):
6161
"feature_search_layers_list", settings_node, []
6262
)
6363

64-
me = metaEnumFromType(QgsLocatorFilter.Priority)
65-
66-
cls.filters = {
64+
filters = {
6765
FilterType.Location.value: {
68-
"priority": QgsSettingsEntryString(
66+
"priority": QgsSettingsEntryEnumFlag(
6967
f"{FilterType.Location.value}_priority",
7068
settings_node,
71-
me.valueToKey(QgsLocatorFilter.Priority.Highest),
69+
QgsLocatorFilter.Priority.Highest,
7270
),
7371
"limit": QgsSettingsEntryInteger(
7472
f"{FilterType.Location.value}_limit", settings_node, 8
7573
),
7674
},
7775
FilterType.WMTS.value: {
78-
"priority": QgsSettingsEntryString(
76+
"priority": QgsSettingsEntryEnumFlag(
7977
f"{FilterType.WMTS.value}_priority",
8078
settings_node,
81-
me.valueToKey(QgsLocatorFilter.Priority.Medium),
79+
QgsLocatorFilter.Priority.Medium,
8280
),
8381
"limit": QgsSettingsEntryInteger(
8482
f"{FilterType.WMTS.value}_limit", settings_node, 8
8583
),
8684
},
8785
FilterType.VectorTiles.value: {
88-
"priority": QgsSettingsEntryString(
86+
"priority": QgsSettingsEntryEnumFlag(
8987
f"{FilterType.VectorTiles.value}_priority",
9088
settings_node,
91-
me.valueToKey(QgsLocatorFilter.Priority.Highest),
89+
QgsLocatorFilter.Priority.Highest,
9290
),
9391
"limit": QgsSettingsEntryInteger(
9492
f"{FilterType.VectorTiles.value}_limit", settings_node, 8
9593
),
9694
},
9795
FilterType.Feature.value: {
98-
"priority": QgsSettingsEntryString(
96+
"priority": QgsSettingsEntryEnumFlag(
9997
f"{FilterType.Feature.value}_priority",
10098
settings_node,
101-
me.valueToKey(QgsLocatorFilter.Priority.High),
99+
QgsLocatorFilter.Priority.High,
102100
),
103101
"limit": QgsSettingsEntryInteger(
104102
f"{FilterType.Feature.value}_limit", settings_node, 8
105103
),
106104
},
107105
FilterType.Layers.value: {
108-
"priority": QgsSettingsEntryString(
106+
"priority": QgsSettingsEntryEnumFlag(
109107
f"{FilterType.Layers.value}_priority",
110108
settings_node,
111-
me.valueToKey(QgsLocatorFilter.Priority.High),
109+
QgsLocatorFilter.Priority.High,
112110
),
113111
"limit": QgsSettingsEntryInteger(
114112
f"{FilterType.Layers.value}_limit", settings_node, 5
115113
),
116114
},
117115
}
116+
cls.filters = filters
118117

119118
return cls.instance

swiss_locator/gui/config_dialog.py

+16-23
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@
2525
from qgis.PyQt.QtCore import Qt, pyqtSlot
2626
from qgis.PyQt.QtWidgets import QDialog, QTableWidgetItem, QAbstractItemView, QComboBox
2727
from qgis.PyQt.uic import loadUiType
28-
from qgis.core import QgsLocatorFilter, metaEnumFromType
28+
from qgis.core import QgsLocatorFilter
2929
from qgis.gui import (
30-
QgsSettingsEditorWidgetWrapper,
3130
QgsSettingsStringComboBoxWrapper,
3231
QgsSettingsBoolCheckBoxWrapper,
32+
QgsSettingsEnumEditorWidgetWrapper,
33+
QgsSettingsEditorWidgetWrapper,
3334
)
3435

3536
from ..core.settings import Settings
@@ -87,31 +88,23 @@ def __init__(self, parent=None):
8788
)
8889
)
8990

90-
me = metaEnumFromType(QgsLocatorFilter.Priority)
91+
display_strings = {
92+
QgsLocatorFilter.Priority.Highest: self.tr("Highest"),
93+
QgsLocatorFilter.Priority.High: self.tr("High"),
94+
QgsLocatorFilter.Priority.Medium: self.tr("Medium"),
95+
QgsLocatorFilter.Priority.Low: self.tr("Low"),
96+
QgsLocatorFilter.Priority.Lowest: self.tr("Lowest"),
97+
}
98+
9199
for filter_type in FilterType:
92100
cb = self.findChild(QComboBox, "{}_priority".format(filter_type.value))
93101
if cb is not None: # Some filters might not have a config dialog
94-
cb.addItem(
95-
self.tr("Highest"), me.valueToKey(QgsLocatorFilter.Priority.Highest)
96-
)
97-
cb.addItem(
98-
self.tr("High"), me.valueToKey(QgsLocatorFilter.Priority.High)
99-
)
100-
cb.addItem(
101-
self.tr("Medium"), me.valueToKey(QgsLocatorFilter.Priority.Medium)
102-
)
103-
cb.addItem(self.tr("Low"), me.valueToKey(QgsLocatorFilter.Priority.Low))
104-
cb.addItem(
105-
self.tr("Lowest"), me.valueToKey(QgsLocatorFilter.Priority.Lowest)
106-
)
107-
108-
self.wrappers.append(
109-
QgsSettingsStringComboBoxWrapper(
110-
cb,
111-
self.settings.filters[filter_type.value]["priority"],
112-
QgsSettingsStringComboBoxWrapper.Mode.Data,
113-
)
102+
ew = QgsSettingsEnumEditorWidgetWrapper(
103+
editor=cb,
104+
setting=self.settings.filters[filter_type.value]["priority"],
105+
displayStrings=display_strings,
114106
)
107+
self.wrappers.append(ew)
115108

116109
self.search_line_edit.textChanged.connect(self.filter_rows)
117110
self.select_all_button.pressed.connect(self.select_all)

0 commit comments

Comments
 (0)