mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-06 00:03:16 -05:00
[dbmanager] Fix stored queries retrieve
Fixes #19802 - DB Manager saved SQL statements are saved empty
This commit is contained in:
parent
5b7e60ac45
commit
a74b6262df
@ -24,6 +24,7 @@ The content of this file is based on
|
|||||||
from builtins import zip
|
from builtins import zip
|
||||||
from builtins import next
|
from builtins import next
|
||||||
from builtins import str
|
from builtins import str
|
||||||
|
from hashlib import md5
|
||||||
|
|
||||||
from qgis.PyQt.QtCore import Qt, pyqtSignal
|
from qgis.PyQt.QtCore import Qt, pyqtSignal
|
||||||
from qgis.PyQt.QtWidgets import QDialog, QWidget, QAction, QApplication, QStyledItemDelegate
|
from qgis.PyQt.QtWidgets import QDialog, QWidget, QAction, QApplication, QStyledItemDelegate
|
||||||
@ -181,6 +182,9 @@ class DlgSqlLayerWindow(QWidget, Ui_Dialog):
|
|||||||
if uri.selectAtIdDisabled():
|
if uri.selectAtIdDisabled():
|
||||||
self.avoidSelectById.setCheckState(Qt.Checked)
|
self.avoidSelectById.setCheckState(Qt.Checked)
|
||||||
|
|
||||||
|
def getQueryHash(self, name):
|
||||||
|
return 'q%s' % md5(name.encode('utf8')).hexdigest()
|
||||||
|
|
||||||
def updatePresetsCombobox(self):
|
def updatePresetsCombobox(self):
|
||||||
self.presetCombo.clear()
|
self.presetCombo.clear()
|
||||||
|
|
||||||
@ -199,8 +203,8 @@ class DlgSqlLayerWindow(QWidget, Ui_Dialog):
|
|||||||
if query == "":
|
if query == "":
|
||||||
return
|
return
|
||||||
name = self.presetName.text()
|
name = self.presetName.text()
|
||||||
QgsProject.instance().writeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/name', name)
|
QgsProject.instance().writeEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/name', name)
|
||||||
QgsProject.instance().writeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/query', query)
|
QgsProject.instance().writeEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/query', query)
|
||||||
index = self.presetCombo.findText(name)
|
index = self.presetCombo.findText(name)
|
||||||
if index == -1:
|
if index == -1:
|
||||||
self.presetCombo.addItem(name)
|
self.presetCombo.addItem(name)
|
||||||
@ -210,13 +214,13 @@ class DlgSqlLayerWindow(QWidget, Ui_Dialog):
|
|||||||
|
|
||||||
def deletePreset(self):
|
def deletePreset(self):
|
||||||
name = self.presetCombo.currentText()
|
name = self.presetCombo.currentText()
|
||||||
QgsProject.instance().removeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()))
|
QgsProject.instance().removeEntry('DBManager', 'savedQueries/q' + self.getQueryHash(name))
|
||||||
self.presetCombo.removeItem(self.presetCombo.findText(name))
|
self.presetCombo.removeItem(self.presetCombo.findText(name))
|
||||||
self.presetCombo.setCurrentIndex(-1)
|
self.presetCombo.setCurrentIndex(-1)
|
||||||
|
|
||||||
def loadPreset(self, name):
|
def loadPreset(self, name):
|
||||||
query = QgsProject.instance().readEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/query')[0]
|
query = QgsProject.instance().readEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/query')[0]
|
||||||
name = QgsProject.instance().readEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/name')[0]
|
name = QgsProject.instance().readEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/name')[0]
|
||||||
self.editSql.setText(query)
|
self.editSql.setText(query)
|
||||||
|
|
||||||
def clearSql(self):
|
def clearSql(self):
|
||||||
|
|||||||
@ -24,6 +24,7 @@ The content of this file is based on
|
|||||||
from builtins import zip
|
from builtins import zip
|
||||||
from builtins import next
|
from builtins import next
|
||||||
from builtins import str
|
from builtins import str
|
||||||
|
from hashlib import md5
|
||||||
|
|
||||||
from qgis.PyQt.QtCore import Qt, pyqtSignal
|
from qgis.PyQt.QtCore import Qt, pyqtSignal
|
||||||
from qgis.PyQt.QtWidgets import QDialog, QWidget, QAction, QApplication, QInputDialog, QStyledItemDelegate, QTableWidgetItem
|
from qgis.PyQt.QtWidgets import QDialog, QWidget, QAction, QApplication, QInputDialog, QStyledItemDelegate, QTableWidgetItem
|
||||||
@ -197,6 +198,9 @@ class DlgSqlWindow(QWidget, Ui_Dialog):
|
|||||||
|
|
||||||
self.populateQueryHistory()
|
self.populateQueryHistory()
|
||||||
|
|
||||||
|
def getQueryHash(self, name):
|
||||||
|
return 'q%s' % md5(name.encode('utf8')).hexdigest()
|
||||||
|
|
||||||
def updatePresetsCombobox(self):
|
def updatePresetsCombobox(self):
|
||||||
self.presetCombo.clear()
|
self.presetCombo.clear()
|
||||||
|
|
||||||
@ -214,9 +218,9 @@ class DlgSqlWindow(QWidget, Ui_Dialog):
|
|||||||
query = self._getSqlQuery()
|
query = self._getSqlQuery()
|
||||||
if query == "":
|
if query == "":
|
||||||
return
|
return
|
||||||
name = self.presetName.text()
|
name = str(self.presetName.text())
|
||||||
QgsProject.instance().writeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/name', name)
|
QgsProject.instance().writeEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/name', name)
|
||||||
QgsProject.instance().writeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/query', query)
|
QgsProject.instance().writeEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/query', query)
|
||||||
index = self.presetCombo.findText(name)
|
index = self.presetCombo.findText(name)
|
||||||
if index == -1:
|
if index == -1:
|
||||||
self.presetCombo.addItem(name)
|
self.presetCombo.addItem(name)
|
||||||
@ -226,13 +230,13 @@ class DlgSqlWindow(QWidget, Ui_Dialog):
|
|||||||
|
|
||||||
def deletePreset(self):
|
def deletePreset(self):
|
||||||
name = self.presetCombo.currentText()
|
name = self.presetCombo.currentText()
|
||||||
QgsProject.instance().removeEntry('DBManager', 'savedQueries/q' + str(name.__hash__()))
|
QgsProject.instance().removeEntry('DBManager', 'savedQueries/' + self.getQueryHash(name))
|
||||||
self.presetCombo.removeItem(self.presetCombo.findText(name))
|
self.presetCombo.removeItem(self.presetCombo.findText(name))
|
||||||
self.presetCombo.setCurrentIndex(-1)
|
self.presetCombo.setCurrentIndex(-1)
|
||||||
|
|
||||||
def loadPreset(self, name):
|
def loadPreset(self, name):
|
||||||
query = QgsProject.instance().readEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/query')[0]
|
query = QgsProject.instance().readEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/query')[0]
|
||||||
name = QgsProject.instance().readEntry('DBManager', 'savedQueries/q' + str(name.__hash__()) + '/name')[0]
|
name = QgsProject.instance().readEntry('DBManager', 'savedQueries/' + self.getQueryHash(name) + '/name')[0]
|
||||||
self.editSql.setText(query)
|
self.editSql.setText(query)
|
||||||
|
|
||||||
def loadAsLayerToggled(self, checked):
|
def loadAsLayerToggled(self, checked):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user