diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py @@ -1,6 +1,7 @@ from PyQt5.QtWidgets import QAction -from PyQt5.QtGui import QIcon, QPixmap +from PyQt5.QtGui import QIcon, QPixmap, QKeySequence from scripter import resources_rc +from PyQt5.QtCore import Qt class DebugAction(QAction): @@ -12,8 +13,9 @@ self.triggered.connect(self.debug) self.setText('Debug') - # path to the icon + self.setToolTip('Debug Ctrl+D') self.setIcon(QIcon(':/icons/debug.svg')) + self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_D)) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/newaction/newaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/newaction/newaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/newaction/newaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/newaction/newaction.py @@ -1,4 +1,6 @@ from PyQt5.QtWidgets import QAction, QMessageBox +from PyQt5.QtGui import QKeySequence +from PyQt5.QtCore import Qt class NewAction(QAction): @@ -11,6 +13,7 @@ self.setText('New') self.setObjectName('new') + self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_N)) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/openaction/openaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/openaction/openaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/openaction/openaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/openaction/openaction.py @@ -1,4 +1,6 @@ from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox +from PyQt5.QtGui import QKeySequence +from PyQt5.QtCore import Qt class OpenAction(QAction): @@ -11,6 +13,7 @@ self.setText('Open') self.setObjectName('open') + self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_O)) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py @@ -1,5 +1,6 @@ from PyQt5.QtWidgets import QAction, QMessageBox -from PyQt5.QtGui import QIcon +from PyQt5.QtGui import QIcon, QKeySequence +from PyQt5.QtCore import Qt import sys from . import docwrapper import os @@ -18,7 +19,9 @@ self.triggered.connect(self.run) self.setText('Run') + self.setToolTip('Run Ctrl+R') self.setIcon(QIcon(':/icons/run.svg')) + self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_R)) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/saveaction/saveaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/saveaction/saveaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/saveaction/saveaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/saveaction/saveaction.py @@ -1,4 +1,6 @@ from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox +from PyQt5.QtGui import QKeySequence +from PyQt5.QtCore import Qt class SaveAction(QAction): @@ -12,6 +14,7 @@ self.setText('Save') self.setObjectName('save') + self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_S)) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/settingsaction/settingsdialog.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/settingsaction/settingsdialog.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/settingsaction/settingsdialog.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/settingsaction/settingsdialog.py @@ -11,6 +11,7 @@ super(SettingsDialog, self).__init__(parent) self.scripter = scripter + self.setWindowTitle('Settings') self.mainLayout = QFormLayout(self) self.mainLayout.addRow('Syntax Highlither', syntaxstylescombobox.SyntaxStylesComboBox(self.scripter.uicontroller.highlight)) self.mainLayout.addRow('Fonts', fontscombobox.FontsComboBox(self.scripter.uicontroller.editor)) diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py b/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py @@ -23,8 +23,7 @@ def initialize(self, scripter): self.editor = pythoneditor.CodeEditor(scripter) - self.widgetSelector = QComboBox() - self.stackedWidget = QStackedWidget() + self.tabWidget = QTabWidget() self.statusBar = QLabel('untitled') self.highlight = syntax.PythonHighlighter(self.editor.document(), syntaxstyles.DefaultSyntaxStyle()) @@ -34,14 +33,11 @@ self.loadWidgets() self.loadActions() - self.widgetSelector.currentIndexChanged.connect(self._currentIndexChanged) - vbox = QVBoxLayout(self.mainWidget) vbox.addWidget(self.menu_bar) - vbox.addWidget(self.editor) vbox.addWidget(self.actionToolbar) - vbox.addWidget(self.widgetSelector) - vbox.addWidget(self.stackedWidget) + vbox.addWidget(self.editor) + vbox.addWidget(self.tabWidget) vbox.addWidget(self.statusBar) self.mainWidget.resize(400, 500) @@ -102,8 +98,7 @@ m = importlib.import_module(module['module']) widgetClass = getattr(m, module['klass']) obj = widgetClass(self.scripter) - self.stackedWidget.addWidget(obj) - self.widgetSelector.addItem(obj.objectName()) + self.tabWidget.addTab(obj, obj.objectName()) def invokeAction(self, actionName): for action in self.actions: @@ -113,8 +108,8 @@ return method() def findStackWidget(self, widgetName): - for index in range(self.stackedWidget.count()): - widget = self.stackedWidget.widget(index) + for index in range(self.tabWidget.count()): + widget = self.tabWidget.widget(index) if widget.objectName() == widgetName: return widget @@ -131,20 +126,16 @@ self.statusBar.setText(value) def setActiveWidget(self, widgetName): - index = self.widgetSelector.findText(widgetName) + widget = self.findStackWidget(widgetName) - if index!=-1: - self.widgetSelector.setCurrentIndex(index) + if widget: + self.tabWidget.setCurrentWidget(widget) def setStepped(self, status): self.editor.setStepped(status) def clearEditor(self): self.editor.clear() - def _currentIndexChanged(self, index): - if index != -1: - self.stackedWidget.setCurrentIndex(index) - def repaintDebugArea(self): self.editor.repaintDebugArea()