diff --git a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py index a03d8426c8..3a2ff07276 100644 --- a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py +++ b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py @@ -1,29 +1,36 @@ -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QListView +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QListView, QPushButton import krita from lastdocumentsdocker import lastdocumentslistmodel class LastDocumentsDocker(krita.DockWidget): def __init__(self): super(LastDocumentsDocker, self).__init__() self.baseWidget = QWidget() self.layout = QVBoxLayout() self.listView = QListView() + self.loadButton = QPushButton("Refresh") + self.listModel = lastdocumentslistmodel.LastDocumentsListModel() + self.listView.setModel(self.listModel) self.listView.setFlow(QListView.LeftToRight) self.layout.addWidget(self.listView) + self.layout.addWidget(self.loadButton) self.baseWidget.setLayout(self.layout) self.setWidget(self.baseWidget) - self.listView.setModel(lastdocumentslistmodel.LastDocumentsListModel()) + self.loadButton.clicked.connect(self.refreshRecentDocuments) self.setWindowTitle("Last Documents Docker") def canvasChanged(self, canvas): pass + def refreshRecentDocuments(self): + self.listModel.loadRecentDocuments() + Application.addDockWidgetFactory(krita.DockWidgetFactory("lastdocumentsdocker", krita.DockWidgetFactoryBase.DockRight, LastDocumentsDocker)) diff --git a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py index 6c49f34992..9cb58dbbbf 100644 --- a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py +++ b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py @@ -1,44 +1,44 @@ from PyQt5.QtCore import QAbstractListModel, Qt import krita class LastDocumentsListModel(QAbstractListModel): def __init__(self, parent=None): super(LastDocumentsListModel, self).__init__(parent) self.rootItem = ('Path',) self.kritaInstance = krita.Krita.instance() self.recentDocuments = [] - self._loadRecentDocuments() - def data(self, index, role): if not index.isValid(): return None if index.row() >= len(self.recentDocuments): return None - if role == Qt.DecorationRole: + if role == Qt.DecorationRole: return self.recentDocuments[index.row()] else: return None def rowCount(self, parent): return len(self.recentDocuments) def headerData(self, section, orientation, role): if orientation == Qt.Horizontal and role == Qt.DisplayRole: return self.rootItem[section] return None - def _loadRecentDocuments(self): + def loadRecentDocuments(self): + self.recentDocuments = [] recentDocumentsPaths = self.kritaInstance.recentDocuments() for path in recentDocumentsPaths: document = self.kritaInstance.openDocument(path) if document: self.recentDocuments.append(document.thumbnail(70, 60)) document.close() + self.modelReset.emit()