diff --git a/plugins/python/scripter/ui_scripter/actions/__init__.py b/plugins/python/scripter/ui_scripter/actions/__init__.py index 08b0282a96..1d1366891e 100644 --- a/plugins/python/scripter/ui_scripter/actions/__init__.py +++ b/plugins/python/scripter/ui_scripter/actions/__init__.py @@ -1,8 +1,9 @@ action_classes = ['newaction.newaction.NewAction', 'openaction.openaction.OpenAction', + 'reloadaction.reloadaction.ReloadAction', 'saveaction.saveaction.SaveAction', 'saveasaction.saveasaction.SaveAsAction', 'runaction.runaction.RunAction', 'settingsaction.settingsaction.SettingsAction', 'debugaction.debugaction.DebugAction', 'closeaction.closeaction.CloseAction'] diff --git a/plugins/python/scripter/ui_scripter/actions/reloadaction/__init__.py b/plugins/python/scripter/ui_scripter/actions/reloadaction/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py b/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py new file mode 100644 index 0000000000..6b3a57cc2b --- /dev/null +++ b/plugins/python/scripter/ui_scripter/actions/reloadaction/reloadaction.py @@ -0,0 +1,46 @@ +from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox +from PyQt5.QtGui import QKeySequence +from PyQt5.QtCore import Qt + + +class ReloadAction(QAction): + + def __init__(self, scripter, parent=None): + super(ReloadAction, self).__init__(parent) + self.scripter = scripter + self.editor = self.scripter.uicontroller.editor + + self.triggered.connect(self.reloadFile) + + self.setText('Reload File') + self.setObjectName('reloadfile') + self.setShortcut(QKeySequence(Qt.ALT + Qt.Key_R)) + + @property + def parent(self): + return 'File' + + def reloadFile(self): + # get the currently open document's path + curr_doc_fpath = '' + document = self.scripter.documentcontroller._activeDocument + if document is None: + QMessageBox.critical(self.scripter.uicontroller.mainWidget, + 'No existing document', + 'Please specify a document by opening it before reloading') + return + else: + curr_doc_fpath = document.filePath + + # clear the editor + self.scripter.documentcontroller.clearActiveDocument() + self.scripter.uicontroller.setStatusBar() + self.scripter.uicontroller.clearEditor() + + # reload the document + document = self.scripter.documentcontroller.openDocument(curr_doc_fpath) + self.scripter.uicontroller.setDocumentEditor(document) + self.scripter.uicontroller.setStatusBar(document.filePath) + print("reload is run") + + return document