Tue, 28 Jun 2011 20:03:20 +0200
Improved the code to detect PySide.
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.py Tue Jun 28 19:23:57 2011 +0200 +++ b/Preferences/ConfigurationPages/HelpDocumentationPage.py Tue Jun 28 20:03:20 2011 +0200 @@ -37,11 +37,9 @@ self.pyqt4DocDirCompleter = E5FileCompleter(self.pyqt4DocDirEdit) self.pysideDocDirCompleter = E5FileCompleter(self.pysideDocDirEdit) - try: - import PySide + if Utilities.checkPyside(): self.pysideGroup.setEnabled(True) - del PySide - except ImportError: + else: self.pysideGroup.setEnabled(False) # set initial values
--- a/Project/Project.py Tue Jun 28 19:23:57 2011 +0200 +++ b/Project/Project.py Tue Jun 28 20:03:20 2011 +0200 @@ -245,12 +245,10 @@ self.__projectTypes["E4Plugin"] = self.trUtf8("Eric Plugin") self.__projectTypes["Console"] = self.trUtf8("Console") self.__projectTypes["Other"] = self.trUtf8("Other") - try: - import PySide + if Utilities.checkPyside(): self.__projectTypes["PySide"] = self.trUtf8("PySide GUI") self.__projectTypes["PySideC"] = self.trUtf8("PySide Console") - del PySide - except ImportError: + else: pass def getProjectTypes(self):
--- a/UI/UserInterface.py Tue Jun 28 19:23:57 2011 +0200 +++ b/UI/UserInterface.py Tue Jun 28 20:03:20 2011 +0200 @@ -2218,8 +2218,7 @@ """ Private slot to initialize the action to show the PySide documentation. """ - try: - import PySide + if Utilities.checkPyside(): self.pysideDocAct = E5Action(self.trUtf8('PySide Documentation'), self.trUtf8('Py&Side Documentation'), 0, 0, self, 'pyside_documentation') self.pysideDocAct.setStatusTip(self.trUtf8('Open PySide Documentation')) @@ -2231,8 +2230,7 @@ )) self.pysideDocAct.triggered[()].connect(self.__showPySideDoc) self.actions.append(self.pysideDocAct) - del PySide - except ImportError: + else: self.pysideDocAct = None def __initMenus(self):
--- a/Utilities/__init__.py Tue Jun 28 19:23:57 2011 +0200 +++ b/Utilities/__init__.py Tue Jun 28 20:03:20 2011 +0200 @@ -1287,6 +1287,31 @@ global configDir configDir = os.path.expanduser(d) + +def checkPyside(): + """ + Module function to check the presence of PySide. + + @return flag indicating the presence of PySide (boolean) + """ + interpreter = Preferences.getDebugger("PythonInterpreter") + if interpreter == "" or not isinpath(interpreter): + return False + + checker = os.path.join(getConfig('ericDir'), + "UtilitiesPython2", "PySideImporter.py") + args = [checker] + proc = QProcess() + proc.setProcessChannelMode(QProcess.MergedChannels) + proc.start(interpreter, args) + finished = proc.waitForFinished(30000) + if finished: + if proc.exitCode() == 0: + return True + + return False + + ################################################################################ # functions for environment handling ################################################################################
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UtilitiesPython2/PySideImporter.py Tue Jun 28 20:03:20 2011 +0200 @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module to check for the presence of PySide by importing it. +""" + +import sys + +if __name__ == "__main__": + try: + import PySide # __IGNORE_WARNING__ + ret = 0 + except ImportError: + ret = 1 + + sys.exit(ret) + +# +# eflag: FileType = Python2