PluginRefactoringRope.py

changeset 76
936b2a98fe4e
parent 74
0973b175e2ad
parent 63
c02061242598
child 83
d16c3a1e8b91
--- a/PluginRefactoringRope.py	Sat Apr 12 19:48:00 2014 +0200
+++ b/PluginRefactoringRope.py	Fri May 02 21:06:07 2014 +0200
@@ -7,7 +7,10 @@
 Module implementing the Rope refactoring plugin.
 """
 
+from __future__ import unicode_literals
+
 import os
+import sys
 
 from PyQt4.QtCore import QObject, QTranslator
 
@@ -20,14 +23,17 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "2.3.8"
+version = "2.4.0"
 className = "RefactoringRopePlugin"
 packageName = "RefactoringRope"
 internalPackages = "rope"
 shortDescription = "Refactoring using the Rope library."
 longDescription = """This plugin implements refactoring functionality""" \
-    """ using the Rope refactoring library."""
+    """ using the Rope refactoring library. Only refactoring in the same""" \
+    """ Python version as Eric is running is allowed."""
 pyqtApi = 2
+doNotCompile = True
+python2Compatible = True
 # End-Of-Header
 
 error = ""
@@ -102,13 +108,15 @@
             extrasAct, self.__mainMenu)
         
         if e5App().getObject("Project").isOpen():
-            self.__mainAct.setEnabled(True)
+            self.__projectOpened()
+        
+        if self.__projectIsOpen:
             self.__object.projectOpened()
-        else:
-            self.__mainAct.setEnabled(False)
         
         e5App().getObject("Project").projectOpened.connect(
             self.__object.projectOpened)
+        e5App().getObject("Project").projectPropertiesChanged.connect(
+            self.__object.projectOpened)
         e5App().getObject("Project").projectClosed.connect(
             self.__object.projectClosed)
         e5App().getObject("Project").newProject.connect(
@@ -116,6 +124,8 @@
         
         e5App().getObject("Project").projectOpened.connect(
             self.__projectOpened)
+        e5App().getObject("Project").projectPropertiesChanged.connect(
+            self.__projectOpened)
         e5App().getObject("Project").projectClosed.connect(
             self.__projectClosed)
         e5App().getObject("Project").newProject.connect(
@@ -131,6 +141,8 @@
         
         e5App().getObject("Project").projectOpened.disconnect(
             self.__object.projectOpened)
+        e5App().getObject("Project").projectPropertiesChanged.disconnect(
+            self.__object.projectOpened)
         e5App().getObject("Project").projectClosed.disconnect(
             self.__object.projectClosed)
         e5App().getObject("Project").newProject.disconnect(
@@ -138,6 +150,8 @@
         
         e5App().getObject("Project").projectOpened.disconnect(
             self.__projectOpened)
+        e5App().getObject("Project").projectPropertiesChanged.disconnect(
+            self.__projectOpened)
         e5App().getObject("Project").projectClosed.disconnect(
             self.__projectClosed)
         e5App().getObject("Project").newProject.disconnect(
@@ -172,9 +186,16 @@
         """
         Public slot to handle the projectOpened signal.
         """
-        if e5App().getObject("Project").getProjectLanguage() in ["Python3"]:
-            self.__mainAct.setEnabled(True)
-            self.__projectIsOpen = True
+        if sys.version_info[0] == 3:
+            lang = ["Python3"]
+        elif sys.version_info[0] == 2:
+            lang = ["Python", "Python2"]
+        else:
+            lang = []
+        
+        enabled = e5App().getObject("Project").getProjectLanguage() in lang
+        self.__mainAct.setEnabled(enabled)
+        self.__projectIsOpen = enabled
     
     def __projectClosed(self):
         """

eric ide

mercurial