Improved the code to detect PySide.

Tue, 28 Jun 2011 20:03:20 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 28 Jun 2011 20:03:20 +0200
changeset 1142
01ae8e2946d3
parent 1140
8d1aa04a8f62
child 1143
39829e7673bc

Improved the code to detect PySide.

Preferences/ConfigurationPages/HelpDocumentationPage.py file | annotate | diff | comparison | revisions
Project/Project.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
UtilitiesPython2/PySideImporter.py file | annotate | diff | comparison | revisions
--- 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

eric ide

mercurial