ProjectFlask/FlaskCommandDialog.py

Sun, 30 May 2021 17:33:37 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 30 May 2021 17:33:37 +0200
branch
eric7
changeset 64
0ee58185b8df
parent 61
fe1e8783a95f
child 66
0d3168d0e310
permissions
-rw-r--r--

Ported the plug-in to PyQt6 for eric7.

9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
60
02243723ac17 Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
3 # Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
11
da6ef8ab8268 Started support for translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
4 #
da6ef8ab8268 Started support for translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
5
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to run a flask command and show its output.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
10 from PyQt6.QtCore import pyqtSlot, Qt, QProcess, QTimer
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
13 from EricWidgets import EricMessageBox
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_FlaskCommandDialog import Ui_FlaskCommandDialog
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class FlaskCommandDialog(QDialog, Ui_FlaskCommandDialog):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to run a flask command and show its output.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
22 def __init__(self, project, title="", msgSuccess="", msgError="",
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
23 parent=None):
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param project reference to the project object
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type Project
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
29 @param title window title of the dialog
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
30 @type str
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
31 @param msgSuccess success message to be shown
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
32 @type str
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
33 @param msgError message to be shown on error
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
34 @type str
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param parent reference to the parent widget
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @type QWidget
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
38 super().__init__(parent)
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.setupUi(self)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
41 if title:
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
42 self.setWindowTitle(title)
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
43
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__project = project
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
45 self.__successMessage = msgSuccess
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
46 self.__errorMessage = msgError
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__process = None
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
50 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
51 QDialogButtonBox.StandardButton.Close).setEnabled(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
52 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
53 QDialogButtonBox.StandardButton.Close).setDefault(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
54 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
55 QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
57 def startCommand(self, command, args=None):
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public method to start a flask command and show its output.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @param command flask command to be run
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @type str
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param args list of command line arguments for the command
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @type list of str
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @return flag indicating a successful start
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @rtype bool
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
68 self.__normal = False
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 workdir, env = self.__project.prepareRuntimeEnvironment()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 if env is not None:
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 flaskCommand = self.__project.getFlaskCommand()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.__process = QProcess()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.__process.setProcessEnvironment(env)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.__process.setWorkingDirectory(workdir)
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
76 self.__process.setProcessChannelMode(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
77 QProcess.ProcessChannelMode.MergedChannels)
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__process.readyReadStandardOutput.connect(self.__readStdOut)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__process.finished.connect(self.__processFinished)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.outputEdit.clear()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 flaskArgs = [command]
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 if args:
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 flaskArgs += args
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.__process.start(flaskCommand, flaskArgs)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 ok = self.__process.waitForStarted(10000)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 if not ok:
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
91 EricMessageBox.critical(
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 None,
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.tr("Execute Flask Command"),
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.tr("""The Flask process could not be started."""))
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 else:
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
96 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
97 QDialogButtonBox.StandardButton.Close).setEnabled(False)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
98 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
99 QDialogButtonBox.StandardButton.Cancel).setDefault(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
100 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
101 QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
102 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
103 QDialogButtonBox.StandardButton.Cancel).setFocus(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
104 Qt.FocusReason.OtherFocusReason)
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 else:
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 ok = False
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 return ok
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 def closeEvent(self, evt):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 Protected method handling the close event of the dialog.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 @param evt reference to the close event object
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @type QCloseEvent
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.__cancelProcess()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 evt.accept()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @pyqtSlot()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 def __readStdOut(self):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 Private slot to add the server process output to the output pane.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 if self.__process is not None:
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 out = str(self.__process.readAllStandardOutput(), "utf-8")
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.outputEdit.insertPlainText(out)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
15
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
129 def __processFinished(self, exitCode, exitStatus):
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
15
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
131 Private slot connected to the finished signal.
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
132
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
133 @param exitCode exit code of the process
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
134 @type int
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
135 @param exitStatus exit status of the process
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
136 @type QProcess.ExitStatus
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
138 self.__normal = (
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
139 exitStatus == QProcess.ExitStatus.NormalExit and
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
140 exitCode == 0
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
141 )
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.__cancelProcess()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
144 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
145 QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
146 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
147 QDialogButtonBox.StandardButton.Close).setEnabled(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
148 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
149 QDialogButtonBox.StandardButton.Close).setDefault(True)
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
150 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
151 QDialogButtonBox.StandardButton.Close).setFocus(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
152 Qt.FocusReason.OtherFocusReason)
15
3f5c05eb2d5f Continued implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
153
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
154 if self.__normal and self.__successMessage:
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
155 self.outputEdit.insertPlainText(self.__successMessage)
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
156 elif not self.__normal and self.__errorMessage:
16
dd3f6bfb85f7 Done implementing pybabel translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
157 self.outputEdit.insertPlainText(self.__errorMessage)
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @pyqtSlot()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def __cancelProcess(self):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Private slot to terminate the current process.
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 if (
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 self.__process is not None and
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
166 self.__process.state() != QProcess.ProcessState.NotRunning
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 ):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.__process.terminate()
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 QTimer.singleShot(2000, self.__process.kill)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 self.__process.waitForFinished(3000)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 self.__process = None
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 @pyqtSlot(QAbstractButton)
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 def on_buttonBox_clicked(self, button):
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 """
11
da6ef8ab8268 Started support for translations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
177 Private slot handling presses of the button box buttons.
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 @param button reference to the button been clicked
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 @type QAbstractButton
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
182 if button is self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
183 QDialogButtonBox.StandardButton.Close
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
184 ):
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 self.close()
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
186 elif button is self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
187 QDialogButtonBox.StandardButton.Cancel
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
188 ):
9
79094fb72c18 Continued implementing various flask actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 self.__cancelProcess()
32
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
190
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
191 def normalExit(self):
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
192 """
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
193 Public method to test, if the process ended without errors.
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
194
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
195 @return flag indicating a normal process exit
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
196 @rtype bool
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
197 """
80fc8deac8fe Finished the 'flask db init' command support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
198 return self.__normal

eric ide

mercurial