PluginRefactoringRope.py

branch
server_client_variant
changeset 167
3c8e875d0326
parent 160
989cd767992b
child 189
2711fdd91925
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:

eric ide

mercurial