eric6/QScintilla/EditorAssembly.py

changeset 8243
cc717c2ae956
parent 8220
006ee31b4835
equal deleted inserted replaced
8242:aa713ac50c0d 8243:cc717c2ae956
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 """

eric ide

mercurial