src/eric7/Project/ProjectFormsBrowser.py

branch
eric7
changeset 11217
856628e8a303
parent 11216
a1471981ef18
child 11218
43dfc40728d2
equal deleted inserted replaced
11216:a1471981ef18 11217:856628e8a303
199 self.menusAboutToBeCreated.emit() 199 self.menusAboutToBeCreated.emit()
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", "PySide6"]: 204 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
205 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()): 205 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
206 self.menu.addAction(self.tr("Open in Editor"), self.__openFileInEditor) 206 self.menu.addAction(self.tr("Open in Editor"), self.__openFileInEditor)
207 else: 207 else:
208 self.menu.addAction(self.tr("Compile form"), self.__compileForm) 208 self.menu.addAction(self.tr("Compile form"), self.__compileForm)
209 self.menu.addAction( 209 self.menu.addAction(
265 self.menuActions.append(act) 265 self.menuActions.append(act)
266 act = self.menu.addAction(self.tr("Delete"), self.__deleteFile) 266 act = self.menu.addAction(self.tr("Delete"), self.__deleteFile)
267 self.menuActions.append(act) 267 self.menuActions.append(act)
268 self.menu.addSeparator() 268 self.menu.addSeparator()
269 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 269 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
270 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"]: 270 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
271 self.menu.addAction(self.tr("New form..."), self.__newForm) 271 self.menu.addAction(self.tr("New form..."), self.__newForm)
272 else: 272 else:
273 if self.hooks["newForm"] is not None: 273 if self.hooks["newForm"] is not None:
274 self.menu.addAction( 274 self.menu.addAction(
275 self.hooksMenuEntries.get("newForm", self.tr("New form...")), 275 self.hooksMenuEntries.get("newForm", self.tr("New form...")),
290 self.menu.addAction(self.tr("Configure..."), self._configure) 290 self.menu.addAction(self.tr("Configure..."), self._configure)
291 291
292 self.backMenu = QMenu(self) 292 self.backMenu = QMenu(self)
293 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 293 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
294 if ( 294 if (
295 projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"] 295 projectType in ("PyQt6", "E7Plugin", "PySide6")
296 or self.hooks["compileAllForms"] is not None 296 or self.hooks["compileAllForms"] is not None
297 ): 297 ):
298 self.backMenu.addAction( 298 self.backMenu.addAction(
299 self.tr("Compile all forms"), self.__compileAllForms 299 self.tr("Compile all forms"), self.__compileAllForms
300 ) 300 )
330 self.backMenu.addAction(self.tr("Configure..."), self._configure) 330 self.backMenu.addAction(self.tr("Configure..."), self._configure)
331 self.backMenu.setEnabled(False) 331 self.backMenu.setEnabled(False)
332 332
333 # create the menu for multiple selected files 333 # create the menu for multiple selected files
334 self.multiMenu = QMenu(self) 334 self.multiMenu = QMenu(self)
335 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"]: 335 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
336 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()): 336 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
337 self.multiMenu.addAction( 337 self.multiMenu.addAction(
338 self.tr("Open in Editor"), self.__openFileInEditor 338 self.tr("Open in Editor"), self.__openFileInEditor
339 ) 339 )
340 else: 340 else:
386 self.multiMenu.addSeparator() 386 self.multiMenu.addSeparator()
387 self.multiMenu.addAction(self.tr("Configure..."), self._configure) 387 self.multiMenu.addAction(self.tr("Configure..."), self._configure)
388 388
389 self.dirMenu = QMenu(self) 389 self.dirMenu = QMenu(self)
390 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 390 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
391 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"]: 391 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
392 self.dirMenu.addAction( 392 self.dirMenu.addAction(
393 self.tr("Compile all forms"), self.__compileAllForms 393 self.tr("Compile all forms"), self.__compileAllForms
394 ) 394 )
395 self.dirMenu.addSeparator() 395 self.dirMenu.addSeparator()
396 self.__pyuicDirConfigAct = self.dirMenu.addAction( 396 self.__pyuicDirConfigAct = self.dirMenu.addAction(
410 self.dirMenuActions.append(act) 410 self.dirMenuActions.append(act)
411 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory) 411 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory)
412 self.dirMenuActions.append(act) 412 self.dirMenuActions.append(act)
413 self.dirMenu.addSeparator() 413 self.dirMenu.addSeparator()
414 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 414 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
415 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"]: 415 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
416 self.dirMenu.addAction(self.tr("New form..."), self.__newForm) 416 self.dirMenu.addAction(self.tr("New form..."), self.__newForm)
417 else: 417 else:
418 if self.hooks["newForm"] is not None: 418 if self.hooks["newForm"] is not None:
419 self.dirMenu.addAction( 419 self.dirMenu.addAction(
420 self.hooksMenuEntries.get("newForm", self.tr("New form...")), 420 self.hooksMenuEntries.get("newForm", self.tr("New form...")),
437 self.dirMenu.addSeparator() 437 self.dirMenu.addSeparator()
438 self.dirMenu.addAction(self.tr("Configure..."), self._configure) 438 self.dirMenu.addAction(self.tr("Configure..."), self._configure)
439 439
440 self.dirMultiMenu = QMenu(self) 440 self.dirMultiMenu = QMenu(self)
441 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 441 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
442 if projectType in ["PyQt5", "PyQt6", "E7Plugin", "PySide6"]: 442 if projectType in ("PyQt6", "E7Plugin", "PySide6"):
443 self.dirMultiMenu.addAction( 443 self.dirMultiMenu.addAction(
444 self.tr("Compile all forms"), self.__compileAllForms 444 self.tr("Compile all forms"), self.__compileAllForms
445 ) 445 )
446 self.dirMultiMenu.addSeparator() 446 self.dirMultiMenu.addSeparator()
447 self.__pyuicDirMultiConfigAct = self.dirMultiMenu.addAction( 447 self.__pyuicDirMultiConfigAct = self.dirMultiMenu.addAction(
490 """ 490 """
491 if not self.project.isOpen(): 491 if not self.project.isOpen():
492 return 492 return
493 493
494 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): 494 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
495 enable = self.project.getProjectType() in ("PyQt5", "PyQt6", "E7Plugin") 495 enable = self.project.getProjectType() in ("PyQt6", "E7Plugin")
496 self.__pyuicConfigAct.setEnabled(enable) 496 self.__pyuicConfigAct.setEnabled(enable)
497 self.__pyuicMultiConfigAct.setEnabled(enable) 497 self.__pyuicMultiConfigAct.setEnabled(enable)
498 self.__pyuicDirConfigAct.setEnabled(enable) 498 self.__pyuicDirConfigAct.setEnabled(enable)
499 self.__pyuicDirMultiConfigAct.setEnabled(enable) 499 self.__pyuicDirMultiConfigAct.setEnabled(enable)
500 self.__pyuicBackConfigAct.setEnabled(enable) 500 self.__pyuicBackConfigAct.setEnabled(enable)
661 661
662 if self.hooks["newForm"] is not None: 662 if self.hooks["newForm"] is not None:
663 self.hooks["newForm"](path) 663 self.hooks["newForm"](path)
664 else: 664 else:
665 if self.project.getProjectType() in [ 665 if self.project.getProjectType() in [
666 "PyQt5",
667 "PyQt6", 666 "PyQt6",
668 "E7Plugin", 667 "E7Plugin",
669 "PySide6", 668 "PySide6",
670 ]: 669 ]:
671 self.__newUiForm(path) 670 self.__newUiForm(path)
781 Private method to determine the UI compiler for the project. 780 Private method to determine the UI compiler for the project.
782 """ 781 """
783 self.__resetUiCompiler() 782 self.__resetUiCompiler()
784 783
785 if self.project.getProjectLanguage() == "Python3": 784 if self.project.getProjectLanguage() == "Python3":
786 if self.project.getProjectType() in ["PyQt5"]: 785 if self.project.getProjectType() in ["PyQt6", "E7Plugin"]:
787 self.__uicompiler = QtUtilities.generatePyQtToolPath(
788 "pyuic5", ["py3uic5"]
789 )
790 elif self.project.getProjectType() in ["PyQt6", "E7Plugin"]:
791 self.__uicompiler = QtUtilities.generatePyQtToolPath("pyuic6") 786 self.__uicompiler = QtUtilities.generatePyQtToolPath("pyuic6")
792 elif self.project.getProjectType() == "PySide6": 787 elif self.project.getProjectType() == "PySide6":
793 self.__uicompiler = QtUtilities.generatePySideToolPath( 788 self.__uicompiler = QtUtilities.generatePySideToolPath(
794 "pyside6-uic", variant=6 789 "pyside6-uic", variant=6
795 ) 790 )
929 args.append("-x") 924 args.append("-x")
930 indentWidth = Preferences.getQt("Pyuic6Indent") 925 indentWidth = Preferences.getQt("Pyuic6Indent")
931 if indentWidth != self.Pyuic6IndentDefault: 926 if indentWidth != self.Pyuic6IndentDefault:
932 args.append("--indent={0}".format(indentWidth)) 927 args.append("--indent={0}".format(indentWidth))
933 else: 928 else:
934 # PyQt5 929 EricMessageBox.critical(
935 if Preferences.getQt("PyuicExecute"): 930 self,
936 args.append("-x") 931 self.tr("Error Compiling Form"),
937 indentWidth = Preferences.getQt("PyuicIndent") 932 self.tr(
938 if indentWidth != self.Pyuic5IndentDefault: 933 "The project type <b>{0}</b> is not supported."
939 args.append("--indent={0}".format(indentWidth)) 934 ).format(self.project.getProjectType()),
940 if ( 935 )
941 "uic5" in uicompiler 936 return None
942 and self.project.getProjectData(dataKey="UICPARAMS")["Package"]
943 ):
944 args.append(
945 "--import-from={0}".format(
946 self.project.getProjectData(dataKey="UICPARAMS")["Package"]
947 )
948 )
949 elif Preferences.getQt("PyuicFromImports"):
950 args.append("--from-imports")
951 if self.project.getProjectData(dataKey="UICPARAMS")["RcSuffix"]:
952 args.append(
953 "--resource-suffix={0}".format(
954 self.project.getProjectData(dataKey="UICPARAMS")["RcSuffix"]
955 )
956 )
957 937
958 args.append(fn) 938 args.append(fn)
959 self.compileProc.finished.connect(self.__compileUIDone) 939 self.compileProc.finished.connect(self.__compileUIDone)
960 self.compileProc.readyReadStandardOutput.connect(self.__readStdout) 940 self.compileProc.readyReadStandardOutput.connect(self.__readStdout)
961 self.compileProc.readyReadStandardError.connect(self.__readStderr) 941 self.compileProc.readyReadStandardError.connect(self.__readStderr)
1105 self.hooks["compileChangedForms"]( 1085 self.hooks["compileChangedForms"](
1106 self.project.getProjectData(dataKey="FORMS") 1086 self.project.getProjectData(dataKey="FORMS")
1107 ) 1087 )
1108 else: 1088 else:
1109 if self.project.getProjectType() not in [ 1089 if self.project.getProjectType() not in [
1110 "PyQt5",
1111 "PyQt6", 1090 "PyQt6",
1112 "E7Plugin", 1091 "E7Plugin",
1113 "PySide6", 1092 "PySide6",
1114 ]: 1093 ]:
1115 # ignore the request for non Qt GUI projects 1094 # ignore the request for non Qt GUI projects
1184 """ 1163 """
1185 from .UicCompilerOptionsDialog import UicCompilerOptionsDialog 1164 from .UicCompilerOptionsDialog import UicCompilerOptionsDialog
1186 1165
1187 params = self.project.getProjectData(dataKey="UICPARAMS") 1166 params = self.project.getProjectData(dataKey="UICPARAMS")
1188 1167
1189 if self.project.getProjectType() in ["PyQt5", "PyQt6", "E7Plugin"]: 1168 if self.project.getProjectType() in ("PyQt6", "E7Plugin"):
1190 dlg = UicCompilerOptionsDialog(params, self.getUiCompiler(), parent=self) 1169 dlg = UicCompilerOptionsDialog(params, self.getUiCompiler(), parent=self)
1191 if dlg.exec() == QDialog.DialogCode.Accepted: 1170 if dlg.exec() == QDialog.DialogCode.Accepted:
1192 package, suffix, root = dlg.getData() 1171 package, suffix, root = dlg.getData()
1193 if package != params["Package"]: 1172 if package != params["Package"]:
1194 params["Package"] = package 1173 params["Package"] = package

eric ide

mercurial