src/eric7/Project/ProjectFormsBrowser.py

branch
eric7
changeset 11216
a1471981ef18
parent 11148
15e30f0c76a8
child 11217
856628e8a303
equal deleted inserted replaced
11215:d07c71a34adf 11216:a1471981ef18
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", "PySide2", "PySide6"]: 204 if projectType in ["PyQt5", "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", "PySide2", "PySide6"]: 270 if projectType in ["PyQt5", "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", "PySide2", "PySide6"] 295 projectType in ["PyQt5", "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", "PySide2", "PySide6"]: 335 if projectType in ["PyQt5", "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", "PySide2", "PySide6"]: 391 if projectType in ["PyQt5", "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", "PySide2", "PySide6"]: 415 if projectType in ["PyQt5", "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", "PySide2", "PySide6"]: 442 if projectType in ["PyQt5", "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(
664 else: 664 else:
665 if self.project.getProjectType() in [ 665 if self.project.getProjectType() in [
666 "PyQt5", 666 "PyQt5",
667 "PyQt6", 667 "PyQt6",
668 "E7Plugin", 668 "E7Plugin",
669 "PySide2",
670 "PySide6", 669 "PySide6",
671 ]: 670 ]:
672 self.__newUiForm(path) 671 self.__newUiForm(path)
673 672
674 def __newUiForm(self, path): 673 def __newUiForm(self, path):
788 self.__uicompiler = QtUtilities.generatePyQtToolPath( 787 self.__uicompiler = QtUtilities.generatePyQtToolPath(
789 "pyuic5", ["py3uic5"] 788 "pyuic5", ["py3uic5"]
790 ) 789 )
791 elif self.project.getProjectType() in ["PyQt6", "E7Plugin"]: 790 elif self.project.getProjectType() in ["PyQt6", "E7Plugin"]:
792 self.__uicompiler = QtUtilities.generatePyQtToolPath("pyuic6") 791 self.__uicompiler = QtUtilities.generatePyQtToolPath("pyuic6")
793 elif self.project.getProjectType() == "PySide2":
794 self.__uicompiler = QtUtilities.generatePySideToolPath(
795 "pyside2-uic", variant=2
796 )
797 elif self.project.getProjectType() == "PySide6": 792 elif self.project.getProjectType() == "PySide6":
798 self.__uicompiler = QtUtilities.generatePySideToolPath( 793 self.__uicompiler = QtUtilities.generatePySideToolPath(
799 "pyside6-uic", variant=6 794 "pyside6-uic", variant=6
800 ) 795 )
801 796
812 return self.__uicompiler 807 return self.__uicompiler
813 808
814 def __readStdout(self): 809 def __readStdout(self):
815 """ 810 """
816 Private slot to handle the readyReadStandardOutput signal of the 811 Private slot to handle the readyReadStandardOutput signal of the
817 pyuic5/pyuic6/pyside2-uic/pyside6-uic process. 812 pyuic5/pyuic6/pyside6-uic process.
818 """ 813 """
819 if self.compileProc is None: 814 if self.compileProc is None:
820 return 815 return
821 self.compileProc.setReadChannel(QProcess.ProcessChannel.StandardOutput) 816 self.compileProc.setReadChannel(QProcess.ProcessChannel.StandardOutput)
822 817
826 ) 821 )
827 822
828 def __readStderr(self): 823 def __readStderr(self):
829 """ 824 """
830 Private slot to handle the readyReadStandardError signal of the 825 Private slot to handle the readyReadStandardError signal of the
831 pyuic5/pyuic6/pyside2-uic/pyside6-uic process. 826 pyuic5/pyuic6/pyside6-uic process.
832 """ 827 """
833 if self.compileProc is None: 828 if self.compileProc is None:
834 return 829 return
835 830
836 ioEncoding = Preferences.getSystem("IOEncoding") 831 ioEncoding = Preferences.getSystem("IOEncoding")
922 917
923 if self.project.getProjectLanguage() == "Python3": 918 if self.project.getProjectLanguage() == "Python3":
924 dirname, filename = os.path.split(ofn) 919 dirname, filename = os.path.split(ofn)
925 self.compiledFile = os.path.join(dirname, "Ui_" + filename + ".py") 920 self.compiledFile = os.path.join(dirname, "Ui_" + filename + ".py")
926 921
927 if self.project.getProjectType() == "PySide2": 922 if self.project.getProjectType() == "PySide6":
928 # PySide2
929 if Preferences.getQt("PySide2FromImports"):
930 args.append("--from-imports")
931 elif self.project.getProjectType() == "PySide6":
932 # PySide6 923 # PySide6
933 if Preferences.getQt("PySide6FromImports"): 924 if Preferences.getQt("PySide6FromImports"):
934 args.append("--from-imports") 925 args.append("--from-imports")
935 elif self.project.getProjectType() in ("PyQt6", "E7Plugin"): 926 elif self.project.getProjectType() in ("PyQt6", "E7Plugin"):
936 # PyQt6 and E7Plugin 927 # PyQt6 and E7Plugin
1117 else: 1108 else:
1118 if self.project.getProjectType() not in [ 1109 if self.project.getProjectType() not in [
1119 "PyQt5", 1110 "PyQt5",
1120 "PyQt6", 1111 "PyQt6",
1121 "E7Plugin", 1112 "E7Plugin",
1122 "PySide2",
1123 "PySide6", 1113 "PySide6",
1124 ]: 1114 ]:
1125 # ignore the request for non Qt GUI projects 1115 # ignore the request for non Qt GUI projects
1126 return 1116 return
1127 1117

eric ide

mercurial