From d45401cb8f015e8ab08a148f1d5005063590b8c7 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 26 Feb 2025 11:34:18 +1000 Subject: [PATCH] Port db manager to use QgsStoredQueryManager methods --- python/plugins/db_manager/dlg_sql_window.py | 52 ++++++++++----------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/python/plugins/db_manager/dlg_sql_window.py b/python/plugins/db_manager/dlg_sql_window.py index fbf0f4c9fcb1..2ec47aa72baf 100644 --- a/python/plugins/db_manager/dlg_sql_window.py +++ b/python/plugins/db_manager/dlg_sql_window.py @@ -47,7 +47,15 @@ ) from qgis.PyQt.Qsci import QsciAPIs, QsciScintilla -from qgis.core import QgsProject, QgsApplication, QgsTask, QgsSettings, QgsMapLayerType +from qgis.core import ( + Qgis, + QgsProject, + QgsApplication, + QgsTask, + QgsSettings, + QgsMapLayerType, +) +from qgis.gui import QgsGui from qgis.utils import OverrideCursor from .db_plugins.plugin import BaseError @@ -263,16 +271,10 @@ def getQueryHash(self, name): def updatePresetsCombobox(self): self.presetCombo.clear() - names = [] - entries = QgsProject.instance().subkeyList("DBManager", "savedQueries") - for entry in entries: - name = QgsProject.instance().readEntry( - "DBManager", "savedQueries/" + entry + "/name" - )[0] - names.append(name) - - for name in sorted(names): - self.presetCombo.addItem(name) + queries = QgsGui.storedQueryManager().allQueries() + for query in queries: + self.presetCombo.addItem(query.name, query.definition) + self.presetCombo.setCurrentIndex(-1) def storePreset(self): @@ -280,17 +282,14 @@ def storePreset(self): if query == "": return name = str(self.presetName.text()) - QgsProject.instance().writeEntry( - "DBManager", "savedQueries/" + self.getQueryHash(name) + "/name", name - ) - QgsProject.instance().writeEntry( - "DBManager", "savedQueries/" + self.getQueryHash(name) + "/query", query + + QgsGui.storedQueryManager().storeQuery( + name, query, Qgis.QueryStorageBackend.CurrentProject ) + self.updatePresetsCombobox() + index = self.presetCombo.findText(name) - if index == -1: - self.presetCombo.addItem(name) - self.presetCombo.setCurrentIndex(self.presetCombo.count() - 1) - else: + if index != -1: self.presetCombo.setCurrentIndex(index) def saveAsFilePreset(self): @@ -335,16 +334,13 @@ def loadFilePreset(self): def deletePreset(self): name = self.presetCombo.currentText() - QgsProject.instance().removeEntry( - "DBManager", "savedQueries/" + self.getQueryHash(name) + QgsGui.storedQueryManager().removeQuery( + name, Qgis.QueryStorageBackend.CurrentProject ) - self.presetCombo.removeItem(self.presetCombo.findText(name)) - self.presetCombo.setCurrentIndex(-1) + self.updatePresetsCombobox() - def loadPreset(self, name): - query = QgsProject.instance().readEntry( - "DBManager", "savedQueries/" + self.getQueryHash(name) + "/query" - )[0] + def loadPreset(self, _): + query = self.presetCombo.currentData() self.editSql.setText(query) def loadAsLayerToggled(self, checked):