Project/ProjectFormsBrowser.py

changeset 3190
a9a94491c4fd
parent 3160
209a07d7e401
child 3478
beec1d9c1851
child 3484
645c12de6b0c
equal deleted inserted replaced
3189:9a21c547de5f 3190:a9a94491c4fd
64 parent) 64 parent)
65 65
66 self.selectedItemsFilter = \ 66 self.selectedItemsFilter = \
67 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem] 67 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem]
68 68
69 self.setWindowTitle(self.trUtf8('Forms')) 69 self.setWindowTitle(self.tr('Forms'))
70 70
71 self.setWhatsThis(self.trUtf8( 71 self.setWhatsThis(self.tr(
72 """<b>Project Forms Browser</b>""" 72 """<b>Project Forms Browser</b>"""
73 """<p>This allows to easily see all forms contained in the""" 73 """<p>This allows to easily see all forms contained in the"""
74 """ current project. Several actions can be executed via the""" 74 """ current project. Several actions can be executed via the"""
75 """ context menu.</p>""" 75 """ context menu.</p>"""
76 )) 76 ))
85 'qdockwidget4.tmpl', 'qframe4.tmpl', 'qgroupbox4.tmpl', 85 'qdockwidget4.tmpl', 'qframe4.tmpl', 'qgroupbox4.tmpl',
86 'qscrollarea4.tmpl', 'qmdiarea4.tmpl', 'qtabwidget4.tmpl', 86 'qscrollarea4.tmpl', 'qmdiarea4.tmpl', 'qtabwidget4.tmpl',
87 'qtoolbox4.tmpl', 'qstackedwidget4.tmpl' 87 'qtoolbox4.tmpl', 'qstackedwidget4.tmpl'
88 ] 88 ]
89 self.templateTypes4 = [ 89 self.templateTypes4 = [
90 self.trUtf8("Dialog"), 90 self.tr("Dialog"),
91 self.trUtf8("Widget"), 91 self.tr("Widget"),
92 self.trUtf8("Main Window"), 92 self.tr("Main Window"),
93 self.trUtf8("Dialog with Buttonbox (Bottom)"), 93 self.tr("Dialog with Buttonbox (Bottom)"),
94 self.trUtf8("Dialog with Buttonbox (Right)"), 94 self.tr("Dialog with Buttonbox (Right)"),
95 self.trUtf8("Dialog with Buttons (Bottom)"), 95 self.tr("Dialog with Buttons (Bottom)"),
96 self.trUtf8("Dialog with Buttons (Bottom-Center)"), 96 self.tr("Dialog with Buttons (Bottom-Center)"),
97 self.trUtf8("Dialog with Buttons (Right)"), 97 self.tr("Dialog with Buttons (Right)"),
98 '', 98 '',
99 self.trUtf8("QWizard"), 99 self.tr("QWizard"),
100 self.trUtf8("QWizardPage"), 100 self.tr("QWizardPage"),
101 self.trUtf8("QDockWidget"), 101 self.tr("QDockWidget"),
102 self.trUtf8("QFrame"), 102 self.tr("QFrame"),
103 self.trUtf8("QGroupBox"), 103 self.tr("QGroupBox"),
104 self.trUtf8("QScrollArea"), 104 self.tr("QScrollArea"),
105 self.trUtf8("QMdiArea"), 105 self.tr("QMdiArea"),
106 self.trUtf8("QTabWidget"), 106 self.tr("QTabWidget"),
107 self.trUtf8("QToolBox"), 107 self.tr("QToolBox"),
108 self.trUtf8("QStackedWidget"), 108 self.tr("QStackedWidget"),
109 ] 109 ]
110 110
111 self.compileProc = None 111 self.compileProc = None
112 112
113 def _createPopupMenus(self): 113 def _createPopupMenus(self):
123 123
124 self.menu = QMenu(self) 124 self.menu = QMenu(self)
125 if self.project.getProjectType() in \ 125 if self.project.getProjectType() in \
126 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 126 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
127 self.menu.addAction( 127 self.menu.addAction(
128 self.trUtf8('Compile form'), self.__compileForm) 128 self.tr('Compile form'), self.__compileForm)
129 self.menu.addAction( 129 self.menu.addAction(
130 self.trUtf8('Compile all forms'), 130 self.tr('Compile all forms'),
131 self.__compileAllForms) 131 self.__compileAllForms)
132 self.menu.addAction( 132 self.menu.addAction(
133 self.trUtf8('Generate Dialog Code...'), 133 self.tr('Generate Dialog Code...'),
134 self.__generateDialogCode) 134 self.__generateDialogCode)
135 self.menu.addSeparator() 135 self.menu.addSeparator()
136 self.menu.addAction( 136 self.menu.addAction(
137 self.trUtf8('Open in Qt-Designer'), self.__openFile) 137 self.tr('Open in Qt-Designer'), self.__openFile)
138 self.menu.addAction( 138 self.menu.addAction(
139 self.trUtf8('Open in Editor'), self.__openFileInEditor) 139 self.tr('Open in Editor'), self.__openFileInEditor)
140 self.menu.addSeparator() 140 self.menu.addSeparator()
141 self.menu.addAction(self.trUtf8('Preview form'), self.__UIPreview) 141 self.menu.addAction(self.tr('Preview form'), self.__UIPreview)
142 self.menu.addAction( 142 self.menu.addAction(
143 self.trUtf8('Preview translations'), self.__TRPreview) 143 self.tr('Preview translations'), self.__TRPreview)
144 else: 144 else:
145 if self.hooks["compileForm"] is not None: 145 if self.hooks["compileForm"] is not None:
146 self.menu.addAction( 146 self.menu.addAction(
147 self.hooksMenuEntries.get( 147 self.hooksMenuEntries.get(
148 "compileForm", 148 "compileForm",
149 self.trUtf8('Compile form')), self.__compileForm) 149 self.tr('Compile form')), self.__compileForm)
150 if self.hooks["compileAllForms"] is not None: 150 if self.hooks["compileAllForms"] is not None:
151 self.menu.addAction( 151 self.menu.addAction(
152 self.hooksMenuEntries.get( 152 self.hooksMenuEntries.get(
153 "compileAllForms", 153 "compileAllForms",
154 self.trUtf8('Compile all forms')), 154 self.tr('Compile all forms')),
155 self.__compileAllForms) 155 self.__compileAllForms)
156 if self.hooks["generateDialogCode"] is not None: 156 if self.hooks["generateDialogCode"] is not None:
157 self.menu.addAction( 157 self.menu.addAction(
158 self.hooksMenuEntries.get( 158 self.hooksMenuEntries.get(
159 "generateDialogCode", 159 "generateDialogCode",
160 self.trUtf8('Generate Dialog Code...')), 160 self.tr('Generate Dialog Code...')),
161 self.__generateDialogCode) 161 self.__generateDialogCode)
162 if self.hooks["compileForm"] is not None or \ 162 if self.hooks["compileForm"] is not None or \
163 self.hooks["compileAllForms"] is not None or \ 163 self.hooks["compileAllForms"] is not None or \
164 self.hooks["generateDialogCode"] is not None: 164 self.hooks["generateDialogCode"] is not None:
165 self.menu.addSeparator() 165 self.menu.addSeparator()
166 if self.hooks["open"] is not None: 166 if self.hooks["open"] is not None:
167 self.menu.addAction( 167 self.menu.addAction(
168 self.hooksMenuEntries.get("open", self.trUtf8('Open')), 168 self.hooksMenuEntries.get("open", self.tr('Open')),
169 self.__openFile) 169 self.__openFile)
170 self.menu.addAction(self.trUtf8('Open'), self.__openFileInEditor) 170 self.menu.addAction(self.tr('Open'), self.__openFileInEditor)
171 self.menu.addSeparator() 171 self.menu.addSeparator()
172 act = self.menu.addAction(self.trUtf8('Rename file'), self._renameFile) 172 act = self.menu.addAction(self.tr('Rename file'), self._renameFile)
173 self.menuActions.append(act) 173 self.menuActions.append(act)
174 act = self.menu.addAction( 174 act = self.menu.addAction(
175 self.trUtf8('Remove from project'), self._removeFile) 175 self.tr('Remove from project'), self._removeFile)
176 self.menuActions.append(act) 176 self.menuActions.append(act)
177 act = self.menu.addAction(self.trUtf8('Delete'), self.__deleteFile) 177 act = self.menu.addAction(self.tr('Delete'), self.__deleteFile)
178 self.menuActions.append(act) 178 self.menuActions.append(act)
179 self.menu.addSeparator() 179 self.menu.addSeparator()
180 if self.project.getProjectType() in \ 180 if self.project.getProjectType() in \
181 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 181 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
182 self.menu.addAction(self.trUtf8('New form...'), self.__newForm) 182 self.menu.addAction(self.tr('New form...'), self.__newForm)
183 else: 183 else:
184 if self.hooks["newForm"] is not None: 184 if self.hooks["newForm"] is not None:
185 self.menu.addAction( 185 self.menu.addAction(
186 self.hooksMenuEntries.get( 186 self.hooksMenuEntries.get(
187 "newForm", self.trUtf8('New form...')), self.__newForm) 187 "newForm", self.tr('New form...')), self.__newForm)
188 self.menu.addAction(self.trUtf8('Add forms...'), self.__addFormFiles) 188 self.menu.addAction(self.tr('Add forms...'), self.__addFormFiles)
189 self.menu.addAction( 189 self.menu.addAction(
190 self.trUtf8('Add forms directory...'), self.__addFormsDirectory) 190 self.tr('Add forms directory...'), self.__addFormsDirectory)
191 self.menu.addSeparator() 191 self.menu.addSeparator()
192 self.menu.addAction( 192 self.menu.addAction(
193 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard) 193 self.tr('Copy Path to Clipboard'), self._copyToClipboard)
194 self.menu.addSeparator() 194 self.menu.addSeparator()
195 self.menu.addAction( 195 self.menu.addAction(
196 self.trUtf8('Expand all directories'), self._expandAllDirs) 196 self.tr('Expand all directories'), self._expandAllDirs)
197 self.menu.addAction( 197 self.menu.addAction(
198 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 198 self.tr('Collapse all directories'), self._collapseAllDirs)
199 self.menu.addSeparator() 199 self.menu.addSeparator()
200 self.menu.addAction(self.trUtf8('Configure...'), self._configure) 200 self.menu.addAction(self.tr('Configure...'), self._configure)
201 201
202 self.backMenu = QMenu(self) 202 self.backMenu = QMenu(self)
203 if self.project.getProjectType() in \ 203 if self.project.getProjectType() in \
204 ["Qt4", "PyQt5", "E4Plugin", "PySide"] or \ 204 ["Qt4", "PyQt5", "E4Plugin", "PySide"] or \
205 self.hooks["compileAllForms"] is not None: 205 self.hooks["compileAllForms"] is not None:
206 self.backMenu.addAction( 206 self.backMenu.addAction(
207 self.trUtf8('Compile all forms'), self.__compileAllForms) 207 self.tr('Compile all forms'), self.__compileAllForms)
208 self.backMenu.addSeparator() 208 self.backMenu.addSeparator()
209 self.backMenu.addAction(self.trUtf8('New form...'), self.__newForm) 209 self.backMenu.addAction(self.tr('New form...'), self.__newForm)
210 else: 210 else:
211 if self.hooks["newForm"] is not None: 211 if self.hooks["newForm"] is not None:
212 self.backMenu.addAction( 212 self.backMenu.addAction(
213 self.hooksMenuEntries.get( 213 self.hooksMenuEntries.get(
214 "newForm", self.trUtf8('New form...')), self.__newForm) 214 "newForm", self.tr('New form...')), self.__newForm)
215 self.backMenu.addAction( 215 self.backMenu.addAction(
216 self.trUtf8('Add forms...'), self.project.addUiFiles) 216 self.tr('Add forms...'), self.project.addUiFiles)
217 self.backMenu.addAction( 217 self.backMenu.addAction(
218 self.trUtf8('Add forms directory...'), self.project.addUiDir) 218 self.tr('Add forms directory...'), self.project.addUiDir)
219 self.backMenu.addSeparator() 219 self.backMenu.addSeparator()
220 self.backMenu.addAction( 220 self.backMenu.addAction(
221 self.trUtf8('Expand all directories'), self._expandAllDirs) 221 self.tr('Expand all directories'), self._expandAllDirs)
222 self.backMenu.addAction( 222 self.backMenu.addAction(
223 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 223 self.tr('Collapse all directories'), self._collapseAllDirs)
224 self.backMenu.addSeparator() 224 self.backMenu.addSeparator()
225 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure) 225 self.backMenu.addAction(self.tr('Configure...'), self._configure)
226 self.backMenu.setEnabled(False) 226 self.backMenu.setEnabled(False)
227 227
228 # create the menu for multiple selected files 228 # create the menu for multiple selected files
229 self.multiMenu = QMenu(self) 229 self.multiMenu = QMenu(self)
230 if self.project.getProjectType() in \ 230 if self.project.getProjectType() in \
231 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 231 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
232 act = self.multiMenu.addAction( 232 act = self.multiMenu.addAction(
233 self.trUtf8('Compile forms'), self.__compileSelectedForms) 233 self.tr('Compile forms'), self.__compileSelectedForms)
234 self.multiMenu.addSeparator() 234 self.multiMenu.addSeparator()
235 self.multiMenu.addAction( 235 self.multiMenu.addAction(
236 self.trUtf8('Open in Qt-Designer'), self.__openFile) 236 self.tr('Open in Qt-Designer'), self.__openFile)
237 self.multiMenu.addAction( 237 self.multiMenu.addAction(
238 self.trUtf8('Open in Editor'), self.__openFileInEditor) 238 self.tr('Open in Editor'), self.__openFileInEditor)
239 self.multiMenu.addSeparator() 239 self.multiMenu.addSeparator()
240 self.multiMenu.addAction( 240 self.multiMenu.addAction(
241 self.trUtf8('Preview translations'), self.__TRPreview) 241 self.tr('Preview translations'), self.__TRPreview)
242 else: 242 else:
243 if self.hooks["compileSelectedForms"] is not None: 243 if self.hooks["compileSelectedForms"] is not None:
244 act = self.multiMenu.addAction( 244 act = self.multiMenu.addAction(
245 self.hooksMenuEntries.get( 245 self.hooksMenuEntries.get(
246 "compileSelectedForms", 246 "compileSelectedForms",
247 self.trUtf8('Compile forms')), 247 self.tr('Compile forms')),
248 self.__compileSelectedForms) 248 self.__compileSelectedForms)
249 self.multiMenu.addSeparator() 249 self.multiMenu.addSeparator()
250 if self.hooks["open"] is not None: 250 if self.hooks["open"] is not None:
251 self.multiMenu.addAction( 251 self.multiMenu.addAction(
252 self.hooksMenuEntries.get("open", self.trUtf8('Open')), 252 self.hooksMenuEntries.get("open", self.tr('Open')),
253 self.__openFile) 253 self.__openFile)
254 self.multiMenu.addAction( 254 self.multiMenu.addAction(
255 self.trUtf8('Open'), self.__openFileInEditor) 255 self.tr('Open'), self.__openFileInEditor)
256 self.multiMenu.addSeparator() 256 self.multiMenu.addSeparator()
257 act = self.multiMenu.addAction( 257 act = self.multiMenu.addAction(
258 self.trUtf8('Remove from project'), self._removeFile) 258 self.tr('Remove from project'), self._removeFile)
259 self.multiMenuActions.append(act) 259 self.multiMenuActions.append(act)
260 act = self.multiMenu.addAction( 260 act = self.multiMenu.addAction(
261 self.trUtf8('Delete'), self.__deleteFile) 261 self.tr('Delete'), self.__deleteFile)
262 self.multiMenuActions.append(act) 262 self.multiMenuActions.append(act)
263 self.multiMenu.addSeparator() 263 self.multiMenu.addSeparator()
264 self.multiMenu.addAction( 264 self.multiMenu.addAction(
265 self.trUtf8('Expand all directories'), self._expandAllDirs) 265 self.tr('Expand all directories'), self._expandAllDirs)
266 self.multiMenu.addAction( 266 self.multiMenu.addAction(
267 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 267 self.tr('Collapse all directories'), self._collapseAllDirs)
268 self.multiMenu.addSeparator() 268 self.multiMenu.addSeparator()
269 self.multiMenu.addAction(self.trUtf8('Configure...'), self._configure) 269 self.multiMenu.addAction(self.tr('Configure...'), self._configure)
270 270
271 self.dirMenu = QMenu(self) 271 self.dirMenu = QMenu(self)
272 if self.project.getProjectType() in \ 272 if self.project.getProjectType() in \
273 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 273 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
274 self.dirMenu.addAction( 274 self.dirMenu.addAction(
275 self.trUtf8('Compile all forms'), self.__compileAllForms) 275 self.tr('Compile all forms'), self.__compileAllForms)
276 self.dirMenu.addSeparator() 276 self.dirMenu.addSeparator()
277 else: 277 else:
278 if self.hooks["compileAllForms"] is not None: 278 if self.hooks["compileAllForms"] is not None:
279 self.dirMenu.addAction( 279 self.dirMenu.addAction(
280 self.hooksMenuEntries.get( 280 self.hooksMenuEntries.get(
281 "compileAllForms", 281 "compileAllForms",
282 self.trUtf8('Compile all forms')), 282 self.tr('Compile all forms')),
283 self.__compileAllForms) 283 self.__compileAllForms)
284 self.dirMenu.addSeparator() 284 self.dirMenu.addSeparator()
285 act = self.dirMenu.addAction( 285 act = self.dirMenu.addAction(
286 self.trUtf8('Remove from project'), self._removeDir) 286 self.tr('Remove from project'), self._removeDir)
287 self.dirMenuActions.append(act) 287 self.dirMenuActions.append(act)
288 act = self.dirMenu.addAction( 288 act = self.dirMenu.addAction(
289 self.trUtf8('Delete'), self._deleteDirectory) 289 self.tr('Delete'), self._deleteDirectory)
290 self.dirMenuActions.append(act) 290 self.dirMenuActions.append(act)
291 self.dirMenu.addSeparator() 291 self.dirMenu.addSeparator()
292 if self.project.getProjectType() in \ 292 if self.project.getProjectType() in \
293 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 293 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
294 self.dirMenu.addAction(self.trUtf8('New form...'), self.__newForm) 294 self.dirMenu.addAction(self.tr('New form...'), self.__newForm)
295 else: 295 else:
296 if self.hooks["newForm"] is not None: 296 if self.hooks["newForm"] is not None:
297 self.dirMenu.addAction( 297 self.dirMenu.addAction(
298 self.hooksMenuEntries.get( 298 self.hooksMenuEntries.get(
299 "newForm", 299 "newForm",
300 self.trUtf8('New form...')), self.__newForm) 300 self.tr('New form...')), self.__newForm)
301 self.dirMenu.addAction( 301 self.dirMenu.addAction(
302 self.trUtf8('Add forms...'), self.__addFormFiles) 302 self.tr('Add forms...'), self.__addFormFiles)
303 self.dirMenu.addAction( 303 self.dirMenu.addAction(
304 self.trUtf8('Add forms directory...'), self.__addFormsDirectory) 304 self.tr('Add forms directory...'), self.__addFormsDirectory)
305 self.dirMenu.addSeparator() 305 self.dirMenu.addSeparator()
306 self.dirMenu.addAction( 306 self.dirMenu.addAction(
307 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard) 307 self.tr('Copy Path to Clipboard'), self._copyToClipboard)
308 self.dirMenu.addSeparator() 308 self.dirMenu.addSeparator()
309 self.dirMenu.addAction( 309 self.dirMenu.addAction(
310 self.trUtf8('Expand all directories'), self._expandAllDirs) 310 self.tr('Expand all directories'), self._expandAllDirs)
311 self.dirMenu.addAction( 311 self.dirMenu.addAction(
312 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 312 self.tr('Collapse all directories'), self._collapseAllDirs)
313 self.dirMenu.addSeparator() 313 self.dirMenu.addSeparator()
314 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure) 314 self.dirMenu.addAction(self.tr('Configure...'), self._configure)
315 315
316 self.dirMultiMenu = QMenu(self) 316 self.dirMultiMenu = QMenu(self)
317 if self.project.getProjectType() in \ 317 if self.project.getProjectType() in \
318 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 318 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
319 self.dirMultiMenu.addAction( 319 self.dirMultiMenu.addAction(
320 self.trUtf8('Compile all forms'), self.__compileAllForms) 320 self.tr('Compile all forms'), self.__compileAllForms)
321 self.dirMultiMenu.addSeparator() 321 self.dirMultiMenu.addSeparator()
322 else: 322 else:
323 if self.hooks["compileAllForms"] is not None: 323 if self.hooks["compileAllForms"] is not None:
324 self.dirMultiMenu.addAction( 324 self.dirMultiMenu.addAction(
325 self.hooksMenuEntries.get( 325 self.hooksMenuEntries.get(
326 "compileAllForms", 326 "compileAllForms",
327 self.trUtf8('Compile all forms')), 327 self.tr('Compile all forms')),
328 self.__compileAllForms) 328 self.__compileAllForms)
329 self.dirMultiMenu.addSeparator() 329 self.dirMultiMenu.addSeparator()
330 self.dirMultiMenu.addAction( 330 self.dirMultiMenu.addAction(
331 self.trUtf8('Add forms...'), self.project.addUiFiles) 331 self.tr('Add forms...'), self.project.addUiFiles)
332 self.dirMultiMenu.addAction( 332 self.dirMultiMenu.addAction(
333 self.trUtf8('Add forms directory...'), self.project.addUiDir) 333 self.tr('Add forms directory...'), self.project.addUiDir)
334 self.dirMultiMenu.addSeparator() 334 self.dirMultiMenu.addSeparator()
335 self.dirMultiMenu.addAction( 335 self.dirMultiMenu.addAction(
336 self.trUtf8('Expand all directories'), self._expandAllDirs) 336 self.tr('Expand all directories'), self._expandAllDirs)
337 self.dirMultiMenu.addAction( 337 self.dirMultiMenu.addAction(
338 self.trUtf8('Collapse all directories'), self._collapseAllDirs) 338 self.tr('Collapse all directories'), self._collapseAllDirs)
339 self.dirMultiMenu.addSeparator() 339 self.dirMultiMenu.addSeparator()
340 self.dirMultiMenu.addAction( 340 self.dirMultiMenu.addAction(
341 self.trUtf8('Configure...'), self._configure) 341 self.tr('Configure...'), self._configure)
342 342
343 self.menu.aboutToShow.connect(self.__showContextMenu) 343 self.menu.aboutToShow.connect(self.__showContextMenu)
344 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti) 344 self.multiMenu.aboutToShow.connect(self.__showContextMenuMulti)
345 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir) 345 self.dirMenu.aboutToShow.connect(self.__showContextMenuDir)
346 self.dirMultiMenu.aboutToShow.connect(self.__showContextMenuDirMulti) 346 self.dirMultiMenu.aboutToShow.connect(self.__showContextMenuDirMulti)
543 543
544 @param path full directory path for the new form file (string) 544 @param path full directory path for the new form file (string)
545 """ 545 """
546 selectedForm, ok = QInputDialog.getItem( 546 selectedForm, ok = QInputDialog.getItem(
547 None, 547 None,
548 self.trUtf8("New Form"), 548 self.tr("New Form"),
549 self.trUtf8("Select a form type:"), 549 self.tr("Select a form type:"),
550 self.templateTypes4, 550 self.templateTypes4,
551 0, False) 551 0, False)
552 if not ok or not selectedForm: 552 if not ok or not selectedForm:
553 # user pressed cancel 553 # user pressed cancel
554 return 554 return
557 templateFile = os.path.join( 557 templateFile = os.path.join(
558 getConfig('ericTemplatesDir'), self.templates4[templateIndex]) 558 getConfig('ericTemplatesDir'), self.templates4[templateIndex])
559 559
560 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 560 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
561 self, 561 self,
562 self.trUtf8("New Form"), 562 self.tr("New Form"),
563 path, 563 path,
564 self.trUtf8("Qt User-Interface Files (*.ui);;All Files (*)"), 564 self.tr("Qt User-Interface Files (*.ui);;All Files (*)"),
565 "", 565 "",
566 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) 566 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
567 567
568 if not fname: 568 if not fname:
569 # user aborted or didn't enter a filename 569 # user aborted or didn't enter a filename
576 fname += ex 576 fname += ex
577 577
578 if os.path.exists(fname): 578 if os.path.exists(fname):
579 res = E5MessageBox.yesNo( 579 res = E5MessageBox.yesNo(
580 self, 580 self,
581 self.trUtf8("New Form"), 581 self.tr("New Form"),
582 self.trUtf8("The file already exists! Overwrite it?"), 582 self.tr("The file already exists! Overwrite it?"),
583 icon=E5MessageBox.Warning) 583 icon=E5MessageBox.Warning)
584 if not res: 584 if not res:
585 # user selected to not overwrite 585 # user selected to not overwrite
586 return 586 return
587 587
588 try: 588 try:
589 shutil.copy(templateFile, fname) 589 shutil.copy(templateFile, fname)
590 except IOError as e: 590 except IOError as e:
591 E5MessageBox.critical( 591 E5MessageBox.critical(
592 self, 592 self,
593 self.trUtf8("New Form"), 593 self.tr("New Form"),
594 self.trUtf8( 594 self.tr(
595 "<p>The new form file <b>{0}</b> could not be created.<br>" 595 "<p>The new form file <b>{0}</b> could not be created.<br>"
596 "Problem: {1}</p>").format(fname, str(e))) 596 "Problem: {1}</p>").format(fname, str(e)))
597 return 597 return
598 598
599 self.project.appendFile(fname) 599 self.project.appendFile(fname)
615 615
616 from UI.DeleteFilesConfirmationDialog import \ 616 from UI.DeleteFilesConfirmationDialog import \
617 DeleteFilesConfirmationDialog 617 DeleteFilesConfirmationDialog
618 dlg = DeleteFilesConfirmationDialog( 618 dlg = DeleteFilesConfirmationDialog(
619 self.parent(), 619 self.parent(),
620 self.trUtf8("Delete forms"), 620 self.tr("Delete forms"),
621 self.trUtf8( 621 self.tr(
622 "Do you really want to delete these forms from the project?"), 622 "Do you really want to delete these forms from the project?"),
623 files) 623 files)
624 624
625 if dlg.exec_() == QDialog.Accepted: 625 if dlg.exec_() == QDialog.Accepted:
626 for fn2, fn in zip(fullNames, files): 626 for fn2, fn in zip(fullNames, files):
686 if self.compiledFile not in self.project.pdata["SOURCES"]: 686 if self.compiledFile not in self.project.pdata["SOURCES"]:
687 self.project.appendFile(ofn) 687 self.project.appendFile(ofn)
688 if not self.noDialog and not ui.notificationsEnabled(): 688 if not self.noDialog and not ui.notificationsEnabled():
689 E5MessageBox.information( 689 E5MessageBox.information(
690 self, 690 self,
691 self.trUtf8("Form Compilation"), 691 self.tr("Form Compilation"),
692 self.trUtf8("The compilation of the form file" 692 self.tr("The compilation of the form file"
693 " was successful.")) 693 " was successful."))
694 else: 694 else:
695 ui.showNotification( 695 ui.showNotification(
696 UI.PixmapCache.getPixmap("designer48.png"), 696 UI.PixmapCache.getPixmap("designer48.png"),
697 self.trUtf8("Form Compilation"), 697 self.tr("Form Compilation"),
698 self.trUtf8("The compilation of the form file" 698 self.tr("The compilation of the form file"
699 " was successful.")) 699 " was successful."))
700 self.project.projectFormCompiled.emit(self.compiledFile) 700 self.project.projectFormCompiled.emit(self.compiledFile)
701 except IOError as msg: 701 except IOError as msg:
702 if not self.noDialog: 702 if not self.noDialog:
703 E5MessageBox.information( 703 E5MessageBox.information(
704 self, 704 self,
705 self.trUtf8("Form Compilation"), 705 self.tr("Form Compilation"),
706 self.trUtf8( 706 self.tr(
707 "<p>The compilation of the form file failed.</p>" 707 "<p>The compilation of the form file failed.</p>"
708 "<p>Reason: {0}</p>").format(str(msg))) 708 "<p>Reason: {0}</p>").format(str(msg)))
709 else: 709 else:
710 ui.showNotification( 710 ui.showNotification(
711 UI.PixmapCache.getPixmap("designer48.png"), 711 UI.PixmapCache.getPixmap("designer48.png"),
712 self.trUtf8("Form Compilation"), 712 self.tr("Form Compilation"),
713 self.trUtf8( 713 self.tr(
714 "<p>The compilation of the form file failed.</p>" 714 "<p>The compilation of the form file failed.</p>"
715 "<p>Reason: {0}</p>").format(str(msg))) 715 "<p>Reason: {0}</p>").format(str(msg)))
716 else: 716 else:
717 if not self.noDialog: 717 if not self.noDialog:
718 E5MessageBox.information( 718 E5MessageBox.information(
719 self, 719 self,
720 self.trUtf8("Form Compilation"), 720 self.tr("Form Compilation"),
721 self.trUtf8("The compilation of the form file failed.")) 721 self.tr("The compilation of the form file failed."))
722 else: 722 else:
723 ui.showNotification( 723 ui.showNotification(
724 UI.PixmapCache.getPixmap("designer48.png"), 724 UI.PixmapCache.getPixmap("designer48.png"),
725 self.trUtf8("Form Compilation"), 725 self.tr("Form Compilation"),
726 self.trUtf8("The compilation of the form file failed.")) 726 self.tr("The compilation of the form file failed."))
727 self.compileProc = None 727 self.compileProc = None
728 728
729 def __compileUI(self, fn, noDialog=False, progress=None): 729 def __compileUI(self, fn, noDialog=False, progress=None):
730 """ 730 """
731 Privat method to compile a .ui file to a .py/.rb file. 731 Privat method to compile a .ui file to a .py/.rb file.
798 self.compileRunning = False 798 self.compileRunning = False
799 if progress is not None: 799 if progress is not None:
800 progress.cancel() 800 progress.cancel()
801 E5MessageBox.critical( 801 E5MessageBox.critical(
802 self, 802 self,
803 self.trUtf8('Process Generation Error'), 803 self.tr('Process Generation Error'),
804 self.trUtf8( 804 self.tr(
805 'Could not start {0}.<br>' 805 'Could not start {0}.<br>'
806 'Ensure that it is in the search path.' 806 'Ensure that it is in the search path.'
807 ).format(self.uicompiler)) 807 ).format(self.uicompiler))
808 return None 808 return None
809 809
851 if self.hooks["compileAllForms"] is not None: 851 if self.hooks["compileAllForms"] is not None:
852 self.hooks["compileAllForms"](self.project.pdata["FORMS"]) 852 self.hooks["compileAllForms"](self.project.pdata["FORMS"])
853 else: 853 else:
854 numForms = len(self.project.pdata["FORMS"]) 854 numForms = len(self.project.pdata["FORMS"])
855 progress = E5ProgressDialog( 855 progress = E5ProgressDialog(
856 self.trUtf8("Compiling forms..."), 856 self.tr("Compiling forms..."),
857 self.trUtf8("Abort"), 0, numForms, 857 self.tr("Abort"), 0, numForms,
858 self.trUtf8("%v/%m Forms"), self) 858 self.tr("%v/%m Forms"), self)
859 progress.setModal(True) 859 progress.setModal(True)
860 progress.setMinimumDuration(0) 860 progress.setMinimumDuration(0)
861 i = 0 861 i = 0
862 862
863 for fn in self.project.pdata["FORMS"]: 863 for fn in self.project.pdata["FORMS"]:
888 if self.hooks["compileSelectedForms"] is not None: 888 if self.hooks["compileSelectedForms"] is not None:
889 self.hooks["compileSelectedForms"](files) 889 self.hooks["compileSelectedForms"](files)
890 else: 890 else:
891 numForms = len(files) 891 numForms = len(files)
892 progress = E5ProgressDialog( 892 progress = E5ProgressDialog(
893 self.trUtf8("Compiling forms..."), 893 self.tr("Compiling forms..."),
894 self.trUtf8("Abort"), 0, numForms, 894 self.tr("Abort"), 0, numForms,
895 self.trUtf8("%v/%m Forms"), self) 895 self.tr("%v/%m Forms"), self)
896 progress.setModal(True) 896 progress.setModal(True)
897 progress.setMinimumDuration(0) 897 progress.setMinimumDuration(0)
898 i = 0 898 i = 0
899 899
900 for fn in files: 900 for fn in files:
925 ["Qt4", "PyQt5", "E4Plugin", "PySide"]: 925 ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
926 # ignore the request for non Qt GUI projects 926 # ignore the request for non Qt GUI projects
927 return 927 return
928 928
929 progress = E5ProgressDialog( 929 progress = E5ProgressDialog(
930 self.trUtf8("Determining changed forms..."), 930 self.tr("Determining changed forms..."),
931 None, 0, 100, self.trUtf8("%v/%m Forms")) 931 None, 0, 100, self.tr("%v/%m Forms"))
932 progress.setMinimumDuration(0) 932 progress.setMinimumDuration(0)
933 i = 0 933 i = 0
934 934
935 # get list of changed forms 935 # get list of changed forms
936 changedForms = [] 936 changedForms = []
953 progress.setValue(i) 953 progress.setValue(i)
954 QApplication.processEvents() 954 QApplication.processEvents()
955 955
956 if changedForms: 956 if changedForms:
957 progress.setLabelText( 957 progress.setLabelText(
958 self.trUtf8("Compiling changed forms...")) 958 self.tr("Compiling changed forms..."))
959 progress.setMaximum(len(changedForms)) 959 progress.setMaximum(len(changedForms))
960 i = 0 960 i = 0
961 progress.setValue(i) 961 progress.setValue(i)
962 QApplication.processEvents() 962 QApplication.processEvents()
963 for fn in changedForms: 963 for fn in changedForms:

eric ide

mercurial