57 self.layout.addLayout(self.barLayout) |
57 self.layout.addLayout(self.barLayout) |
58 self.layout.addWidget(self.__stackedWidget) |
58 self.layout.addWidget(self.__stackedWidget) |
59 self.setLayout(self.layout) |
59 self.setLayout(self.layout) |
60 |
60 |
61 self.__minimized = False |
61 self.__minimized = False |
62 self.__minimum = 50 |
|
63 self.__minSize = 0 |
62 self.__minSize = 0 |
64 self.__maxSize = 0 |
63 self.__maxSize = 0 |
65 self.__bigSize = QSize() |
64 self.__bigSize = QSize() |
66 |
65 |
67 self.splitter = None |
66 self.splitter = None |
131 """ |
130 """ |
132 self.__minimized = False |
131 self.__minimized = False |
133 self.__stackedWidget.show() |
132 self.__stackedWidget.show() |
134 self.resize(self.__bigSize) |
133 self.resize(self.__bigSize) |
135 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
134 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
136 self.setMinimumHeight(max(self.__minSize, self.__minimum)) |
135 minSize = max(self.__minSize, self.minimumSizeHint().height()) |
|
136 self.setMinimumHeight(minSize) |
137 self.setMaximumHeight(self.__maxSize) |
137 self.setMaximumHeight(self.__maxSize) |
138 else: |
138 else: |
139 self.setMinimumWidth(max(self.__minSize, self.__minimum)) |
139 minSize = max(self.__minSize, self.minimumSizeHint().width()) |
|
140 self.setMinimumWidth(minSize) |
140 self.setMaximumWidth(self.__maxSize) |
141 self.setMaximumWidth(self.__maxSize) |
141 if self.splitter: |
142 if self.splitter: |
|
143 index = self.splitter.indexOf(self) |
|
144 self.splitterSizes[index] = max(self.splitterSizes[index], minSize+10) |
142 self.splitter.setSizes(self.splitterSizes) |
145 self.splitter.setSizes(self.splitterSizes) |
143 |
146 |
144 def isMinimized(self): |
147 def isMinimized(self): |
145 """ |
148 """ |
146 Public method to check the minimized state. |
149 Public method to check the minimized state. |
198 (QIcon, string) |
201 (QIcon, string) |
199 @param label the labeltext of the tab (string) (only to be |
202 @param label the labeltext of the tab (string) (only to be |
200 used, if the second parameter is a QIcon) |
203 used, if the second parameter is a QIcon) |
201 """ |
204 """ |
202 if label: |
205 if label: |
203 self.__tabBar.addTab(iconOrLabel, label) |
206 index = self.__tabBar.addTab(iconOrLabel, "") |
|
207 self.__tabBar.setTabToolTip(index, label) |
204 else: |
208 else: |
205 self.__tabBar.addTab(iconOrLabel) |
209 self.__tabBar.addTab(iconOrLabel) |
206 self.__stackedWidget.addWidget(widget) |
210 self.__stackedWidget.addWidget(widget) |
207 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
211 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
208 self.__minSize = self.minimumSizeHint().height() |
212 self.__minSize = self.minimumSizeHint().height() |
219 (QIcon, string) |
223 (QIcon, string) |
220 @param label the labeltext of the tab (string) (only to be |
224 @param label the labeltext of the tab (string) (only to be |
221 used, if the second parameter is a QIcon) |
225 used, if the second parameter is a QIcon) |
222 """ |
226 """ |
223 if label: |
227 if label: |
224 self.__tabBar.insertTab(index, iconOrLabel, label) |
228 self.__tabBar.insertTab(index, iconOrLabel, "") |
|
229 self.__tabBar.setTabToolTip(index, label) |
225 else: |
230 else: |
226 self.__tabBar.insertTab(index, iconOrLabel) |
231 self.__tabBar.insertTab(index, iconOrLabel) |
227 self.__stackedWidget.insertWidget(index, widget) |
232 self.__stackedWidget.insertWidget(index, widget) |
228 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
233 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
229 self.__minSize = self.minimumSizeHint().height() |
234 self.__minSize = self.minimumSizeHint().height() |
501 @return flag indicating success (boolean) |
506 @return flag indicating success (boolean) |
502 """ |
507 """ |
503 if state.isEmpty(): |
508 if state.isEmpty(): |
504 return False |
509 return False |
505 |
510 |
|
511 if self.__orientation in [E5SideBar.North, E5SideBar.South]: |
|
512 minSize = self.layout.minimumSize().height() |
|
513 else: |
|
514 minSize = self.layout.minimumSize().width() |
|
515 |
506 data = QByteArray(state) |
516 data = QByteArray(state) |
507 stream = QDataStream(data, QIODevice.ReadOnly) |
517 stream = QDataStream(data, QIODevice.ReadOnly) |
508 stream.readUInt16() # version |
518 stream.readUInt16() # version |
509 minimized = stream.readBool() |
519 minimized = stream.readBool() |
510 |
520 |
511 if minimized: |
521 if minimized: |
512 self.shrink() |
522 self.shrink() |
513 |
523 |
514 stream >> self.__bigSize |
524 stream >> self.__bigSize |
515 self.__minSize = stream.readUInt16() |
525 self.__minSize = max(stream.readUInt16(), minSize) |
516 self.__maxSize = stream.readUInt16() |
526 self.__maxSize = stream.readUInt16() |
517 count = stream.readUInt16() |
527 count = stream.readUInt16() |
518 self.splitterSizes = [] |
528 self.splitterSizes = [] |
519 for i in range(count): |
529 for i in range(count): |
520 self.splitterSizes.append(stream.readUInt16()) |
530 self.splitterSizes.append(stream.readUInt16()) |
|
531 if self.splitter: |
|
532 index = self.splitter.indexOf(self) |
|
533 self.splitterSizes[index] = max(self.splitterSizes[index], minSize) |
521 |
534 |
522 self.__autoHide = stream.readBool() |
535 self.__autoHide = stream.readBool() |
523 self.__autoHideButton.setChecked(not self.__autoHide) |
536 self.__autoHideButton.setChecked(not self.__autoHide) |
524 |
537 |
525 if not minimized: |
538 if not minimized: |