diff -r 6fc202183b3b -r 3c8e875d0326 PluginRefactoringRope.py --- a/PluginRefactoringRope.py Sat Sep 16 16:40:50 2017 +0200 +++ b/PluginRefactoringRope.py Sat Sep 16 18:51:19 2017 +0200 @@ -10,7 +10,6 @@ from __future__ import unicode_literals import os -import sys from PyQt5.QtCore import Qt, QObject, QTranslator, QCoreApplication, QTimer @@ -171,7 +170,6 @@ self.__mainAct = None self.__mainMenu = None - self.__projectIsOpen = False self.__editors = [] @@ -209,11 +207,9 @@ extrasAct = self.__ui.getMenuBarAction("extras") self.__mainAct = self.__ui.menuBar().insertMenu( extrasAct, self.__mainMenu) + self.__mainAct.setEnabled(False) if e5App().getObject("Project").isOpen(): - self.__projectOpened() - - if self.__projectIsOpen: self.__object.projectOpened() e5App().getObject("ViewManager").editorOpenedEd.connect( @@ -230,15 +226,6 @@ e5App().getObject("Project").newProject.connect( self.__object.projectOpened) - 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( - self.__projectOpened) - if e5App().getObject("Project").isOpen(): for editor in e5App().getObject("ViewManager").getOpenEditors(): self.__editorOpened(editor) @@ -265,15 +252,6 @@ e5App().getObject("Project").newProject.disconnect( self.__object.projectOpened) - 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( - self.__projectOpened) - self.__ui.menuBar().removeAction(self.__mainAct) for editor in self.__editors[:]: @@ -345,43 +323,23 @@ elif key == "CodeAssistTimeout": self.__acTimer.setInterval(value) - def __determineLanguage(self): + def __determineLanguages(self): """ Private method to determine the valid language strings. @return list of valid language strings (list of string) """ - if sys.version_info[0] == 3: - lang = ["Python3", "Pygments|Python 3"] - elif sys.version_info[0] == 2: - lang = ["Python", "Python2", "Pygments|Python"] - else: - lang = [] + langs = [] - return lang - - def __projectOpened(self): - """ - Private slot to handle the projectOpened signal. - """ - lang = self.__determineLanguage() + interpreter = Preferences.getDebugger("PythonInterpreter") + if interpreter and Utilities.isinpath(interpreter): + langs.extend(["Python", "Python2", "Pygments|Python"]) - projectLanguage = e5App().getObject("Project").getProjectLanguage() - enabled = projectLanguage in lang - if not enabled: - self.__ui.appendToStderr(self.tr( - "Project language '{0}' is different to the one used to" - " execute eric. Refactoring is disabled." - ).format(projectLanguage)) - self.__mainAct.setEnabled(enabled) - self.__projectIsOpen = enabled - - def __projectClosed(self): - """ - Private slot to handle the projectClosed signal. - """ - self.__mainAct.setEnabled(False) - self.__projectIsOpen = False + interpreter = Preferences.getDebugger("Python3Interpreter") + if interpreter and Utilities.isinpath(interpreter): + langs.extend(["Python3", "Pygments|Python 3"]) + + return langs def __editorOpened(self, editor): """ @@ -389,9 +347,9 @@ @param editor reference to the new editor (QScintilla.Editor) """ - lang = self.__determineLanguage() + langs = self.__determineLanguages() - if editor.getLanguage() in lang: + if editor.getLanguage() in langs: self.__connectEditor(editor) editor.languageChanged.connect(self.__editorLanguageChanged) @@ -415,9 +373,9 @@ @param language programming language of the editor (string) """ editor = self.sender() - lang = self.__determineLanguage() + langs = self.__determineLanguages() - if language in lang: + if language in langs: try: if editor.getCompletionListHook("rope") is None or \ editor.getCallTipHook("rope") is None: