Mon, 09 Mar 2020 19:51:02 +0100
PySide2 support: added a configuration option to enter the path containing the PySide2 tools (see Qt configuration page).
--- a/eric6/Preferences/ConfigurationPages/QtPage.py Mon Mar 09 19:49:48 2020 +0100 +++ b/eric6/Preferences/ConfigurationPages/QtPage.py Mon Mar 09 19:51:02 2020 +0100 @@ -34,6 +34,8 @@ self.qtToolsDirPicker.setMode(E5PathPickerModes.DirectoryShowFilesMode) self.pyqtToolsDirPicker.setMode( E5PathPickerModes.DirectoryShowFilesMode) + self.pyside2ToolsDirPicker.setMode( + E5PathPickerModes.DirectoryShowFilesMode) # set initial values self.qtTransPicker.setText( @@ -43,6 +45,8 @@ self.qtPostfixEdit.setText(Preferences.getQt("QtToolsPostfix")) self.__updateQtSample() self.pyqtToolsDirPicker.setText(Preferences.getQt("PyQtToolsDir")) + self.pyside2ToolsDirPicker.setText( + Preferences.getQt("PySide2ToolsDir")) self.pyuicIndentSpinBox.setValue(Preferences.getQt("PyuicIndent")) self.pyuicImportsCheckBox.setChecked( Preferences.getQt("PyuicFromImports")) @@ -56,6 +60,7 @@ Preferences.setQt("QtToolsPrefix", self.qtPrefixEdit.text()) Preferences.setQt("QtToolsPostfix", self.qtPostfixEdit.text()) Preferences.setQt("PyQtToolsDir", self.pyqtToolsDirPicker.text()) + Preferences.setQt("PySide2ToolsDir", self.pyside2ToolsDirPicker.text()) Preferences.setQt("PyuicIndent", self.pyuicIndentSpinBox.value()) Preferences.setQt("PyuicFromImports", self.pyuicImportsCheckBox.isChecked())
--- a/eric6/Preferences/ConfigurationPages/QtPage.ui Mon Mar 09 19:49:48 2020 +0100 +++ b/eric6/Preferences/ConfigurationPages/QtPage.ui Mon Mar 09 19:51:02 2020 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>642</width> - <height>614</height> + <height>772</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_3"> @@ -205,6 +205,38 @@ </widget> </item> <item> + <widget class="QGroupBox" name="groupBox_5"> + <property name="title"> + <string>PySide2 Tools</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>Tools Directory:</string> + </property> + </widget> + </item> + <item> + <widget class="E5PathPicker" name="pyside2ToolsDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the path of the PySide2 tools directory, if they are not found.</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>pyuic / pyside-uic Options</string> @@ -288,6 +320,7 @@ <tabstop>qtPrefixEdit</tabstop> <tabstop>qtPostfixEdit</tabstop> <tabstop>pyqtToolsDirPicker</tabstop> + <tabstop>pyside2ToolsDirPicker</tabstop> <tabstop>pyuicIndentSpinBox</tabstop> <tabstop>pyuicImportsCheckBox</tabstop> </tabstops>
--- a/eric6/Preferences/__init__.py Mon Mar 09 19:49:48 2020 +0100 +++ b/eric6/Preferences/__init__.py Mon Mar 09 19:51:02 2020 +0100 @@ -1229,6 +1229,7 @@ "PyuicIndent": 4, "PyuicFromImports": False, "PyQtToolsDir": "", + "PySide2ToolsDir": "", } # defaults for corba related stuff
--- a/eric6/Utilities/__init__.py Mon Mar 09 19:49:48 2020 +0100 +++ b/eric6/Utilities/__init__.py Mon Mar 09 19:51:02 2020 +0100 @@ -1853,13 +1853,24 @@ else: if variant == "1": return toolname - - elif toolname == "pyside2-uic": - return toolname else: - import distutils.sysconfig - return os.path.join(distutils.sysconfig.get_python_lib(True), - "PySide2", toolname) + # step 1: check, if the user has configured a tools path + path = Preferences.getQt("PySide2ToolsDir") + if path: + return os.path.join(path, toolname) + + # step 2: determine from used Python interpreter + dirName = os.path.dirname(sys.executable) + if os.path.exists(os.path.join(dirName, toolname)): + return os.path.join(dirName, toolname) + + # step 3: if it is not 'pyside2-uic' look in the package directory + if toolname == "pyside2-uic": + return toolname + else: + import distutils.sysconfig + return os.path.join(distutils.sysconfig.get_python_lib(True), + "PySide2", toolname) def checkPyside(variant="2"):