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