RefactoringRope/RefactoringServer.py

branch
server_client_variant
changeset 191
2af42804bca2
parent 189
2711fdd91925
child 192
20950ed6b384
diff -r a1b9b4975806 -r 2af42804bca2 RefactoringRope/RefactoringServer.py
--- a/RefactoringRope/RefactoringServer.py	Sun Sep 24 17:09:39 2017 +0200
+++ b/RefactoringRope/RefactoringServer.py	Sun Sep 24 17:10:48 2017 +0200
@@ -31,6 +31,8 @@
 import Utilities
 import Preferences
 
+from Preferences.Shortcuts import readShortcuts
+
 
 class RefactoringServer(JsonServer):
     """
@@ -53,7 +55,9 @@
         self.__projectopen = False
         self.__ropeConfig = {}
         
+        self.__mainAct = None
         self.__mainMenu = None
+        
         self.__progressDialog = None
         self.__helpDialog = None
         self.__historyDialog = None
@@ -79,6 +83,51 @@
             "Changes": self.__processChanges,
         }
     
+    def activate(self):
+        """
+        Public method to activate the refactoring server.
+        
+        This is performed when the rope plug-in is activated.
+        """
+        self.__initActions()
+        e5App().registerPluginObject("RefactoringRope", self)
+        readShortcuts(pluginName="RefactoringRope")
+        
+        self.__mainMenu = self.__initMenu()
+        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()
+        
+        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)
+    
+    def deactivate(self):
+        """
+        Public method to deactivate the refactoring server.
+        """
+        e5App().unregisterPluginObject("RefactoringRope")
+        
+        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)
+    
     def getMainWindow(self):
         """
         Public method to get a reference to the IDE main window.
@@ -88,9 +137,9 @@
         """
         return self.__ui
     
-    def initActions(self):
+    def __initActions(self):
         """
-        Public method to define the refactoring actions.
+        Private method to define the refactoring actions.
         """
         self.actions = []
         
@@ -671,9 +720,9 @@
         for act in self.actions:
             act.setEnabled(False)
     
-    def initMenu(self):
+    def __initMenu(self):
         """
-        Public slot to initialize the refactoring menu.
+        Private slot to initialize the refactoring menu.
         
         @return the menu generated (QMenu)
         """
@@ -747,8 +796,6 @@
         menu.addAction(self.refactoringEditConfigAct)
         menu.addAction(self.refactoringHelpAct)
         
-        self.__mainMenu = menu
-        
         return menu
 
     ##################################################################

eric ide

mercurial