diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index eca479ee400..97f37e0d966 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -248,6 +248,7 @@ public: { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); setItemDelegate(new CategoryListViewDelegate(this)); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); } virtual QSize sizeHint() const @@ -257,6 +258,16 @@ public: width += verticalScrollBar()->width(); return QSize(width, 100); } + + // QListView installs a event filter on its scrollbars + virtual bool eventFilter(QObject *obj, QEvent *event) + { + if (obj == verticalScrollBar() + && (event->type() == QEvent::Show + || event->type() == QEvent::Hide)) + updateGeometry(); + return QListView::eventFilter(obj, event); + } }; // ----------- SettingsDialog