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(