155 @signal syntaxerrorToggled(Editor) emitted when a syntax error is toggled. |
155 @signal syntaxerrorToggled(Editor) emitted when a syntax error is toggled. |
156 @signal previewStateChanged(bool) emitted to signal a change in the preview state |
156 @signal previewStateChanged(bool) emitted to signal a change in the preview state |
157 @signal editorLanguageChanged(Editor) emitted to signal a change of an |
157 @signal editorLanguageChanged(Editor) emitted to signal a change of an |
158 editors language |
158 editors language |
159 @signal editorTextChanged(Editor) emitted to signal a change of an editor's text |
159 @signal editorTextChanged(Editor) emitted to signal a change of an editor's text |
|
160 @signal editorLineChanged(str,int) emitted to signal a change of an editor's |
|
161 current line (line is given one based) |
160 """ |
162 """ |
161 changeCaption = pyqtSignal(str) |
163 changeCaption = pyqtSignal(str) |
162 editorChanged = pyqtSignal(str) |
164 editorChanged = pyqtSignal(str) |
163 editorChangedEd = pyqtSignal(Editor) |
165 editorChangedEd = pyqtSignal(Editor) |
164 lastEditorClosed = pyqtSignal() |
166 lastEditorClosed = pyqtSignal() |
173 bookmarkToggled = pyqtSignal(Editor) |
175 bookmarkToggled = pyqtSignal(Editor) |
174 syntaxerrorToggled = pyqtSignal(Editor) |
176 syntaxerrorToggled = pyqtSignal(Editor) |
175 previewStateChanged = pyqtSignal(bool) |
177 previewStateChanged = pyqtSignal(bool) |
176 editorLanguageChanged = pyqtSignal(Editor) |
178 editorLanguageChanged = pyqtSignal(Editor) |
177 editorTextChanged = pyqtSignal(Editor) |
179 editorTextChanged = pyqtSignal(Editor) |
|
180 editorLineChanged = pyqtSignal(str, int) |
178 |
181 |
179 def __init__(self, parent): |
182 def __init__(self, parent): |
180 """ |
183 """ |
181 Constructor |
184 Constructor |
182 |
185 |
347 aw = self.activeWindow() |
350 aw = self.activeWindow() |
348 fn = aw and aw.getFileName() or None |
351 fn = aw and aw.getFileName() or None |
349 if fn: |
352 if fn: |
350 self.changeCaption.emit(fn) |
353 self.changeCaption.emit(fn) |
351 self.editorChanged.emit(fn) |
354 self.editorChanged.emit(fn) |
|
355 self.editorLineChanged.emit(fn, aw.getCursorPosition()[0] + 1) |
352 else: |
356 else: |
353 self.changeCaption.emit("") |
357 self.changeCaption.emit("") |
354 self.editorChangedEd.emit(aw) |
358 self.editorChangedEd.emit(aw) |
355 |
359 |
356 def _addView(self, win, fn=None, noName=""): |
360 def _addView(self, win, fn=None, noName=""): |
376 itm.setToolTip(fn) |
380 itm.setToolTip(fn) |
377 self.viewlist.addItem(itm) |
381 self.viewlist.addItem(itm) |
378 self.currentStack.addWidget(win) |
382 self.currentStack.addWidget(win) |
379 self.currentStack.setCurrentWidget(win) |
383 self.currentStack.setCurrentWidget(win) |
380 editor.captionChanged.connect(self.__captionChange) |
384 editor.captionChanged.connect(self.__captionChange) |
|
385 editor.cursorLineChanged.connect(self.__cursorLineChanged) |
381 |
386 |
382 index = self.editors.index(editor) |
387 index = self.editors.index(editor) |
383 self.viewlist.setCurrentRow(index) |
388 self.viewlist.setCurrentRow(index) |
384 editor.setFocus() |
389 editor.setFocus() |
385 if fn: |
390 if fn: |
386 self.changeCaption.emit(fn) |
391 self.changeCaption.emit(fn) |
387 self.editorChanged.emit(fn) |
392 self.editorChanged.emit(fn) |
|
393 self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1) |
388 else: |
394 else: |
389 self.changeCaption.emit("") |
395 self.changeCaption.emit("") |
390 self.editorChangedEd.emit(editor) |
396 self.editorChangedEd.emit(editor) |
391 |
397 |
392 def __captionChange(self, cap, editor): |
398 def __captionChange(self, cap, editor): |
399 @param editor Editor to update the caption for |
405 @param editor Editor to update the caption for |
400 """ |
406 """ |
401 fn = editor.getFileName() |
407 fn = editor.getFileName() |
402 if fn: |
408 if fn: |
403 self.setEditorName(editor, fn) |
409 self.setEditorName(editor, fn) |
|
410 |
|
411 def __cursorLineChanged(self, lineno): |
|
412 """ |
|
413 Private slot to handle a change of the current editor's cursor line. |
|
414 |
|
415 @param lineno line number of the current editor's cursor (zero based) |
|
416 """ |
|
417 editor = self.sender() |
|
418 if editor: |
|
419 fn = editor.getFileName() |
|
420 if fn: |
|
421 self.editorLineChanged.emit(fn, lineno + 1) |
404 |
422 |
405 def _showView(self, win, fn=None): |
423 def _showView(self, win, fn=None): |
406 """ |
424 """ |
407 Protected method to show a view (i.e. window) |
425 Protected method to show a view (i.e. window) |
408 |
426 |
420 editor.setFocus() |
438 editor.setFocus() |
421 fn = editor.getFileName() |
439 fn = editor.getFileName() |
422 if fn: |
440 if fn: |
423 self.changeCaption.emit(fn) |
441 self.changeCaption.emit(fn) |
424 self.editorChanged.emit(fn) |
442 self.editorChanged.emit(fn) |
|
443 self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1) |
425 else: |
444 else: |
426 self.changeCaption.emit("") |
445 self.changeCaption.emit("") |
427 self.editorChangedEd.emit(editor) |
446 self.editorChangedEd.emit(editor) |
428 |
447 |
429 def __showSelectedView(self, row): |
448 def __showSelectedView(self, row): |
704 fn = editor.getFileName() |
723 fn = editor.getFileName() |
705 if fn: |
724 if fn: |
706 self.changeCaption.emit(fn) |
725 self.changeCaption.emit(fn) |
707 if not self.__inRemoveView: |
726 if not self.__inRemoveView: |
708 self.editorChanged.emit(fn) |
727 self.editorChanged.emit(fn) |
|
728 self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1) |
709 else: |
729 else: |
710 self.changeCaption.emit("") |
730 self.changeCaption.emit("") |
711 self.editorChangedEd.emit(editor) |
731 self.editorChangedEd.emit(editor) |
712 |
732 |
713 cindex = self.editors.index(editor) |
733 cindex = self.editors.index(editor) |
744 fn = aw.getFileName() |
764 fn = aw.getFileName() |
745 if fn: |
765 if fn: |
746 self.changeCaption.emit(fn) |
766 self.changeCaption.emit(fn) |
747 if switched: |
767 if switched: |
748 self.editorChanged.emit(fn) |
768 self.editorChanged.emit(fn) |
|
769 self.editorLineChanged.emit(fn, aw.getCursorPosition()[0] + 1) |
749 else: |
770 else: |
750 self.changeCaption.emit("") |
771 self.changeCaption.emit("") |
751 self.editorChangedEd.emit(aw) |
772 self.editorChangedEd.emit(aw) |
752 |
773 |
753 return False |
774 return False |