40 self.__layout.setContentsMargins(0, 0, 0, 0) |
40 self.__layout.setContentsMargins(0, 0, 0, 0) |
41 self.__layout.setSpacing(1) |
41 self.__layout.setSpacing(1) |
42 |
42 |
43 from .EditorButtonsWidget import EditorButtonsWidget |
43 from .EditorButtonsWidget import EditorButtonsWidget |
44 from .Editor import Editor |
44 from .Editor import Editor |
|
45 from .EditorOutline import EditorOutlineView |
45 |
46 |
46 self.__editor = Editor(dbs, fn, vm, filetype, editor, tv) |
47 self.__editor = Editor(dbs, fn, vm, filetype, editor, tv) |
47 self.__buttonsWidget = EditorButtonsWidget(self.__editor, self) |
48 self.__buttonsWidget = EditorButtonsWidget(self.__editor, self) |
48 self.__globalsCombo = QComboBox() |
49 self.__globalsCombo = QComboBox() |
49 self.__membersCombo = QComboBox() |
50 self.__membersCombo = QComboBox() |
|
51 self.__sourceOutline = EditorOutlineView(self.__editor) |
|
52 # TODO: make this configurable |
|
53 self.__sourceOutline.setMaximumWidth(200) |
50 |
54 |
51 self.__layout.addWidget(self.__buttonsWidget, 1, 0, -1, 1) |
55 self.__layout.addWidget(self.__buttonsWidget, 1, 0, -1, 1) |
52 self.__layout.addWidget(self.__globalsCombo, 0, 1) |
56 self.__layout.addWidget(self.__globalsCombo, 0, 1) |
53 self.__layout.addWidget(self.__membersCombo, 0, 2) |
57 self.__layout.addWidget(self.__membersCombo, 0, 2) |
54 self.__layout.addWidget(self.__editor, 1, 1, 1, -1) |
58 self.__layout.addWidget(self.__editor, 1, 1, 1, 2) |
|
59 self.__layout.addWidget(self.__sourceOutline, 0, 3, -1, -1) |
|
60 |
|
61 if not self.__sourceOutline.isSupportedLanguage( |
|
62 self.__editor.getLanguage() |
|
63 ): |
|
64 self.__sourceOutline.hide() |
55 |
65 |
56 self.setFocusProxy(self.__editor) |
66 self.setFocusProxy(self.__editor) |
57 |
67 |
58 self.__module = None |
68 self.__module = None |
59 |
69 |
64 self.__shutdownTimerCalled = False |
74 self.__shutdownTimerCalled = False |
65 self.__parseTimer = QTimer(self) |
75 self.__parseTimer = QTimer(self) |
66 self.__parseTimer.setSingleShot(True) |
76 self.__parseTimer.setSingleShot(True) |
67 self.__parseTimer.setInterval(5 * 1000) |
77 self.__parseTimer.setInterval(5 * 1000) |
68 self.__parseTimer.timeout.connect(self.__parseEditor) |
78 self.__parseTimer.timeout.connect(self.__parseEditor) |
|
79 self.__parseTimer.timeout.connect(self.__sourceOutline.repopulate) |
69 self.__editor.textChanged.connect(self.__resetParseTimer) |
80 self.__editor.textChanged.connect(self.__resetParseTimer) |
70 self.__editor.refreshed.connect(self.__resetParseTimer) |
81 self.__editor.refreshed.connect(self.__resetParseTimer) |
71 |
82 |
72 self.__selectedGlobal = "" |
83 self.__selectedGlobal = "" |
73 self.__selectedMember = "" |
84 self.__selectedMember = "" |