src/eric7/QScintilla/MiniEditor.py

branch
eric7
changeset 10849
78d338b6d89f
parent 10806
2f6df822e3b9
child 10876
ec224611090e
--- a/src/eric7/QScintilla/MiniEditor.py	Mon Jul 15 16:40:23 2024 +0200
+++ b/src/eric7/QScintilla/MiniEditor.py	Tue Jul 16 15:14:23 2024 +0200
@@ -35,11 +35,11 @@
 from PyQt6.QtWidgets import (
     QApplication,
     QDialog,
-    QHBoxLayout,
     QInputDialog,
     QLabel,
     QLineEdit,
     QMenu,
+    QSplitter,
     QVBoxLayout,
     QWhatsThis,
     QWidget,
@@ -311,20 +311,16 @@
         self.__searchReplaceWidget = SearchReplaceWidget(self, self)
 
         self.__sourceOutline = EditorOutlineView(self, populate=False)
-        self.__sourceOutline.setMaximumWidth(
-            Preferences.getEditor("SourceOutlineWidth")
-        )
-
-        hlayout = QHBoxLayout()
-        hlayout.setContentsMargins(0, 0, 0, 0)
-        hlayout.setSpacing(1)
-        hlayout.addWidget(self.__textEdit)
-        hlayout.addWidget(self.__sourceOutline)
+
+        self.__splitter = QSplitter(Qt.Orientation.Horizontal)
+        self.__splitter.setChildrenCollapsible(False)
+        self.__splitter.addWidget(self.__textEdit)
+        self.__splitter.addWidget(self.__sourceOutline)
 
         centralWidget = QWidget()
         layout = QVBoxLayout()
         layout.setContentsMargins(1, 1, 1, 1)
-        layout.addLayout(hlayout)
+        layout.addWidget(self.__splitter)
         layout.addWidget(self.__searchReplaceWidget)
         centralWidget.setLayout(layout)
         self.setCentralWidget(centralWidget)
@@ -394,6 +390,20 @@
         self.languageChanged.connect(self.__editorChanged)
         self.editorRenamed.connect(self.__editorChanged)
 
+        self.__setupCompleted = False
+
+    def show(self):
+        """
+        Public method to show the editor window and complete the initial setup.
+        """
+        super().show()
+
+        if not self.__setupCompleted:
+            splitterWidth = self.__splitter.width() - self.__splitter.handleWidth()
+            outlineWidth = Preferences.getEditor("SourceOutlineWidth")
+            self.__splitter.setSizes([splitterWidth - outlineWidth, outlineWidth])
+            self.__setupCompleted = True
+
     def closeEvent(self, event):
         """
         Protected method to handle the close event.

eric ide

mercurial