File indexing completed on 2025-03-09 04:10:20

0001 """
0002 SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com>
0003 
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 """
0006 from PyQt5.QtWidgets import QAction, QMessageBox
0007 from PyQt5.QtGui import QIcon, QKeySequence
0008 from PyQt5.QtCore import Qt
0009 from .... import utils
0010 import krita
0011 
0012 
0013 class ReloadAction(QAction):
0014 
0015     def __init__(self, scripter, parent=None):
0016         super(ReloadAction, self).__init__(parent)
0017         self.scripter = scripter
0018         self.editor = self.scripter.uicontroller.editor
0019 
0020         self.triggered.connect(self.reloadFile)
0021 
0022         self.setText(i18n("Reload File"))
0023         self.setObjectName('reloadfile')
0024         self.setShortcut(QKeySequence(Qt.ALT + Qt.Key_R))
0025 
0026         self.setToolTip(i18n('Reload File Alt+R'))
0027         self.setIcon(utils.getThemedIcon(':/icons/reload_script.svg'))
0028 
0029     @property
0030     def parent(self):
0031         return 'File', 'toolBar'
0032 
0033     def reloadFile(self):
0034         # get the currently open document's path
0035         curr_doc_fpath = ''
0036         document = self.scripter.documentcontroller._activeDocument
0037         if document is None:
0038             QMessageBox.critical(self.scripter.uicontroller.mainWidget,
0039                                  i18n("No existing document"),
0040                                  i18n("Please specify a document by opening it before reloading"))
0041             return
0042         else:
0043             curr_doc_fpath = document.filePath
0044 
0045         # clear the editor
0046         self.scripter.documentcontroller.clearActiveDocument()
0047         self.scripter.uicontroller.setStatusBar()
0048         self.scripter.uicontroller.clearEditor()
0049 
0050         # reload the document
0051         document = self.scripter.documentcontroller.openDocument(curr_doc_fpath)
0052         self.scripter.uicontroller.setDocumentEditor(document)
0053         self.scripter.uicontroller.setStatusBar(document.filePath)
0054 
0055         return document