ProjectFlask/FlaskMigrateExtension/MigrateConfigDialog.py

changeset 29
a8817ea36587
child 47
144b67fd111a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectFlask/FlaskMigrateExtension/MigrateConfigDialog.py	Tue Nov 24 19:23:28 2020 +0100
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to edit the flask-migrate configuration.
+"""
+
+from PyQt5.QtCore import Qt
+from PyQt5.QtWidgets import QDialog
+
+from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.E5Application import e5App
+
+from .Ui_MigrateConfigDialog import Ui_MigrateConfigDialog
+
+
+class MigrateConfigDialog(QDialog, Ui_MigrateConfigDialog):
+    """
+    Class implementing a dialog to edit the flask-migrate configuration.
+    """
+    def __init__(self, configuration, parent=None):
+        """
+        Constructor
+        
+        @param configuration current pybabel configuration
+        @type dict
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(MigrateConfigDialog, self).__init__(parent)
+        self.setupUi(self)
+        
+        self.__e5project = e5App().getObject("Project")
+        
+        self.migrationsDirectoryPicker.setMode(
+            E5PathPickerModes.DirectoryMode)
+        self.migrationsDirectoryPicker.setDefaultDirectory(
+            self.__e5project.getProjectPath())
+        
+        self.migrationsDirectoryPicker.setFocus(Qt.OtherFocusReason)
+        
+        if (
+            "migrationsDirectory" in configuration and
+            configuration["migrationsDirectory"]
+        ):
+            self.migrationsDirectoryPicker.setText(
+                self.__e5project.getAbsoluteUniversalPath(
+                    configuration["migrationsDirectory"]))
+    
+    def getConfiguration(self):
+        """
+        Public method to get the entered configuration data.
+        
+        @return pybabel configuration
+        @rtype dict
+        """
+        configuration = {
+            "migrationsDirectory": self.__e5project.getRelativeUniversalPath(
+                self.migrationsDirectoryPicker.text()),
+        }
+        
+        return configuration

eric ide

mercurial