ProjectFlask/FlaskConfigDialog.py

changeset 49
3866bd742041
parent 47
144b67fd111a
child 52
caddf9f36f9f
diff -r 14d8d24e24da -r 3866bd742041 ProjectFlask/FlaskConfigDialog.py
--- a/ProjectFlask/FlaskConfigDialog.py	Wed Dec 02 19:54:18 2020 +0100
+++ b/ProjectFlask/FlaskConfigDialog.py	Wed Dec 02 19:54:44 2020 +0100
@@ -14,6 +14,8 @@
 
 from .Ui_FlaskConfigDialog import Ui_FlaskConfigDialog
 
+import UI.PixmapCache
+
 
 class FlaskConfigDialog(QDialog, Ui_FlaskConfigDialog):
     """
@@ -31,14 +33,29 @@
         super(FlaskConfigDialog, self).__init__(parent)
         self.setupUi(self)
         
+        self.newEnvironmentButton.setIcon(
+            UI.PixmapCache.getIcon("virtualenvConfig"))
+        
+        self.__virtualEnvManager = e5App().getObject("VirtualEnvManager")
+        
         self.virtualEnvironmentComboBox.addItem("")
         self.virtualEnvironmentComboBox.addItems(
-            sorted(e5App().getObject("VirtualEnvManager").getVirtualenvNames(
+            sorted(self.__virtualEnvManager.getVirtualenvNames(
                 noRemote=True, noConda=True
             ))
         )
         
-        # TODO: set initial values based on configuration
+        if "virtual_environment_name" in configuration:
+            self.virtualEnvironmentComboBox.setCurrentText(
+                configuration["virtual_environment_name"])
+        self.flaskBabelBox.setChecked(
+            configuration.get("flask_babel_override", False))
+        self.flaskBabelCheckBox.setChecked(
+            configuration.get("flask_babel_available", False))
+        self.flaskMigrateBox.setChecked(
+            configuration.get("flask_migrate_override", False))
+        self.flaskMigrateCheckBox.setChecked(
+            configuration.get("flask_migrate_available", False))
         
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
@@ -53,6 +70,55 @@
         configuration = {
             "virtual_environment_name":
                 self.virtualEnvironmentComboBox.currentText(),
+            "flask_babel_override":
+                self.flaskBabelBox.isChecked(),
+            "flask_babel_available":
+                self.flaskBabelCheckBox.isChecked(),
+            "flask_migrate_override":
+                self.flaskMigrateBox.isChecked(),
+            "flask_migrate_available":
+                self.flaskMigrateCheckBox.isChecked(),
         }
         
         return configuration
+    
+    @pyqtSlot()
+    def on_newEnvironmentButton_clicked(self):
+        """
+        Private slot to open a dialog for adding a new virtual environment.
+        """
+##        self.__virtualEnvManager.createVirtualEnv()
+        from VirtualEnv.VirtualenvConfigurationDialog import (
+            VirtualenvConfigurationDialog
+        )
+        
+        dlg = VirtualenvConfigurationDialog(self)
+        if dlg.exec() == QDialog.Accepted:
+            resultDict = dlg.getData()
+            
+            if resultDict["envType"] == "conda":
+                # conda environments are not suitable
+                return
+            else:
+                # now do the call
+                from VirtualEnv.VirtualenvExecDialog import (
+                    VirtualenvExecDialog
+                )
+                dia = VirtualenvExecDialog(
+                    resultDict, self.__virtualEnvManager, self)
+                dia.show()
+                dia.start(resultDict["arguments"])
+                dia.exec()
+            
+            # reload the list of environments
+            currentEnvName = self.virtualEnvironmentComboBox.currentText()
+            
+            self.virtualEnvironmentComboBox.clear()
+            self.virtualEnvironmentComboBox.addItem("")
+            self.virtualEnvironmentComboBox.addItems(
+                sorted(self.__virtualEnvManager.getVirtualenvNames(
+                    noRemote=True, noConda=True
+                ))
+            )
+            
+            self.virtualEnvironmentComboBox.setCurrentText(currentEnvName)

eric ide

mercurial