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 QKeySequence
0008 from PyQt5.QtCore import Qt
0009 import krita
0010 
0011 
0012 class CloseAction(QAction):
0013 
0014     def __init__(self, scripter, parent=None):
0015         super(CloseAction, self).__init__(parent)
0016         self.scripter = scripter
0017 
0018         self.triggered.connect(self.close)
0019 
0020         self.setText(i18n("Close"))
0021         self.setObjectName('close')
0022         self.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Q))
0023 
0024     @property
0025     def parent(self):
0026         return 'File',
0027 
0028     def close(self):
0029         msgBox = QMessageBox(self.scripter.uicontroller.mainWidget)
0030 
0031         msgBox.setInformativeText(i18n("Do you want to save the current document?"))
0032         msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
0033         msgBox.setDefaultButton(QMessageBox.Save)
0034 
0035         ret = msgBox.exec_()
0036 
0037         if ret == QMessageBox.Cancel:
0038             return
0039         if ret == QMessageBox.Save:
0040             if not self.scripter.uicontroller.invokeAction('save'):
0041                 return
0042 
0043         self.scripter.uicontroller.closeScripter()