200 |
200 |
201 projectType = self.project.getProjectType() |
201 projectType = self.project.getProjectType() |
202 |
202 |
203 self.menu = QMenu(self) |
203 self.menu = QMenu(self) |
204 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
204 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
205 self.menu.addAction(self.tr("Compile form"), self.__compileForm) |
205 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()): |
206 self.menu.addAction(self.tr("Compile all forms"), self.__compileAllForms) |
206 self.menu.addAction(self.tr("Open in Editor"), self.__openFileInEditor) |
207 self.menu.addAction( |
207 else: |
208 self.tr("Generate Dialog Code..."), self.__generateDialogCode |
208 self.menu.addAction(self.tr("Compile form"), self.__compileForm) |
209 ) |
209 self.menu.addAction( |
210 self.menu.addSeparator() |
210 self.tr("Compile all forms"), self.__compileAllForms |
211 self.__pyuicConfigAct = self.menu.addAction( |
211 ) |
212 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
212 self.menu.addAction( |
213 ) |
213 self.tr("Generate Dialog Code..."), self.__generateDialogCode |
214 self.menu.addSeparator() |
214 ) |
215 self.menu.addAction( |
215 self.menu.addSeparator() |
216 self.tr("Open in Qt-Designer"), self.__openFile |
216 self.__pyuicConfigAct = self.menu.addAction( |
217 ).setEnabled(QtUtilities.hasQtDesigner()) |
217 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
218 self.menu.addAction(self.tr("Open in Editor"), self.__openFileInEditor) |
218 ) |
219 self.menu.addSeparator() |
219 self.menu.addSeparator() |
220 self.menu.addAction(self.tr("Preview form"), self.__UIPreview) |
220 self.menu.addAction( |
221 self.menu.addAction(self.tr("Preview translations"), self.__TRPreview) |
221 self.tr("Open in Qt-Designer"), self.__openFile |
|
222 ).setEnabled(QtUtilities.hasQtDesigner()) |
|
223 self.menu.addAction(self.tr("Open in Editor"), self.__openFileInEditor) |
|
224 self.menu.addSeparator() |
|
225 self.menu.addAction(self.tr("Preview form"), self.__UIPreview) |
|
226 self.menu.addAction(self.tr("Preview translations"), self.__TRPreview) |
222 else: |
227 else: |
223 if self.hooks["compileForm"] is not None: |
228 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
224 self.menu.addAction( |
229 if self.hooks["compileForm"] is not None: |
225 self.hooksMenuEntries.get("compileForm", self.tr("Compile form")), |
230 self.menu.addAction( |
226 self.__compileForm, |
231 self.hooksMenuEntries.get( |
227 ) |
232 "compileForm", self.tr("Compile form") |
228 if self.hooks["compileAllForms"] is not None: |
233 ), |
229 self.menu.addAction( |
234 self.__compileForm, |
230 self.hooksMenuEntries.get( |
235 ) |
231 "compileAllForms", self.tr("Compile all forms") |
236 if self.hooks["compileAllForms"] is not None: |
232 ), |
237 self.menu.addAction( |
233 self.__compileAllForms, |
238 self.hooksMenuEntries.get( |
234 ) |
239 "compileAllForms", self.tr("Compile all forms") |
235 if self.hooks["generateDialogCode"] is not None: |
240 ), |
236 self.menu.addAction( |
241 self.__compileAllForms, |
237 self.hooksMenuEntries.get( |
242 ) |
238 "generateDialogCode", self.tr("Generate Dialog Code...") |
243 if self.hooks["generateDialogCode"] is not None: |
239 ), |
244 self.menu.addAction( |
240 self.__generateDialogCode, |
245 self.hooksMenuEntries.get( |
241 ) |
246 "generateDialogCode", self.tr("Generate Dialog Code...") |
242 if ( |
247 ), |
243 self.hooks["compileForm"] is not None |
248 self.__generateDialogCode, |
244 or self.hooks["compileAllForms"] is not None |
249 ) |
245 or self.hooks["generateDialogCode"] is not None |
250 if ( |
246 ): |
251 self.hooks["compileForm"] is not None |
247 self.menu.addSeparator() |
252 or self.hooks["compileAllForms"] is not None |
|
253 or self.hooks["generateDialogCode"] is not None |
|
254 ): |
|
255 self.menu.addSeparator() |
248 if self.hooks["open"] is not None: |
256 if self.hooks["open"] is not None: |
249 self.menu.addAction( |
257 self.menu.addAction( |
250 self.hooksMenuEntries.get("open", self.tr("Open")), self.__openFile |
258 self.hooksMenuEntries.get("open", self.tr("Open")), self.__openFile |
251 ) |
259 ) |
252 self.menu.addAction(self.tr("Open"), self.__openFileInEditor) |
260 self.menu.addAction(self.tr("Open"), self.__openFileInEditor) |
256 act = self.menu.addAction(self.tr("Remove from project"), self._removeFile) |
264 act = self.menu.addAction(self.tr("Remove from project"), self._removeFile) |
257 self.menuActions.append(act) |
265 self.menuActions.append(act) |
258 act = self.menu.addAction(self.tr("Delete"), self.__deleteFile) |
266 act = self.menu.addAction(self.tr("Delete"), self.__deleteFile) |
259 self.menuActions.append(act) |
267 self.menuActions.append(act) |
260 self.menu.addSeparator() |
268 self.menu.addSeparator() |
261 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
269 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
262 self.menu.addAction(self.tr("New form..."), self.__newForm) |
270 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
263 else: |
271 self.menu.addAction(self.tr("New form..."), self.__newForm) |
264 if self.hooks["newForm"] is not None: |
272 else: |
265 self.menu.addAction( |
273 if self.hooks["newForm"] is not None: |
266 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
274 self.menu.addAction( |
267 self.__newForm, |
275 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
268 ) |
276 self.__newForm, |
|
277 ) |
269 self.menu.addAction(self.tr("Add forms..."), self.__addFormFiles) |
278 self.menu.addAction(self.tr("Add forms..."), self.__addFormFiles) |
270 self.menu.addAction(self.tr("Add forms directory..."), self.__addFormsDirectory) |
279 self.menu.addAction(self.tr("Add forms directory..."), self.__addFormsDirectory) |
271 self.menu.addSeparator() |
280 self.menu.addSeparator() |
272 self.menu.addAction(self.tr("Show in File Manager"), self._showInFileManager) |
281 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
|
282 self.menu.addAction( |
|
283 self.tr("Show in File Manager"), self._showInFileManager |
|
284 ) |
273 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) |
285 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) |
274 self.menu.addSeparator() |
286 self.menu.addSeparator() |
275 self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
287 self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
276 self.menu.addAction(self.tr("Collapse all directories"), self._collapseAllDirs) |
288 self.menu.addAction(self.tr("Collapse all directories"), self._collapseAllDirs) |
277 self.menu.addSeparator() |
289 self.menu.addSeparator() |
278 self.menu.addAction(self.tr("Configure..."), self._configure) |
290 self.menu.addAction(self.tr("Configure..."), self._configure) |
279 |
291 |
280 self.backMenu = QMenu(self) |
292 self.backMenu = QMenu(self) |
281 if ( |
293 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
282 projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"] |
294 if ( |
283 or self.hooks["compileAllForms"] is not None |
295 projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"] |
284 ): |
296 or self.hooks["compileAllForms"] is not None |
|
297 ): |
|
298 self.backMenu.addAction( |
|
299 self.tr("Compile all forms"), self.__compileAllForms |
|
300 ) |
|
301 self.backMenu.addSeparator() |
|
302 self.__pyuicBackConfigAct = self.backMenu.addAction( |
|
303 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
|
304 ) |
|
305 self.backMenu.addSeparator() |
|
306 self.backMenu.addAction(self.tr("New form..."), self.__newForm) |
|
307 else: |
|
308 if self.hooks["newForm"] is not None: |
|
309 self.backMenu.addAction( |
|
310 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
|
311 self.__newForm, |
|
312 ) |
285 self.backMenu.addAction( |
313 self.backMenu.addAction( |
286 self.tr("Compile all forms"), self.__compileAllForms |
314 self.tr("Add forms..."), lambda: self.project.addFiles("FORMS") |
|
315 ) |
|
316 self.backMenu.addAction( |
|
317 self.tr("Add forms directory..."), |
|
318 lambda: self.project.addDirectory("FORMS"), |
287 ) |
319 ) |
288 self.backMenu.addSeparator() |
320 self.backMenu.addSeparator() |
289 self.__pyuicBackConfigAct = self.backMenu.addAction( |
321 self.backMenu.addAction( |
290 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
322 self.tr("Show in File Manager"), self._showProjectInFileManager |
291 ) |
323 ) |
292 self.backMenu.addSeparator() |
324 self.backMenu.addSeparator() |
293 self.backMenu.addAction(self.tr("New form..."), self.__newForm) |
|
294 else: |
|
295 if self.hooks["newForm"] is not None: |
|
296 self.backMenu.addAction( |
|
297 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
|
298 self.__newForm, |
|
299 ) |
|
300 self.backMenu.addAction( |
|
301 self.tr("Add forms..."), lambda: self.project.addFiles("FORMS") |
|
302 ) |
|
303 self.backMenu.addAction( |
|
304 self.tr("Add forms directory..."), |
|
305 lambda: self.project.addDirectory("FORMS"), |
|
306 ) |
|
307 self.backMenu.addSeparator() |
|
308 self.backMenu.addAction( |
|
309 self.tr("Show in File Manager"), self._showProjectInFileManager |
|
310 ) |
|
311 self.backMenu.addSeparator() |
|
312 self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
325 self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
313 self.backMenu.addAction( |
326 self.backMenu.addAction( |
314 self.tr("Collapse all directories"), self._collapseAllDirs |
327 self.tr("Collapse all directories"), self._collapseAllDirs |
315 ) |
328 ) |
316 self.backMenu.addSeparator() |
329 self.backMenu.addSeparator() |
318 self.backMenu.setEnabled(False) |
331 self.backMenu.setEnabled(False) |
319 |
332 |
320 # create the menu for multiple selected files |
333 # create the menu for multiple selected files |
321 self.multiMenu = QMenu(self) |
334 self.multiMenu = QMenu(self) |
322 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
335 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
323 self.multiMenu.addAction( |
336 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()): |
324 self.tr("Compile forms"), self.__compileSelectedForms |
337 self.multiMenu.addAction( |
325 ) |
338 self.tr("Open in Editor"), self.__openFileInEditor |
326 self.multiMenu.addSeparator() |
339 ) |
327 self.__pyuicMultiConfigAct = self.multiMenu.addAction( |
340 else: |
328 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
341 self.multiMenu.addAction( |
329 ) |
342 self.tr("Compile forms"), self.__compileSelectedForms |
330 self.multiMenu.addSeparator() |
343 ) |
331 self.multiMenu.addAction( |
344 self.multiMenu.addSeparator() |
332 self.tr("Open in Qt-Designer"), self.__openFile |
345 self.__pyuicMultiConfigAct = self.multiMenu.addAction( |
333 ).setEnabled(QtUtilities.hasQtDesigner()) |
346 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
334 self.multiMenu.addAction(self.tr("Open in Editor"), self.__openFileInEditor) |
347 ) |
335 self.multiMenu.addSeparator() |
348 self.multiMenu.addSeparator() |
336 self.multiMenu.addAction(self.tr("Preview translations"), self.__TRPreview) |
349 self.multiMenu.addAction( |
|
350 self.tr("Open in Qt-Designer"), self.__openFile |
|
351 ).setEnabled(QtUtilities.hasQtDesigner()) |
|
352 self.multiMenu.addAction( |
|
353 self.tr("Open in Editor"), self.__openFileInEditor |
|
354 ) |
|
355 self.multiMenu.addSeparator() |
|
356 self.multiMenu.addAction( |
|
357 self.tr("Preview translations"), self.__TRPreview |
|
358 ) |
337 else: |
359 else: |
338 if self.hooks["compileSelectedForms"] is not None: |
360 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
339 act = self.multiMenu.addAction( |
361 if self.hooks["compileSelectedForms"] is not None: |
340 self.hooksMenuEntries.get( |
362 act = self.multiMenu.addAction( |
341 "compileSelectedForms", self.tr("Compile forms") |
363 self.hooksMenuEntries.get( |
342 ), |
364 "compileSelectedForms", self.tr("Compile forms") |
343 self.__compileSelectedForms, |
365 ), |
344 ) |
366 self.__compileSelectedForms, |
345 self.multiMenu.addSeparator() |
367 ) |
|
368 self.multiMenu.addSeparator() |
346 if self.hooks["open"] is not None: |
369 if self.hooks["open"] is not None: |
347 self.multiMenu.addAction( |
370 self.multiMenu.addAction( |
348 self.hooksMenuEntries.get("open", self.tr("Open")), self.__openFile |
371 self.hooksMenuEntries.get("open", self.tr("Open")), self.__openFile |
349 ) |
372 ) |
350 self.multiMenu.addAction(self.tr("Open"), self.__openFileInEditor) |
373 self.multiMenu.addAction(self.tr("Open"), self.__openFileInEditor) |
360 ) |
383 ) |
361 self.multiMenu.addSeparator() |
384 self.multiMenu.addSeparator() |
362 self.multiMenu.addAction(self.tr("Configure..."), self._configure) |
385 self.multiMenu.addAction(self.tr("Configure..."), self._configure) |
363 |
386 |
364 self.dirMenu = QMenu(self) |
387 self.dirMenu = QMenu(self) |
365 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
388 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
366 self.dirMenu.addAction(self.tr("Compile all forms"), self.__compileAllForms) |
389 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
367 self.dirMenu.addSeparator() |
|
368 self.__pyuicDirConfigAct = self.dirMenu.addAction( |
|
369 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
|
370 ) |
|
371 self.dirMenu.addSeparator() |
|
372 else: |
|
373 if self.hooks["compileAllForms"] is not None: |
|
374 self.dirMenu.addAction( |
390 self.dirMenu.addAction( |
375 self.hooksMenuEntries.get( |
391 self.tr("Compile all forms"), self.__compileAllForms |
376 "compileAllForms", self.tr("Compile all forms") |
|
377 ), |
|
378 self.__compileAllForms, |
|
379 ) |
392 ) |
380 self.dirMenu.addSeparator() |
393 self.dirMenu.addSeparator() |
|
394 self.__pyuicDirConfigAct = self.dirMenu.addAction( |
|
395 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
|
396 ) |
|
397 self.dirMenu.addSeparator() |
|
398 else: |
|
399 if self.hooks["compileAllForms"] is not None: |
|
400 self.dirMenu.addAction( |
|
401 self.hooksMenuEntries.get( |
|
402 "compileAllForms", self.tr("Compile all forms") |
|
403 ), |
|
404 self.__compileAllForms, |
|
405 ) |
|
406 self.dirMenu.addSeparator() |
381 act = self.dirMenu.addAction(self.tr("Remove from project"), self._removeDir) |
407 act = self.dirMenu.addAction(self.tr("Remove from project"), self._removeDir) |
382 self.dirMenuActions.append(act) |
408 self.dirMenuActions.append(act) |
383 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory) |
409 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory) |
384 self.dirMenuActions.append(act) |
410 self.dirMenuActions.append(act) |
385 self.dirMenu.addSeparator() |
411 self.dirMenu.addSeparator() |
386 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
412 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
387 self.dirMenu.addAction(self.tr("New form..."), self.__newForm) |
413 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
388 else: |
414 self.dirMenu.addAction(self.tr("New form..."), self.__newForm) |
389 if self.hooks["newForm"] is not None: |
415 else: |
390 self.dirMenu.addAction( |
416 if self.hooks["newForm"] is not None: |
391 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
417 self.dirMenu.addAction( |
392 self.__newForm, |
418 self.hooksMenuEntries.get("newForm", self.tr("New form...")), |
393 ) |
419 self.__newForm, |
394 self.dirMenu.addAction(self.tr("Add forms..."), self.__addFormFiles) |
420 ) |
395 self.dirMenu.addAction( |
421 self.dirMenu.addAction(self.tr("Add forms..."), self.__addFormFiles) |
396 self.tr("Add forms directory..."), self.__addFormsDirectory |
422 self.dirMenu.addAction( |
397 ) |
423 self.tr("Add forms directory..."), self.__addFormsDirectory |
398 self.dirMenu.addSeparator() |
424 ) |
399 self.dirMenu.addAction(self.tr("Show in File Manager"), self._showInFileManager) |
425 self.dirMenu.addSeparator() |
|
426 self.dirMenu.addAction( |
|
427 self.tr("Show in File Manager"), self._showInFileManager |
|
428 ) |
400 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) |
429 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) |
401 self.dirMenu.addSeparator() |
430 self.dirMenu.addSeparator() |
402 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
431 self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) |
403 self.dirMenu.addAction( |
432 self.dirMenu.addAction( |
404 self.tr("Collapse all directories"), self._collapseAllDirs |
433 self.tr("Collapse all directories"), self._collapseAllDirs |
405 ) |
434 ) |
406 self.dirMenu.addSeparator() |
435 self.dirMenu.addSeparator() |
407 self.dirMenu.addAction(self.tr("Configure..."), self._configure) |
436 self.dirMenu.addAction(self.tr("Configure..."), self._configure) |
408 |
437 |
409 self.dirMultiMenu = QMenu(self) |
438 self.dirMultiMenu = QMenu(self) |
410 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
439 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): |
|
440 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide2", "PySide6"]: |
|
441 self.dirMultiMenu.addAction( |
|
442 self.tr("Compile all forms"), self.__compileAllForms |
|
443 ) |
|
444 self.dirMultiMenu.addSeparator() |
|
445 self.__pyuicDirMultiConfigAct = self.dirMultiMenu.addAction( |
|
446 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
|
447 ) |
|
448 self.dirMultiMenu.addSeparator() |
|
449 else: |
|
450 if self.hooks["compileAllForms"] is not None: |
|
451 self.dirMultiMenu.addAction( |
|
452 self.hooksMenuEntries.get( |
|
453 "compileAllForms", self.tr("Compile all forms") |
|
454 ), |
|
455 self.__compileAllForms, |
|
456 ) |
|
457 self.dirMultiMenu.addSeparator() |
411 self.dirMultiMenu.addAction( |
458 self.dirMultiMenu.addAction( |
412 self.tr("Compile all forms"), self.__compileAllForms |
459 self.tr("Add forms..."), lambda: self.project.addFiles("FORMS") |
|
460 ) |
|
461 self.dirMultiMenu.addAction( |
|
462 self.tr("Add forms directory..."), |
|
463 lambda: self.project.addDirectory("FORMS"), |
413 ) |
464 ) |
414 self.dirMultiMenu.addSeparator() |
465 self.dirMultiMenu.addSeparator() |
415 self.__pyuicDirMultiConfigAct = self.dirMultiMenu.addAction( |
|
416 self.tr("Configure uic Compiler"), self.__configureUicCompiler |
|
417 ) |
|
418 self.dirMultiMenu.addSeparator() |
|
419 else: |
|
420 if self.hooks["compileAllForms"] is not None: |
|
421 self.dirMultiMenu.addAction( |
|
422 self.hooksMenuEntries.get( |
|
423 "compileAllForms", self.tr("Compile all forms") |
|
424 ), |
|
425 self.__compileAllForms, |
|
426 ) |
|
427 self.dirMultiMenu.addSeparator() |
|
428 self.dirMultiMenu.addAction( |
|
429 self.tr("Add forms..."), lambda: self.project.addFiles("FORMS") |
|
430 ) |
|
431 self.dirMultiMenu.addAction( |
|
432 self.tr("Add forms directory..."), |
|
433 lambda: self.project.addDirectory("FORMS"), |
|
434 ) |
|
435 self.dirMultiMenu.addSeparator() |
|
436 self.dirMultiMenu.addAction( |
466 self.dirMultiMenu.addAction( |
437 self.tr("Expand all directories"), self._expandAllDirs |
467 self.tr("Expand all directories"), self._expandAllDirs |
438 ) |
468 ) |
439 self.dirMultiMenu.addAction( |
469 self.dirMultiMenu.addAction( |
440 self.tr("Collapse all directories"), self._collapseAllDirs |
470 self.tr("Collapse all directories"), self._collapseAllDirs |