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