--- a/eric6/Preferences/ConfigurationDialog.py Sat Oct 03 18:11:45 2020 +0200 +++ b/eric6/Preferences/ConfigurationDialog.py Sun Oct 04 15:25:17 2020 +0200 @@ -16,7 +16,7 @@ from PyQt5.QtWidgets import ( QSizePolicy, QSpacerItem, QWidget, QTreeWidget, QStackedWidget, QDialog, QSplitter, QScrollArea, QApplication, QDialogButtonBox, QFrame, - QVBoxLayout, QTreeWidgetItem, QLabel + QVBoxLayout, QTreeWidgetItem, QLabel, QAbstractScrollArea ) from E5Gui.E5Application import e5App @@ -496,7 +496,7 @@ widget. """ self.setObjectName("ConfigurationDialog") - self.resize(900, 650) + self.resize(900, 750) self.verticalLayout_2 = QVBoxLayout(self) self.verticalLayout_2.setSpacing(6) self.verticalLayout_2.setContentsMargins(6, 6, 6, 6) @@ -524,7 +524,8 @@ self.scrollArea.setFrameShape(QFrame.NoFrame) self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) - self.scrollArea.setWidgetResizable(True) + self.scrollArea.setWidgetResizable(False) + self.scrollArea.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToContents) self.scrollArea.setObjectName("scrollArea") self.configStack = QStackedWidget() @@ -723,18 +724,7 @@ if item.data(0, Qt.UserRole) == pageName: self.configList.setCurrentItem(item) self.configStack.setCurrentWidget(page) - ssize = self.scrollArea.size() - if self.scrollArea.horizontalScrollBar(): - ssize.setHeight( - ssize.height() - - self.scrollArea.horizontalScrollBar().height() - 2) - if self.scrollArea.verticalScrollBar(): - ssize.setWidth( - ssize.width() - - self.scrollArea.verticalScrollBar().width() - 2) - psize = page.minimumSizeHint() - self.configStack.resize(max(ssize.width(), psize.width()), - max(ssize.height(), psize.height())) + self.__resizeConfigStack() if page != self.emptyPage: page.polishPage() @@ -751,7 +741,33 @@ sb.setValue(0) self.__currentConfigurationPageName = pageName + + def resizeEvent(self, evt): + """ + Protected method to handle the resizing of the widget. + @param evt reference to the event object + @type QResizeEvent + """ + self.__resizeConfigStack() + + def __resizeConfigStack(self): + """ + Private method to resize the stack of configuration pages. + """ + ssize = self.scrollArea.size() + if self.scrollArea.horizontalScrollBar(): + ssize.setHeight( + ssize.height() - + self.scrollArea.horizontalScrollBar().height() - 2) + if self.scrollArea.verticalScrollBar(): + ssize.setWidth( + ssize.width() - + self.scrollArea.verticalScrollBar().width() - 2) + psize = self.configStack.currentWidget().sizeHint() + self.configStack.resize(max(ssize.width(), psize.width()), + max(ssize.height(), psize.height())) + def getConfigurationPageName(self): """ Public method to get the page name of the current page.