Plugins/ViewManagerPlugins/Listspace/Listspace.py

changeset 2769
8cbebde7a984
parent 2763
e4794166ad70
child 2791
a9577f248f04
child 2964
84b65fb9e780
--- a/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Wed Jul 03 19:34:42 2013 +0200
+++ b/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Fri Jul 05 19:17:29 2013 +0200
@@ -157,6 +157,8 @@
     @signal editorLanguageChanged(Editor) emitted to signal a change of an
             editors language
     @signal editorTextChanged(Editor) emitted to signal a change of an editor's text
+    @signal editorLineChanged(str,int) emitted to signal a change of an editor's
+            current line (line is given one based)
     """
     changeCaption = pyqtSignal(str)
     editorChanged = pyqtSignal(str)
@@ -175,6 +177,7 @@
     previewStateChanged = pyqtSignal(bool)
     editorLanguageChanged = pyqtSignal(Editor)
     editorTextChanged = pyqtSignal(Editor)
+    editorLineChanged = pyqtSignal(str, int)
     
     def __init__(self, parent):
         """
@@ -349,6 +352,7 @@
         if fn:
             self.changeCaption.emit(fn)
             self.editorChanged.emit(fn)
+            self.editorLineChanged.emit(fn, aw.getCursorPosition()[0] + 1)
         else:
             self.changeCaption.emit("")
         self.editorChangedEd.emit(aw)
@@ -378,6 +382,7 @@
         self.currentStack.addWidget(win)
         self.currentStack.setCurrentWidget(win)
         editor.captionChanged.connect(self.__captionChange)
+        editor.cursorLineChanged.connect(self.__cursorLineChanged)
         
         index = self.editors.index(editor)
         self.viewlist.setCurrentRow(index)
@@ -385,6 +390,7 @@
         if fn:
             self.changeCaption.emit(fn)
             self.editorChanged.emit(fn)
+            self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1)
         else:
             self.changeCaption.emit("")
         self.editorChangedEd.emit(editor)
@@ -402,6 +408,18 @@
         if fn:
             self.setEditorName(editor, fn)
         
+    def __cursorLineChanged(self, lineno):
+        """
+        Private slot to handle a change of the current editor's cursor line.
+        
+        @param lineno line number of the current editor's cursor (zero based)
+        """
+        editor = self.sender()
+        if editor:
+            fn = editor.getFileName()
+            if fn:
+                self.editorLineChanged.emit(fn, lineno + 1)
+        
     def _showView(self, win, fn=None):
         """
         Protected method to show a view (i.e. window)
@@ -422,6 +440,7 @@
         if fn:
             self.changeCaption.emit(fn)
             self.editorChanged.emit(fn)
+            self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1)
         else:
             self.changeCaption.emit("")
         self.editorChangedEd.emit(editor)
@@ -706,6 +725,7 @@
             self.changeCaption.emit(fn)
             if not self.__inRemoveView:
                 self.editorChanged.emit(fn)
+                self.editorLineChanged.emit(fn, editor.getCursorPosition()[0] + 1)
         else:
             self.changeCaption.emit("")
         self.editorChangedEd.emit(editor)
@@ -746,6 +766,7 @@
                     self.changeCaption.emit(fn)
                     if switched:
                         self.editorChanged.emit(fn)
+                        self.editorLineChanged.emit(fn, aw.getCursorPosition()[0] + 1)
                 else:
                     self.changeCaption.emit("")
                 self.editorChangedEd.emit(aw)

eric ide

mercurial