diff --git a/plugins/python/scripter/ui_scripter/actions/__init__.py b/plugins/python/scripter/ui_scripter/actions/__init__.py --- a/plugins/python/scripter/ui_scripter/actions/__init__.py +++ b/plugins/python/scripter/ui_scripter/actions/__init__.py @@ -2,7 +2,7 @@ 'openaction.openaction.OpenAction', 'reloadaction.reloadaction.ReloadAction', 'saveaction.saveaction.SaveAction', - 'saveasaction.saveasaction.SaveAsAction', + 'saveasaction.saveasaction.SaveAsAction', 'runaction.runaction.RunAction', 'settingsaction.settingsaction.SettingsAction', 'debugaction.debugaction.DebugAction', diff --git a/plugins/python/scripter/ui_scripter/actions/closeaction/closeaction.py b/plugins/python/scripter/ui_scripter/actions/closeaction/closeaction.py --- a/plugins/python/scripter/ui_scripter/actions/closeaction/closeaction.py +++ b/plugins/python/scripter/ui_scripter/actions/closeaction/closeaction.py @@ -33,8 +33,8 @@ self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Q)) @property - def parent(self): - return 'File' + def parents(self): + return ('File',) def close(self): msgBox = QMessageBox(self.scripter.uicontroller.mainWidget) diff --git a/plugins/python/scripter/ui_scripter/actions/debugaction/debugaction.py b/plugins/python/scripter/ui_scripter/actions/debugaction/debugaction.py --- a/plugins/python/scripter/ui_scripter/actions/debugaction/debugaction.py +++ b/plugins/python/scripter/ui_scripter/actions/debugaction/debugaction.py @@ -35,8 +35,8 @@ self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_D)) @property - def parent(self): - return 'toolBar' + def parents(self): + return ('toolBar',) def debug(self): if self.scripter.uicontroller.invokeAction('save'): diff --git a/plugins/python/scripter/ui_scripter/actions/newaction/newaction.py b/plugins/python/scripter/ui_scripter/actions/newaction/newaction.py --- a/plugins/python/scripter/ui_scripter/actions/newaction/newaction.py +++ b/plugins/python/scripter/ui_scripter/actions/newaction/newaction.py @@ -31,10 +31,11 @@ self.setText('New') self.setObjectName('new') self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_N)) + self.setIcon(Krita.instance().icon("document-new")) @property - def parent(self): - return 'File' + def parents(self): + return ('File', 'toolBar') def new(self): msgBox = QMessageBox(self.scripter.uicontroller.mainWidget) diff --git a/plugins/python/scripter/ui_scripter/actions/openaction/openaction.py b/plugins/python/scripter/ui_scripter/actions/openaction/openaction.py --- a/plugins/python/scripter/ui_scripter/actions/openaction/openaction.py +++ b/plugins/python/scripter/ui_scripter/actions/openaction/openaction.py @@ -16,7 +16,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. """ from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox -from PyQt5.QtGui import QKeySequence +from PyQt5.QtGui import QKeySequence, QIcon from PyQt5.QtCore import Qt @@ -31,10 +31,11 @@ self.setText('Open') self.setObjectName('open') self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_O)) + self.setIcon(Krita.instance().icon("document-open")) @property - def parent(self): - return 'File' + def parents(self): + return ('File', 'toolBar') def open(self): dialog = QFileDialog(self.scripter.uicontroller.mainWidget) diff --git a/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py b/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py --- a/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py +++ b/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py @@ -15,10 +15,11 @@ self.setText('Reload File') self.setObjectName('reloadfile') self.setShortcut(QKeySequence(Qt.ALT + Qt.Key_R)) + self.setIcon(Krita.instance().icon("view-refresh")) @property - def parent(self): - return 'File' + def parents(self): + return ('File', 'toolBar') def reloadFile(self): # get the currently open document's path diff --git a/plugins/python/scripter/ui_scripter/actions/runaction/runaction.py b/plugins/python/scripter/ui_scripter/actions/runaction/runaction.py --- a/plugins/python/scripter/ui_scripter/actions/runaction/runaction.py +++ b/plugins/python/scripter/ui_scripter/actions/runaction/runaction.py @@ -47,8 +47,8 @@ self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_R)) @property - def parent(self): - return 'toolBar' + def parents(self): + return ('toolBar',) def run(self): """ This method execute python code from an activeDocument (file) or direct diff --git a/plugins/python/scripter/ui_scripter/actions/saveaction/saveaction.py b/plugins/python/scripter/ui_scripter/actions/saveaction/saveaction.py --- a/plugins/python/scripter/ui_scripter/actions/saveaction/saveaction.py +++ b/plugins/python/scripter/ui_scripter/actions/saveaction/saveaction.py @@ -32,10 +32,11 @@ self.setText('Save') self.setObjectName('save') self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_S)) + self.setIcon(Krita.instance().icon("document-save-as")) @property - def parent(self): - return 'File' + def parents(self): + return ('File', 'toolBar') def save(self): text = self.editor.toPlainText() diff --git a/plugins/python/scripter/ui_scripter/actions/saveasaction/saveasaction.py b/plugins/python/scripter/ui_scripter/actions/saveasaction/saveasaction.py --- a/plugins/python/scripter/ui_scripter/actions/saveasaction/saveasaction.py +++ b/plugins/python/scripter/ui_scripter/actions/saveasaction/saveasaction.py @@ -32,10 +32,11 @@ self.setText('Save As') self.setObjectName('saveas') self.setShortcut(QKeySequence(Qt.CTRL + Qt.SHIFT + Qt.Key_S)) + self.setIcon(Krita.instance().icon("document-save-as")) @property - def parent(self): - return 'File' + def parents(self): + return ('File', 'toolBar') def save(self): text = self.editor.toPlainText() diff --git a/plugins/python/scripter/ui_scripter/actions/settingsaction/settingsaction.py b/plugins/python/scripter/ui_scripter/actions/settingsaction/settingsaction.py --- a/plugins/python/scripter/ui_scripter/actions/settingsaction/settingsaction.py +++ b/plugins/python/scripter/ui_scripter/actions/settingsaction/settingsaction.py @@ -35,8 +35,8 @@ self.setText('Settings') @property - def parent(self): - return 'File' + def parents(self): + return ('File',) def openSettings(self): self.settingsDialog.show() diff --git a/plugins/python/scripter/uicontroller.py b/plugins/python/scripter/uicontroller.py --- a/plugins/python/scripter/uicontroller.py +++ b/plugins/python/scripter/uicontroller.py @@ -130,11 +130,14 @@ m = importlib.import_module(module['module']) action_class = getattr(m, module['klass']) obj = action_class(self.scripter) - parent = self.mainWidget.findChild(QObject, obj.parent) - self.actions.append(dict(action=obj, parent=parent)) + parents = [] + for parent in obj.parents: + parents.append(self.mainWidget.findChild(QObject, parent)) + self.actions.append(dict(action=obj, parents=parents)) for action in self.actions: - action['parent'].addAction(action['action']) + for parent in action['parents']: + parent.addAction(action['action']) def loadWidgets(self): modulePath = 'scripter.ui_scripter.tabwidgets'