diff -r efa1bdc53d4e -r 933c08329e8b src/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py --- a/src/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py Thu May 08 16:09:46 2025 +0200 +++ b/src/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py Thu May 08 16:11:25 2025 +0200 @@ -27,6 +27,7 @@ mainTemplate, moduleSetupTemplate, onDemandTemplate, + pluginTypeTemplate, previewPixmapTemplate, ) from .Ui_PluginWizardDialog import Ui_PluginWizardDialog @@ -37,6 +38,9 @@ Class implementing the eric plug-in wizard dialog. """ + OnDemandPluginTypes = ["", "viewmanager", "version_control"] + AutoActivatePluginTypes = ["", "virtualenv"] + def __init__(self, parent=None): """ Constructor @@ -65,11 +69,10 @@ self.longDescriptionEdit.textChanged.connect(self.__enableOkButton) self.preferencesKeyEdit.textChanged.connect(self.__enableOkButton) self.configurationGroup.toggled.connect(self.__enableOkButton) - self.autoActivateCheckBox.toggled.connect(self.__enableOkButton) self.pluginTypeCombo.currentIndexChanged.connect(self.__enableOkButton) self.pluginTypeNameEdit.textChanged.connect(self.__enableOkButton) - self.pluginTypeCombo.addItems(["", "viewmanager", "version_control"]) + self.on_autoActivateCheckBox_toggled(True) # default state of the option def __enableOkButton(self): """ @@ -96,6 +99,24 @@ self.__okButton.setEnabled(enable) + @pyqtSlot(bool) + def on_autoActivateCheckBox_toggled(self, checked): + """ + Public slot to handle a change of state of the 'Activate Automatically' + option. + + @param checked state of the option + @type bool + """ + self.pluginTypeCombo.clear() + + if checked: + self.pluginTypeCombo.addItems(PluginWizardDialog.AutoActivatePluginTypes) + else: + self.pluginTypeCombo.addItems(PluginWizardDialog.OnDemandPluginTypes) + + self.__enableOkButton() + @pyqtSlot() def on_projectButton_clicked(self): """ @@ -167,11 +188,19 @@ if self.autoActivateCheckBox.isChecked(): templateData["onDemand"] = "" + templateData["pluginType"] = ( + pluginTypeTemplate.format( + pluginType=self.pluginTypeCombo.currentText() + ) + if bool(self.pluginTypeCombo.currentText()) + else "" + ) else: templateData["onDemand"] = onDemandTemplate.format( pluginType=self.pluginTypeCombo.currentText(), pluginTypename=self.pluginTypeNameEdit.text(), ) + templateData["pluginType"] = "" if self.pixmapCheckBox.isChecked(): templateData["preview"] = previewPixmapTemplate