From 1e6dceb7d25d0634f9f452dff2f360bcf901bd2f Mon Sep 17 00:00:00 2001 From: elpaso Date: Thu, 14 Apr 2016 09:02:04 +0200 Subject: [PATCH] [dbmanager] Fixes various signal bugs after 8bda5c Fixes some unreported glitches after new signals migration. Also fixes #14649 --- python/plugins/db_manager/db_model.py | 7 ++++--- python/plugins/db_manager/db_plugins/spatialite/plugin.py | 2 +- python/plugins/db_manager/dlg_create_table.py | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/python/plugins/db_manager/db_model.py b/python/plugins/db_manager/db_model.py index 65a6900f078..d4aebaf624d 100644 --- a/python/plugins/db_manager/db_model.py +++ b/python/plugins/db_manager/db_model.py @@ -20,7 +20,8 @@ email : brush.tyler@gmail.com ***************************************************************************/ """ -from PyQt.QtCore import Qt, QObject, qDebug, QByteArray, QMimeData, QDataStream, QIODevice, QFileInfo, QAbstractItemModel, QModelIndex, pyqtSignal +from functools import partial +from PyQt.QtCore import Qt, QObject, qDebug, QByteArray, QMimeData, QDataStream, QIODevice, QFileInfo, QAbstractItemModel, QModelIndex, pyqtSignal, pyqtSlot from PyQt.QtWidgets import QApplication, QMessageBox from PyQt.QtGui import QIcon @@ -302,7 +303,7 @@ class DBModel(QAbstractItemModel): for dbtype in supportedDbTypes(): dbpluginclass = createDbPlugin(dbtype) item = PluginItem(dbpluginclass, self.rootItem) - item.itemChanged.connect(self.refreshItem) + item.itemChanged.connect(partial(self.refreshItem, item)) def refreshItem(self, item): if isinstance(item, TreeItem): @@ -486,7 +487,7 @@ class DBModel(QAbstractItemModel): if prevPopulated or force: if item.populate(): for child in item.childItems: - child.itemChanged.connect(self.refreshItem) + child.itemChanged.connect(partial(self.refreshItem, item)) self._onDataChanged(index) else: self.notPopulated.emit(index) diff --git a/python/plugins/db_manager/db_plugins/spatialite/plugin.py b/python/plugins/db_manager/db_plugins/spatialite/plugin.py index 8ede6ccdb4f..abc6611d759 100644 --- a/python/plugins/db_manager/db_plugins/spatialite/plugin.py +++ b/python/plugins/db_manager/db_plugins/spatialite/plugin.py @@ -148,7 +148,7 @@ class SLDatabase(Database): self.runVacuum() def runVacuum(self): - self.database().aboutToChange() + self.database().aboutToChange.emit() self.database().connector.runVacuum() self.database().refresh() diff --git a/python/plugins/db_manager/dlg_create_table.py b/python/plugins/db_manager/dlg_create_table.py index dacc57310c5..9315c06f841 100644 --- a/python/plugins/db_manager/dlg_create_table.py +++ b/python/plugins/db_manager/dlg_create_table.py @@ -24,7 +24,7 @@ The content of this file is based on from PyQt.QtCore import Qt, QModelIndex from PyQt.QtWidgets import QItemDelegate, QComboBox, QDialog, QPushButton, QDialogButtonBox, QMessageBox, QApplication -from PyQt.QtCore import QItemSelectionModel +from PyQt.QtCore import QItemSelectionModel, pyqtSignal from .db_plugins.data_model import TableFieldsModel from .db_plugins.plugin import DbError, ConnectionError @@ -37,6 +37,8 @@ class TableFieldsDelegate(QItemDelegate): """ delegate with some special item editors """ + columnNameChanged = pyqtSignal() + def __init__(self, field_types, parent=None): QItemDelegate.__init__(self, parent) self.fieldTypes = field_types