Fri, 13 Nov 2020 19:51:28 +0100
Finished implementing the "flask routes" function.
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the Flask configuration page. |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt5.QtCore import pyqtSlot |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from E5Gui.E5Application import e5App |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from Preferences.ConfigurationPages.ConfigurationPageBase import ( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | ConfigurationPageBase |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | ) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_FlaskPage import Ui_FlaskPage |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import UI.PixmapCache |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
6
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
21 | from .. import AnsiTools |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
22 | |
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
5
550e5ea385cb
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2
diff
changeset
|
24 | # TODO: add selection for the ANSI color scheme (see MicroPython) |
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | class FlaskPage(ConfigurationPageBase, Ui_FlaskPage): |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | Class implementing the Flask configuration page. |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | def __init__(self, plugin): |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Constructor |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param plugin reference to the plugin object |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | super(FlaskPage, self).__init__() |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | self.setupUi(self) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | self.setObjectName("FlaskPage") |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
6
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
39 | self.colorSchemeComboBox.addItems( |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
40 | sorted(AnsiTools.getAvailableColorSchemes())) |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
41 | |
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | self.__plugin = plugin |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.urlResetButton.setIcon( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | UI.PixmapCache.getIcon("editUndo")) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.py3VenvNamesReloadButton.setIcon( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | UI.PixmapCache.getIcon("reload")) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | venvManager = e5App().getObject("VirtualEnvManager") |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.py3VenvNameComboBox.addItems( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | [""] + sorted(venvManager.getVirtualenvNames())) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | # set initial values |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.externalBrowserCheckBox.setChecked( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__plugin.getPreferences("UseExternalBrowser")) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | venvName = self.__plugin.getPreferences( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | "VirtualEnvironmentNamePy3") |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | if venvName: |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | index = self.py3VenvNameComboBox.findText(venvName) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | if index < 0: |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | index = 0 |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.py3VenvNameComboBox.setCurrentIndex(index) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
6
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
65 | self.colorSchemeComboBox.setCurrentIndex( |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
66 | self.colorSchemeComboBox.findText( |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
67 | self.__plugin.getPreferences("AnsiColorScheme"))) |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
68 | |
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.urlEdit.setText( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.__plugin.getPreferences("FlaskDocUrl")) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | def save(self): |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | Public slot to save the Flask configuration. |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.__plugin.setPreferences( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | "UseExternalBrowser", self.externalBrowserCheckBox.isChecked()) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.__plugin.setPreferences( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | "VirtualEnvironmentNamePy3", |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.py3VenvNameComboBox.currentText()) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.__plugin.setPreferences( |
6
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
84 | "AnsiColorScheme", |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
85 | self.colorSchemeComboBox.currentText()) |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
86 | |
d491ccab7343
Continued implementing the "Run Server" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5
diff
changeset
|
87 | self.__plugin.setPreferences( |
2
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | "FlaskDocUrl", self.urlEdit.text()) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | @pyqtSlot() |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | def on_py3VenvNamesReloadButton_clicked(self): |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | Private slot to reload the virtual environment names. |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | currentVenvName = self.py3VenvNameComboBox.currentText() |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.py3VenvNameComboBox.clear() |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | venvManager = e5App().getObject("VirtualEnvManager") |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | self.py3VenvNameComboBox.addItems( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | [""] + sorted(venvManager.getVirtualenvNames())) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | if currentVenvName: |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | index = self.py3VenvNameComboBox.findText(currentVenvName) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | if index < 0: |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | index = 0 |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | self.py3VenvNameComboBox.setCurrentIndex(index) |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | @pyqtSlot() |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | def on_urlResetButton_clicked(self): |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | Private slot to reset the Flask documentation URL. |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | """ |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.urlEdit.setText( |
6cc80e4db8a7
Added code for the basic project support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.__plugin.getDefaultPreference("FlaskDocUrl")) |