E5Gui/E5SideBar.py

branch
5_1_x
changeset 1414
7d19eb1c0249
parent 1412
c733a118f4ca
child 1429
fa58f95c8976
--- a/E5Gui/E5SideBar.py	Tue Nov 01 12:23:16 2011 +0100
+++ b/E5Gui/E5SideBar.py	Tue Nov 01 15:46:11 2011 +0100
@@ -58,7 +58,6 @@
         self.setLayout(self.layout)
         
         self.__minimized = False
-        self.__minimum = 50
         self.__minSize = 0
         self.__maxSize = 0
         self.__bigSize = QSize()
@@ -132,12 +131,16 @@
         self.__stackedWidget.show()
         self.resize(self.__bigSize)
         if self.__orientation in [E5SideBar.North, E5SideBar.South]:
-            self.setMinimumHeight(max(self.__minSize, self.__minimum))
+            minSize = max(self.__minSize, self.minimumSizeHint().height())
+            self.setMinimumHeight(minSize)
             self.setMaximumHeight(self.__maxSize)
         else:
-            self.setMinimumWidth(max(self.__minSize, self.__minimum))
+            minSize = max(self.__minSize, self.minimumSizeHint().width())
+            self.setMinimumWidth(minSize)
             self.setMaximumWidth(self.__maxSize)
         if self.splitter:
+            index = self.splitter.indexOf(self)
+            self.splitterSizes[index] = max(self.splitterSizes[index], minSize+10)
             self.splitter.setSizes(self.splitterSizes)
     
     def isMinimized(self):
@@ -199,7 +202,8 @@
             used, if the second parameter is a QIcon)
         """
         if label:
-            self.__tabBar.addTab(iconOrLabel, label)
+            index = self.__tabBar.addTab(iconOrLabel, "")
+            self.__tabBar.setTabToolTip(index, label)
         else:
             self.__tabBar.addTab(iconOrLabel)
         self.__stackedWidget.addWidget(widget)
@@ -220,7 +224,8 @@
             used, if the second parameter is a QIcon)
         """
         if label:
-            self.__tabBar.insertTab(index, iconOrLabel, label)
+            self.__tabBar.insertTab(index, iconOrLabel, "")
+            self.__tabBar.setTabToolTip(index, label)
         else:
             self.__tabBar.insertTab(index, iconOrLabel)
         self.__stackedWidget.insertWidget(index, widget)
@@ -502,6 +507,11 @@
         if state.isEmpty():
             return False
         
+        if self.__orientation in [E5SideBar.North, E5SideBar.South]:
+            minSize = self.layout.minimumSize().height()
+        else:
+            minSize = self.layout.minimumSize().width()
+        
         data = QByteArray(state)
         stream = QDataStream(data, QIODevice.ReadOnly)
         stream.readUInt16() # version
@@ -511,12 +521,15 @@
             self.shrink()
         
         stream >> self.__bigSize
-        self.__minSize = stream.readUInt16()
+        self.__minSize = max(stream.readUInt16(), minSize)
         self.__maxSize = stream.readUInt16()
         count = stream.readUInt16()
         self.splitterSizes = []
         for i in range(count):
             self.splitterSizes.append(stream.readUInt16())
+        if self.splitter:
+            index = self.splitter.indexOf(self)
+            self.splitterSizes[index] = max(self.splitterSizes[index], minSize) 
         
         self.__autoHide = stream.readBool()
         self.__autoHideButton.setChecked(not self.__autoHide)

eric ide

mercurial