--- 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 ##################################################################