diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index d87488ac3f5..c88b3594535 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -29,33 +29,34 @@ #include "settingsdialog.h" -#include #include "icore.h" +#include #include #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include static const char categoryKeyC[] = "General/LastPreferenceCategory"; static const char pageKeyC[] = "General/LastPreferencePage"; @@ -64,7 +65,7 @@ const int categoryIconSize = 24; namespace Core { namespace Internal { -QPointer SettingsDialog::m_instance = 0; +static QPointer m_instance = 0; // ----------- Category model @@ -325,11 +326,11 @@ SettingsDialog::SettingsDialog(QWidget *parent) : m_categoryList->setFocus(); } -void SettingsDialog::showPage(const QString &categoryId, const QString &pageId) +void SettingsDialog::showPage(Id categoryId, Id pageId) { // handle the case of "show last page" - QString initialCategory = categoryId; - QString initialPage = pageId; + QString initialCategory = categoryId.toString(); + QString initialPage = pageId.toString(); if (initialCategory.isEmpty() && initialPage.isEmpty()) { QSettings *settings = ICore::settings(); initialCategory = settings->value(QLatin1String(categoryKeyC), QVariant(QString())).toString(); @@ -565,12 +566,10 @@ QSize SettingsDialog::sizeHint() const } SettingsDialog *SettingsDialog::getSettingsDialog(QWidget *parent, - const QString &initialCategory, - const QString &initialPage) + Id initialCategory, Id initialPage) { - if (!m_instance) { + if (!m_instance) m_instance = new SettingsDialog(parent); - } m_instance->showPage(initialCategory, initialPage); return m_instance; } @@ -602,6 +601,5 @@ bool SettingsDialog::execDialog() return m_applied; } - } // namespace Internal } // namespace Core diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h index 1b5ad446c70..cbd07b03b74 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.h +++ b/src/plugins/coreplugin/dialogs/settingsdialog.h @@ -31,6 +31,7 @@ #define SETTINGSDIALOG_H #include "coreplugin/dialogs/ioptionspage.h" +#include "coreplugin/id.h" #include #include @@ -46,9 +47,7 @@ class QLabel; class QListView; QT_END_NAMESPACE -namespace Utils { - class FilterLineEdit; -} +namespace Utils { class FilterLineEdit; } namespace Core { namespace Internal { @@ -61,13 +60,11 @@ class SettingsDialog : public QDialog Q_OBJECT public: - // Returns a settings dialog. This makes sure that always only // a single settings dialog instance is running. // The dialog will be deleted automatically on close. static SettingsDialog *getSettingsDialog(QWidget *parent, - const QString &initialCategory = QString(), - const QString &initialPage = QString()); + Id initialCategory, Id initialPage); // Run the dialog and wait for it to finish. // Returns if the changes have been applied. bool execDialog(); @@ -92,7 +89,7 @@ private: void createGui(); void showCategory(int index); - void showPage(const QString &categoryId, const QString &pageId); + void showPage(Id categoryId, Id pageId); void updateEnabledTabs(Category *category, const QString &searchText); void ensureCategoryWidget(Category *category); void disconnectTabWidgets(); @@ -112,7 +109,6 @@ private: bool m_applied; bool m_finished; QList m_eventLoops; - static QPointer m_instance; }; } // namespace Internal diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 8106095f388..23ef61f5651 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -965,7 +965,7 @@ bool MainWindow::showOptionsDialog(Id category, Id page, QWidget *parent) emit m_coreImpl->optionsDialogRequested(); if (!parent) parent = this; - SettingsDialog *dialog = SettingsDialog::getSettingsDialog(parent, category.toString(), page.toString()); + SettingsDialog *dialog = SettingsDialog::getSettingsDialog(parent, category, page); return dialog->execDialog(); }