Skip to content

Commit 08ac1f0

Browse files
authored
Merge pull request #8037 from elpaso/bugfix-db-manager-sql
Bugfix db manager sql
2 parents a1d130a + c06c475 commit 08ac1f0

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

python/plugins/db_manager/dlg_sql_layer_window.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ def __init__(self, iface, layer, parent=None):
116116
self.presetCombo.activated[str].connect(self.loadPreset)
117117
self.presetCombo.activated[str].connect(self.presetName.setText)
118118

119+
self.editSql.textChanged.connect(self.updatePresetButtonsState)
120+
self.presetName.textChanged.connect(self.updatePresetButtonsState)
121+
self.presetCombo.currentIndexChanged.connect(self.updatePresetButtonsState)
122+
119123
self.updatePresetsCombobox()
120124

121125
self.geomCombo.setEditable(True)
@@ -145,11 +149,11 @@ def __init__(self, iface, layer, parent=None):
145149
# First the SQL from QgsDataSourceUri table
146150
sql = uri.table()
147151
if uri.keyColumn() == '_uid_':
148-
match = re.search('^\(SELECT .+ AS _uid_,\* FROM \((.*)\) AS _subq_.+_\s*\)$', sql, re.S)
152+
match = re.search(r'^\(SELECT .+ AS _uid_,\* FROM \((.*)\) AS _subq_.+_\s*\)$', sql, re.S | re.X)
149153
if match:
150154
sql = match.group(1)
151155
else:
152-
match = re.search('^\((SELECT .+ FROM .+)\)$', sql, re.S)
156+
match = re.search(r'^\((SELECT .+ FROM .+)\)$', sql, re.S | re.X)
153157
if match:
154158
sql = match.group(1)
155159
# Need to check on table() since the parentheses were removed by the regexp
@@ -186,6 +190,12 @@ def __init__(self, iface, layer, parent=None):
186190
def getQueryHash(self, name):
187191
return 'q%s' % md5(name.encode('utf8')).hexdigest()
188192

193+
def updatePresetButtonsState(self, *args):
194+
"""Slot called when the combo box or the sql or the query name have changed:
195+
sets store button state"""
196+
self.presetStore.setEnabled(bool(self._getSqlQuery() and self.presetName.text()))
197+
self.presetDelete.setEnabled(bool(self.presetCombo.currentIndex() != -1))
198+
189199
def updatePresetsCombobox(self):
190200
self.presetCombo.clear()
191201

0 commit comments

Comments
 (0)