Plugins/ViewManagerPlugins/Listspace/Listspace.py

changeset 2769
8cbebde7a984
parent 2763
e4794166ad70
child 2791
a9577f248f04
child 2964
84b65fb9e780
equal deleted inserted replaced
2768:eab35f6e709f 2769:8cbebde7a984
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

eric ide

mercurial