src/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
13 from EricWidgets.EricApplication import ericApp 13 from EricWidgets.EricApplication import ericApp
14 14
15 from .Ui_PluginWizardDialog import Ui_PluginWizardDialog 15 from .Ui_PluginWizardDialog import Ui_PluginWizardDialog
16 16
17 from .Templates import ( 17 from .Templates import (
18 mainTemplate, configTemplate0, configTemplate1, configTemplate2, 18 mainTemplate,
19 configTemplate3, onDemandTemplate, previewPixmapTemplate, 19 configTemplate0,
20 moduleSetupTemplate, exeDisplayDataTemplate, exeDisplayDataInfoTemplate, 20 configTemplate1,
21 exeDisplayDataListTemplate, apiFilesTemplate 21 configTemplate2,
22 configTemplate3,
23 onDemandTemplate,
24 previewPixmapTemplate,
25 moduleSetupTemplate,
26 exeDisplayDataTemplate,
27 exeDisplayDataInfoTemplate,
28 exeDisplayDataListTemplate,
29 apiFilesTemplate,
22 ) 30 )
23 31
24 32
25 class PluginWizardDialog(QDialog, Ui_PluginWizardDialog): 33 class PluginWizardDialog(QDialog, Ui_PluginWizardDialog):
26 """ 34 """
27 Class implementing the eric plug-in wizard dialog. 35 Class implementing the eric plug-in wizard dialog.
28 """ 36 """
37
29 def __init__(self, parent=None): 38 def __init__(self, parent=None):
30 """ 39 """
31 Constructor 40 Constructor
32 41
33 @param parent reference to the parent widget (QWidget) 42 @param parent reference to the parent widget (QWidget)
34 """ 43 """
35 super().__init__(parent) 44 super().__init__(parent)
36 self.setupUi(self) 45 self.setupUi(self)
37 46
38 self.dataTabWidget.setCurrentIndex(0) 47 self.dataTabWidget.setCurrentIndex(0)
39 48
40 self.__okButton = self.buttonBox.button( 49 self.__okButton = self.buttonBox.button(QDialogButtonBox.StandardButton.Ok)
41 QDialogButtonBox.StandardButton.Ok)
42 self.__okButton.setEnabled(False) 50 self.__okButton.setEnabled(False)
43 51
44 projectOpen = ericApp().getObject("Project").isOpen() 52 projectOpen = ericApp().getObject("Project").isOpen()
45 self.projectButton.setEnabled(projectOpen) 53 self.projectButton.setEnabled(projectOpen)
46 54
47 self.nameEdit.textChanged.connect(self.__enableOkButton) 55 self.nameEdit.textChanged.connect(self.__enableOkButton)
48 self.versionEdit.textChanged.connect(self.__enableOkButton) 56 self.versionEdit.textChanged.connect(self.__enableOkButton)
49 self.authorEdit.textChanged.connect(self.__enableOkButton) 57 self.authorEdit.textChanged.connect(self.__enableOkButton)
50 self.authorEmailEdit.textChanged.connect(self.__enableOkButton) 58 self.authorEmailEdit.textChanged.connect(self.__enableOkButton)
51 self.classNameEdit.textChanged.connect(self.__enableOkButton) 59 self.classNameEdit.textChanged.connect(self.__enableOkButton)
55 self.preferencesKeyEdit.textChanged.connect(self.__enableOkButton) 63 self.preferencesKeyEdit.textChanged.connect(self.__enableOkButton)
56 self.configurationGroup.toggled.connect(self.__enableOkButton) 64 self.configurationGroup.toggled.connect(self.__enableOkButton)
57 self.autoActivateCheckBox.toggled.connect(self.__enableOkButton) 65 self.autoActivateCheckBox.toggled.connect(self.__enableOkButton)
58 self.pluginTypeCombo.currentIndexChanged.connect(self.__enableOkButton) 66 self.pluginTypeCombo.currentIndexChanged.connect(self.__enableOkButton)
59 self.pluginTypeNameEdit.textChanged.connect(self.__enableOkButton) 67 self.pluginTypeNameEdit.textChanged.connect(self.__enableOkButton)
60 68
61 self.pluginTypeCombo.addItems(["", "viewmanager", "version_control"]) 69 self.pluginTypeCombo.addItems(["", "viewmanager", "version_control"])
62 70
63 def __enableOkButton(self): 71 def __enableOkButton(self):
64 """ 72 """
65 Private slot to set the state of the OK button. 73 Private slot to set the state of the OK button.
66 """ 74 """
67 enable = ( 75 enable = (
68 bool(self.nameEdit.text()) and 76 bool(self.nameEdit.text())
69 bool(self.versionEdit.text()) and 77 and bool(self.versionEdit.text())
70 bool(self.authorEdit.text()) and 78 and bool(self.authorEdit.text())
71 bool(self.authorEmailEdit.text()) and 79 and bool(self.authorEmailEdit.text())
72 bool(self.classNameEdit.text()) and 80 and bool(self.classNameEdit.text())
73 bool(self.packageNameEdit.text()) and 81 and bool(self.packageNameEdit.text())
74 bool(self.shortDescriptionEdit.text()) and 82 and bool(self.shortDescriptionEdit.text())
75 bool(self.longDescriptionEdit.toPlainText()) 83 and bool(self.longDescriptionEdit.toPlainText())
76 ) 84 )
77 if self.configurationGroup.isChecked(): 85 if self.configurationGroup.isChecked():
78 enable = enable and bool(self.preferencesKeyEdit.text()) 86 enable = enable and bool(self.preferencesKeyEdit.text())
79 if not self.autoActivateCheckBox.isChecked(): 87 if not self.autoActivateCheckBox.isChecked():
80 enable = (enable and 88 enable = (
81 bool(self.pluginTypeCombo.currentText()) and 89 enable
82 bool(self.pluginTypeNameEdit.text()) 90 and bool(self.pluginTypeCombo.currentText())
83 ) 91 and bool(self.pluginTypeNameEdit.text())
84 92 )
93
85 self.__okButton.setEnabled(enable) 94 self.__okButton.setEnabled(enable)
86 95
87 @pyqtSlot() 96 @pyqtSlot()
88 def on_projectButton_clicked(self): 97 def on_projectButton_clicked(self):
89 """ 98 """
90 Private slot to populate some fields with data retrieved from the 99 Private slot to populate some fields with data retrieved from the
91 current project. 100 current project.
92 """ 101 """
93 project = ericApp().getObject("Project") 102 project = ericApp().getObject("Project")
94 103
95 try: 104 try:
96 self.versionEdit.setText(project.getProjectVersion()) 105 self.versionEdit.setText(project.getProjectVersion())
97 self.authorEdit.setText(project.getProjectAuthor()) 106 self.authorEdit.setText(project.getProjectAuthor())
98 self.authorEmailEdit.setText(project.getProjectAuthorEmail()) 107 self.authorEmailEdit.setText(project.getProjectAuthorEmail())
99 description = project.getProjectDescription() 108 description = project.getProjectDescription()
100 except AttributeError: 109 except AttributeError:
101 self.versionEdit.setText(project.pdata["VERSION"][0]) 110 self.versionEdit.setText(project.pdata["VERSION"][0])
102 self.authorEdit.setText(project.pdata["AUTHOR"][0]) 111 self.authorEdit.setText(project.pdata["AUTHOR"][0])
103 self.authorEmailEdit.setText(project.pdata["EMAIL"][0]) 112 self.authorEmailEdit.setText(project.pdata["EMAIL"][0])
104 description = project.pdata["DESCRIPTION"][0] 113 description = project.pdata["DESCRIPTION"][0]
105 114
106 # summary is max. 55 characters long 115 # summary is max. 55 characters long
107 summary = (description.split(".", 1)[0] 116 summary = (
108 .replace("\r", "").replace("\n", "") + ".")[:55] 117 description.split(".", 1)[0].replace("\r", "").replace("\n", "") + "."
118 )[:55]
109 self.shortDescriptionEdit.setText(summary) 119 self.shortDescriptionEdit.setText(summary)
110 self.longDescriptionEdit.setPlainText(description) 120 self.longDescriptionEdit.setPlainText(description)
111 121
112 # prevent overwriting of entries by disabling the button 122 # prevent overwriting of entries by disabling the button
113 self.projectButton.setEnabled(False) 123 self.projectButton.setEnabled(False)
114 124
115 def getCode(self): 125 def getCode(self):
116 """ 126 """
117 Public method to get the source code. 127 Public method to get the source code.
118 128
119 @return generated code (string) 129 @return generated code (string)
120 """ 130 """
121 templateData = { 131 templateData = {
122 "year": QDate.currentDate().year(), 132 "year": QDate.currentDate().year(),
123 "author": self.authorEdit.text(), 133 "author": self.authorEdit.text(),
130 "packageName": self.packageNameEdit.text(), 140 "packageName": self.packageNameEdit.text(),
131 "shortDescription": self.shortDescriptionEdit.text(), 141 "shortDescription": self.shortDescriptionEdit.text(),
132 "longDescription": self.longDescriptionEdit.toPlainText(), 142 "longDescription": self.longDescriptionEdit.toPlainText(),
133 "needsRestart": self.restartCheckBox.isChecked(), 143 "needsRestart": self.restartCheckBox.isChecked(),
134 } 144 }
135 145
136 if self.configurationGroup.isChecked(): 146 if self.configurationGroup.isChecked():
137 templateData["config0"] = configTemplate0 147 templateData["config0"] = configTemplate0
138 templateData["config1"] = configTemplate1.format( 148 templateData["config1"] = configTemplate1.format(
139 className=self.classNameEdit.text()) 149 className=self.classNameEdit.text()
150 )
140 templateData["config2"] = configTemplate2.format( 151 templateData["config2"] = configTemplate2.format(
141 preferencesKey=self.preferencesKeyEdit.text()) 152 preferencesKey=self.preferencesKeyEdit.text()
153 )
142 templateData["config3"] = configTemplate3 154 templateData["config3"] = configTemplate3
143 else: 155 else:
144 templateData["config0"] = "" 156 templateData["config0"] = ""
145 templateData["config1"] = "" 157 templateData["config1"] = ""
146 templateData["config2"] = "" 158 templateData["config2"] = ""
147 templateData["config3"] = "" 159 templateData["config3"] = ""
148 160
149 if self.autoActivateCheckBox.isChecked(): 161 if self.autoActivateCheckBox.isChecked():
150 templateData["onDemand"] = "" 162 templateData["onDemand"] = ""
151 else: 163 else:
152 templateData["onDemand"] = onDemandTemplate.format( 164 templateData["onDemand"] = onDemandTemplate.format(
153 pluginType=self.pluginTypeCombo.currentText(), 165 pluginType=self.pluginTypeCombo.currentText(),
154 pluginTypename=self.pluginTypeNameEdit.text() 166 pluginTypename=self.pluginTypeNameEdit.text(),
155 ) 167 )
156 168
157 if self.pixmapCheckBox.isChecked(): 169 if self.pixmapCheckBox.isChecked():
158 templateData["preview"] = previewPixmapTemplate 170 templateData["preview"] = previewPixmapTemplate
159 else: 171 else:
160 templateData["preview"] = "" 172 templateData["preview"] = ""
161 173
162 if self.moduleSetupCheckBox.isChecked(): 174 if self.moduleSetupCheckBox.isChecked():
163 templateData["modulesetup"] = moduleSetupTemplate 175 templateData["modulesetup"] = moduleSetupTemplate
164 else: 176 else:
165 templateData["modulesetup"] = "" 177 templateData["modulesetup"] = ""
166 178
167 templateData["exeData"] = "" 179 templateData["exeData"] = ""
168 if self.exeGroup.isChecked(): 180 if self.exeGroup.isChecked():
169 if self.exeRadioButton.isChecked(): 181 if self.exeRadioButton.isChecked():
170 templateData["exeData"] = exeDisplayDataTemplate 182 templateData["exeData"] = exeDisplayDataTemplate
171 elif self.exeInfoRadioButton.isChecked(): 183 elif self.exeInfoRadioButton.isChecked():
172 templateData["exeData"] = exeDisplayDataInfoTemplate 184 templateData["exeData"] = exeDisplayDataInfoTemplate
173 elif self.exeListRadioButton.isChecked(): 185 elif self.exeListRadioButton.isChecked():
174 templateData["exeData"] = exeDisplayDataListTemplate 186 templateData["exeData"] = exeDisplayDataListTemplate
175 187
176 if self.apiFilesCheckBox.isChecked(): 188 if self.apiFilesCheckBox.isChecked():
177 templateData["apiFiles"] = apiFilesTemplate 189 templateData["apiFiles"] = apiFilesTemplate
178 else: 190 else:
179 templateData["apiFiles"] = "" 191 templateData["apiFiles"] = ""
180 192
181 return mainTemplate.format(**templateData) 193 return mainTemplate.format(**templateData)
182 194
183 def packageName(self): 195 def packageName(self):
184 """ 196 """
185 Public method to retrieve the plug-in package name. 197 Public method to retrieve the plug-in package name.
186 198
187 @return plug-in package name (string) 199 @return plug-in package name (string)
188 """ 200 """
189 if self.createPackageCheckBox.isChecked(): 201 if self.createPackageCheckBox.isChecked():
190 return self.packageNameEdit.text() 202 return self.packageNameEdit.text()
191 else: 203 else:
192 return "" 204 return ""
193 205
194 @pyqtSlot(str) 206 @pyqtSlot(str)
195 def on_pluginTypeCombo_currentTextChanged(self, txt): 207 def on_pluginTypeCombo_currentTextChanged(self, txt):
196 """ 208 """
197 Private slot to react upon the selection of a plug-in type. 209 Private slot to react upon the selection of a plug-in type.
198 210
199 @param txt selected plug-in type (string) 211 @param txt selected plug-in type (string)
200 """ 212 """
201 self.pixmapCheckBox.setChecked(txt == "viewmanager") 213 self.pixmapCheckBox.setChecked(txt == "viewmanager")

eric ide

mercurial