207 |
205 |
208 self.__mainMenu = self.__object.initMenu() |
206 self.__mainMenu = self.__object.initMenu() |
209 extrasAct = self.__ui.getMenuBarAction("extras") |
207 extrasAct = self.__ui.getMenuBarAction("extras") |
210 self.__mainAct = self.__ui.menuBar().insertMenu( |
208 self.__mainAct = self.__ui.menuBar().insertMenu( |
211 extrasAct, self.__mainMenu) |
209 extrasAct, self.__mainMenu) |
|
210 self.__mainAct.setEnabled(False) |
212 |
211 |
213 if e5App().getObject("Project").isOpen(): |
212 if e5App().getObject("Project").isOpen(): |
214 self.__projectOpened() |
|
215 |
|
216 if self.__projectIsOpen: |
|
217 self.__object.projectOpened() |
213 self.__object.projectOpened() |
218 |
214 |
219 e5App().getObject("ViewManager").editorOpenedEd.connect( |
215 e5App().getObject("ViewManager").editorOpenedEd.connect( |
220 self.__editorOpened) |
216 self.__editorOpened) |
221 e5App().getObject("ViewManager").editorClosedEd.connect( |
217 e5App().getObject("ViewManager").editorClosedEd.connect( |
228 e5App().getObject("Project").projectClosed.connect( |
224 e5App().getObject("Project").projectClosed.connect( |
229 self.__object.projectClosed) |
225 self.__object.projectClosed) |
230 e5App().getObject("Project").newProject.connect( |
226 e5App().getObject("Project").newProject.connect( |
231 self.__object.projectOpened) |
227 self.__object.projectOpened) |
232 |
228 |
233 e5App().getObject("Project").projectOpened.connect( |
|
234 self.__projectOpened) |
|
235 e5App().getObject("Project").projectPropertiesChanged.connect( |
|
236 self.__projectOpened) |
|
237 e5App().getObject("Project").projectClosed.connect( |
|
238 self.__projectClosed) |
|
239 e5App().getObject("Project").newProject.connect( |
|
240 self.__projectOpened) |
|
241 |
|
242 if e5App().getObject("Project").isOpen(): |
229 if e5App().getObject("Project").isOpen(): |
243 for editor in e5App().getObject("ViewManager").getOpenEditors(): |
230 for editor in e5App().getObject("ViewManager").getOpenEditors(): |
244 self.__editorOpened(editor) |
231 self.__editorOpened(editor) |
245 |
232 |
246 return None, True |
233 return None, True |
262 self.__object.projectOpened) |
249 self.__object.projectOpened) |
263 e5App().getObject("Project").projectClosed.disconnect( |
250 e5App().getObject("Project").projectClosed.disconnect( |
264 self.__object.projectClosed) |
251 self.__object.projectClosed) |
265 e5App().getObject("Project").newProject.disconnect( |
252 e5App().getObject("Project").newProject.disconnect( |
266 self.__object.projectOpened) |
253 self.__object.projectOpened) |
267 |
|
268 e5App().getObject("Project").projectOpened.disconnect( |
|
269 self.__projectOpened) |
|
270 e5App().getObject("Project").projectPropertiesChanged.disconnect( |
|
271 self.__projectOpened) |
|
272 e5App().getObject("Project").projectClosed.disconnect( |
|
273 self.__projectClosed) |
|
274 e5App().getObject("Project").newProject.disconnect( |
|
275 self.__projectOpened) |
|
276 |
254 |
277 self.__ui.menuBar().removeAction(self.__mainAct) |
255 self.__ui.menuBar().removeAction(self.__mainAct) |
278 |
256 |
279 for editor in self.__editors[:]: |
257 for editor in self.__editors[:]: |
280 self.__editorClosed(editor) |
258 self.__editorClosed(editor) |
343 self.__disconnectMouseClickHandler(editor) |
321 self.__disconnectMouseClickHandler(editor) |
344 self.__connectMouseClickHandler(editor) |
322 self.__connectMouseClickHandler(editor) |
345 elif key == "CodeAssistTimeout": |
323 elif key == "CodeAssistTimeout": |
346 self.__acTimer.setInterval(value) |
324 self.__acTimer.setInterval(value) |
347 |
325 |
348 def __determineLanguage(self): |
326 def __determineLanguages(self): |
349 """ |
327 """ |
350 Private method to determine the valid language strings. |
328 Private method to determine the valid language strings. |
351 |
329 |
352 @return list of valid language strings (list of string) |
330 @return list of valid language strings (list of string) |
353 """ |
331 """ |
354 if sys.version_info[0] == 3: |
332 langs = [] |
355 lang = ["Python3", "Pygments|Python 3"] |
333 |
356 elif sys.version_info[0] == 2: |
334 interpreter = Preferences.getDebugger("PythonInterpreter") |
357 lang = ["Python", "Python2", "Pygments|Python"] |
335 if interpreter and Utilities.isinpath(interpreter): |
358 else: |
336 langs.extend(["Python", "Python2", "Pygments|Python"]) |
359 lang = [] |
337 |
360 |
338 interpreter = Preferences.getDebugger("Python3Interpreter") |
361 return lang |
339 if interpreter and Utilities.isinpath(interpreter): |
362 |
340 langs.extend(["Python3", "Pygments|Python 3"]) |
363 def __projectOpened(self): |
341 |
364 """ |
342 return langs |
365 Private slot to handle the projectOpened signal. |
|
366 """ |
|
367 lang = self.__determineLanguage() |
|
368 |
|
369 projectLanguage = e5App().getObject("Project").getProjectLanguage() |
|
370 enabled = projectLanguage in lang |
|
371 if not enabled: |
|
372 self.__ui.appendToStderr(self.tr( |
|
373 "Project language '{0}' is different to the one used to" |
|
374 " execute eric. Refactoring is disabled." |
|
375 ).format(projectLanguage)) |
|
376 self.__mainAct.setEnabled(enabled) |
|
377 self.__projectIsOpen = enabled |
|
378 |
|
379 def __projectClosed(self): |
|
380 """ |
|
381 Private slot to handle the projectClosed signal. |
|
382 """ |
|
383 self.__mainAct.setEnabled(False) |
|
384 self.__projectIsOpen = False |
|
385 |
343 |
386 def __editorOpened(self, editor): |
344 def __editorOpened(self, editor): |
387 """ |
345 """ |
388 Private slot called, when a new editor was opened. |
346 Private slot called, when a new editor was opened. |
389 |
347 |
390 @param editor reference to the new editor (QScintilla.Editor) |
348 @param editor reference to the new editor (QScintilla.Editor) |
391 """ |
349 """ |
392 lang = self.__determineLanguage() |
350 langs = self.__determineLanguages() |
393 |
351 |
394 if editor.getLanguage() in lang: |
352 if editor.getLanguage() in langs: |
395 self.__connectEditor(editor) |
353 self.__connectEditor(editor) |
396 |
354 |
397 editor.languageChanged.connect(self.__editorLanguageChanged) |
355 editor.languageChanged.connect(self.__editorLanguageChanged) |
398 self.__editors.append(editor) |
356 self.__editors.append(editor) |
399 |
357 |
413 Private slot to handle the language change of an editor. |
371 Private slot to handle the language change of an editor. |
414 |
372 |
415 @param language programming language of the editor (string) |
373 @param language programming language of the editor (string) |
416 """ |
374 """ |
417 editor = self.sender() |
375 editor = self.sender() |
418 lang = self.__determineLanguage() |
376 langs = self.__determineLanguages() |
419 |
377 |
420 if language in lang: |
378 if language in langs: |
421 try: |
379 try: |
422 if editor.getCompletionListHook("rope") is None or \ |
380 if editor.getCompletionListHook("rope") is None or \ |
423 editor.getCallTipHook("rope") is None: |
381 editor.getCallTipHook("rope") is None: |
424 self.__connectEditor(editor) |
382 self.__connectEditor(editor) |
425 except AttributeError: |
383 except AttributeError: |