From ebed1ef30620b3b30f9c7b0dd9fd52a025753d2d Mon Sep 17 00:00:00 2001 From: con Date: Tue, 29 Mar 2011 17:54:15 +0200 Subject: [PATCH] Fix crash when filtering in the preferences. Need to ensure creation of all tabs before even the proxy model is informed. Task-number: QTCREATORBUG-4272 Reviewed-by: Robert Loehning --- src/plugins/coreplugin/dialogs/settingsdialog.cpp | 2 ++ src/plugins/coreplugin/dialogs/settingsdialog.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index e0c0174974..3c8599f55a 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -319,6 +319,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) : // The order of the slot connection matters here, the filter slot // opens the matching page after the model has filtered. connect(m_filterLineEdit, SIGNAL(filterChanged(QString)), + this, SLOT(ensureAllCategoryWidgets())); + connect(m_filterLineEdit, SIGNAL(filterChanged(QString)), m_proxyModel, SLOT(setFilterFixedString(QString))); connect(m_filterLineEdit, SIGNAL(filterChanged(QString)), this, SLOT(filter(QString))); m_categoryList->setFocus(); diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h index 3d82aae6e1..fc698a1726 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.h +++ b/src/plugins/coreplugin/dialogs/settingsdialog.h @@ -88,6 +88,7 @@ private slots: void currentChanged(const QModelIndex ¤t); void currentTabChanged(int); void filter(const QString &text); + void ensureAllCategoryWidgets(); private: SettingsDialog(QWidget *parent); @@ -98,7 +99,6 @@ private: void showPage(const QString &categoryId, const QString &pageId); void updateEnabledTabs(Category *category, const QString &searchText); void ensureCategoryWidget(Category *category); - void ensureAllCategoryWidgets(); void disconnectTabWidgets(); const QList m_pages; -- 2.11.0