Plugins/ViewManagerPlugins/Listspace/Listspace.py

branch
Py2 comp.
changeset 2791
a9577f248f04
parent 2525
8b507a9a2d40
parent 2769
8cbebde7a984
child 3057
10516539f238
--- a/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Mon Jul 08 21:47:26 2013 +0200
+++ b/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Mon Jul 08 22:36:10 2013 +0200
@@ -86,7 +86,7 @@
         
     def setCurrentIndex(self, index):
         """
-        Overwritten method to set the current widget by it's index.
+        Overwritten method to set the current widget by its index.
         
         @param index index of widget to be made current (integer)
         """
@@ -159,6 +159,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)
@@ -177,6 +179,7 @@
     previewStateChanged = pyqtSignal(bool)
     editorLanguageChanged = pyqtSignal(Editor)
     editorTextChanged = pyqtSignal(Editor)
+    editorLineChanged = pyqtSignal(str, int)
     
     def __init__(self, parent):
         """
@@ -351,6 +354,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)
@@ -380,6 +384,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)
@@ -387,6 +392,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)
@@ -404,6 +410,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)
@@ -424,6 +442,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)
@@ -708,6 +727,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)
@@ -748,6 +768,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