diff -r bfa53ef65b19 -r 936b2a98fe4e PluginRefactoringRope.py --- 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): """