diff --git a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py --- a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py +++ b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentsdocker.py @@ -1,4 +1,4 @@ -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QListView +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QListView, QPushButton import krita from lastdocumentsdocker import lastdocumentslistmodel @@ -11,19 +11,26 @@ 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 --- a/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py +++ b/plugins/extensions/pykrita/plugin/plugins/lastdocumentsdocker/lastdocumentslistmodel.py @@ -11,16 +11,14 @@ 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 @@ -34,11 +32,13 @@ 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()