eric6/Preferences/ProgramsDialog.py

branch
maintenance
changeset 8043
0acf98cd089a
parent 7924
8a96736d465e
parent 7923
91e843545d9a
child 8176
31965986ecd1
diff -r 866adc8c315b -r 0acf98cd089a eric6/Preferences/ProgramsDialog.py
--- a/eric6/Preferences/ProgramsDialog.py	Sun Jan 17 13:53:08 2021 +0100
+++ b/eric6/Preferences/ProgramsDialog.py	Mon Feb 01 10:38:16 2021 +0100
@@ -86,7 +86,7 @@
         header.setSortIndicatorShown(False)
         
         with E5OverrideCursor():
-            # 1. do the Qt5 programs
+            # 1. do the Qt programs
             # 1a. Translation Converter
             exe = (
                 Utilities.isWindowsPlatform() and
@@ -156,23 +156,51 @@
                 Utilities.generatePyQtToolPath("pyrcc5"),
                 '-version', '', -1, versionRe='Resource Compiler|pyrcc5')
             
+            # 2.2 do the PyQt6 programs
+            # 2.2a. Translation Extractor PyQt6
+            self.__createProgramEntry(
+                self.tr("Translation Extractor (Python, PyQt6)"),
+                Utilities.generatePyQtToolPath("pylupdate6"),
+                '--version', versionPosition=0)
+            # 2.2b. Forms Compiler PyQt6
+            self.__createProgramEntry(
+                self.tr("Forms Compiler (Python, PyQt6)"),
+                Utilities.generatePyQtToolPath("pyuic6"),
+                '--version', versionPosition=0)
+            
             # 3. do the PySide programs
             # 3.1 do the PySide2 programs
             # 3.1a. Translation Extractor PySide2
             self.__createProgramEntry(
                 self.tr("Translation Extractor (Python, PySide2)"),
-                Utilities.generatePySideToolPath("pyside2-lupdate"),
+                Utilities.generatePySideToolPath("pyside2-lupdate", variant=2),
                 '-version', '', -1, versionRe='lupdate')
             # 3.1b. Forms Compiler PySide2
             self.__createProgramEntry(
                 self.tr("Forms Compiler (Python, PySide2)"),
-                Utilities.generatePySideToolPath("pyside2-uic"),
+                Utilities.generatePySideToolPath("pyside2-uic", variant=2),
                 '--version', '', -1, versionRe='uic')
             # 3.1c Resource Compiler PySide2
             self.__createProgramEntry(
                 self.tr("Resource Compiler (Python, PySide2)"),
-                Utilities.generatePySideToolPath("pyside2-rcc"),
+                Utilities.generatePySideToolPath("pyside2-rcc", variant=2),
                 '-version', '', -1, versionRe='rcc')
+            # 3.2 do the PySide5 programs
+            # 3.2a. Translation Extractor PySide6
+            self.__createProgramEntry(
+                self.tr("Translation Extractor (Python, PySide6)"),
+                Utilities.generatePySideToolPath("pyside6-lupdate", variant=6),
+                '-version', '', -1, versionRe='lupdate')
+            # 3.2b. Forms Compiler PySide6
+            self.__createProgramEntry(
+                self.tr("Forms Compiler (Python, PySide6)"),
+                Utilities.generatePySideToolPath("pyside6-uic", variant=6),
+                '--version', '', -1, versionRe='uic')
+            # 3.2c Resource Compiler PySide6
+            self.__createProgramEntry(
+                self.tr("Resource Compiler (Python, PySide6)"),
+                Utilities.generatePySideToolPath("pyside6-rcc", variant=6),
+                '--version', '', -1, versionRe='rcc')
             
             # 4. do the Conda program(s)
             exe = Preferences.getConda("CondaExecutable")
@@ -303,7 +331,7 @@
 
     def __createProgramEntry(self, description, exe,
                              versionCommand="", versionStartsWith="",
-                             versionPosition=0, version="",
+                             versionPosition=None, version="",
                              versionCleanup=None, versionRe=None,
                              exeModule=None):
         """
@@ -317,12 +345,12 @@
             (string)
         @param versionPosition index of part containing the version info
             (integer)
-        @keyparam version version string to show (string)
-        @keyparam versionCleanup tuple of two integers giving string positions
+        @param version version string to show (string)
+        @param versionCleanup tuple of two integers giving string positions
             start and stop for the version string (tuple of integers)
-        @keyparam versionRe regexp to determine the line identifying version
+        @param versionRe regexp to determine the line identifying version
             info (string). Takes precedence over versionStartsWith.
-        @keyparam exeModule list of command line parameters to execute a module
+        @param exeModule list of command line parameters to execute a module
             with the program given in exe (e.g. to execute a Python module)
             (list of str)
         @return version string of detected or given version (string)
@@ -347,12 +375,7 @@
                 exe = Utilities.getExecutablePath(exe)
             if exe:
                 available = True
-                if (
-                    versionCommand and
-                    (versionStartsWith != "" or
-                     (versionRe is not None and versionRe != "")) and
-                    versionPosition
-                ):
+                if versionCommand and versionPosition is not None:
                     proc = QProcess()
                     proc.setProcessChannelMode(QProcess.MergedChannels)
                     if exeModule:
@@ -374,6 +397,20 @@
                         ):
                             version = self.tr("(module not found)")
                             available = False
+                        elif not versionStartsWith and not versionRe:
+                            # assume output is just one line
+                            try:
+                                version = (
+                                    output.strip().split()[versionPosition]
+                                )
+                                if versionCleanup:
+                                    version = version[
+                                        versionCleanup[0]:
+                                        versionCleanup[1]
+                                    ]
+                            except IndexError:
+                                version = self.tr("(unknown)")
+                                available = False
                         else:
                             if versionRe is None:
                                 versionRe = "^{0}".format(

eric ide

mercurial