[dbmanager] Fixes various signal bugs after 8bda5c

Fixes some unreported glitches after new signals migration.

Also fixes #14649
This commit is contained in:
elpaso 2016-04-14 09:02:04 +02:00
parent 170c95554e
commit 1e6dceb7d2
3 changed files with 8 additions and 5 deletions

View File

@ -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.QtWidgets import QApplication, QMessageBox
from PyQt.QtGui import QIcon from PyQt.QtGui import QIcon
@ -302,7 +303,7 @@ class DBModel(QAbstractItemModel):
for dbtype in supportedDbTypes(): for dbtype in supportedDbTypes():
dbpluginclass = createDbPlugin(dbtype) dbpluginclass = createDbPlugin(dbtype)
item = PluginItem(dbpluginclass, self.rootItem) item = PluginItem(dbpluginclass, self.rootItem)
item.itemChanged.connect(self.refreshItem) item.itemChanged.connect(partial(self.refreshItem, item))
def refreshItem(self, item): def refreshItem(self, item):
if isinstance(item, TreeItem): if isinstance(item, TreeItem):
@ -486,7 +487,7 @@ class DBModel(QAbstractItemModel):
if prevPopulated or force: if prevPopulated or force:
if item.populate(): if item.populate():
for child in item.childItems: for child in item.childItems:
child.itemChanged.connect(self.refreshItem) child.itemChanged.connect(partial(self.refreshItem, item))
self._onDataChanged(index) self._onDataChanged(index)
else: else:
self.notPopulated.emit(index) self.notPopulated.emit(index)

View File

@ -148,7 +148,7 @@ class SLDatabase(Database):
self.runVacuum() self.runVacuum()
def runVacuum(self): def runVacuum(self):
self.database().aboutToChange() self.database().aboutToChange.emit()
self.database().connector.runVacuum() self.database().connector.runVacuum()
self.database().refresh() self.database().refresh()

View File

@ -24,7 +24,7 @@ The content of this file is based on
from PyQt.QtCore import Qt, QModelIndex from PyQt.QtCore import Qt, QModelIndex
from PyQt.QtWidgets import QItemDelegate, QComboBox, QDialog, QPushButton, QDialogButtonBox, QMessageBox, QApplication 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.data_model import TableFieldsModel
from .db_plugins.plugin import DbError, ConnectionError from .db_plugins.plugin import DbError, ConnectionError
@ -37,6 +37,8 @@ class TableFieldsDelegate(QItemDelegate):
""" delegate with some special item editors """ """ delegate with some special item editors """
columnNameChanged = pyqtSignal()
def __init__(self, field_types, parent=None): def __init__(self, field_types, parent=None):
QItemDelegate.__init__(self, parent) QItemDelegate.__init__(self, parent)
self.fieldTypes = field_types self.fieldTypes = field_types