ProjectFlask/ConfigurationPage/FlaskPage.py

changeset 2
6cc80e4db8a7
child 5
550e5ea385cb
diff -r d6557db39585 -r 6cc80e4db8a7 ProjectFlask/ConfigurationPage/FlaskPage.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectFlask/ConfigurationPage/FlaskPage.py	Sun Nov 08 17:54:22 2020 +0100
@@ -0,0 +1,98 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Flask configuration page.
+"""
+
+from PyQt5.QtCore import pyqtSlot
+
+from E5Gui.E5Application import e5App
+
+from Preferences.ConfigurationPages.ConfigurationPageBase import (
+    ConfigurationPageBase
+)
+from .Ui_FlaskPage import Ui_FlaskPage
+
+import UI.PixmapCache
+
+
+class FlaskPage(ConfigurationPageBase, Ui_FlaskPage):
+    """
+    Class implementing the Flask configuration page.
+    """
+    def __init__(self, plugin):
+        """
+        Constructor
+        
+        @param plugin reference to the plugin object
+        """
+        super(FlaskPage, self).__init__()
+        self.setupUi(self)
+        self.setObjectName("FlaskPage")
+        
+        self.__plugin = plugin
+        
+        self.urlResetButton.setIcon(
+            UI.PixmapCache.getIcon("editUndo"))
+        self.py3VenvNamesReloadButton.setIcon(
+            UI.PixmapCache.getIcon("reload"))
+        
+        venvManager = e5App().getObject("VirtualEnvManager")
+        self.py3VenvNameComboBox.addItems(
+            [""] + sorted(venvManager.getVirtualenvNames()))
+        
+        # set initial values
+        self.externalBrowserCheckBox.setChecked(
+            self.__plugin.getPreferences("UseExternalBrowser"))
+        
+        venvName = self.__plugin.getPreferences(
+            "VirtualEnvironmentNamePy3")
+        if venvName:
+            index = self.py3VenvNameComboBox.findText(venvName)
+            if index < 0:
+                index = 0
+            self.py3VenvNameComboBox.setCurrentIndex(index)
+        
+        self.urlEdit.setText(
+            self.__plugin.getPreferences("FlaskDocUrl"))
+    
+    def save(self):
+        """
+        Public slot to save the Flask configuration.
+        """
+        self.__plugin.setPreferences(
+            "UseExternalBrowser", self.externalBrowserCheckBox.isChecked())
+        
+        self.__plugin.setPreferences(
+            "VirtualEnvironmentNamePy3",
+            self.py3VenvNameComboBox.currentText())
+        
+        self.__plugin.setPreferences(
+            "FlaskDocUrl", self.urlEdit.text())
+    
+    @pyqtSlot()
+    def on_py3VenvNamesReloadButton_clicked(self):
+        """
+        Private slot to reload the virtual environment names.
+        """
+        currentVenvName = self.py3VenvNameComboBox.currentText()
+        self.py3VenvNameComboBox.clear()
+        venvManager = e5App().getObject("VirtualEnvManager")
+        self.py3VenvNameComboBox.addItems(
+            [""] + sorted(venvManager.getVirtualenvNames()))
+        if currentVenvName:
+            index = self.py3VenvNameComboBox.findText(currentVenvName)
+            if index < 0:
+                index = 0
+            self.py3VenvNameComboBox.setCurrentIndex(index)
+    
+    @pyqtSlot()
+    def on_urlResetButton_clicked(self):
+        """
+        Private slot to reset the Flask documentation URL.
+        """
+        self.urlEdit.setText(
+            self.__plugin.getDefaultPreference("FlaskDocUrl"))

eric ide

mercurial