QScintilla/MiniEditor.py

changeset 2640
dedcd4f987e0
parent 2409
df3820f08247
child 2659
7f46c5a7ed73
--- a/QScintilla/MiniEditor.py	Sun Apr 28 15:38:35 2013 +0200
+++ b/QScintilla/MiniEditor.py	Wed May 01 14:47:38 2013 +0200
@@ -169,6 +169,7 @@
         self.__textEdit.textChanged.connect(self.__documentWasModified)
         self.__textEdit.modificationChanged.connect(self.__modificationChanged)
         self.__textEdit.cursorPositionChanged.connect(self.__cursorPositionChanged)
+        self.__textEdit.linesChanged.connect(self.__resizeLinenoMargin)
         
         self.__textEdit.setContextMenuPolicy(Qt.CustomContextMenu)
         self.__textEdit.customContextMenuRequested.connect(self.__contextMenuRequested)
@@ -2092,8 +2093,7 @@
         linenoMargin = Preferences.getEditor("LinenoMargin")
         self.__textEdit.setMarginLineNumbers(0, linenoMargin)
         if linenoMargin:
-            self.__textEdit.setMarginWidth(0,
-                ' ' + '8' * Preferences.getEditor("LinenoWidth"))
+            self.__resizeLinenoMargin()
         else:
             self.__textEdit.setMarginWidth(0, 16)
         
@@ -2118,6 +2118,15 @@
         else:
             self.__textEdit.setFolding(QsciScintilla.NoFoldStyle)
     
+    def __resizeLinenoMargin(self):
+        """
+        Private slot to resize the line numbers margin.
+        """
+        linenoMargin = Preferences.getEditor("LinenoMargin")
+        if linenoMargin:
+            self.__textEdit.setMarginWidth(
+                0, '8' * (len(str(self.__textEdit.lines())) + 1))
+    
     def __setTextDisplay(self):
         """
         Private method to configure the text display.

eric ide

mercurial