--- 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)