ProjectFlask/Project.py

changeset 47
144b67fd111a
parent 46
e700f73e1c6f
child 49
3866bd742041
diff -r e700f73e1c6f -r 144b67fd111a ProjectFlask/Project.py
--- a/ProjectFlask/Project.py	Tue Dec 01 19:38:47 2020 +0100
+++ b/ProjectFlask/Project.py	Tue Dec 01 20:22:23 2020 +0100
@@ -205,6 +205,26 @@
         self.__pybabelProject.initActions()
         self.__migrateProject.initActions()
     
+        ######################################
+        ## configuration action below       ##
+        ######################################
+        
+        self.flaskConfigAct = E5Action(
+            self.tr('Configure Flask for Project'),
+            self.tr('Configure Flask for &Project'),
+            0, 0,
+            self, 'flask_config_for_project')
+        self.flaskConfigAct.setStatusTip(self.tr(
+            'Shows a dialog to edit the project specific flask configuration'))
+        self.flaskConfigAct.setWhatsThis(self.tr(
+            """<b>Configure Migrate</b>"""
+            """<p>Shows a dialog to edit the project specific flask"""
+            """ configuration.</p>"""
+        ))
+        self.flaskConfigAct.triggered.connect(
+            self.__configureFlaskForProject)
+        self.actions.append(self.flaskConfigAct)
+    
     def initMenu(self):
         """
         Public method to initialize the Flask menu.
@@ -220,6 +240,8 @@
         menu = QMenu(self.tr('&Flask'), self.__ui)
         menu.setTearOffEnabled(True)
         
+        menu.addAction(self.flaskConfigAct)
+        menu.addSeparator()
         menu.addAction(self.runServerAct)
         menu.addAction(self.runDevServerAct)
         menu.addAction(self.askForServerOptionsAct)
@@ -361,6 +383,7 @@
         @return path of the virtual environment
         @rtype str
         """
+        # TODO: use project specific override first, global setting second
         language = self.__e5project.getProjectLanguage()
         if language == "Python3":
             venvName = self.__plugin.getPreferences(
@@ -693,8 +716,14 @@
         Private slot to configure the project specific flask parameters.
         """
         # TODO: implement the flask project config dialog
-        # 1. check boxes to override flask-babel and flask-migrate
         # 2. support for project specific virtual environment
+        from .FlaskConfigDialog import FlaskConfigDialog
+        
+        config = self.getData("flask", "")
+        dlg = FlaskConfigDialog(config)
+        if dlg.exec() == QDialog.Accepted:
+            config = dlg.getConfiguration()
+            self.setData("flask", "", config)
     
     ##################################################################
     ## slot below implements documentation function

eric ide

mercurial