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) |
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) |
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 |