5 |
5 |
6 """ |
6 """ |
7 Module implementing the editor assembly widget containing the navigation |
7 Module implementing the editor assembly widget containing the navigation |
8 combos and the editor widget. |
8 combos and the editor widget. |
9 """ |
9 """ |
|
10 |
|
11 import contextlib |
10 |
12 |
11 from PyQt5.QtCore import QTimer |
13 from PyQt5.QtCore import QTimer |
12 from PyQt5.QtWidgets import QWidget, QGridLayout, QComboBox |
14 from PyQt5.QtWidgets import QWidget, QGridLayout, QComboBox |
13 |
15 |
14 from E5Gui.E5Application import e5App |
16 from E5Gui.E5Application import e5App |
146 self.__parseEditor() |
148 self.__parseEditor() |
147 |
149 |
148 line, _ = self.__editor.getCursorPosition() |
150 line, _ = self.__editor.getCursorPosition() |
149 self.__editorCursorLineChanged(line) |
151 self.__editorCursorLineChanged(line) |
150 else: |
152 else: |
151 try: |
153 with contextlib.suppress(TypeError): |
152 self.__globalsCombo.activated[int].disconnect( |
154 self.__globalsCombo.activated[int].disconnect( |
153 self.__globalsActivated) |
155 self.__globalsActivated) |
154 self.__membersCombo.activated[int].disconnect( |
156 self.__membersCombo.activated[int].disconnect( |
155 self.__membersActivated) |
157 self.__membersActivated) |
156 self.__editor.cursorLineChanged.disconnect( |
158 self.__editor.cursorLineChanged.disconnect( |
157 self.__editorCursorLineChanged) |
159 self.__editorCursorLineChanged) |
158 self.__parseTimer.timeout.disconnect(self.__parseEditor) |
160 self.__parseTimer.timeout.disconnect(self.__parseEditor) |
159 except TypeError: |
|
160 # signals were not connected |
|
161 pass |
|
162 |
161 |
163 self.__globalsCombo.clear() |
162 self.__globalsCombo.clear() |
164 self.__membersCombo.clear() |
163 self.__membersCombo.clear() |
165 self.__globalsBoundaries = {} |
164 self.__globalsBoundaries = {} |
166 self.__membersBoundaries = {} |
165 self.__membersBoundaries = {} |
447 self.__editor.languageChanged.connect(self.__editorChanged) |
446 self.__editor.languageChanged.connect(self.__editorChanged) |
448 self.__editor.editorRenamed.connect(self.__editorChanged) |
447 self.__editor.editorRenamed.connect(self.__editorChanged) |
449 else: |
448 else: |
450 self.__sourceOutline.hide() |
449 self.__sourceOutline.hide() |
451 |
450 |
452 try: |
451 with contextlib.suppress(TypeError): |
453 self.__parseTimer.timeout.disconnect( |
452 self.__parseTimer.timeout.disconnect( |
454 self.__sourceOutline.repopulate) |
453 self.__sourceOutline.repopulate) |
455 self.__editor.languageChanged.disconnect(self.__editorChanged) |
454 self.__editor.languageChanged.disconnect(self.__editorChanged) |
456 self.__editor.editorRenamed.disconnect(self.__editorChanged) |
455 self.__editor.editorRenamed.disconnect(self.__editorChanged) |
457 except TypeError: |
|
458 # signals were not connected |
|
459 pass |
|
460 |
456 |
461 def __editorChanged(self): |
457 def __editorChanged(self): |
462 """ |
458 """ |
463 Private slot handling changes of the editor language or file name. |
459 Private slot handling changes of the editor language or file name. |
464 """ |
460 """ |