PluginRefactoringRope.py

changeset 76
936b2a98fe4e
parent 74
0973b175e2ad
parent 63
c02061242598
child 83
d16c3a1e8b91
equal deleted inserted replaced
75:bfa53ef65b19 76:936b2a98fe4e
5 5
6 """ 6 """
7 Module implementing the Rope refactoring plugin. 7 Module implementing the Rope refactoring plugin.
8 """ 8 """
9 9
10 from __future__ import unicode_literals
11
10 import os 12 import os
13 import sys
11 14
12 from PyQt4.QtCore import QObject, QTranslator 15 from PyQt4.QtCore import QObject, QTranslator
13 16
14 from E5Gui.E5Application import e5App 17 from E5Gui.E5Application import e5App
15 18
18 # Start-Of-Header 21 # Start-Of-Header
19 name = "Refactoring Rope Plugin" 22 name = "Refactoring Rope Plugin"
20 author = "Detlev Offenbach <detlev@die-offenbachs.de>" 23 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
21 autoactivate = True 24 autoactivate = True
22 deactivateable = True 25 deactivateable = True
23 version = "2.3.8" 26 version = "2.4.0"
24 className = "RefactoringRopePlugin" 27 className = "RefactoringRopePlugin"
25 packageName = "RefactoringRope" 28 packageName = "RefactoringRope"
26 internalPackages = "rope" 29 internalPackages = "rope"
27 shortDescription = "Refactoring using the Rope library." 30 shortDescription = "Refactoring using the Rope library."
28 longDescription = """This plugin implements refactoring functionality""" \ 31 longDescription = """This plugin implements refactoring functionality""" \
29 """ using the Rope refactoring library.""" 32 """ using the Rope refactoring library. Only refactoring in the same""" \
33 """ Python version as Eric is running is allowed."""
30 pyqtApi = 2 34 pyqtApi = 2
35 doNotCompile = True
36 python2Compatible = True
31 # End-Of-Header 37 # End-Of-Header
32 38
33 error = "" 39 error = ""
34 40
35 41
100 extrasAct = self.__ui.getMenuBarAction("extras") 106 extrasAct = self.__ui.getMenuBarAction("extras")
101 self.__mainAct = self.__ui.menuBar().insertMenu( 107 self.__mainAct = self.__ui.menuBar().insertMenu(
102 extrasAct, self.__mainMenu) 108 extrasAct, self.__mainMenu)
103 109
104 if e5App().getObject("Project").isOpen(): 110 if e5App().getObject("Project").isOpen():
105 self.__mainAct.setEnabled(True) 111 self.__projectOpened()
112
113 if self.__projectIsOpen:
106 self.__object.projectOpened() 114 self.__object.projectOpened()
107 else:
108 self.__mainAct.setEnabled(False)
109 115
110 e5App().getObject("Project").projectOpened.connect( 116 e5App().getObject("Project").projectOpened.connect(
117 self.__object.projectOpened)
118 e5App().getObject("Project").projectPropertiesChanged.connect(
111 self.__object.projectOpened) 119 self.__object.projectOpened)
112 e5App().getObject("Project").projectClosed.connect( 120 e5App().getObject("Project").projectClosed.connect(
113 self.__object.projectClosed) 121 self.__object.projectClosed)
114 e5App().getObject("Project").newProject.connect( 122 e5App().getObject("Project").newProject.connect(
115 self.__object.projectOpened) 123 self.__object.projectOpened)
116 124
117 e5App().getObject("Project").projectOpened.connect( 125 e5App().getObject("Project").projectOpened.connect(
118 self.__projectOpened) 126 self.__projectOpened)
127 e5App().getObject("Project").projectPropertiesChanged.connect(
128 self.__projectOpened)
119 e5App().getObject("Project").projectClosed.connect( 129 e5App().getObject("Project").projectClosed.connect(
120 self.__projectClosed) 130 self.__projectClosed)
121 e5App().getObject("Project").newProject.connect( 131 e5App().getObject("Project").newProject.connect(
122 self.__projectOpened) 132 self.__projectOpened)
123 133
129 """ 139 """
130 e5App().unregisterPluginObject("RefactoringRope") 140 e5App().unregisterPluginObject("RefactoringRope")
131 141
132 e5App().getObject("Project").projectOpened.disconnect( 142 e5App().getObject("Project").projectOpened.disconnect(
133 self.__object.projectOpened) 143 self.__object.projectOpened)
144 e5App().getObject("Project").projectPropertiesChanged.disconnect(
145 self.__object.projectOpened)
134 e5App().getObject("Project").projectClosed.disconnect( 146 e5App().getObject("Project").projectClosed.disconnect(
135 self.__object.projectClosed) 147 self.__object.projectClosed)
136 e5App().getObject("Project").newProject.disconnect( 148 e5App().getObject("Project").newProject.disconnect(
137 self.__object.projectOpened) 149 self.__object.projectOpened)
138 150
139 e5App().getObject("Project").projectOpened.disconnect( 151 e5App().getObject("Project").projectOpened.disconnect(
152 self.__projectOpened)
153 e5App().getObject("Project").projectPropertiesChanged.disconnect(
140 self.__projectOpened) 154 self.__projectOpened)
141 e5App().getObject("Project").projectClosed.disconnect( 155 e5App().getObject("Project").projectClosed.disconnect(
142 self.__projectClosed) 156 self.__projectClosed)
143 e5App().getObject("Project").newProject.disconnect( 157 e5App().getObject("Project").newProject.disconnect(
144 self.__projectOpened) 158 self.__projectOpened)
170 184
171 def __projectOpened(self): 185 def __projectOpened(self):
172 """ 186 """
173 Public slot to handle the projectOpened signal. 187 Public slot to handle the projectOpened signal.
174 """ 188 """
175 if e5App().getObject("Project").getProjectLanguage() in ["Python3"]: 189 if sys.version_info[0] == 3:
176 self.__mainAct.setEnabled(True) 190 lang = ["Python3"]
177 self.__projectIsOpen = True 191 elif sys.version_info[0] == 2:
192 lang = ["Python", "Python2"]
193 else:
194 lang = []
195
196 enabled = e5App().getObject("Project").getProjectLanguage() in lang
197 self.__mainAct.setEnabled(enabled)
198 self.__projectIsOpen = enabled
178 199
179 def __projectClosed(self): 200 def __projectClosed(self):
180 """ 201 """
181 Public slot to handle the projectClosed signal. 202 Public slot to handle the projectClosed signal.
182 """ 203 """

eric ide

mercurial