diff -r 71cd3bbf825f -r a8817ea36587 ProjectFlask/FlaskMigrateExtension/MigrateConfigDialog.py --- /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