aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-12-03 14:17:03 +0100
committerEike Ziller <eike.ziller@digia.com>2013-12-10 13:31:48 +0100
commitdeb43b4c8a261855252aeee09fd6df283576932e (patch)
treea844379f47974fd681b86aa2187735e03639b567
parentea1a92484ac99057b06130a012164bf9788650e9 (diff)
Preferences: Add default implementation for filtering
The default "matches" method now takes the widget and looks for all child labels, checkboxes, push buttons and group boxes. Because of that, the former "createWidget" method can be called multiple times without creating a new widget (-->widget()), and the "finished" method must ensure that the created widget gets deleted, since not all widgets that were created are added to the UI anymore. Change-Id: Ia231c7c78dd8819146668e6447d36d22e7836904 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
-rw-r--r--src/plugins/android/androidsettingspage.cpp13
-rw-r--r--src/plugins/android/androidsettingspage.h8
-rw-r--r--src/plugins/android/androidsettingswidget.cpp18
-rw-r--r--src/plugins/android/androidsettingswidget.h3
-rw-r--r--src/plugins/bazaar/optionspage.cpp29
-rw-r--r--src/plugins/bazaar/optionspage.h5
-rw-r--r--src/plugins/clearcase/settingspage.cpp31
-rw-r--r--src/plugins/clearcase/settingspage.h10
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp29
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.h10
-rw-r--r--src/plugins/coreplugin/actionmanager/commandmappings.cpp72
-rw-r--r--src/plugins/coreplugin/actionmanager/commandmappings.h4
-rw-r--r--src/plugins/coreplugin/dialogs/ioptionspage.cpp61
-rw-r--r--src/plugins/coreplugin/dialogs/ioptionspage.h11
-rw-r--r--src/plugins/coreplugin/dialogs/settingsdialog.cpp2
-rw-r--r--src/plugins/coreplugin/dialogs/shortcutsettings.cpp15
-rw-r--r--src/plugins/coreplugin/dialogs/shortcutsettings.h4
-rw-r--r--src/plugins/coreplugin/generalsettings.cpp110
-rw-r--r--src/plugins/coreplugin/generalsettings.h4
-rw-r--r--src/plugins/coreplugin/mimetypesettings.cpp19
-rw-r--r--src/plugins/coreplugin/mimetypesettings.h3
-rw-r--r--src/plugins/coreplugin/toolsettings.cpp16
-rw-r--r--src/plugins/coreplugin/toolsettings.h4
-rw-r--r--src/plugins/cpaster/fileshareprotocolsettingspage.cpp8
-rw-r--r--src/plugins/cpaster/fileshareprotocolsettingspage.h2
-rw-r--r--src/plugins/cpaster/settingspage.cpp16
-rw-r--r--src/plugins/cpaster/settingspage.h4
-rw-r--r--src/plugins/cpptools/completionsettingspage.cpp111
-rw-r--r--src/plugins/cpptools/completionsettingspage.h7
-rw-r--r--src/plugins/cpptools/cppcodemodelsettingspage.cpp31
-rw-r--r--src/plugins/cpptools/cppcodemodelsettingspage.h8
-rw-r--r--src/plugins/cpptools/cppcodestylesettingspage.cpp67
-rw-r--r--src/plugins/cpptools/cppcodestylesettingspage.h8
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp29
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.h8
-rw-r--r--src/plugins/cvs/settingspage.cpp32
-rw-r--r--src/plugins/cvs/settingspage.h10
-rw-r--r--src/plugins/debugger/cdb/cdboptionspage.cpp52
-rw-r--r--src/plugins/debugger/cdb/cdboptionspage.h10
-rw-r--r--src/plugins/debugger/commonoptionspage.cpp98
-rw-r--r--src/plugins/debugger/commonoptionspage.h10
-rw-r--r--src/plugins/debugger/debuggeroptionspage.cpp119
-rw-r--r--src/plugins/debugger/debuggeroptionspage.h7
-rw-r--r--src/plugins/debugger/gdb/gdboptionspage.cpp57
-rw-r--r--src/plugins/debugger/gdb/gdboptionspage.h6
-rw-r--r--src/plugins/designer/cpp/cppsettingspage.cpp28
-rw-r--r--src/plugins/designer/cpp/cppsettingspage.h6
-rw-r--r--src/plugins/designer/settingspage.cpp8
-rw-r--r--src/plugins/designer/settingspage.h5
-rw-r--r--src/plugins/fakevim/fakevimplugin.cpp240
-rw-r--r--src/plugins/git/gerrit/gerritoptionspage.cpp15
-rw-r--r--src/plugins/git/gerrit/gerritoptionspage.h5
-rw-r--r--src/plugins/git/settingspage.cpp33
-rw-r--r--src/plugins/git/settingspage.h14
-rw-r--r--src/plugins/help/docsettingspage.cpp35
-rw-r--r--src/plugins/help/docsettingspage.h9
-rw-r--r--src/plugins/help/filtersettingspage.cpp45
-rw-r--r--src/plugins/help/filtersettingspage.h7
-rw-r--r--src/plugins/help/generalsettingspage.cpp91
-rw-r--r--src/plugins/help/generalsettingspage.h7
-rw-r--r--src/plugins/ios/iossettingspage.cpp13
-rw-r--r--src/plugins/ios/iossettingspage.h8
-rw-r--r--src/plugins/ios/iossettingswidget.cpp8
-rw-r--r--src/plugins/ios/iossettingswidget.h3
-rw-r--r--src/plugins/locator/settingspage.cpp59
-rw-r--r--src/plugins/locator/settingspage.h11
-rw-r--r--src/plugins/macros/macrooptionspage.cpp7
-rw-r--r--src/plugins/macros/macrooptionspage.h6
-rw-r--r--src/plugins/mercurial/optionspage.cpp28
-rw-r--r--src/plugins/mercurial/optionspage.h7
-rw-r--r--src/plugins/perforce/settingspage.cpp14
-rw-r--r--src/plugins/perforce/settingspage.h10
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp13
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicesettingspage.h8
-rw-r--r--src/plugins/projectexplorer/devicesupport/devicesettingswidget.h2
-rw-r--r--src/plugins/projectexplorer/kitoptionspage.cpp136
-rw-r--r--src/plugins/projectexplorer/kitoptionspage.h7
-rw-r--r--src/plugins/projectexplorer/projectexplorersettingspage.cpp46
-rw-r--r--src/plugins/projectexplorer/projectexplorersettingspage.h7
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.cpp161
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.h7
-rw-r--r--src/plugins/qmldesigner/settingspage.cpp26
-rw-r--r--src/plugins/qmldesigner/settingspage.h11
-rw-r--r--src/plugins/qmljseditor/quicktoolbarsettingspage.cpp24
-rw-r--r--src/plugins/qmljseditor/quicktoolbarsettingspage.h10
-rw-r--r--src/plugins/qmljstools/qmljscodestylesettingspage.cpp38
-rw-r--r--src/plugins/qmljstools/qmljscodestylesettingspage.h7
-rw-r--r--src/plugins/qnx/blackberrykeyspage.cpp6
-rw-r--r--src/plugins/qnx/blackberrykeyspage.h6
-rw-r--r--src/plugins/qnx/blackberryndksettingspage.cpp6
-rw-r--r--src/plugins/qnx/blackberryndksettingspage.h6
-rw-r--r--src/plugins/qtsupport/qtoptionspage.cpp25
-rw-r--r--src/plugins/qtsupport/qtoptionspage.h14
-rw-r--r--src/plugins/subversion/settingspage.cpp34
-rw-r--r--src/plugins/subversion/settingspage.h10
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.cpp54
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.h3
-rw-r--r--src/plugins/texteditor/behaviorsettingswidget.cpp29
-rw-r--r--src/plugins/texteditor/behaviorsettingswidget.h2
-rw-r--r--src/plugins/texteditor/displaysettingspage.cpp36
-rw-r--r--src/plugins/texteditor/displaysettingspage.h3
-rw-r--r--src/plugins/texteditor/fontsettingspage.cpp76
-rw-r--r--src/plugins/texteditor/fontsettingspage.h3
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp62
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightersettingspage.h3
-rw-r--r--src/plugins/texteditor/simplecodestylepreferenceswidget.cpp5
-rw-r--r--src/plugins/texteditor/simplecodestylepreferenceswidget.h1
-rw-r--r--src/plugins/texteditor/snippets/snippetssettingspage.cpp27
-rw-r--r--src/plugins/texteditor/snippets/snippetssettingspage.h3
-rw-r--r--src/plugins/texteditor/tabsettingswidget.cpp15
-rw-r--r--src/plugins/texteditor/tabsettingswidget.h1
-rw-r--r--src/plugins/todo/optionspage.cpp20
-rw-r--r--src/plugins/todo/optionspage.h7
-rw-r--r--src/plugins/updateinfo/settingspage.cpp24
-rw-r--r--src/plugins/updateinfo/settingspage.h8
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp20
-rw-r--r--src/plugins/vcsbase/commonsettingspage.cpp14
-rw-r--r--src/plugins/vcsbase/commonsettingspage.h9
118 files changed, 1150 insertions, 1788 deletions
diff --git a/src/plugins/android/androidsettingspage.cpp b/src/plugins/android/androidsettingspage.cpp
index 95cb4af425..d99c4b94eb 100644
--- a/src/plugins/android/androidsettingspage.cpp
+++ b/src/plugins/android/androidsettingspage.cpp
@@ -52,16 +52,10 @@ AndroidSettingsPage::AndroidSettingsPage(QObject *parent)
setCategoryIcon(QLatin1String(Constants::ANDROID_SETTINGS_CATEGORY_ICON));
}
-bool AndroidSettingsPage::matches(const QString &searchKeyWord) const
+QWidget *AndroidSettingsPage::widget()
{
- return m_keywords.contains(searchKeyWord, Qt::CaseInsensitive);
-}
-
-QWidget *AndroidSettingsPage::createPage(QWidget *parent)
-{
- m_widget = new AndroidSettingsWidget(parent);
- if (m_keywords.isEmpty())
- m_keywords = m_widget->searchKeywords();
+ if (!m_widget)
+ m_widget = new AndroidSettingsWidget;
return m_widget;
}
@@ -97,6 +91,7 @@ void AndroidSettingsPage::apply()
void AndroidSettingsPage::finish()
{
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/android/androidsettingspage.h b/src/plugins/android/androidsettingspage.h
index 2beb36c3cb..a9e966317c 100644
--- a/src/plugins/android/androidsettingspage.h
+++ b/src/plugins/android/androidsettingspage.h
@@ -32,6 +32,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Android {
namespace Internal {
@@ -44,14 +46,12 @@ class AndroidSettingsPage : public Core::IOptionsPage
public:
explicit AndroidSettingsPage(QObject *parent = 0);
- bool matches(const QString &searchKeyWord) const;
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- QString m_keywords;
- AndroidSettingsWidget *m_widget;
+ QPointer<AndroidSettingsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index 4ab8228d0b..24ef4dd2a5 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -129,24 +129,6 @@ AndroidSettingsWidget::~AndroidSettingsWidget()
delete m_ui;
}
-QString AndroidSettingsWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc) << m_ui->SDKLocationLabel->text()
- << ' ' << m_ui->SDKLocationLineEdit->text()
- << ' ' << m_ui->NDKLocationLabel->text()
- << ' ' << m_ui->NDKLocationLineEdit->text()
- << ' ' << m_ui->AntLocationLabel->text()
- << ' ' << m_ui->AntLocationLineEdit->text()
- << ' ' << m_ui->OpenJDKLocationLabel->text()
- << ' ' << m_ui->OpenJDKLocationLineEdit->text()
- << ' ' << m_ui->AVDManagerLabel->text()
- << ' ' << m_ui->DataPartitionSizeLable->text()
- << ' ' << m_ui->DataPartitionSizeSpinBox->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void AndroidSettingsWidget::initGui()
{
m_ui->setupUi(this);
diff --git a/src/plugins/android/androidsettingswidget.h b/src/plugins/android/androidsettingswidget.h
index 74e7fe6d43..bb72957a29 100644
--- a/src/plugins/android/androidsettingswidget.h
+++ b/src/plugins/android/androidsettingswidget.h
@@ -66,11 +66,10 @@ class AndroidSettingsWidget : public QWidget
Q_OBJECT
public:
// Todo: This would be so much simpler if it just used Utils::PathChooser!!!
- AndroidSettingsWidget(QWidget *parent);
+ AndroidSettingsWidget(QWidget *parent = 0);
~AndroidSettingsWidget();
void saveSettings(bool saveNow = false);
- QString searchKeywords() const;
private slots:
void sdkLocationEditingFinished();
diff --git a/src/plugins/bazaar/optionspage.cpp b/src/plugins/bazaar/optionspage.cpp
index fba09e02a4..bf35dc436c 100644
--- a/src/plugins/bazaar/optionspage.cpp
+++ b/src/plugins/bazaar/optionspage.cpp
@@ -67,37 +67,17 @@ void OptionsPageWidget::setSettings(const BazaarSettings &s)
m_ui.timeout->setValue(s.intValue(BazaarSettings::timeoutKey));
}
-QString OptionsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui.configGroupBox->title()
- << sep << m_ui.commandLabel->text()
- << sep << m_ui.userGroupBox->title()
- << sep << m_ui.defaultUsernameLabel->text()
- << sep << m_ui.defaultEmailLabel->text()
- << sep << m_ui.miscGroupBox->title()
- << sep << m_ui.showLogEntriesLabel->text()
- << sep << m_ui.timeoutSecondsLabel->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
OptionsPage::OptionsPage()
{
setId(VcsBase::Constants::VCS_ID_BAZAAR);
setDisplayName(tr("Bazaar"));
}
-QWidget *OptionsPage::createPage(QWidget *parent)
+QWidget *OptionsPage::widget()
{
if (!m_optionsPageWidget)
- m_optionsPageWidget = new OptionsPageWidget(parent);
+ m_optionsPageWidget = new OptionsPageWidget;
m_optionsPageWidget->setSettings(BazaarPlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_optionsPageWidget->searchKeywords();
return m_optionsPageWidget;
}
@@ -114,8 +94,3 @@ void OptionsPage::apply()
emit settingsChanged();
}
}
-
-bool OptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
diff --git a/src/plugins/bazaar/optionspage.h b/src/plugins/bazaar/optionspage.h
index b8f7bf6260..d3928eb6b1 100644
--- a/src/plugins/bazaar/optionspage.h
+++ b/src/plugins/bazaar/optionspage.h
@@ -50,7 +50,6 @@ public:
BazaarSettings settings() const;
void setSettings(const BazaarSettings &s);
- QString searchKeywords() const;
private:
Ui::OptionsPage m_ui;
@@ -64,16 +63,14 @@ class OptionsPage : public VcsBase::VcsBaseOptionsPage
public:
OptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish() { }
- bool matches(const QString &s) const;
signals:
void settingsChanged();
private:
- QString m_searchKeywords;
QPointer<OptionsPageWidget> m_optionsPageWidget;
};
diff --git a/src/plugins/clearcase/settingspage.cpp b/src/plugins/clearcase/settingspage.cpp
index bf1a3ecef8..e2816344b8 100644
--- a/src/plugins/clearcase/settingspage.cpp
+++ b/src/plugins/clearcase/settingspage.cpp
@@ -107,25 +107,6 @@ void SettingsPageWidget::setSettings(const ClearCaseSettings &s)
m_ui.indexOnlyVOBsEdit->setText(s.indexOnlyVOBs);
}
-QString SettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc) << m_ui.commandLabel->text()
- << sep << m_ui.autoCheckOutCheckBox->text()
- << sep << m_ui.externalDiffRadioButton->text()
- << sep << m_ui.graphicalDiffRadioButton->text()
- << sep << m_ui.diffArgsLabel->text()
- << sep << m_ui.historyCountLabel->text()
- << sep << m_ui.promptCheckBox->text()
- << sep << m_ui.disableIndexerCheckBox->text()
- << sep << m_ui.timeOutLabel->text()
- << sep << m_ui.indexOnlyVOBsLabel->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
SettingsPage::SettingsPage() :
m_widget(0)
{
@@ -133,12 +114,11 @@ SettingsPage::SettingsPage() :
setDisplayName(tr("ClearCase"));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
+ if (!m_widget)
+ m_widget = new SettingsPageWidget;
m_widget->setSettings(ClearCasePlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
return m_widget;
}
@@ -146,8 +126,3 @@ void SettingsPage::apply()
{
ClearCasePlugin::instance()->setSettings(m_widget->settings());
}
-
-bool SettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
diff --git a/src/plugins/clearcase/settingspage.h b/src/plugins/clearcase/settingspage.h
index 9b40545c07..0cdacf2164 100644
--- a/src/plugins/clearcase/settingspage.h
+++ b/src/plugins/clearcase/settingspage.h
@@ -35,6 +35,8 @@
#include "ui_settingspage.h"
+#include <QPointer>
+
namespace ClearCase {
namespace Internal {
@@ -50,8 +52,6 @@ public:
ClearCaseSettings settings() const;
void setSettings(const ClearCaseSettings &);
- QString searchKeywords() const;
-
private:
Ui::SettingsPage m_ui;
};
@@ -64,14 +64,12 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish() { }
- bool matches(const QString &) const;
private:
- QString m_searchKeywords;
- SettingsPageWidget* m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace ClearCase
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index fe0c2561d0..556a8d88dc 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -291,22 +291,23 @@ QString CMakeSettingsPage::findCmakeExecutable() const
return Utils::Environment::systemEnvironment().searchInPath(QLatin1String("cmake"));
}
-QWidget *CMakeSettingsPage::createPage(QWidget *parent)
+QWidget *CMakeSettingsPage::widget()
{
- QWidget *outerWidget = new QWidget(parent);
- QFormLayout *formLayout = new QFormLayout(outerWidget);
- formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
- m_pathchooser = new Utils::PathChooser;
- m_pathchooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
- formLayout->addRow(tr("Executable:"), m_pathchooser);
- formLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Ignored, QSizePolicy::MinimumExpanding));
+ if (!m_widget) {
+ m_widget = new QWidget;
+ QFormLayout *formLayout = new QFormLayout(m_widget);
+ formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
+ m_pathchooser = new Utils::PathChooser;
+ m_pathchooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
+ formLayout->addRow(tr("Executable:"), m_pathchooser);
+ formLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Ignored, QSizePolicy::MinimumExpanding));
+
+ m_preferNinja = new QCheckBox(tr("Prefer Ninja generator (CMake 2.8.9 or higher required)"));
+ formLayout->addRow(m_preferNinja);
+ }
m_pathchooser->setPath(m_cmakeValidatorForUser.cmakeExecutable());
-
- m_preferNinja = new QCheckBox(tr("Prefer Ninja generator (CMake 2.8.9 or higher required)"));
m_preferNinja->setChecked(preferNinja());
- formLayout->addRow(m_preferNinja);
-
- return outerWidget;
+ return m_widget;
}
void CMakeSettingsPage::saveSettings() const
@@ -329,7 +330,7 @@ void CMakeSettingsPage::apply()
void CMakeSettingsPage::finish()
{
-
+ delete m_widget;
}
QString CMakeSettingsPage::cmakeExecutable() const
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
index 55e4507147..f99ed968f2 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
@@ -40,12 +40,13 @@
#include <utils/environment.h>
#include <utils/pathchooser.h>
-#include <QFuture>
-#include <QStringList>
+#include <QAction>
#include <QCheckBox>
#include <QDir>
+#include <QFuture>
+#include <QPointer>
+#include <QStringList>
#include <QVector>
-#include <QAction>
#include "cmakevalidator.h"
@@ -108,7 +109,7 @@ public:
CMakeSettingsPage();
~CMakeSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
@@ -125,6 +126,7 @@ private:
void saveSettings() const;
QString findCmakeExecutable() const;
+ QPointer<QWidget> m_widget;
Utils::PathChooser *m_pathchooser;
QCheckBox *m_preferNinja;
CMakeValidator m_cmakeValidatorForUser;
diff --git a/src/plugins/coreplugin/actionmanager/commandmappings.cpp b/src/plugins/coreplugin/actionmanager/commandmappings.cpp
index ee17ff370f..59da19d70a 100644
--- a/src/plugins/coreplugin/actionmanager/commandmappings.cpp
+++ b/src/plugins/coreplugin/actionmanager/commandmappings.cpp
@@ -50,42 +50,43 @@ CommandMappings::CommandMappings(QObject *parent)
// IOptionsPage
-QWidget *CommandMappings::createPage(QWidget *parent)
+QWidget *CommandMappings::widget()
{
- m_page = new Ui::CommandMappings();
- QWidget *w = new QWidget(parent);
- m_page->setupUi(w);
- m_page->targetEdit->setAutoHideButton(Utils::FancyLineEdit::Right, true);
- m_page->targetEdit->setPlaceholderText(QString());
- m_page->targetEdit->installEventFilter(this);
-
- connect(m_page->targetEdit, SIGNAL(buttonClicked(Utils::FancyLineEdit::Side)),
- this, SLOT(removeTargetIdentifier()));
- connect(m_page->resetButton, SIGNAL(clicked()),
- this, SLOT(resetTargetIdentifier()));
- connect(m_page->exportButton, SIGNAL(clicked()),
- this, SLOT(exportAction()));
- connect(m_page->importButton, SIGNAL(clicked()),
- this, SLOT(importAction()));
- connect(m_page->defaultButton, SIGNAL(clicked()),
- this, SLOT(defaultAction()));
-
- initialize();
-
- m_page->commandList->sortByColumn(0, Qt::AscendingOrder);
-
- connect(m_page->filterEdit, SIGNAL(textChanged(QString)),
- this, SLOT(filterChanged(QString)));
- connect(m_page->commandList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
- this, SLOT(commandChanged(QTreeWidgetItem*)));
- connect(m_page->targetEdit, SIGNAL(textChanged(QString)),
- this, SLOT(targetIdentifierChanged()));
-
- new Utils::HeaderViewStretcher(m_page->commandList->header(), 1);
-
- commandChanged(0);
-
- return w;
+ if (!m_widget) {
+ m_page = new Ui::CommandMappings();
+ m_widget = new QWidget;
+ m_page->setupUi(m_widget);
+ m_page->targetEdit->setAutoHideButton(Utils::FancyLineEdit::Right, true);
+ m_page->targetEdit->setPlaceholderText(QString());
+ m_page->targetEdit->installEventFilter(this);
+
+ connect(m_page->targetEdit, SIGNAL(buttonClicked(Utils::FancyLineEdit::Side)),
+ this, SLOT(removeTargetIdentifier()));
+ connect(m_page->resetButton, SIGNAL(clicked()),
+ this, SLOT(resetTargetIdentifier()));
+ connect(m_page->exportButton, SIGNAL(clicked()),
+ this, SLOT(exportAction()));
+ connect(m_page->importButton, SIGNAL(clicked()),
+ this, SLOT(importAction()));
+ connect(m_page->defaultButton, SIGNAL(clicked()),
+ this, SLOT(defaultAction()));
+
+ initialize();
+
+ m_page->commandList->sortByColumn(0, Qt::AscendingOrder);
+
+ connect(m_page->filterEdit, SIGNAL(textChanged(QString)),
+ this, SLOT(filterChanged(QString)));
+ connect(m_page->commandList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
+ this, SLOT(commandChanged(QTreeWidgetItem*)));
+ connect(m_page->targetEdit, SIGNAL(textChanged(QString)),
+ this, SLOT(targetIdentifierChanged()));
+
+ new Utils::HeaderViewStretcher(m_page->commandList->header(), 1);
+
+ commandChanged(0);
+ }
+ return m_widget;
}
void CommandMappings::setImportExportEnabled(bool enabled)
@@ -126,6 +127,7 @@ void CommandMappings::setTargetHeader(const QString &s)
void CommandMappings::finish()
{
+ delete m_widget;
if (!m_page) // page was never shown
return;
delete m_page;
diff --git a/src/plugins/coreplugin/actionmanager/commandmappings.h b/src/plugins/coreplugin/actionmanager/commandmappings.h
index 42ed428d67..3b3c9731c9 100644
--- a/src/plugins/coreplugin/actionmanager/commandmappings.h
+++ b/src/plugins/coreplugin/actionmanager/commandmappings.h
@@ -33,6 +33,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
#include <QObject>
+#include <QPointer>
QT_BEGIN_NAMESPACE
class QLineEdit;
@@ -60,7 +61,7 @@ protected slots:
protected:
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
virtual void apply() {}
virtual void finish();
@@ -80,6 +81,7 @@ protected:
virtual void markPossibleCollisions(QTreeWidgetItem *) {}
virtual void resetCollisionMarkers() {}
private:
+ QPointer<QWidget> m_widget;
Internal::Ui::CommandMappings *m_page;
};
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.cpp b/src/plugins/coreplugin/dialogs/ioptionspage.cpp
index 12ad324c7b..c252bdf477 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.cpp
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.cpp
@@ -29,6 +29,11 @@
#include "ioptionspage.h"
+#include <QCheckBox>
+#include <QGroupBox>
+#include <QLabel>
+#include <QPushButton>
+
/*!
\class Core::IOptionsPage
\mainclass
@@ -43,12 +48,58 @@
\li \c displayName() is the (translated) name for display
\li \c category() is the unique id for the category that the page should be displayed in
\li \c displayCategory() is the translated name of the category
- \li \c createPage() is called to retrieve the widget to show in the
- \gui Options dialog
- The widget will be destroyed by the widget hierarchy when the dialog closes
+ \li \c widget() is called to retrieve the widget to show in the
+ \gui Options dialog. You should create a widget lazily here, and delete it again in the
+ finish() method. This method can be called multiple times, so you should only create a new
+ widget if the old one was deleted.
\li \c apply() is called to store the settings. It should detect if any changes have been
made and store those
- \li \c finish() is called directly before the \gui Options dialog closes
- \li \c matches() is used for the \gui Options dialog search filter
+ \li \c finish() is called directly before the \gui Options dialog closes. Here you should delete
+ the widget that was created in widget() to free resources.
+ \li \c matches() is used for the \gui Options dialog search filter. The default implementation
+ takes the widget() and searches for all labels, buttons, checkboxes and group boxes,
+ and matches on their texts/titles. You can implement your own matching algorithm, but
+ usually the default implementation will work fine.
\endlist
*/
+
+
+Core::IOptionsPage::IOptionsPage(QObject *parent)
+ : QObject(parent),
+ m_keywordsInitialized(false)
+{
+
+}
+
+Core::IOptionsPage::~IOptionsPage()
+{
+}
+
+bool Core::IOptionsPage::matches(const QString &searchKeyWord) const
+{
+ if (!m_keywordsInitialized) {
+ IOptionsPage *that = const_cast<IOptionsPage *>(this);
+ QWidget *widget = that->widget();
+ if (!widget)
+ return false;
+ // find common subwidgets
+ foreach (const QLabel *label, widget->findChildren<QLabel *>())
+ m_keywords << label->text();
+ foreach (const QCheckBox *checkbox, widget->findChildren<QCheckBox *>())
+ m_keywords << checkbox->text();
+ foreach (const QPushButton *pushButton, widget->findChildren<QPushButton *>())
+ m_keywords << pushButton->text();
+ foreach (const QGroupBox *groupBox, widget->findChildren<QGroupBox *>())
+ m_keywords << groupBox->title();
+
+ // clean up accelerators
+ QMutableStringListIterator it(m_keywords);
+ while (it.hasNext())
+ it.next().remove(QLatin1Char('&'));
+ m_keywordsInitialized = true;
+ }
+ foreach (const QString &keyword, m_keywords)
+ if (keyword.contains(searchKeyWord, Qt::CaseInsensitive))
+ return true;
+ return false;
+}
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h
index 1fa1e51447..e9feaed7b0 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.h
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.h
@@ -34,6 +34,7 @@
#include <QIcon>
#include <QObject>
+#include <QStringList>
namespace Core {
@@ -42,7 +43,8 @@ class CORE_EXPORT IOptionsPage : public QObject
Q_OBJECT
public:
- IOptionsPage(QObject *parent = 0) : QObject(parent) {}
+ IOptionsPage(QObject *parent = 0);
+ virtual ~IOptionsPage();
Id id() const { return m_id; }
QString displayName() const { return m_displayName; }
@@ -50,8 +52,8 @@ public:
QString displayCategory() const { return m_displayCategory; }
QIcon categoryIcon() const { return QIcon(m_categoryIcon); }
- virtual bool matches(const QString & /* searchKeyWord*/) const { return false; }
- virtual QWidget *createPage(QWidget *parent) = 0;
+ virtual bool matches(const QString &searchKeyWord) const;
+ virtual QWidget *widget() = 0;
virtual void apply() = 0;
virtual void finish() = 0;
@@ -67,6 +69,9 @@ protected:
QString m_displayName;
QString m_displayCategory;
QString m_categoryIcon;
+
+ mutable bool m_keywordsInitialized;
+ mutable QStringList m_keywords;
};
/*
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index c265adbba3..ef0081b675 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -440,7 +440,7 @@ void SettingsDialog::ensureCategoryWidget(Category *category)
QTabWidget *tabWidget = new QTabWidget;
for (int j = 0; j < category->pages.size(); ++j) {
IOptionsPage *page = category->pages.at(j);
- QWidget *widget = page->createPage(0);
+ QWidget *widget = page->widget();
tabWidget->addTab(widget, page->displayName());
}
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index a774587f92..eed6cdc4a9 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -61,12 +61,12 @@ ShortcutSettings::ShortcutSettings(QObject *parent)
setCategoryIcon(QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE_ICON));
}
-QWidget *ShortcutSettings::createPage(QWidget *parent)
+QWidget *ShortcutSettings::widget()
{
m_initialized = true;
m_keyNum = m_key[0] = m_key[1] = m_key[2] = m_key[3] = 0;
- QWidget *w = CommandMappings::createPage(parent);
+ QWidget *w = CommandMappings::widget();
const QString pageTitle = tr("Keyboard Shortcuts");
const QString targetLabelText = tr("Key sequence:");
@@ -78,12 +78,6 @@ QWidget *ShortcutSettings::createPage(QWidget *parent)
setTargetHeader(editTitle);
targetEdit()->setPlaceholderText(tr("Type to set shortcut"));
- if (m_searchKeywords.isEmpty()) {
- QTextStream(&m_searchKeywords) << ' ' << pageTitle
- << ' ' << targetLabelText
- << ' ' << editTitle;
- }
-
return w;
}
@@ -102,11 +96,6 @@ void ShortcutSettings::finish()
m_initialized = false;
}
-bool ShortcutSettings::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
bool ShortcutSettings::eventFilter(QObject *o, QEvent *e)
{
Q_UNUSED(o)
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.h b/src/plugins/coreplugin/dialogs/shortcutsettings.h
index 888e8deacc..8511f8b994 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.h
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.h
@@ -62,10 +62,9 @@ class ShortcutSettings : public Core::CommandMappings
public:
ShortcutSettings(QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
protected:
bool eventFilter(QObject *o, QEvent *e);
@@ -94,7 +93,6 @@ private:
QList<ShortcutItem *> m_scitems;
int m_key[4], m_keyNum;
- QString m_searchKeywords;
bool m_initialized;
};
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index 834879c172..40cb62ec3b 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -102,76 +102,61 @@ void GeneralSettings::fillLanguageBox() const
}
}
-QWidget *GeneralSettings::createPage(QWidget *parent)
+QWidget *GeneralSettings::widget()
{
- m_page = new Ui::GeneralSettings();
- m_widget = new QWidget(parent);
- m_page->setupUi(m_widget);
-
- fillLanguageBox();
-
- m_page->colorButton->setColor(StyleHelper::requestedBaseColor());
- m_page->reloadBehavior->setCurrentIndex(EditorManager::reloadSetting());
- if (HostOsInfo::isAnyUnixHost()) {
- QSettings *settings = Core::ICore::settings();
- const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators();
- const QString currentTerminal = ConsoleProcess::terminalEmulator(settings, false);
- m_page->terminalComboBox->addItems(availableTerminals);
- m_page->terminalComboBox->lineEdit()->setText(currentTerminal);
- m_page->terminalComboBox->lineEdit()->setPlaceholderText(ConsoleProcess::defaultTerminalEmulator());
- } else {
- m_page->terminalLabel->hide();
- m_page->terminalComboBox->hide();
- m_page->resetTerminalButton->hide();
- }
-
- if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost()) {
- QSettings *settings = Core::ICore::settings();
- m_page->externalFileBrowserEdit->setText(UnixUtils::fileBrowser(settings));
- } else {
- m_page->externalFileBrowserLabel->hide();
- m_page->externalFileBrowserEdit->hide();
- m_page->resetFileBrowserButton->hide();
- m_page->helpExternalFileBrowserButton->hide();
- }
-
- m_page->autoSaveCheckBox->setChecked(EditorManager::autoSaveEnabled());
- m_page->autoSaveInterval->setValue(EditorManager::autoSaveInterval());
- m_page->resetWarningsButton->setEnabled(Core::InfoBar::anyGloballySuppressed()
- || Utils::CheckableMessageBox::hasSuppressedQuestions(ICore::settings()));
+ if (!m_widget) {
+ m_page = new Ui::GeneralSettings();
+ m_widget = new QWidget;
+ m_page->setupUi(m_widget);
+
+ fillLanguageBox();
+
+ m_page->colorButton->setColor(StyleHelper::requestedBaseColor());
+ m_page->reloadBehavior->setCurrentIndex(EditorManager::reloadSetting());
+ if (HostOsInfo::isAnyUnixHost()) {
+ QSettings *settings = Core::ICore::settings();
+ const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators();
+ const QString currentTerminal = ConsoleProcess::terminalEmulator(settings, false);
+ m_page->terminalComboBox->addItems(availableTerminals);
+ m_page->terminalComboBox->lineEdit()->setText(currentTerminal);
+ m_page->terminalComboBox->lineEdit()->setPlaceholderText(ConsoleProcess::defaultTerminalEmulator());
+ } else {
+ m_page->terminalLabel->hide();
+ m_page->terminalComboBox->hide();
+ m_page->resetTerminalButton->hide();
+ }
- connect(m_page->resetColorButton, SIGNAL(clicked()),
- this, SLOT(resetInterfaceColor()));
- connect(m_page->resetWarningsButton, SIGNAL(clicked()),
- this, SLOT(resetWarnings()));
- if (HostOsInfo::isAnyUnixHost()) {
- connect(m_page->resetTerminalButton, SIGNAL(clicked()), this, SLOT(resetTerminal()));
- if (!HostOsInfo::isMacHost()) {
- connect(m_page->resetFileBrowserButton, SIGNAL(clicked()), this, SLOT(resetFileBrowser()));
- connect(m_page->helpExternalFileBrowserButton, SIGNAL(clicked()),
- this, SLOT(showHelpForFileBrowser()));
+ if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost()) {
+ QSettings *settings = Core::ICore::settings();
+ m_page->externalFileBrowserEdit->setText(UnixUtils::fileBrowser(settings));
+ } else {
+ m_page->externalFileBrowserLabel->hide();
+ m_page->externalFileBrowserEdit->hide();
+ m_page->resetFileBrowserButton->hide();
+ m_page->helpExternalFileBrowserButton->hide();
}
- }
- if (m_searchKeywords.isEmpty()) {
- QLatin1Char sep(' ');
- QTextStream(&m_searchKeywords)
- << m_page->interfaceBox->title() << sep
- << m_page->colorLabel->text() << sep
- << m_page->languageLabel->text() << sep
- << m_page->systemBox->title() << sep
- << m_page->terminalLabel->text() << sep
- << m_page->modifiedLabel->text();
- m_searchKeywords.remove(QLatin1Char('&'));
+ m_page->autoSaveCheckBox->setChecked(EditorManager::autoSaveEnabled());
+ m_page->autoSaveInterval->setValue(EditorManager::autoSaveInterval());
+ m_page->resetWarningsButton->setEnabled(Core::InfoBar::anyGloballySuppressed()
+ || Utils::CheckableMessageBox::hasSuppressedQuestions(ICore::settings()));
+
+ connect(m_page->resetColorButton, SIGNAL(clicked()),
+ this, SLOT(resetInterfaceColor()));
+ connect(m_page->resetWarningsButton, SIGNAL(clicked()),
+ this, SLOT(resetWarnings()));
+ if (HostOsInfo::isAnyUnixHost()) {
+ connect(m_page->resetTerminalButton, SIGNAL(clicked()), this, SLOT(resetTerminal()));
+ if (!HostOsInfo::isMacHost()) {
+ connect(m_page->resetFileBrowserButton, SIGNAL(clicked()), this, SLOT(resetFileBrowser()));
+ connect(m_page->helpExternalFileBrowserButton, SIGNAL(clicked()),
+ this, SLOT(showHelpForFileBrowser()));
+ }
+ }
}
return m_widget;
}
-bool GeneralSettings::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void GeneralSettings::apply()
{
if (!m_page) // wasn't shown, can't be changed
@@ -195,6 +180,7 @@ void GeneralSettings::apply()
void GeneralSettings::finish()
{
+ delete m_widget;
if (!m_page) // page was never shown
return;
delete m_page;
diff --git a/src/plugins/coreplugin/generalsettings.h b/src/plugins/coreplugin/generalsettings.h
index c812ac45af..ee13d5ad10 100644
--- a/src/plugins/coreplugin/generalsettings.h
+++ b/src/plugins/coreplugin/generalsettings.h
@@ -51,10 +51,9 @@ class GeneralSettings : public IOptionsPage
public:
GeneralSettings();
- QWidget* createPage(QWidget *parent);
+ QWidget* widget();
void apply();
void finish();
- virtual bool matches(const QString &) const;
private slots:
void resetInterfaceColor();
@@ -70,7 +69,6 @@ private:
QString language() const;
void setLanguage(const QString&);
Ui::GeneralSettings *m_page;
- QString m_searchKeywords;
QPointer<QMessageBox> m_dialog;
QPointer<QWidget> m_widget;
};
diff --git a/src/plugins/coreplugin/mimetypesettings.cpp b/src/plugins/coreplugin/mimetypesettings.cpp
index 07315c389b..5185f554bc 100644
--- a/src/plugins/coreplugin/mimetypesettings.cpp
+++ b/src/plugins/coreplugin/mimetypesettings.cpp
@@ -41,6 +41,7 @@
#include <QCoreApplication>
#include <QHash>
#include <QMessageBox>
+#include <QPointer>
#include <QScopedPointer>
#include <QSet>
#include <QStringList>
@@ -239,7 +240,6 @@ private slots:
public:
static const QChar kSemiColon;
- QString m_keywords;
MimeTypeSettingsModel *m_model;
QSortFilterProxyModel *m_filterModel;
int m_mimeForPatternSync;
@@ -249,6 +249,7 @@ public:
QList<int> m_modifiedMimeTypes;
QString m_filterPattern;
Ui::MimeTypeSettingsPage m_ui;
+ QPointer<QWidget> m_widget;
};
const QChar MimeTypeSettingsPrivate::kSemiColon(QLatin1Char(';'));
@@ -586,16 +587,13 @@ MimeTypeSettings::~MimeTypeSettings()
delete d;
}
-bool MimeTypeSettings::matches(const QString &s) const
+QWidget *MimeTypeSettings::widget()
{
- return d->m_keywords.contains(s, Qt::CaseInsensitive);
-}
-
-QWidget *MimeTypeSettings::createPage(QWidget *parent)
-{
- QWidget *w = new QWidget(parent);
- d->configureUi(w);
- return w;
+ if (!d->m_widget) {
+ d->m_widget = new QWidget;
+ d->configureUi(d->m_widget);
+ }
+ return d->m_widget;
}
void MimeTypeSettings::apply()
@@ -625,6 +623,7 @@ void MimeTypeSettings::finish()
d->updateMimeDatabase();
}
d->resetState();
+ delete d->m_widget;
}
} // Internal
diff --git a/src/plugins/coreplugin/mimetypesettings.h b/src/plugins/coreplugin/mimetypesettings.h
index 19908aeeb6..261ae93a74 100644
--- a/src/plugins/coreplugin/mimetypesettings.h
+++ b/src/plugins/coreplugin/mimetypesettings.h
@@ -45,8 +45,7 @@ public:
MimeTypeSettings(QObject *parent = 0);
virtual ~MimeTypeSettings();
- virtual bool matches(const QString &s) const;
- virtual QWidget *createPage(QWidget *parent);
+ virtual QWidget *widget();
virtual void apply();
virtual void finish();
diff --git a/src/plugins/coreplugin/toolsettings.cpp b/src/plugins/coreplugin/toolsettings.cpp
index 84b13024b3..be94b4dceb 100644
--- a/src/plugins/coreplugin/toolsettings.cpp
+++ b/src/plugins/coreplugin/toolsettings.cpp
@@ -56,17 +56,12 @@ ToolSettings::ToolSettings(QObject *parent) :
}
-bool ToolSettings::matches(const QString & searchKeyWord) const
+QWidget *ToolSettings::widget()
{
- return m_searchKeywords.contains(searchKeyWord, Qt::CaseInsensitive);
-}
-
-QWidget *ToolSettings::createPage(QWidget *parent)
-{
- m_widget = new ExternalToolConfig(parent);
- m_widget->setTools(ExternalToolManager::toolsByCategory());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new ExternalToolConfig;
+ m_widget->setTools(ExternalToolManager::toolsByCategory());
+ }
return m_widget;
}
@@ -206,4 +201,5 @@ void ToolSettings::apply()
void ToolSettings::finish()
{
+ delete m_widget;
}
diff --git a/src/plugins/coreplugin/toolsettings.h b/src/plugins/coreplugin/toolsettings.h
index c161436de9..038baf376d 100644
--- a/src/plugins/coreplugin/toolsettings.h
+++ b/src/plugins/coreplugin/toolsettings.h
@@ -46,13 +46,11 @@ class ToolSettings : public IOptionsPage
public:
explicit ToolSettings(QObject *parent = 0);
- bool matches(const QString & searchKeyWord) const;
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- QString m_searchKeywords;
QPointer<ExternalToolConfig> m_widget;
};
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
index 8a7c4c0496..47ec8a9d55 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
@@ -104,10 +104,12 @@ FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(const QSharedPointe
setDisplayCategory(QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY));
}
-QWidget *FileShareProtocolSettingsPage::createPage(QWidget *parent)
+QWidget *FileShareProtocolSettingsPage::widget()
{
- m_widget = new FileShareProtocolSettingsWidget(parent);
- m_widget->setSettings(*m_settings);
+ if (!m_widget) {
+ m_widget = new FileShareProtocolSettingsWidget;
+ m_widget->setSettings(*m_settings);
+ }
return m_widget;
}
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.h b/src/plugins/cpaster/fileshareprotocolsettingspage.h
index 91d1c996fe..c6970aa6b9 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.h
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.h
@@ -78,7 +78,7 @@ public:
explicit FileShareProtocolSettingsPage(const QSharedPointer<FileShareProtocolSettings> &s,
QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish() { }
diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp
index 35060653eb..6ea55f1f48 100644
--- a/src/plugins/cpaster/settingspage.cpp
+++ b/src/plugins/cpaster/settingspage.cpp
@@ -90,13 +90,12 @@ SettingsPage::~SettingsPage()
{
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsWidget(m_protocols, parent);
- m_widget->setSettings(*m_settings);
-
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsWidget(m_protocols);
+ m_widget->setSettings(*m_settings);
+ }
return m_widget;
}
@@ -111,11 +110,6 @@ void SettingsPage::apply()
}
}
-bool SettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void SettingsPage::addProtocol(const QString &name)
{
m_protocols.append(name);
diff --git a/src/plugins/cpaster/settingspage.h b/src/plugins/cpaster/settingspage.h
index 9297da67cb..e94348e231 100644
--- a/src/plugins/cpaster/settingspage.h
+++ b/src/plugins/cpaster/settingspage.h
@@ -66,10 +66,9 @@ public:
explicit SettingsPage(const QSharedPointer<Settings> &settings);
~SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish() { }
- bool matches(const QString &) const;
void addProtocol(const QString& name);
@@ -78,7 +77,6 @@ private:
QPointer<SettingsWidget> m_widget;
QStringList m_protocols;
- QString m_searchKeywords;
};
} // namespace CodePaster
diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp
index 37ca2ed172..c72d60c9d3 100644
--- a/src/plugins/cpptools/completionsettingspage.cpp
+++ b/src/plugins/cpptools/completionsettingspage.cpp
@@ -56,67 +56,54 @@ CompletionSettingsPage::~CompletionSettingsPage()
delete m_page;
}
-QWidget *CompletionSettingsPage::createPage(QWidget *parent)
+QWidget *CompletionSettingsPage::widget()
{
- QWidget *w = new QWidget(parent);
- m_page = new Ui::CompletionSettingsPage;
- m_page->setupUi(w);
-
- const TextEditor::CompletionSettings &settings =
- TextEditor::TextEditorSettings::completionSettings();
-
- int caseSensitivityIndex = 0;
- switch (settings.m_caseSensitivity) {
- case TextEditor::CaseSensitive:
- caseSensitivityIndex = 0;
- break;
- case TextEditor::CaseInsensitive:
- caseSensitivityIndex = 1;
- break;
- case TextEditor::FirstLetterCaseSensitive:
- caseSensitivityIndex = 2;
- break;
+ if (!m_widget) {
+ QWidget *m_widget = new QWidget;
+ m_page = new Ui::CompletionSettingsPage;
+ m_page->setupUi(m_widget);
+
+ const TextEditor::CompletionSettings &settings =
+ TextEditor::TextEditorSettings::completionSettings();
+
+ int caseSensitivityIndex = 0;
+ switch (settings.m_caseSensitivity) {
+ case TextEditor::CaseSensitive:
+ caseSensitivityIndex = 0;
+ break;
+ case TextEditor::CaseInsensitive:
+ caseSensitivityIndex = 1;
+ break;
+ case TextEditor::FirstLetterCaseSensitive:
+ caseSensitivityIndex = 2;
+ break;
+ }
+
+ int completionTriggerIndex = 0;
+ switch (settings.m_completionTrigger) {
+ case TextEditor::ManualCompletion:
+ completionTriggerIndex = 0;
+ break;
+ case TextEditor::TriggeredCompletion:
+ completionTriggerIndex = 1;
+ break;
+ case TextEditor::AutomaticCompletion:
+ completionTriggerIndex = 2;
+ break;
+ }
+
+ m_page->caseSensitivity->setCurrentIndex(caseSensitivityIndex);
+ m_page->completionTrigger->setCurrentIndex(completionTriggerIndex);
+ m_page->autoInsertBrackets->setChecked(settings.m_autoInsertBrackets);
+ m_page->surroundSelectedText->setChecked(settings.m_surroundingAutoBrackets);
+ m_page->partiallyComplete->setChecked(settings.m_partiallyComplete);
+ m_page->spaceAfterFunctionName->setChecked(settings.m_spaceAfterFunctionName);
+ m_page->enableDoxygenCheckBox->setChecked(m_commentsSettings.m_enableDoxygen);
+ m_page->generateBriefCheckBox->setChecked(m_commentsSettings.m_generateBrief);
+ m_page->leadingAsterisksCheckBox->setChecked(m_commentsSettings.m_leadingAsterisks);
+ m_page->generateBriefCheckBox->setEnabled(m_page->enableDoxygenCheckBox->isChecked());
}
-
- int completionTriggerIndex = 0;
- switch (settings.m_completionTrigger) {
- case TextEditor::ManualCompletion:
- completionTriggerIndex = 0;
- break;
- case TextEditor::TriggeredCompletion:
- completionTriggerIndex = 1;
- break;
- case TextEditor::AutomaticCompletion:
- completionTriggerIndex = 2;
- break;
- }
-
- m_page->caseSensitivity->setCurrentIndex(caseSensitivityIndex);
- m_page->completionTrigger->setCurrentIndex(completionTriggerIndex);
- m_page->autoInsertBrackets->setChecked(settings.m_autoInsertBrackets);
- m_page->surroundSelectedText->setChecked(settings.m_surroundingAutoBrackets);
- m_page->partiallyComplete->setChecked(settings.m_partiallyComplete);
- m_page->spaceAfterFunctionName->setChecked(settings.m_spaceAfterFunctionName);
- m_page->enableDoxygenCheckBox->setChecked(m_commentsSettings.m_enableDoxygen);
- m_page->generateBriefCheckBox->setChecked(m_commentsSettings.m_generateBrief);
- m_page->leadingAsterisksCheckBox->setChecked(m_commentsSettings.m_leadingAsterisks);
-
- if (m_searchKeywords.isEmpty()) {
- QTextStream(&m_searchKeywords) << m_page->caseSensitivityLabel->text()
- << ' ' << m_page->autoInsertBrackets->text()
- << ' ' << m_page->surroundSelectedText->text()
- << ' ' << m_page->completionTriggerLabel->text()
- << ' ' << m_page->partiallyComplete->text()
- << ' ' << m_page->spaceAfterFunctionName->text()
- << ' ' << m_page->enableDoxygenCheckBox->text()
- << ' ' << m_page->generateBriefCheckBox->text()
- << ' ' << m_page->leadingAsterisksCheckBox->text();
- m_searchKeywords.remove(QLatin1Char('&'));
- }
-
- m_page->generateBriefCheckBox->setEnabled(m_page->enableDoxygenCheckBox->isChecked());
-
- return w;
+ return m_widget;
}
void CompletionSettingsPage::apply()
@@ -144,11 +131,6 @@ void CompletionSettingsPage::apply()
emit commentsSettingsChanged(m_commentsSettings);
}
-bool CompletionSettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
TextEditor::CaseSensitivity CompletionSettingsPage::caseSensitivity() const
{
switch (m_page->caseSensitivity->currentIndex()) {
@@ -175,6 +157,7 @@ TextEditor::CompletionTrigger CompletionSettingsPage::completionTrigger() const
void CompletionSettingsPage::finish()
{
+ delete m_widget;
if (!m_page) // page was never shown
return;
delete m_page;
diff --git a/src/plugins/cpptools/completionsettingspage.h b/src/plugins/cpptools/completionsettingspage.h
index 0a9bdd4afb..fc45922e3d 100644
--- a/src/plugins/cpptools/completionsettingspage.h
+++ b/src/plugins/cpptools/completionsettingspage.h
@@ -35,6 +35,8 @@
#include <texteditor/completionsettings.h>
#include <texteditor/texteditoroptionspage.h>
+#include <QPointer>
+
namespace CppTools {
namespace Internal {
@@ -52,10 +54,9 @@ public:
CompletionSettingsPage(QObject *parent);
~CompletionSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
const CommentsSettings &commentsSettings() const;
@@ -69,7 +70,7 @@ private:
bool requireCommentsSettingsUpdate() const;
Ui::CompletionSettingsPage *m_page;
- QString m_searchKeywords;
+ QPointer<QWidget> m_widget;
CommentsSettings m_commentsSettings;
};
diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp
index e5fd37824a..7202ea2828 100644
--- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp
+++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp
@@ -101,23 +101,6 @@ void CppCodeModelSettingsWidget::applyToSettings() const
m_settings->toSettings(Core::ICore::settings());
}
-QString CppCodeModelSettingsWidget::searchKeywords() const
-{
- QString rc;
- QTextStream ts(&rc);
- ts << m_ui->theGroupBox->title()
- << ' ' << m_ui->cLabel->text()
- << ' ' << m_ui->cppLabel->text()
- << ' ' << m_ui->objcLabel->text()
- << ' ' << m_ui->objcppLabel->text()
- << ' ' << m_ui->anotherGroupBox->title()
- << ' ' << m_ui->ignorePCHCheckBox->text();
- foreach (const QString &mmsNames, m_settings->availableModelManagerSupportersByName().keys())
- ts << ' ' << mmsNames;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
bool CppCodeModelSettingsWidget::applyToSettings(QComboBox *chooser, const QString &mimeType) const
{
QString newId = chooser->itemData(chooser->currentIndex()).toString();
@@ -141,12 +124,12 @@ CppCodeModelSettingsPage::CppCodeModelSettingsPage(QSharedPointer<CppCodeModelSe
setCategoryIcon(QLatin1String(Constants::SETTINGS_CATEGORY_CPP_ICON));
}
-QWidget *CppCodeModelSettingsPage::createPage(QWidget *parent)
+QWidget *CppCodeModelSettingsPage::widget()
{
- m_widget = new CppCodeModelSettingsWidget(parent);
- m_widget->setSettings(m_settings);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new CppCodeModelSettingsWidget;
+ m_widget->setSettings(m_settings);
+ }
return m_widget;
}
@@ -156,7 +139,7 @@ void CppCodeModelSettingsPage::apply()
m_widget->applyToSettings();
}
-bool CppCodeModelSettingsPage::matches(const QString &s) const
+void CppCodeModelSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.h b/src/plugins/cpptools/cppcodemodelsettingspage.h
index 310671e6be..a40bfda437 100644
--- a/src/plugins/cpptools/cppcodemodelsettingspage.h
+++ b/src/plugins/cpptools/cppcodemodelsettingspage.h
@@ -56,8 +56,6 @@ public:
void setSettings(const QSharedPointer<CppCodeModelSettings> &s);
void applyToSettings() const;
- QString searchKeywords() const;
-
private:
bool applyToSettings(QComboBox *chooser, const QString &mimeType) const;
void applyToWidget(QComboBox *chooser, const QString &mimeType) const;
@@ -73,15 +71,13 @@ public:
explicit CppCodeModelSettingsPage(QSharedPointer<CppCodeModelSettings> &settings,
QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &s) const;
+ void finish();
private:
const QSharedPointer<CppCodeModelSettings> m_settings;
QPointer<CppCodeModelSettingsWidget> m_widget;
- QString m_searchKeywords;
};
} // Internal namespace
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp
index ca94a0ec57..1b731b6ac8 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.cpp
+++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp
@@ -428,44 +428,6 @@ void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(TextEditor::IC
updatePreview();
}
-QString CppCodeStylePreferencesWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui->tabSettingsWidget->searchKeywords()
- << sep << m_ui->indentBlockBraces->text()
- << sep << m_ui->indentBlockBody->text()
- << sep << m_ui->indentClassBraces->text()
- << sep << m_ui->indentEnumBraces->text()
- << sep << m_ui->indentNamespaceBraces->text()
- << sep << m_ui->indentNamespaceBody->text()
- << sep << m_ui->indentAccessSpecifiers->text()
- << sep << m_ui->indentDeclarationsRelativeToAccessSpecifiers->text()
- << sep << m_ui->indentFunctionBody->text()
- << sep << m_ui->indentFunctionBraces->text()
- << sep << m_ui->indentSwitchLabels->text()
- << sep << m_ui->indentCaseStatements->text()
- << sep << m_ui->indentCaseBlocks->text()
- << sep << m_ui->indentCaseBreak->text()
- << sep << m_ui->bindStarToIdentifier->text()
- << sep << m_ui->bindStarToTypeName->text()
- << sep << m_ui->bindStarToLeftSpecifier->text()
- << sep << m_ui->bindStarToRightSpecifier->text()
- << sep << m_ui->contentGroupBox->title()
- << sep << m_ui->bracesGroupBox->title()
- << sep << m_ui->switchGroupBox->title()
- << sep << m_ui->alignmentGroupBox->title()
- << sep << m_ui->pointerReferencesGroupBox->title()
- << sep << m_ui->extraPaddingConditions->text()
- << sep << m_ui->alignAssignments->text()
- ;
- for (int i = 0; i < m_ui->categoryTab->count(); i++)
- QTextStream(&rc) << sep << m_ui->categoryTab->tabText(i);
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void CppCodeStylePreferencesWidget::slotCodeStyleSettingsChanged()
{
if (m_blockUpdates)
@@ -564,19 +526,20 @@ CppCodeStyleSettingsPage::CppCodeStyleSettingsPage(QWidget *parent) :
setCategoryIcon(QLatin1String(Constants::SETTINGS_CATEGORY_CPP_ICON));
}
-QWidget *CppCodeStyleSettingsPage::createPage(QWidget *parent)
+QWidget *CppCodeStyleSettingsPage::widget()
{
- CppCodeStylePreferences *originalCodeStylePreferences
- = CppToolsSettings::instance()->cppCodeStyle();
- m_pageCppCodeStylePreferences = new CppCodeStylePreferences(m_widget);
- m_pageCppCodeStylePreferences->setDelegatingPool(originalCodeStylePreferences->delegatingPool());
- m_pageCppCodeStylePreferences->setCodeStyleSettings(originalCodeStylePreferences->codeStyleSettings());
- m_pageCppCodeStylePreferences->setCurrentDelegate(originalCodeStylePreferences->currentDelegate());
- // we set id so that it won't be possible to set delegate to the original prefs
- m_pageCppCodeStylePreferences->setId(originalCodeStylePreferences->id());
- m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(CppTools::Constants::CPP_SETTINGS_ID),
- m_pageCppCodeStylePreferences, parent);
-
+ if (!m_widget) {
+ CppCodeStylePreferences *originalCodeStylePreferences
+ = CppToolsSettings::instance()->cppCodeStyle();
+ m_pageCppCodeStylePreferences = new CppCodeStylePreferences(m_widget);
+ m_pageCppCodeStylePreferences->setDelegatingPool(originalCodeStylePreferences->delegatingPool());
+ m_pageCppCodeStylePreferences->setCodeStyleSettings(originalCodeStylePreferences->codeStyleSettings());
+ m_pageCppCodeStylePreferences->setCurrentDelegate(originalCodeStylePreferences->currentDelegate());
+ // we set id so that it won't be possible to set delegate to the original prefs
+ m_pageCppCodeStylePreferences->setId(originalCodeStylePreferences->id());
+ m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(CppTools::Constants::CPP_SETTINGS_ID),
+ m_pageCppCodeStylePreferences);
+ }
return m_widget;
}
@@ -601,9 +564,9 @@ void CppCodeStyleSettingsPage::apply()
}
}
-bool CppCodeStyleSettingsPage::matches(const QString &s) const
+void CppCodeStyleSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.h b/src/plugins/cpptools/cppcodestylesettingspage.h
index 8f83f3ef18..d42815edde 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.h
+++ b/src/plugins/cpptools/cppcodestylesettingspage.h
@@ -66,8 +66,6 @@ public:
void setCodeStyle(CppTools::CppCodeStylePreferences *codeStylePreferences);
- QString searchKeywords() const;
-
private slots:
void decorateEditors(const TextEditor::FontSettings &fontSettings);
void setVisualizeWhitespace(bool on);
@@ -95,13 +93,11 @@ class CppCodeStyleSettingsPage : public Core::IOptionsPage
public:
explicit CppCodeStyleSettingsPage(QWidget *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
CppCodeStylePreferences *m_pageCppCodeStylePreferences;
QPointer<TextEditor::CodeStyleEditor> m_widget;
};
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index 1571e7ac22..48235be2d5 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -293,21 +293,6 @@ CppFileSettings CppFileSettingsWidget::settings() const
return rc;
}
-QString CppFileSettingsWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc) << m_ui->headersGroupBox->title()
- << ' ' << m_ui->headerSuffixLabel->text()
- << ' ' << m_ui->headerSearchPathsLabel->text()
- << ' ' << m_ui->sourcesGroupBox->title()
- << ' ' << m_ui->sourceSuffixLabel->text()
- << ' ' << m_ui->sourceSearchPathsLabel->text()
- << ' ' << m_ui->lowerCaseFileNamesCheckBox->text()
- << ' ' << m_ui->licenseTemplateLabel->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
static inline void setComboText(QComboBox *cb, const QString &text, int defaultIndex = 0)
{
const int index = cb->findText(text);
@@ -355,13 +340,13 @@ CppFileSettingsPage::CppFileSettingsPage(QSharedPointer<CppFileSettings> &settin
setCategoryIcon(QLatin1String(Constants::SETTINGS_CATEGORY_CPP_ICON));
}
-QWidget *CppFileSettingsPage::createPage(QWidget *parent)
+QWidget *CppFileSettingsPage::widget()
{
- m_widget = new CppFileSettingsWidget(parent);
- m_widget->setSettings(*m_settings);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new CppFileSettingsWidget;
+ m_widget->setSettings(*m_settings);
+ }
return m_widget;
}
@@ -378,9 +363,9 @@ void CppFileSettingsPage::apply()
}
}
-bool CppFileSettingsPage::matches(const QString &s) const
+void CppFileSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/cpptools/cppfilesettingspage.h b/src/plugins/cpptools/cppfilesettingspage.h
index 6fcf0dbc17..273749b1e8 100644
--- a/src/plugins/cpptools/cppfilesettingspage.h
+++ b/src/plugins/cpptools/cppfilesettingspage.h
@@ -80,8 +80,6 @@ public:
CppFileSettings settings() const;
void setSettings(const CppFileSettings &s);
- QString searchKeywords() const;
-
private slots:
void slotEdit();
@@ -98,15 +96,13 @@ public:
explicit CppFileSettingsPage(QSharedPointer<CppFileSettings> &settings,
QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
const QSharedPointer<CppFileSettings> m_settings;
QPointer<CppFileSettingsWidget> m_widget;
- QString m_searchKeywords;
};
} // namespace Internal
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index 7c5a799fc8..baea514b4d 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -74,36 +74,18 @@ void SettingsPageWidget::setSettings(const CvsSettings &s)
m_ui.describeByCommitIdCheckBox->setChecked(s.boolValue(CvsSettings::describeByCommitIdKey));
}
-QString SettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui.configGroupBox->title()
- << sep << m_ui.commandLabel->text()
- << sep << m_ui.rootLabel->text()
- << sep << m_ui.miscGroupBox->title()
- << sep << m_ui.timeOutLabel->text()
- << sep << m_ui.diffOptionsLabel->text()
- << sep << m_ui.promptToSubmitCheckBox->text()
- << sep << m_ui.describeByCommitIdCheckBox->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
SettingsPage::SettingsPage()
{
setId(VcsBase::Constants::VCS_ID_CVS);
setDisplayName(tr("CVS"));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
- m_widget->setSettings(CvsPlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsPageWidget;
+ m_widget->setSettings(CvsPlugin::instance()->settings());
+ }
return m_widget;
}
@@ -112,7 +94,7 @@ void SettingsPage::apply()
CvsPlugin::instance()->setSettings(m_widget->settings());
}
-bool SettingsPage::matches(const QString &s) const
+void SettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h
index 7e7e52a5cc..2e6832f889 100644
--- a/src/plugins/cvs/settingspage.h
+++ b/src/plugins/cvs/settingspage.h
@@ -57,8 +57,6 @@ public:
CvsSettings settings() const;
void setSettings(const CvsSettings &);
- QString searchKeywords() const;
-
private:
Ui::SettingsPage m_ui;
};
@@ -71,14 +69,12 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() {}
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
- SettingsPageWidget *m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace Cvs
diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp
index e3b6c4cd33..5f9e419737 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.cpp
+++ b/src/plugins/debugger/cdb/cdboptionspage.cpp
@@ -198,22 +198,6 @@ QStringList CdbOptionsPageWidget::breakEvents() const
return m_breakEventWidget->breakEvents();
}
-static QString stripColon(QString s)
-{
- const int lastColon = s.lastIndexOf(QLatin1Char(':'));
- if (lastColon != -1)
- s.truncate(lastColon);
- return s;
-}
-
-QString CdbOptionsPageWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc) << stripColon(m_ui.additionalArgumentsLabel->text());
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
// ---------- CdbOptionsPage
CdbOptionsPage::CdbOptionsPage()
@@ -230,11 +214,10 @@ CdbOptionsPage::~CdbOptionsPage()
{
}
-QWidget *CdbOptionsPage::createPage(QWidget *parent)
+QWidget *CdbOptionsPage::widget()
{
- m_widget = new CdbOptionsPageWidget(parent);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget)
+ m_widget = new CdbOptionsPageWidget;
return m_widget;
}
@@ -248,13 +231,10 @@ void CdbOptionsPage::apply()
void CdbOptionsPage::finish()
{
- if (m_widget)
+ if (m_widget) {
m_widget->group.finish();
-}
-
-bool CdbOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
+ }
}
// ---------- CdbPathsPage
@@ -266,8 +246,6 @@ public:
Utils::SavedActionSet group;
// CdbPaths m_paths;
- QString m_searchKeywords;
-
CdbSymbolPathListEditor *m_symbolPathListEditor;
Utils::PathListEditor *m_sourcePathListEditor;
@@ -280,7 +258,6 @@ CdbPathsPageWidget::CdbPathsPageWidget(QWidget *parent) :
QVBoxLayout *layout = new QVBoxLayout(this);
QString title = tr("Symbol Paths");
- m_searchKeywords.append(title);
QGroupBox* gbSymbolPath = new QGroupBox(this);
gbSymbolPath->setTitle(title);
QVBoxLayout *gbSymbolPathLayout = new QVBoxLayout(gbSymbolPath);
@@ -288,7 +265,6 @@ CdbPathsPageWidget::CdbPathsPageWidget(QWidget *parent) :
gbSymbolPathLayout->addWidget(m_symbolPathListEditor);
title = tr("Source Paths");
- m_searchKeywords.append(title);
QGroupBox* gbSourcePath = new QGroupBox(this);
gbSourcePath->setTitle(title);
QVBoxLayout *gbSourcePathLayout = new QVBoxLayout(gbSourcePath);
@@ -318,12 +294,10 @@ CdbPathsPage::~CdbPathsPage()
{
}
-QWidget *CdbPathsPage::createPage(QWidget *parent)
+QWidget *CdbPathsPage::widget()
{
if (!m_widget)
- m_widget = new CdbPathsPageWidget(parent);
- else
- m_widget->setParent(parent);
+ m_widget = new CdbPathsPageWidget;
return m_widget;
}
@@ -335,14 +309,10 @@ void CdbPathsPage::apply()
void CdbPathsPage::finish()
{
- if (m_widget)
+ if (m_widget) {
m_widget->group.finish();
-}
-
-bool CdbPathsPage::matches(const QString &searchKeyWord) const
-{
- return m_widget &&
- m_widget->m_searchKeywords.contains(searchKeyWord, Qt::CaseInsensitive);
+ delete m_widget;
+ }
}
} // namespace Internal
diff --git a/src/plugins/debugger/cdb/cdboptionspage.h b/src/plugins/debugger/cdb/cdboptionspage.h
index a84a703c73..ac1e7155ee 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.h
+++ b/src/plugins/debugger/cdb/cdboptionspage.h
@@ -78,9 +78,8 @@ class CdbOptionsPageWidget : public QWidget
Q_OBJECT
public:
- explicit CdbOptionsPageWidget(QWidget *parent);
+ explicit CdbOptionsPageWidget(QWidget *parent = 0);
QStringList breakEvents() const;
- QString searchKeywords() const;
Utils::SavedActionSet group;
@@ -103,17 +102,15 @@ public:
virtual ~CdbOptionsPage();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
static const char *crtDbgReport;
private:
Utils::SavedActionSet group;
QPointer<CdbOptionsPageWidget> m_widget;
- QString m_searchKeywords;
};
class CdbPathsPage : public Core::IOptionsPage
@@ -127,10 +124,9 @@ public:
static CdbPathsPage *instance();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &searchKeyWord) const;
private:
QPointer<CdbPathsPageWidget> m_widget;
diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp
index 3aede9b0e5..ebf526c0f4 100644
--- a/src/plugins/debugger/commonoptionspage.cpp
+++ b/src/plugins/debugger/commonoptionspage.cpp
@@ -202,29 +202,6 @@ CommonOptionsPageWidget::CommonOptionsPageWidget
}
}
-QString CommonOptionsPageWidget::searchKeyWords() const
-{
- QString rc;
- const QLatin1Char sep(' ');
- QTextStream stream(&rc);
- stream << sep << checkBoxUseAlternatingRowColors->text()
- << sep << checkBoxFontSizeFollowsEditor->text()
- << sep << checkBoxUseToolTipsInMainEditor->text()
- << sep << checkBoxListSourceFiles->text()
- << sep << checkBoxBreakpointsFullPath->text()
- << sep << checkBoxCloseBuffersOnExit->text()
- << sep << checkBoxSwitchModeOnExit->text()
- << sep << labelMaximalStackDepth->text()
- << sep << checkBoxBringToForegroundOnInterrrupt->text()
- << sep << checkBoxShowQmlObjectTree->text()
- << sep << checkBoxWarnOnReleaseBuilds->text();
- if (Utils::HostOsInfo::isWindowsHost())
- stream << sep << checkBoxRegisterForPostMortem->text();
-
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
GlobalDebuggerOptions CommonOptionsPageWidget::globalOptions() const
{
GlobalDebuggerOptions o;
@@ -274,22 +251,19 @@ void CommonOptionsPage::finish()
{
if (!m_group.isNull())
m_group->finish();
+ delete m_widget;
}
-QWidget *CommonOptionsPage::createPage(QWidget *parent)
+QWidget *CommonOptionsPage::widget()
{
if (m_group.isNull())
m_group = QSharedPointer<Utils::SavedActionSet>(new Utils::SavedActionSet);
- m_widget = new CommonOptionsPageWidget(m_group, parent);
- m_widget->setGlobalOptions(*m_options);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeyWords();
- return m_widget;
-}
-bool CommonOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ if (!m_widget) {
+ m_widget = new CommonOptionsPageWidget(m_group);
+ m_widget->setGlobalOptions(*m_options);
+ }
+ return m_widget;
}
QString CommonOptionsPage::msgSetBreakpointAtFunction(const char *function)
@@ -334,57 +308,43 @@ void LocalsAndExpressionsOptionsPage::apply()
void LocalsAndExpressionsOptionsPage::finish()
{
m_group.finish();
+ delete m_widget;
}
-QWidget *LocalsAndExpressionsOptionsPage::createPage(QWidget *parent)
+QWidget *LocalsAndExpressionsOptionsPage::widget()
{
- QWidget *w = new QWidget(parent);
- m_ui.setupUi(w);
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
- m_group.clear();
- DebuggerCore *dc = debuggerCore();
+ m_group.clear();
+ DebuggerCore *dc = debuggerCore();
- m_group.insert(dc->action(UseDebuggingHelpers),
- m_ui.debuggingHelperGroupBox);
+ m_group.insert(dc->action(UseDebuggingHelpers),
+ m_ui.debuggingHelperGroupBox);
- m_group.insert(dc->action(UseCodeModel),
- m_ui.checkBoxUseCodeModel);
- m_ui.checkBoxUseCodeModel->setToolTip(dc->action(UseCodeModel)->toolTip());
+ m_group.insert(dc->action(UseCodeModel),
+ m_ui.checkBoxUseCodeModel);
+ m_ui.checkBoxUseCodeModel->setToolTip(dc->action(UseCodeModel)->toolTip());
- m_group.insert(dc->action(ShowThreadNames),
- m_ui.checkBoxShowThreadNames);
- m_group.insert(dc->action(ShowStdNamespace), m_ui.checkBoxShowStdNamespace);
- m_group.insert(dc->action(ShowQtNamespace), m_ui.checkBoxShowQtNamespace);
+ m_group.insert(dc->action(ShowThreadNames),
+ m_ui.checkBoxShowThreadNames);
+ m_group.insert(dc->action(ShowStdNamespace), m_ui.checkBoxShowStdNamespace);
+ m_group.insert(dc->action(ShowQtNamespace), m_ui.checkBoxShowQtNamespace);
#ifndef QT_DEBUG
#if 0
- cmd = am->registerAction(m_dumpLogAction,
- DUMP_LOG, globalcontext);
- //cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+D,Ctrl+L")));
- cmd->setDefaultKeySequence(QKeySequence(QCoreApplication::translate("Debugger", "Ctrl+Shift+F11")));
- mdebug->addAction(cmd);
+ cmd = am->registerAction(m_dumpLogAction,
+ DUMP_LOG, globalcontext);
+ //cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+D,Ctrl+L")));
+ cmd->setDefaultKeySequence(QKeySequence(QCoreApplication::translate("Debugger", "Ctrl+Shift+F11")));
+ mdebug->addAction(cmd);
#endif
#endif
-
- if (m_searchKeywords.isEmpty()) {
- QTextStream(&m_searchKeywords)
- << ' ' << m_ui.debuggingHelperGroupBox->title()
- << ' ' << m_ui.checkBoxUseCodeModel->text()
- << ' ' << m_ui.checkBoxShowThreadNames->text()
- << ' ' << m_ui.checkBoxShowStdNamespace->text()
- << ' ' << m_ui.checkBoxShowQtNamespace->text();
-
- m_searchKeywords.remove(QLatin1Char('&'));
}
- return w;
-}
-
-bool LocalsAndExpressionsOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ return m_widget;
}
-
} // namespace Internal
} // namespace Debugger
diff --git a/src/plugins/debugger/commonoptionspage.h b/src/plugins/debugger/commonoptionspage.h
index c09d1ccde4..bb5464abf3 100644
--- a/src/plugins/debugger/commonoptionspage.h
+++ b/src/plugins/debugger/commonoptionspage.h
@@ -60,7 +60,6 @@ class CommonOptionsPageWidget : public QWidget
public:
explicit CommonOptionsPageWidget(const QSharedPointer<Utils::SavedActionSet> &group, QWidget *parent = 0);
- QString searchKeyWords() const;
GlobalDebuggerOptions globalOptions() const;
void setGlobalOptions(const GlobalDebuggerOptions &go);
@@ -94,10 +93,9 @@ public:
~CommonOptionsPage();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
static QString msgSetBreakpointAtFunction(const char *function);
static QString msgSetBreakpointAtFunctionToolTip(const char *function,
@@ -106,7 +104,6 @@ public:
private:
const QSharedPointer<GlobalDebuggerOptions> m_options;
QSharedPointer<Utils::SavedActionSet> m_group;
- QString m_searchKeywords;
QPointer<CommonOptionsPageWidget> m_widget;
};
@@ -123,15 +120,14 @@ public:
LocalsAndExpressionsOptionsPage();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
private:
+ QPointer<QWidget> m_widget;
Ui::DebuggingHelperOptionPage m_ui;
Utils::SavedActionSet m_group;
- QString m_searchKeywords;
};
} // namespace Internal
diff --git a/src/plugins/debugger/debuggeroptionspage.cpp b/src/plugins/debugger/debuggeroptionspage.cpp
index bd0b8d2916..1bf5718872 100644
--- a/src/plugins/debugger/debuggeroptionspage.cpp
+++ b/src/plugins/debugger/debuggeroptionspage.cpp
@@ -217,63 +217,61 @@ DebuggerOptionsPage::DebuggerOptionsPage()
setCategoryIcon(QLatin1String(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY_ICON));
}
-QWidget *DebuggerOptionsPage::createPage(QWidget *parent)
+QWidget *DebuggerOptionsPage::widget()
{
- m_configWidget = new QWidget(parent);
-
- m_addButton = new QPushButton(tr("Add"), m_configWidget);
- m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
- m_delButton = new QPushButton(tr("Remove"), m_configWidget);
-
- m_container = new DetailsWidget(m_configWidget);
- m_container->setState(DetailsWidget::NoSummary);
- m_container->setVisible(false);
-
- m_model = new DebuggerItemModel(parent);
-
- m_debuggerView = new QTreeView(m_configWidget);
- m_debuggerView->setModel(m_model);
- m_debuggerView->setUniformRowHeights(true);
- m_debuggerView->setSelectionMode(QAbstractItemView::SingleSelection);
- m_debuggerView->setSelectionBehavior(QAbstractItemView::SelectRows);
- m_debuggerView->expandAll();
-
- QHeaderView *header = m_debuggerView->header();
- header->setStretchLastSection(false);
- header->setResizeMode(0, QHeaderView::ResizeToContents);
- header->setResizeMode(1, QHeaderView::ResizeToContents);
- header->setResizeMode(2, QHeaderView::Stretch);
-
- QVBoxLayout *buttonLayout = new QVBoxLayout();
- buttonLayout->setSpacing(6);
- buttonLayout->setContentsMargins(0, 0, 0, 0);
- buttonLayout->addWidget(m_addButton);
- buttonLayout->addWidget(m_cloneButton);
- buttonLayout->addWidget(m_delButton);
- buttonLayout->addItem(new QSpacerItem(10, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
-
- QVBoxLayout *verticalLayout = new QVBoxLayout();
- verticalLayout->addWidget(m_debuggerView);
- verticalLayout->addWidget(m_container);
-
- QHBoxLayout *horizontalLayout = new QHBoxLayout(m_configWidget);
- horizontalLayout->addLayout(verticalLayout);
- horizontalLayout->addLayout(buttonLayout);
-
- connect(m_debuggerView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
- this, SLOT(debuggerSelectionChanged()));
-
- connect(m_addButton, SIGNAL(clicked()), this, SLOT(addDebugger()), Qt::QueuedConnection);
- connect(m_cloneButton, SIGNAL(clicked()), this, SLOT(cloneDebugger()), Qt::QueuedConnection);
- connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeDebugger()), Qt::QueuedConnection);
-
- m_searchKeywords = tr("Debuggers");
-
- m_itemConfigWidget = new DebuggerItemConfigWidget(m_model);
- m_container->setWidget(m_itemConfigWidget);
-
- updateState();
-
+ if (!m_configWidget) {
+ m_configWidget = new QWidget;
+
+ m_addButton = new QPushButton(tr("Add"), m_configWidget);
+ m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
+ m_delButton = new QPushButton(tr("Remove"), m_configWidget);
+
+ m_container = new DetailsWidget(m_configWidget);
+ m_container->setState(DetailsWidget::NoSummary);
+ m_container->setVisible(false);
+
+ m_debuggerView = new QTreeView(m_configWidget);
+ m_model = new DebuggerItemModel(m_debuggerView);
+ m_debuggerView->setModel(m_model);
+ m_debuggerView->setUniformRowHeights(true);
+ m_debuggerView->setSelectionMode(QAbstractItemView::SingleSelection);
+ m_debuggerView->setSelectionBehavior(QAbstractItemView::SelectRows);
+ m_debuggerView->expandAll();
+
+ QHeaderView *header = m_debuggerView->header();
+ header->setStretchLastSection(false);
+ header->setResizeMode(0, QHeaderView::ResizeToContents);
+ header->setResizeMode(1, QHeaderView::ResizeToContents);
+ header->setResizeMode(2, QHeaderView::Stretch);
+
+ QVBoxLayout *buttonLayout = new QVBoxLayout();
+ buttonLayout->setSpacing(6);
+ buttonLayout->setContentsMargins(0, 0, 0, 0);
+ buttonLayout->addWidget(m_addButton);
+ buttonLayout->addWidget(m_cloneButton);
+ buttonLayout->addWidget(m_delButton);
+ buttonLayout->addItem(new QSpacerItem(10, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
+
+ QVBoxLayout *verticalLayout = new QVBoxLayout();
+ verticalLayout->addWidget(m_debuggerView);
+ verticalLayout->addWidget(m_container);
+
+ QHBoxLayout *horizontalLayout = new QHBoxLayout(m_configWidget);
+ horizontalLayout->addLayout(verticalLayout);
+ horizontalLayout->addLayout(buttonLayout);
+
+ connect(m_debuggerView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+ this, SLOT(debuggerSelectionChanged()));
+
+ connect(m_addButton, SIGNAL(clicked()), this, SLOT(addDebugger()), Qt::QueuedConnection);
+ connect(m_cloneButton, SIGNAL(clicked()), this, SLOT(cloneDebugger()), Qt::QueuedConnection);
+ connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeDebugger()), Qt::QueuedConnection);
+
+ m_itemConfigWidget = new DebuggerItemConfigWidget(m_model);
+ m_container->setWidget(m_itemConfigWidget);
+
+ updateState();
+ }
return m_configWidget;
}
@@ -322,10 +320,10 @@ void DebuggerOptionsPage::removeDebugger()
void DebuggerOptionsPage::finish()
{
- // Deleted by settingsdialog.
- m_configWidget = 0;
+ delete m_configWidget;
// Children of m_configWidget.
+ m_model = 0;
m_container = 0;
m_debuggerView = 0;
m_addButton = 0;
@@ -333,11 +331,6 @@ void DebuggerOptionsPage::finish()
m_delButton = 0;
}
-bool DebuggerOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void DebuggerOptionsPage::debuggerSelectionChanged()
{
QTC_ASSERT(m_container, return);
diff --git a/src/plugins/debugger/debuggeroptionspage.h b/src/plugins/debugger/debuggeroptionspage.h
index 29089b4f52..683054b801 100644
--- a/src/plugins/debugger/debuggeroptionspage.h
+++ b/src/plugins/debugger/debuggeroptionspage.h
@@ -34,6 +34,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
#include <QWidget>
QT_BEGIN_NAMESPACE
@@ -97,10 +98,9 @@ class DebuggerOptionsPage : public Core::IOptionsPage
public:
DebuggerOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
private slots:
void debuggerSelectionChanged();
@@ -111,8 +111,7 @@ private slots:
void removeDebugger();
private:
- QWidget *m_configWidget;
- QString m_searchKeywords;
+ QPointer<QWidget> m_configWidget;
DebuggerItemModel *m_model;
DebuggerItemConfigWidget *m_itemConfigWidget;
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index 6651f59a65..8823face49 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -54,7 +54,7 @@ namespace Internal {
class GdbOptionsPageWidget : public QWidget
{
public:
- explicit GdbOptionsPageWidget(QWidget *parent);
+ explicit GdbOptionsPageWidget(QWidget *parent = 0);
QGroupBox *groupBoxGeneral;
QLabel *labelGdbWatchdogTimeout;
@@ -83,7 +83,6 @@ public:
//QLineEdit *lineEditSelectedPluginBreakpointsPattern;
Utils::SavedActionSet group;
- QString searchKeywords;
};
GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
@@ -297,19 +296,6 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
// setEnabled(dc->action(SelectedPluginBreakpoints)->value().toBool());
//connect(radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)),
// lineEditSelectedPluginBreakpointsPattern, SLOT(setEnabled(bool)));
-
- const QLatin1Char sep(' ');
- QTextStream(&searchKeywords)
- << sep << groupBoxGeneral->title()
- << sep << checkBoxLoadGdbInit->text()
- << sep << checkBoxLoadGdbDumpers->text()
- << sep << checkBoxUseDynamicType->text()
- << sep << labelGdbWatchdogTimeout->text()
- << sep << checkBoxSkipKnownFrames->text()
- << sep << checkBoxUseMessageBoxForSignals->text()
- << sep << checkBoxAdjustBreakpointLocations->text();
- ;
- searchKeywords.remove(QLatin1Char('&'));
}
GdbOptionsPage::GdbOptionsPage()
@@ -325,9 +311,10 @@ GdbOptionsPage::~GdbOptionsPage()
{
}
-QWidget *GdbOptionsPage::createPage(QWidget *parent)
+QWidget *GdbOptionsPage::widget()
{
- m_widget = new GdbOptionsPageWidget(parent);
+ if (!m_widget)
+ m_widget = new GdbOptionsPageWidget;
return m_widget;
}
@@ -339,13 +326,10 @@ void GdbOptionsPage::apply()
void GdbOptionsPage::finish()
{
- if (m_widget)
+ if (m_widget) {
m_widget->group.finish();
-}
-
-bool GdbOptionsPage::matches(const QString &s) const
-{
- return m_widget && m_widget->searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
+ }
}
/////////////////////////////////////////////////////////////////////////
@@ -357,7 +341,7 @@ bool GdbOptionsPage::matches(const QString &s) const
class GdbOptionsPageWidget2 : public QWidget
{
public:
- explicit GdbOptionsPageWidget2(QWidget *parent);
+ explicit GdbOptionsPageWidget2(QWidget *parent = 0);
QGroupBox *groupBoxDangerous;
QLabel *labelDangerous;
@@ -371,7 +355,6 @@ public:
QCheckBox *checkBoxMultiInferior;
Utils::SavedActionSet group;
- QString searchKeywords;
};
GdbOptionsPageWidget2::GdbOptionsPageWidget2(QWidget *parent)
@@ -460,16 +443,6 @@ GdbOptionsPageWidget2::GdbOptionsPageWidget2(QWidget *parent)
group.insert(dc->action(AttemptQuickStart), checkBoxAttemptQuickStart);
group.insert(dc->action(MultiInferior), checkBoxMultiInferior);
group.insert(dc->action(EnableReverseDebugging), checkBoxEnableReverseDebugging);
-
- const QLatin1Char sep(' ');
- QTextStream(&searchKeywords)
- << sep << groupBoxDangerous->title()
- << sep << checkBoxTargetAsync->text()
- << sep << checkBoxEnableReverseDebugging->text()
- << sep << checkBoxAttemptQuickStart->text()
- << sep << checkBoxMultiInferior->text()
- ;
- searchKeywords.remove(QLatin1Char('&'));
}
GdbOptionsPage2::GdbOptionsPage2()
@@ -485,9 +458,10 @@ GdbOptionsPage2::~GdbOptionsPage2()
{
}
-QWidget *GdbOptionsPage2::createPage(QWidget *parent)
+QWidget *GdbOptionsPage2::widget()
{
- m_widget = new GdbOptionsPageWidget2(parent);
+ if (!m_widget)
+ m_widget = new GdbOptionsPageWidget2;
return m_widget;
}
@@ -499,13 +473,10 @@ void GdbOptionsPage2::apply()
void GdbOptionsPage2::finish()
{
- if (m_widget)
+ if (m_widget) {
m_widget->group.finish();
-}
-
-bool GdbOptionsPage2::matches(const QString &s) const
-{
- return m_widget && m_widget->searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
+ }
}
} // namespace Internal
diff --git a/src/plugins/debugger/gdb/gdboptionspage.h b/src/plugins/debugger/gdb/gdboptionspage.h
index 29387f82c2..915834d1e9 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.h
+++ b/src/plugins/debugger/gdb/gdboptionspage.h
@@ -46,10 +46,9 @@ class GdbOptionsPage : public Core::IOptionsPage
public:
GdbOptionsPage();
~GdbOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
private:
QPointer<GdbOptionsPageWidget> m_widget;
@@ -63,10 +62,9 @@ class GdbOptionsPage2 : public Core::IOptionsPage
public:
GdbOptionsPage2();
~GdbOptionsPage2();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
private:
QPointer<GdbOptionsPageWidget2> m_widget;
diff --git a/src/plugins/designer/cpp/cppsettingspage.cpp b/src/plugins/designer/cpp/cppsettingspage.cpp
index cc24f2ca89..d9ce8aa8c7 100644
--- a/src/plugins/designer/cpp/cppsettingspage.cpp
+++ b/src/plugins/designer/cpp/cppsettingspage.cpp
@@ -89,18 +89,6 @@ void CppSettingsPageWidget::setUiEmbedding(int v)
}
}
-QString CppSettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc) << m_ui.ptrAggregationRadioButton->text()
- << ' ' << m_ui.aggregationButton->text()
- << ' ' << m_ui.multipleInheritanceButton->text()
- << ' ' << m_ui.retranslateCheckBox->text()
- << ' ' << m_ui.includeQtModuleCheckBox->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
// ---------- CppSettingsPage
CppSettingsPage::CppSettingsPage(QObject *parent) : Core::IOptionsPage(parent)
{
@@ -112,12 +100,12 @@ CppSettingsPage::CppSettingsPage(QObject *parent) : Core::IOptionsPage(parent)
setCategoryIcon(QLatin1String(Designer::Constants::SETTINGS_CATEGORY_ICON));
}
-QWidget *CppSettingsPage::createPage(QWidget *parent)
+QWidget *CppSettingsPage::widget()
{
- m_widget = new CppSettingsPageWidget(parent);
- m_widget->setParameters(m_parameters);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new CppSettingsPageWidget;
+ m_widget->setParameters(m_parameters);
+ }
return m_widget;
}
@@ -134,11 +122,7 @@ void CppSettingsPage::apply()
void CppSettingsPage::finish()
{
-}
-
-bool CppSettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/designer/cpp/cppsettingspage.h b/src/plugins/designer/cpp/cppsettingspage.h
index 647c7d7d19..a5a9137bef 100644
--- a/src/plugins/designer/cpp/cppsettingspage.h
+++ b/src/plugins/designer/cpp/cppsettingspage.h
@@ -49,8 +49,6 @@ public:
FormClassWizardGenerationParameters parameters() const;
void setParameters(const FormClassWizardGenerationParameters &p);
- QString searchKeywords() const;
-
private:
int uiEmbedding() const;
void setUiEmbedding(int);
@@ -63,15 +61,13 @@ class CppSettingsPage : public Core::IOptionsPage
public:
explicit CppSettingsPage(QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
private:
QPointer<CppSettingsPageWidget> m_widget;
FormClassWizardGenerationParameters m_parameters;
- QString m_searchKeywords;
};
} // namespace Internal
diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index 7fe793f94c..f6a49c7a27 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -51,10 +51,13 @@ SettingsPage::SettingsPage(QDesignerOptionsPageInterface *designerPage) :
setCategoryIcon(QLatin1String(Designer::Constants::SETTINGS_CATEGORY_ICON));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
m_initialized = true;
- return m_designerPage->createPage(parent);
+ if (!m_widget)
+ m_widget = m_designerPage->createPage(0);
+ return m_widget;
+
}
void SettingsPage::apply()
@@ -67,6 +70,7 @@ void SettingsPage::finish()
{
if (m_initialized)
m_designerPage->finish();
+ delete m_widget;
}
SettingsPageProvider::SettingsPageProvider(QObject *parent)
diff --git a/src/plugins/designer/settingspage.h b/src/plugins/designer/settingspage.h
index 3df347e546..95c9eb2c5c 100644
--- a/src/plugins/designer/settingspage.h
+++ b/src/plugins/designer/settingspage.h
@@ -32,6 +32,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
QT_BEGIN_NAMESPACE
class QDesignerOptionsPageInterface;
QT_END_NAMESPACE
@@ -48,13 +50,14 @@ class SettingsPage : public Core::IOptionsPage
public:
explicit SettingsPage(QDesignerOptionsPageInterface *designerPage);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
QDesignerOptionsPageInterface *m_designerPage;
bool m_initialized;
+ QPointer<QWidget> m_widget;
};
class SettingsPageProvider : public Core::IOptionsPageProvider
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index b94bfe697c..7dddb52914 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -87,6 +87,7 @@
#include <QFileDialog>
#include <QtPlugin>
#include <QObject>
+#include <QPointer>
#include <QSettings>
#include <QStackedWidget>
#include <QTextStream>
@@ -234,10 +235,9 @@ public:
setCategoryIcon(_(SETTINGS_CATEGORY_FAKEVIM_ICON));
}
- QWidget *createPage(QWidget *parent);
- void apply() { m_group.apply(ICore::settings()); }
- void finish() { m_group.finish(); }
- virtual bool matches(const QString &) const;
+ QWidget *widget();
+ void apply();
+ void finish();
private slots:
void copyTextEditorSettings();
@@ -248,113 +248,98 @@ private slots:
private:
friend class DebuggerPlugin;
+ QPointer<QWidget> m_widget;
Ui::FakeVimOptionPage m_ui;
- QString m_searchKeywords;
Utils::SavedActionSet m_group;
};
-QWidget *FakeVimOptionPage::createPage(QWidget *parent)
-{
- QWidget *w = new QWidget(parent);
- m_ui.setupUi(w);
- const QString vimrcDefault = Utils::HostOsInfo::isAnyUnixHost() ?
- QLatin1String("$HOME/.vimrc") : QLatin1String("%USERPROFILE%\\_vimrc");
- m_ui.lineEditVimRcPath->setPlaceholderText(tr("Default: %1").arg(vimrcDefault));
-
- m_group.clear();
- m_group.insert(theFakeVimSetting(ConfigUseFakeVim),
- m_ui.checkBoxUseFakeVim);
- m_group.insert(theFakeVimSetting(ConfigReadVimRc),
- m_ui.checkBoxReadVimRc);
- m_group.insert(theFakeVimSetting(ConfigVimRcPath),
- m_ui.lineEditVimRcPath);
-
- m_group.insert(theFakeVimSetting(ConfigExpandTab),
- m_ui.checkBoxExpandTab);
- m_group.insert(theFakeVimSetting(ConfigHlSearch),
- m_ui.checkBoxHlSearch);
- m_group.insert(theFakeVimSetting(ConfigShiftWidth),
- m_ui.spinBoxShiftWidth);
- m_group.insert(theFakeVimSetting(ConfigShowMarks),
- m_ui.checkBoxShowMarks);
-
- m_group.insert(theFakeVimSetting(ConfigSmartTab),
- m_ui.checkBoxSmartTab);
- m_group.insert(theFakeVimSetting(ConfigStartOfLine),
- m_ui.checkBoxStartOfLine);
- m_group.insert(theFakeVimSetting(ConfigPassKeys),
- m_ui.checkBoxPassKeys);
- m_group.insert(theFakeVimSetting(ConfigTabStop),
- m_ui.spinBoxTabStop);
- m_group.insert(theFakeVimSetting(ConfigScrollOff),
- m_ui.spinBoxScrollOff);
- m_group.insert(theFakeVimSetting(ConfigBackspace),
- m_ui.lineEditBackspace);
- m_group.insert(theFakeVimSetting(ConfigIsKeyword),
- m_ui.lineEditIsKeyword);
-
- m_group.insert(theFakeVimSetting(ConfigPassControlKey),
- m_ui.checkBoxPassControlKey);
- m_group.insert(theFakeVimSetting(ConfigAutoIndent),
- m_ui.checkBoxAutoIndent);
- m_group.insert(theFakeVimSetting(ConfigSmartIndent),
- m_ui.checkBoxSmartIndent);
-
- m_group.insert(theFakeVimSetting(ConfigIncSearch),
- m_ui.checkBoxIncSearch);
- m_group.insert(theFakeVimSetting(ConfigUseCoreSearch),
- m_ui.checkBoxUseCoreSearch);
- m_group.insert(theFakeVimSetting(ConfigSmartCase),
- m_ui.checkBoxSmartCase);
- m_group.insert(theFakeVimSetting(ConfigIgnoreCase),
- m_ui.checkBoxIgnoreCase);
- m_group.insert(theFakeVimSetting(ConfigWrapScan),
- m_ui.checkBoxWrapScan);
-
- m_group.insert(theFakeVimSetting(ConfigShowCmd),
- m_ui.checkBoxShowCmd);
-
- connect(m_ui.pushButtonCopyTextEditorSettings, SIGNAL(clicked()),
- SLOT(copyTextEditorSettings()));
- connect(m_ui.pushButtonSetQtStyle, SIGNAL(clicked()),
- SLOT(setQtStyle()));
- connect(m_ui.pushButtonSetPlainStyle, SIGNAL(clicked()),
- SLOT(setPlainStyle()));
- connect(m_ui.pushButtonVimRcPath, SIGNAL(clicked()),
- SLOT(openVimRc()));
- connect(m_ui.checkBoxReadVimRc, SIGNAL(stateChanged(int)),
- SLOT(updateVimRcWidgets()));
- updateVimRcWidgets();
-
- if (m_searchKeywords.isEmpty()) {
- QLatin1Char sep(' ');
- QTextStream(&m_searchKeywords)
- << sep << m_ui.checkBoxUseFakeVim->text()
- << sep << m_ui.checkBoxReadVimRc->text()
- << sep << m_ui.checkBoxAutoIndent->text()
- << sep << m_ui.checkBoxSmartIndent->text()
- << sep << m_ui.checkBoxExpandTab->text()
- << sep << m_ui.checkBoxSmartTab->text()
- << sep << m_ui.checkBoxHlSearch->text()
- << sep << m_ui.checkBoxIncSearch->text()
- << sep << m_ui.checkBoxStartOfLine->text()
- << sep << m_ui.checkBoxUseCoreSearch->text()
- << sep << m_ui.checkBoxSmartCase->text()
- << sep << m_ui.checkBoxShowMarks->text()
- << sep << m_ui.checkBoxPassControlKey->text()
- << sep << m_ui.checkBoxPassKeys->text()
- << sep << m_ui.checkBoxIgnoreCase->text()
- << sep << m_ui.checkBoxWrapScan->text()
- << sep << m_ui.checkBoxShowCmd->text()
- << sep << m_ui.labelShiftWidth->text()
- << sep << m_ui.labelTabulator->text()
- << sep << m_ui.labelBackspace->text()
- << sep << m_ui.labelIsKeyword->text()
- << sep << m_ui.labelScrollOff->text()
- << sep << m_ui.lineEditVimRcPath->text();
- m_searchKeywords.remove(QLatin1Char('&'));
+QWidget *FakeVimOptionPage::widget()
+{
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
+ const QString vimrcDefault = Utils::HostOsInfo::isAnyUnixHost() ?
+ QLatin1String("$HOME/.vimrc") : QLatin1String("%USERPROFILE%\\_vimrc");
+ m_ui.lineEditVimRcPath->setPlaceholderText(tr("Default: %1").arg(vimrcDefault));
+
+ m_group.clear();
+ m_group.insert(theFakeVimSetting(ConfigUseFakeVim),
+ m_ui.checkBoxUseFakeVim);
+ m_group.insert(theFakeVimSetting(ConfigReadVimRc),
+ m_ui.checkBoxReadVimRc);
+ m_group.insert(theFakeVimSetting(ConfigVimRcPath),
+ m_ui.lineEditVimRcPath);
+
+ m_group.insert(theFakeVimSetting(ConfigExpandTab),
+ m_ui.checkBoxExpandTab);
+ m_group.insert(theFakeVimSetting(ConfigHlSearch),
+ m_ui.checkBoxHlSearch);
+ m_group.insert(theFakeVimSetting(ConfigShiftWidth),
+ m_ui.spinBoxShiftWidth);
+ m_group.insert(theFakeVimSetting(ConfigShowMarks),
+ m_ui.checkBoxShowMarks);
+
+ m_group.insert(theFakeVimSetting(ConfigSmartTab),
+ m_ui.checkBoxSmartTab);
+ m_group.insert(theFakeVimSetting(ConfigStartOfLine),
+ m_ui.checkBoxStartOfLine);
+ m_group.insert(theFakeVimSetting(ConfigPassKeys),
+ m_ui.checkBoxPassKeys);
+ m_group.insert(theFakeVimSetting(ConfigTabStop),
+ m_ui.spinBoxTabStop);
+ m_group.insert(theFakeVimSetting(ConfigScrollOff),
+ m_ui.spinBoxScrollOff);
+ m_group.insert(theFakeVimSetting(ConfigBackspace),
+ m_ui.lineEditBackspace);
+ m_group.insert(theFakeVimSetting(ConfigIsKeyword),
+ m_ui.lineEditIsKeyword);
+
+ m_group.insert(theFakeVimSetting(ConfigPassControlKey),
+ m_ui.checkBoxPassControlKey);
+ m_group.insert(theFakeVimSetting(ConfigAutoIndent),
+ m_ui.checkBoxAutoIndent);
+ m_group.insert(theFakeVimSetting(ConfigSmartIndent),
+ m_ui.checkBoxSmartIndent);
+
+ m_group.insert(theFakeVimSetting(ConfigIncSearch),
+ m_ui.checkBoxIncSearch);
+ m_group.insert(theFakeVimSetting(ConfigUseCoreSearch),
+ m_ui.checkBoxUseCoreSearch);
+ m_group.insert(theFakeVimSetting(ConfigSmartCase),
+ m_ui.checkBoxSmartCase);
+ m_group.insert(theFakeVimSetting(ConfigIgnoreCase),
+ m_ui.checkBoxIgnoreCase);
+ m_group.insert(theFakeVimSetting(ConfigWrapScan),
+ m_ui.checkBoxWrapScan);
+
+ m_group.insert(theFakeVimSetting(ConfigShowCmd),
+ m_ui.checkBoxShowCmd);
+
+ connect(m_ui.pushButtonCopyTextEditorSettings, SIGNAL(clicked()),
+ SLOT(copyTextEditorSettings()));
+ connect(m_ui.pushButtonSetQtStyle, SIGNAL(clicked()),
+ SLOT(setQtStyle()));
+ connect(m_ui.pushButtonSetPlainStyle, SIGNAL(clicked()),
+ SLOT(setPlainStyle()));
+ connect(m_ui.pushButtonVimRcPath, SIGNAL(clicked()),
+ SLOT(openVimRc()));
+ connect(m_ui.checkBoxReadVimRc, SIGNAL(stateChanged(int)),
+ SLOT(updateVimRcWidgets()));
+ updateVimRcWidgets();
+
}
- return w;
+ return m_widget;
+}
+
+void FakeVimOptionPage::apply()
+{
+ m_group.apply(ICore::settings());
+}
+
+void FakeVimOptionPage::finish()
+{
+ m_group.finish();
+ delete m_widget;
}
void FakeVimOptionPage::copyTextEditorSettings()
@@ -411,11 +396,6 @@ void FakeVimOptionPage::updateVimRcWidgets()
m_ui.pushButtonVimRcPath->setEnabled(enabled);
}
-bool FakeVimOptionPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
//const char *FAKEVIM_CONTEXT = "FakeVim";
///////////////////////////////////////////////////////////////////////
@@ -441,7 +421,7 @@ public:
setCategoryIcon(_(SETTINGS_CATEGORY_FAKEVIM_ICON));
}
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void initialize();
ExCommandMap &exCommandMap();
ExCommandMap &defaultExCommandMap();
@@ -457,9 +437,9 @@ private:
FakeVimPluginPrivate *m_q;
};
-QWidget *FakeVimExCommandsPage::createPage(QWidget *parent)
+QWidget *FakeVimExCommandsPage::widget()
{
- QWidget *w = CommandMappings::createPage(parent);
+ QWidget *w = CommandMappings::widget();
setPageTitle(tr("Ex Command Mapping"));
setTargetHeader(tr("Ex Trigger Expression"));
setTargetLabelText(tr("Regular expression:"));
@@ -666,37 +646,41 @@ public:
void apply();
void finish() {}
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void initialize() {}
UserCommandMap &userCommandMap();
UserCommandMap &defaultUserCommandMap();
private:
FakeVimPluginPrivate *m_q;
+ QPointer<QGroupBox> m_widget;
};
-QWidget *FakeVimUserCommandsPage::createPage(QWidget *parent)
+QWidget *FakeVimUserCommandsPage::widget()
{
- QGroupBox *box = new QGroupBox(parent);
-
- FakeVimUserCommandsModel *model = new FakeVimUserCommandsModel(m_q);
- QTreeView *widget = new QTreeView;
- widget->setModel(model);
- widget->resizeColumnToContents(0);
+ if (!m_widget) {
+ m_widget = new QGroupBox;
- FakeVimUserCommandsDelegate *delegate = new FakeVimUserCommandsDelegate(widget);
- widget->setItemDelegateForColumn(1, delegate);
+ FakeVimUserCommandsModel *model = new FakeVimUserCommandsModel(m_q);
+ QTreeView *widget = new QTreeView;
+ model->setParent(widget);
+ widget->setModel(model);
+ widget->resizeColumnToContents(0);
- QGridLayout *layout = new QGridLayout(box);
- layout->addWidget(widget, 0, 0);
- box->setLayout(layout);
+ FakeVimUserCommandsDelegate *delegate = new FakeVimUserCommandsDelegate(widget);
+ widget->setItemDelegateForColumn(1, delegate);
- return box;
+ QGridLayout *layout = new QGridLayout(m_widget);
+ layout->addWidget(widget, 0, 0);
+ m_widget->setLayout(layout);
+ }
+ return m_widget;
}
void FakeVimUserCommandsPage::apply()
{
//m_q->writeSettings();
+ delete m_widget;
}
diff --git a/src/plugins/git/gerrit/gerritoptionspage.cpp b/src/plugins/git/gerrit/gerritoptionspage.cpp
index 1bb77cbff0..b457232982 100644
--- a/src/plugins/git/gerrit/gerritoptionspage.cpp
+++ b/src/plugins/git/gerrit/gerritoptionspage.cpp
@@ -55,12 +55,13 @@ GerritOptionsPage::~GerritOptionsPage()
delete m_widget;
}
-QWidget *GerritOptionsPage::createPage(QWidget *parent)
+QWidget *GerritOptionsPage::widget()
{
- GerritOptionsWidget *gow = new GerritOptionsWidget(parent);
- gow->setParameters(*m_parameters);
- m_widget = gow;
- return gow;
+ if (!m_widget) {
+ m_widget = new GerritOptionsWidget;
+ m_widget->setParameters(*m_parameters);
+ }
+ return m_widget;
}
void GerritOptionsPage::apply()
@@ -78,9 +79,9 @@ void GerritOptionsPage::apply()
}
}
-bool GerritOptionsPage::matches(const QString &s) const
+void GerritOptionsPage::finish()
{
- return s.contains(QLatin1String("gerrit"), Qt::CaseInsensitive);
+ delete m_widget;
}
GerritOptionsWidget::GerritOptionsWidget(QWidget *parent)
diff --git a/src/plugins/git/gerrit/gerritoptionspage.h b/src/plugins/git/gerrit/gerritoptionspage.h
index 02a3131a1a..5fd241ecb6 100644
--- a/src/plugins/git/gerrit/gerritoptionspage.h
+++ b/src/plugins/git/gerrit/gerritoptionspage.h
@@ -78,10 +78,9 @@ public:
QObject *parent = 0);
~GerritOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
const QSharedPointer<GerritParameters> &m_parameters;
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index cb22d24e76..a2dd6caab1 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -91,25 +91,6 @@ void SettingsPageWidget::setSettings(const GitSettings &s)
m_ui.repBrowserCommandPathChooser->setPath(s.stringValue(GitSettings::repositoryBrowserCmd));
}
-QString SettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui.pathlabel->text()
- << sep << m_ui.winHomeCheckBox->text()
- << sep << m_ui.groupBox->title()
- << sep << m_ui.logCountLabel->text()
- << sep << m_ui.timeoutLabel->text()
- << sep << m_ui.gitkGroupBox->title()
- << sep << m_ui.gitkOptionsLabel->text()
- << sep << m_ui.repBrowserGroupBox->title()
- << sep << m_ui.repBrowserCommandLabel->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
// -------- SettingsPage
SettingsPage::SettingsPage() :
m_widget(0)
@@ -118,12 +99,12 @@ SettingsPage::SettingsPage() :
setDisplayName(tr("Git"));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
- m_widget->setSettings(GitPlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsPageWidget;
+ m_widget->setSettings(GitPlugin::instance()->settings());
+ }
return m_widget;
}
@@ -142,9 +123,9 @@ void SettingsPage::apply()
GitPlugin::instance()->setSettings(newSettings);
}
-bool SettingsPage::matches(const QString &s) const
+void SettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
}
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index 18e70f473b..d7fe845fad 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -30,12 +30,13 @@
#ifndef SETTINGSPAGE_H
#define SETTINGSPAGE_H
-#include <QWidget>
-
#include <vcsbase/vcsbaseoptionspage.h>
#include "ui_settingspage.h"
+#include <QPointer>
+#include <QWidget>
+
QT_BEGIN_NAMESPACE
class QSettings;
QT_END_NAMESPACE
@@ -53,8 +54,6 @@ public:
GitSettings settings() const;
void setSettings(const GitSettings &);
- QString searchKeywords() const;
-
private:
Ui::SettingsPage m_ui;
};
@@ -66,14 +65,13 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
QString m_searchKeywords;
- SettingsPageWidget* m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index 627aaab13f..36fdda46b0 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -50,27 +50,26 @@ DocSettingsPage::DocSettingsPage()
setCategoryIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
}
-QWidget *DocSettingsPage::createPage(QWidget *parent)
+QWidget *DocSettingsPage::widget()
{
- QWidget *widget = new QWidget(parent);
- m_ui.setupUi(widget);
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
- connect(m_ui.addButton, SIGNAL(clicked()), this, SLOT(addDocumentation()));
- connect(m_ui.removeButton, SIGNAL(clicked()), this, SLOT(removeDocumentation()));
+ connect(m_ui.addButton, SIGNAL(clicked()), this, SLOT(addDocumentation()));
+ connect(m_ui.removeButton, SIGNAL(clicked()), this, SLOT(removeDocumentation()));
- m_ui.docsListWidget->installEventFilter(this);
+ m_ui.docsListWidget->installEventFilter(this);
- const QStringList nameSpaces = HelpManager::registeredNamespaces();
- foreach (const QString &nameSpace, nameSpaces) {
- addItem(nameSpace, HelpManager::fileFromNamespace(nameSpace));
- m_filesToRegister.insert(nameSpace, HelpManager::fileFromNamespace(nameSpace));
- }
-
- m_filesToUnregister.clear();
+ const QStringList nameSpaces = HelpManager::registeredNamespaces();
+ foreach (const QString &nameSpace, nameSpaces) {
+ addItem(nameSpace, HelpManager::fileFromNamespace(nameSpace));
+ m_filesToRegister.insert(nameSpace, HelpManager::fileFromNamespace(nameSpace));
+ }
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_ui.groupBox->title();
- return widget;
+ m_filesToUnregister.clear();
+ }
+ return m_widget;
}
void DocSettingsPage::addDocumentation()
@@ -155,9 +154,9 @@ void DocSettingsPage::apply()
m_filesToUnregister.clear();
}
-bool DocSettingsPage::matches(const QString &s) const
+void DocSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
bool DocSettingsPage::eventFilter(QObject *object, QEvent *event)
diff --git a/src/plugins/help/docsettingspage.h b/src/plugins/help/docsettingspage.h
index 337db8f7b7..ed93f9ec7a 100644
--- a/src/plugins/help/docsettingspage.h
+++ b/src/plugins/help/docsettingspage.h
@@ -33,6 +33,8 @@
#include "ui_docsettingspage.h"
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Help {
namespace Internal {
@@ -43,10 +45,9 @@ class DocSettingsPage : public Core::IOptionsPage
public:
DocSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() {}
- bool matches(const QString &s) const;
+ void finish();
private slots:
void addDocumentation();
@@ -59,8 +60,8 @@ private:
private:
Ui::DocSettingsPage m_ui;
+ QPointer<QWidget> m_widget;
- QString m_searchKeywords;
QString m_recentDialogPath;
typedef QHash<QString, QString> NameSpaceToPathHash;
diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index f97cdfa879..351ddd5453 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -51,29 +51,26 @@ FilterSettingsPage::FilterSettingsPage()
setCategoryIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
}
-QWidget *FilterSettingsPage::createPage(QWidget *parent)
+QWidget *FilterSettingsPage::widget()
{
- QWidget *widget = new QWidget(parent);
- m_ui.setupUi(widget);
-
- updateFilterPage();
-
- connect(m_ui.attributeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
- this, SLOT(updateFilterMap()));
- connect(m_ui.filterWidget,
- SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this,
- SLOT(updateAttributes(QListWidgetItem*)));
- connect(m_ui.filterAddButton, SIGNAL(clicked()), this, SLOT(addFilter()));
- connect(m_ui.filterRemoveButton, SIGNAL(clicked()), this,
- SLOT(removeFilter()));
- connect(HelpManager::instance(), SIGNAL(documentationChanged()),
- this, SLOT(updateFilterPage()));
-
- if (m_searchKeywords.isEmpty()) {
- m_searchKeywords = m_ui.filterGroupBox->title() + QLatin1Char(' ')
- + m_ui.attributesGroupBox->title();
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
+
+ updateFilterPage();
+
+ connect(m_ui.attributeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
+ this, SLOT(updateFilterMap()));
+ connect(m_ui.filterWidget,
+ SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), this,
+ SLOT(updateAttributes(QListWidgetItem*)));
+ connect(m_ui.filterAddButton, SIGNAL(clicked()), this, SLOT(addFilter()));
+ connect(m_ui.filterRemoveButton, SIGNAL(clicked()), this,
+ SLOT(removeFilter()));
+ connect(HelpManager::instance(), SIGNAL(documentationChanged()),
+ this, SLOT(updateFilterPage()));
}
- return widget;
+ return m_widget;
}
void FilterSettingsPage::updateFilterPage()
@@ -230,11 +227,7 @@ void FilterSettingsPage::finish()
{
disconnect(HelpManager::instance(), SIGNAL(documentationChanged()),
this, SLOT(updateFilterPage()));
-}
-
-bool FilterSettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
QString FilterSettingsPage::msgFilterLabel(const QString &filter) const
diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h
index 3d20d19521..33634b0d25 100644
--- a/src/plugins/help/filtersettingspage.h
+++ b/src/plugins/help/filtersettingspage.h
@@ -33,6 +33,8 @@
#include "ui_filtersettingspage.h"
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Help {
namespace Internal {
@@ -43,10 +45,9 @@ class FilterSettingsPage : public Core::IOptionsPage
public:
FilterSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
signals:
void filtersChanged();
@@ -64,12 +65,12 @@ private:
private:
QString msgFilterLabel(const QString &filter) const;
Ui::FilterSettingsPage m_ui;
+ QPointer<QWidget> m_widget;
typedef QMap<QString, QStringList> FilterMap;
FilterMap m_filterMap;
FilterMap m_filterMapBackup;
- QString m_searchKeywords;
QStringList m_removedFilters;
};
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 43ac9b1aed..53848cff7c 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -72,59 +72,54 @@ GeneralSettingsPage::GeneralSettingsPage()
setCategoryIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
}
-QWidget *GeneralSettingsPage::createPage(QWidget *parent)
+QWidget *GeneralSettingsPage::widget()
{
- QWidget *widget = new QWidget(parent);
- m_ui = new Ui::GeneralSettingsPage;
- m_ui->setupUi(widget);
- m_ui->sizeComboBox->setEditable(false);
- m_ui->styleComboBox->setEditable(false);
-
- m_font = qvariant_cast<QFont>(HelpManager::customValue(QLatin1String("font"), m_font));
-
- updateFontSize();
- updateFontStyle();
- updateFontFamily();
-
- m_homePage = HelpManager::customValue(QLatin1String("HomePage"), QString())
- .toString();
- if (m_homePage.isEmpty()) {
- m_homePage = HelpManager::customValue(QLatin1String("DefaultHomePage"),
- Help::Constants::AboutBlank).toString();
- }
- m_ui->homePageLineEdit->setText(m_homePage);
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui = new Ui::GeneralSettingsPage;
+ m_ui->setupUi(m_widget);
+ m_ui->sizeComboBox->setEditable(false);
+ m_ui->styleComboBox->setEditable(false);
+
+ m_font = qvariant_cast<QFont>(HelpManager::customValue(QLatin1String("font"), m_font));
+
+ updateFontSize();
+ updateFontStyle();
+ updateFontFamily();
+
+ m_homePage = HelpManager::customValue(QLatin1String("HomePage"), QString())
+ .toString();
+ if (m_homePage.isEmpty()) {
+ m_homePage = HelpManager::customValue(QLatin1String("DefaultHomePage"),
+ Help::Constants::AboutBlank).toString();
+ }
+ m_ui->homePageLineEdit->setText(m_homePage);
- m_startOption = HelpManager::customValue(QLatin1String("StartOption"),
- Help::Constants::ShowLastPages).toInt();
- m_ui->helpStartComboBox->setCurrentIndex(m_startOption);
+ m_startOption = HelpManager::customValue(QLatin1String("StartOption"),
+ Help::Constants::ShowLastPages).toInt();
+ m_ui->helpStartComboBox->setCurrentIndex(m_startOption);
- m_contextOption = HelpManager::customValue(QLatin1String("ContextHelpOption"),
- Help::Constants::SideBySideIfPossible).toInt();
- m_ui->contextHelpComboBox->setCurrentIndex(m_contextOption);
+ m_contextOption = HelpManager::customValue(QLatin1String("ContextHelpOption"),
+ Help::Constants::SideBySideIfPossible).toInt();
+ m_ui->contextHelpComboBox->setCurrentIndex(m_contextOption);
- connect(m_ui->currentPageButton, SIGNAL(clicked()), this, SLOT(setCurrentPage()));
- connect(m_ui->blankPageButton, SIGNAL(clicked()), this, SLOT(setBlankPage()));
- connect(m_ui->defaultPageButton, SIGNAL(clicked()), this, SLOT(setDefaultPage()));
+ connect(m_ui->currentPageButton, SIGNAL(clicked()), this, SLOT(setCurrentPage()));
+ connect(m_ui->blankPageButton, SIGNAL(clicked()), this, SLOT(setBlankPage()));
+ connect(m_ui->defaultPageButton, SIGNAL(clicked()), this, SLOT(setDefaultPage()));
- HelpViewer *viewer = CentralWidget::instance()->currentHelpViewer();
- if (!viewer)
- m_ui->currentPageButton->setEnabled(false);
+ HelpViewer *viewer = CentralWidget::instance()->currentHelpViewer();
+ if (!viewer)
+ m_ui->currentPageButton->setEnabled(false);
- m_ui->errorLabel->setVisible(false);
- connect(m_ui->importButton, SIGNAL(clicked()), this, SLOT(importBookmarks()));
- connect(m_ui->exportButton, SIGNAL(clicked()), this, SLOT(exportBookmarks()));
+ m_ui->errorLabel->setVisible(false);
+ connect(m_ui->importButton, SIGNAL(clicked()), this, SLOT(importBookmarks()));
+ connect(m_ui->exportButton, SIGNAL(clicked()), this, SLOT(exportBookmarks()));
- if (m_searchKeywords.isEmpty()) {
- QTextStream(&m_searchKeywords) << ' ' << m_ui->contextHelpLabel->text()
- << ' ' << m_ui->startPageLabel->text() << ' ' << m_ui->homePageLabel->text();
- m_searchKeywords.remove(QLatin1Char('&'));
+ m_returnOnClose = HelpManager::customValue(QLatin1String("ReturnOnClose"),
+ false).toBool();
+ m_ui->m_returnOnClose->setChecked(m_returnOnClose);
}
-
- m_returnOnClose = HelpManager::customValue(QLatin1String("ReturnOnClose"),
- false).toBool();
- m_ui->m_returnOnClose->setChecked(m_returnOnClose);
-
- return widget;
+ return m_widget;
}
void GeneralSettingsPage::apply()
@@ -342,13 +337,9 @@ int GeneralSettingsPage::closestPointSizeIndex(int desiredPointSize) const
return closestIndex;
}
-bool GeneralSettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void GeneralSettingsPage::finish()
{
+ delete m_widget;
if (!m_ui) // page was never shown
return;
delete m_ui;
diff --git a/src/plugins/help/generalsettingspage.h b/src/plugins/help/generalsettingspage.h
index 70fb588b96..06fdd45b9f 100644
--- a/src/plugins/help/generalsettingspage.h
+++ b/src/plugins/help/generalsettingspage.h
@@ -33,6 +33,8 @@
#include "ui_generalsettingspage.h"
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Help {
namespace Internal {
@@ -45,10 +47,9 @@ class GeneralSettingsPage : public Core::IOptionsPage
public:
GeneralSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
signals:
void fontChanged();
@@ -79,7 +80,7 @@ private:
int m_startOption;
bool m_returnOnClose;
- QString m_searchKeywords;
+ QPointer<QWidget> m_widget;
Ui::GeneralSettingsPage *m_ui;
};
diff --git a/src/plugins/ios/iossettingspage.cpp b/src/plugins/ios/iossettingspage.cpp
index f1a61e7aeb..de5766878e 100644
--- a/src/plugins/ios/iossettingspage.cpp
+++ b/src/plugins/ios/iossettingspage.cpp
@@ -48,16 +48,10 @@ IosSettingsPage::IosSettingsPage(QObject *parent)
setCategoryIcon(QLatin1String(Constants::IOS_SETTINGS_CATEGORY_ICON));
}
-bool IosSettingsPage::matches(const QString &searchKeyWord) const
+QWidget *IosSettingsPage::widget()
{
- return m_keywords.contains(searchKeyWord, Qt::CaseInsensitive);
-}
-
-QWidget *IosSettingsPage::createPage(QWidget *parent)
-{
- m_widget = new IosSettingsWidget(parent);
- if (m_keywords.isEmpty())
- m_keywords = m_widget->searchKeywords();
+ if (!m_widget)
+ m_widget = new IosSettingsWidget;
return m_widget;
}
@@ -69,6 +63,7 @@ void IosSettingsPage::apply()
void IosSettingsPage::finish()
{
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/ios/iossettingspage.h b/src/plugins/ios/iossettingspage.h
index 96ee190905..6dbd5beaa4 100644
--- a/src/plugins/ios/iossettingspage.h
+++ b/src/plugins/ios/iossettingspage.h
@@ -31,6 +31,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Ios {
namespace Internal {
@@ -43,14 +45,12 @@ class IosSettingsPage : public Core::IOptionsPage
public:
explicit IosSettingsPage(QObject *parent = 0);
- bool matches(const QString &searchKeyWord) const;
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- QString m_keywords;
- IosSettingsWidget *m_widget;
+ QPointer<IosSettingsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/ios/iossettingswidget.cpp b/src/plugins/ios/iossettingswidget.cpp
index b4e7e44eb3..87f0e805a8 100644
--- a/src/plugins/ios/iossettingswidget.cpp
+++ b/src/plugins/ios/iossettingswidget.cpp
@@ -65,14 +65,6 @@ IosSettingsWidget::~IosSettingsWidget()
delete m_ui;
}
-QString IosSettingsWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc) << m_ui->deviceAskCheckBox->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void IosSettingsWidget::initGui()
{
m_ui->setupUi(this);
diff --git a/src/plugins/ios/iossettingswidget.h b/src/plugins/ios/iossettingswidget.h
index 58b8fc7c60..7d22a645d6 100644
--- a/src/plugins/ios/iossettingswidget.h
+++ b/src/plugins/ios/iossettingswidget.h
@@ -48,11 +48,10 @@ class IosSettingsWidget : public QWidget
Q_OBJECT
public:
// Todo: This would be so much simpler if it just used Utils::PathChooser!!!
- IosSettingsWidget(QWidget *parent);
+ IosSettingsWidget(QWidget *parent = 0);
~IosSettingsWidget();
void saveSettings();
- QString searchKeywords() const;
private slots:
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index a12d3052d7..86d84a5281 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -45,7 +45,7 @@ using namespace Locator;
using namespace Locator::Internal;
SettingsPage::SettingsPage(LocatorPlugin *plugin)
- : m_plugin(plugin), m_page(0)
+ : m_plugin(plugin), m_widget(0)
{
setId(Constants::FILTER_OPTIONS_PAGE);
setDisplayName(QCoreApplication::translate("Locator", Locator::Constants::FILTER_OPTIONS_PAGE));
@@ -54,33 +54,30 @@ SettingsPage::SettingsPage(LocatorPlugin *plugin)
setCategoryIcon(QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE_ICON));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
-
- m_page = new QWidget(parent);
- m_ui.setupUi(m_page);
- m_ui.refreshInterval->setToolTip(m_ui.refreshIntervalLabel->toolTip());
- connect(m_ui.filterList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
- this, SLOT(updateButtonStates()));
- connect(m_ui.filterList, SIGNAL(itemActivated(QListWidgetItem*)),
- this, SLOT(configureFilter(QListWidgetItem*)));
- connect(m_ui.editButton, SIGNAL(clicked()),
- this, SLOT(configureFilter()));
- connect(m_ui.addButton, SIGNAL(clicked()),
- this, SLOT(addCustomFilter()));
- connect(m_ui.removeButton, SIGNAL(clicked()),
- this, SLOT(removeCustomFilter()));
-
- m_ui.refreshInterval->setValue(m_plugin->refreshInterval());
- m_filters = m_plugin->filters();
- m_customFilters = m_plugin->customFilters();
- saveFilterStates();
- updateFilterList();
- if (m_searchKeywords.isEmpty()) {
- m_searchKeywords = m_ui.refreshIntervalLabel->text();
- m_searchKeywords.remove(QLatin1Char('&'));
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
+ m_ui.refreshInterval->setToolTip(m_ui.refreshIntervalLabel->toolTip());
+ connect(m_ui.filterList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
+ this, SLOT(updateButtonStates()));
+ connect(m_ui.filterList, SIGNAL(itemActivated(QListWidgetItem*)),
+ this, SLOT(configureFilter(QListWidgetItem*)));
+ connect(m_ui.editButton, SIGNAL(clicked()),
+ this, SLOT(configureFilter()));
+ connect(m_ui.addButton, SIGNAL(clicked()),
+ this, SLOT(addCustomFilter()));
+ connect(m_ui.removeButton, SIGNAL(clicked()),
+ this, SLOT(removeCustomFilter()));
+
+ m_ui.refreshInterval->setValue(m_plugin->refreshInterval());
+ m_filters = m_plugin->filters();
+ m_customFilters = m_plugin->customFilters();
+ saveFilterStates();
+ updateFilterList();
}
- return m_page;
+ return m_widget;
}
void SettingsPage::apply()
@@ -114,6 +111,7 @@ void SettingsPage::finish()
m_filters.clear();
m_customFilters.clear();
m_refreshFilters.clear();
+ delete m_widget;
}
void SettingsPage::requestRefresh()
@@ -174,7 +172,7 @@ void SettingsPage::configureFilter(QListWidgetItem *item)
if (!filter->isConfigurable())
return;
bool needsRefresh = false;
- filter->openConfigDialog(m_page, needsRefresh);
+ filter->openConfigDialog(m_widget, needsRefresh);
if (needsRefresh && !m_refreshFilters.contains(filter))
m_refreshFilters.append(filter);
updateFilterList();
@@ -184,7 +182,7 @@ void SettingsPage::addCustomFilter()
{
ILocatorFilter *filter = new DirectoryFilter;
bool needsRefresh = false;
- if (filter->openConfigDialog(m_page, needsRefresh)) {
+ if (filter->openConfigDialog(m_widget, needsRefresh)) {
m_filters.append(filter);
m_addedFilters.append(filter);
m_customFilters.append(filter);
@@ -210,8 +208,3 @@ void SettingsPage::removeCustomFilter()
}
updateFilterList();
}
-
-bool SettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
diff --git a/src/plugins/locator/settingspage.h b/src/plugins/locator/settingspage.h
index 7cd2ec71ee..61d22eb85d 100644
--- a/src/plugins/locator/settingspage.h
+++ b/src/plugins/locator/settingspage.h
@@ -32,10 +32,11 @@
#include "ui_settingspage.h"
-#include <QHash>
-
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QHash>
+#include <QPointer>
+
QT_BEGIN_NAMESPACE
class QListWidgetItem;
QT_END_NAMESPACE
@@ -55,10 +56,9 @@ class SettingsPage : public Core::IOptionsPage
public:
explicit SettingsPage(LocatorPlugin *plugin);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
private slots:
void updateButtonStates();
@@ -74,14 +74,13 @@ private:
Ui::SettingsWidget m_ui;
LocatorPlugin *m_plugin;
- QWidget *m_page;
+ QPointer<QWidget> m_widget;
QList<ILocatorFilter *> m_filters;
QList<ILocatorFilter *> m_addedFilters;
QList<ILocatorFilter *> m_removedFilters;
QList<ILocatorFilter *> m_customFilters;
QList<ILocatorFilter *> m_refreshFilters;
QHash<ILocatorFilter *, QByteArray> m_filterStates;
- QString m_searchKeywords;
};
} // namespace Internal
diff --git a/src/plugins/macros/macrooptionspage.cpp b/src/plugins/macros/macrooptionspage.cpp
index 97220d054c..754ede9bb4 100644
--- a/src/plugins/macros/macrooptionspage.cpp
+++ b/src/plugins/macros/macrooptionspage.cpp
@@ -53,9 +53,10 @@ MacroOptionsPage::MacroOptionsPage(QObject *parent)
TextEditor::Constants::TEXT_EDITOR_SETTINGS_TR_CATEGORY));
}
-QWidget *MacroOptionsPage::createPage(QWidget *parent)
+QWidget *MacroOptionsPage::widget()
{
- m_widget = new MacroOptionsWidget(parent);
+ if (!m_widget)
+ m_widget = new MacroOptionsWidget;
return m_widget;
}
@@ -67,5 +68,5 @@ void MacroOptionsPage::apply()
void MacroOptionsPage::finish()
{
- // Nothing to do
+ delete m_widget;
}
diff --git a/src/plugins/macros/macrooptionspage.h b/src/plugins/macros/macrooptionspage.h
index a1b3575744..62819ab487 100644
--- a/src/plugins/macros/macrooptionspage.h
+++ b/src/plugins/macros/macrooptionspage.h
@@ -32,6 +32,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Macros {
namespace Internal {
@@ -45,12 +47,12 @@ public:
MacroOptionsPage(QObject *parent = 0);
// IOptionsPage implementation
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- Internal::MacroOptionsWidget *m_widget;
+ QPointer<MacroOptionsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp
index 79e5ca41ad..ca272b9e27 100644
--- a/src/plugins/mercurial/optionspage.cpp
+++ b/src/plugins/mercurial/optionspage.cpp
@@ -68,37 +68,17 @@ void OptionsPageWidget::setSettings(const MercurialSettings &s)
m_ui.timeout->setValue(s.intValue(MercurialSettings::timeoutKey));
}
-QString OptionsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui.configGroupBox->title()
- << sep << m_ui.mercurialCommandLabel->text()
- << sep << m_ui.userGroupBox->title()
- << sep << m_ui.defaultUsernameLabel->text()
- << sep << m_ui.defaultEmailLabel->text()
- << sep << m_ui.miscGroupBox->title()
- << sep << m_ui.showLogEntriesLabel->text()
- << sep << m_ui.timeoutSecondsLabel->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
OptionsPage::OptionsPage()
{
setId(VcsBase::Constants::VCS_ID_MERCURIAL);
setDisplayName(tr("Mercurial"));
}
-QWidget *OptionsPage::createPage(QWidget *parent)
+QWidget *OptionsPage::widget()
{
if (!optionsPageWidget)
- optionsPageWidget = new OptionsPageWidget(parent);
+ optionsPageWidget = new OptionsPageWidget;
optionsPageWidget->setSettings(MercurialPlugin::settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = optionsPageWidget->searchKeywords();
return optionsPageWidget;
}
@@ -115,7 +95,7 @@ void OptionsPage::apply()
}
}
-bool OptionsPage::matches(const QString &s) const
+void OptionsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete optionsPageWidget;
}
diff --git a/src/plugins/mercurial/optionspage.h b/src/plugins/mercurial/optionspage.h
index ff55161a7c..acad34a9e6 100644
--- a/src/plugins/mercurial/optionspage.h
+++ b/src/plugins/mercurial/optionspage.h
@@ -51,7 +51,6 @@ public:
MercurialSettings settings() const;
void setSettings(const MercurialSettings &s);
- QString searchKeywords() const;
private:
Ui::OptionsPage m_ui;
@@ -65,16 +64,14 @@ class OptionsPage : public VcsBase::VcsBaseOptionsPage
public:
OptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &s) const;
+ void finish();
signals:
void settingsChanged();
private:
- QString m_searchKeywords;
QPointer<OptionsPageWidget> optionsPageWidget;
};
diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp
index 0fce54aaea..e4a9a4f4de 100644
--- a/src/plugins/perforce/settingspage.cpp
+++ b/src/plugins/perforce/settingspage.cpp
@@ -143,12 +143,12 @@ SettingsPage::SettingsPage()
setDisplayName(tr("Perforce"));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
- m_widget->setSettings(PerforcePlugin::settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsPageWidget;
+ m_widget->setSettings(PerforcePlugin::settings());
+ }
return m_widget;
}
@@ -157,7 +157,7 @@ void SettingsPage::apply()
PerforcePlugin::setSettings(m_widget->settings());
}
-bool SettingsPage::matches(const QString &s) const
+void SettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/perforce/settingspage.h b/src/plugins/perforce/settingspage.h
index bf12f86541..d4eba73bd3 100644
--- a/src/plugins/perforce/settingspage.h
+++ b/src/plugins/perforce/settingspage.h
@@ -49,7 +49,7 @@ class SettingsPageWidget : public QWidget
Q_OBJECT
public:
- explicit SettingsPageWidget(QWidget *parent);
+ explicit SettingsPageWidget(QWidget *parent = 0);
void setSettings(const PerforceSettings &);
Settings settings() const;
@@ -75,14 +75,12 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
- SettingsPageWidget* m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
index 13aa949d8f..b9f15fd514 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
@@ -48,16 +48,10 @@ DeviceSettingsPage::DeviceSettingsPage(QObject *parent)
setCategoryIcon(QLatin1String(":/projectexplorer/images/MaemoDevice.png"));
}
-bool DeviceSettingsPage::matches(const QString &searchKeyWord) const
+QWidget *DeviceSettingsPage::widget()
{
- return m_keywords.contains(searchKeyWord, Qt::CaseInsensitive);
-}
-
-QWidget *DeviceSettingsPage::createPage(QWidget *parent)
-{
- m_widget = new DeviceSettingsWidget(parent);
- if (m_keywords.isEmpty())
- m_keywords = m_widget->searchKeywords();
+ if (!m_widget)
+ m_widget = new DeviceSettingsWidget;
return m_widget;
}
@@ -68,6 +62,7 @@ void DeviceSettingsPage::apply()
void DeviceSettingsPage::finish()
{
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingspage.h b/src/plugins/projectexplorer/devicesupport/devicesettingspage.h
index 676b8e2b56..93f5957c4f 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingspage.h
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingspage.h
@@ -31,6 +31,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace ProjectExplorer {
namespace Internal {
@@ -43,14 +45,12 @@ class DeviceSettingsPage : public Core::IOptionsPage
public:
DeviceSettingsPage(QObject *parent = 0);
- bool matches(const QString &searchKeyWord) const;
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- QString m_keywords;
- DeviceSettingsWidget *m_widget;
+ QPointer<DeviceSettingsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h
index c953fb9a95..1a4d2b4b63 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.h
@@ -55,7 +55,7 @@ class DeviceSettingsWidget : public QWidget
{
Q_OBJECT
public:
- DeviceSettingsWidget(QWidget *parent);
+ DeviceSettingsWidget(QWidget *parent = 0);
~DeviceSettingsWidget();
void saveSettings();
diff --git a/src/plugins/projectexplorer/kitoptionspage.cpp b/src/plugins/projectexplorer/kitoptionspage.cpp
index a39b5b70df..51b3a91354 100644
--- a/src/plugins/projectexplorer/kitoptionspage.cpp
+++ b/src/plugins/projectexplorer/kitoptionspage.cpp
@@ -59,76 +59,75 @@ KitOptionsPage::KitOptionsPage() :
setCategoryIcon(QLatin1String(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY_ICON));
}
-QWidget *KitOptionsPage::createPage(QWidget *parent)
+QWidget *KitOptionsPage::widget()
{
- m_configWidget = new QWidget(parent);
+ if (!m_configWidget) {
+ m_configWidget = new QWidget;
- m_kitsView = new QTreeView(m_configWidget);
- m_kitsView->setUniformRowHeights(true);
- m_kitsView->header()->setStretchLastSection(true);
- m_kitsView->setSizePolicy(m_kitsView->sizePolicy().horizontalPolicy(),
+ m_kitsView = new QTreeView(m_configWidget);
+ m_kitsView->setUniformRowHeights(true);
+ m_kitsView->header()->setStretchLastSection(true);
+ m_kitsView->setSizePolicy(m_kitsView->sizePolicy().horizontalPolicy(),
QSizePolicy::Ignored);
- m_addButton = new QPushButton(tr("Add"), m_configWidget);
- m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
- m_delButton = new QPushButton(tr("Remove"), m_configWidget);
- m_makeDefaultButton = new QPushButton(tr("Make Default"), m_configWidget);
-
- QVBoxLayout *buttonLayout = new QVBoxLayout();
- buttonLayout->setSpacing(6);
- buttonLayout->setContentsMargins(0, 0, 0, 0);
- buttonLayout->addWidget(m_addButton);
- buttonLayout->addWidget(m_cloneButton);
- buttonLayout->addWidget(m_delButton);
- buttonLayout->addWidget(m_makeDefaultButton);
- buttonLayout->addStretch();
-
- QHBoxLayout *horizontalLayout = new QHBoxLayout();
- horizontalLayout->addWidget(m_kitsView);
- horizontalLayout->addLayout(buttonLayout);
-
- QVBoxLayout *verticalLayout = new QVBoxLayout(m_configWidget);
- verticalLayout->addLayout(horizontalLayout);
-
- m_model = new Internal::KitModel(verticalLayout);
- connect(m_model, SIGNAL(kitStateChanged()), this, SLOT(updateState()));
- verticalLayout->setStretch(0, 1);
- verticalLayout->setStretch(1, 0);
-
- m_kitsView->setModel(m_model);
- m_kitsView->header()->setResizeMode(0, QHeaderView::Stretch);
- m_kitsView->expandAll();
-
- m_selectionModel = m_kitsView->selectionModel();
- connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
- this, SLOT(kitSelectionChanged()));
- connect(KitManager::instance(), SIGNAL(kitAdded(ProjectExplorer::Kit*)),
- this, SLOT(kitSelectionChanged()));
- connect(KitManager::instance(), SIGNAL(kitRemoved(ProjectExplorer::Kit*)),
- this, SLOT(kitSelectionChanged()));
- connect(KitManager::instance(), SIGNAL(kitUpdated(ProjectExplorer::Kit*)),
- this, SLOT(kitSelectionChanged()));
-
- // Set up add menu:
- connect(m_addButton, SIGNAL(clicked()), this, SLOT(addNewKit()));
- connect(m_cloneButton, SIGNAL(clicked()), this, SLOT(cloneKit()));
- connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeKit()));
- connect(m_makeDefaultButton, SIGNAL(clicked()), this, SLOT(makeDefaultKit()));
-
- m_searchKeywords = tr("Kits");
-
- updateState();
-
- if (m_toShow) {
- QModelIndex index = m_model->indexOf(m_toShow);
- m_selectionModel->select(index,
- QItemSelectionModel::Clear
- | QItemSelectionModel::SelectCurrent
- | QItemSelectionModel::Rows);
- m_kitsView->scrollTo(index);
+ m_addButton = new QPushButton(tr("Add"), m_configWidget);
+ m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
+ m_delButton = new QPushButton(tr("Remove"), m_configWidget);
+ m_makeDefaultButton = new QPushButton(tr("Make Default"), m_configWidget);
+
+ QVBoxLayout *buttonLayout = new QVBoxLayout();
+ buttonLayout->setSpacing(6);
+ buttonLayout->setContentsMargins(0, 0, 0, 0);
+ buttonLayout->addWidget(m_addButton);
+ buttonLayout->addWidget(m_cloneButton);
+ buttonLayout->addWidget(m_delButton);
+ buttonLayout->addWidget(m_makeDefaultButton);
+ buttonLayout->addStretch();
+
+ QHBoxLayout *horizontalLayout = new QHBoxLayout();
+ horizontalLayout->addWidget(m_kitsView);
+ horizontalLayout->addLayout(buttonLayout);
+
+ QVBoxLayout *verticalLayout = new QVBoxLayout(m_configWidget);
+ verticalLayout->addLayout(horizontalLayout);
+
+ m_model = new Internal::KitModel(verticalLayout);
+ connect(m_model, SIGNAL(kitStateChanged()), this, SLOT(updateState()));
+ verticalLayout->setStretch(0, 1);
+ verticalLayout->setStretch(1, 0);
+
+ m_kitsView->setModel(m_model);
+ m_kitsView->header()->setResizeMode(0, QHeaderView::Stretch);
+ m_kitsView->expandAll();
+
+ m_selectionModel = m_kitsView->selectionModel();
+ connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+ this, SLOT(kitSelectionChanged()));
+ connect(KitManager::instance(), SIGNAL(kitAdded(ProjectExplorer::Kit*)),
+ this, SLOT(kitSelectionChanged()));
+ connect(KitManager::instance(), SIGNAL(kitRemoved(ProjectExplorer::Kit*)),
+ this, SLOT(kitSelectionChanged()));
+ connect(KitManager::instance(), SIGNAL(kitUpdated(ProjectExplorer::Kit*)),
+ this, SLOT(kitSelectionChanged()));
+
+ // Set up add menu:
+ connect(m_addButton, SIGNAL(clicked()), this, SLOT(addNewKit()));
+ connect(m_cloneButton, SIGNAL(clicked()), this, SLOT(cloneKit()));
+ connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeKit()));
+ connect(m_makeDefaultButton, SIGNAL(clicked()), this, SLOT(makeDefaultKit()));
+
+ updateState();
+
+ if (m_toShow) {
+ QModelIndex index = m_model->indexOf(m_toShow);
+ m_selectionModel->select(index,
+ QItemSelectionModel::Clear
+ | QItemSelectionModel::SelectCurrent
+ | QItemSelectionModel::Rows);
+ m_kitsView->scrollTo(index);
+ }
+ m_toShow = 0;
}
- m_toShow = 0;
-
return m_configWidget;
}
@@ -145,18 +144,13 @@ void KitOptionsPage::finish()
m_model = 0;
}
- m_configWidget = 0; // deleted by settingsdialog
+ delete m_configWidget;
m_selectionModel = 0; // child of m_configWidget
m_kitsView = 0; // child of m_configWidget
m_currentWidget = 0; // deleted by the model
m_toShow = 0;
}
-bool KitOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void KitOptionsPage::showKit(Kit *k)
{
m_toShow = k;
diff --git a/src/plugins/projectexplorer/kitoptionspage.h b/src/plugins/projectexplorer/kitoptionspage.h
index 8022f82b8a..477a0e9c77 100644
--- a/src/plugins/projectexplorer/kitoptionspage.h
+++ b/src/plugins/projectexplorer/kitoptionspage.h
@@ -35,6 +35,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
#include <QModelIndex>
+#include <QPointer>
QT_BEGIN_NAMESPACE
class QItemSelectionModel;
@@ -59,10 +60,9 @@ class PROJECTEXPLORER_EXPORT KitOptionsPage : public Core::IOptionsPage
public:
KitOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
void showKit(Kit *k);
@@ -83,8 +83,7 @@ private:
QPushButton *m_delButton;
QPushButton *m_makeDefaultButton;
- QWidget *m_configWidget;
- QString m_searchKeywords;
+ QPointer<QWidget> m_configWidget;
Internal::KitModel *m_model;
QItemSelectionModel *m_selectionModel;
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 6ad0591fed..b43cb45db1 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -150,29 +150,6 @@ void ProjectExplorerSettingsWidget::updateResetButton()
m_ui.resetButton->setEnabled(buildDirectory() != QLatin1String(Core::Constants::DEFAULT_BUILD_DIRECTORY));
}
-QString ProjectExplorerSettingsWidget::searchKeywords() const
-{
- if (m_searchKeywords.isEmpty()) {
- QLatin1Char sep(' ');
- m_searchKeywords = m_ui.directoryGroupBox->title()
- + sep + m_ui.currentDirectoryRadioButton->text()
- + sep + m_ui.directoryRadioButton->text()
- + sep + m_ui.buildAndRunGroupBox->title()
- + sep + m_ui.saveAllFilesCheckBox->text()
- + sep + m_ui.buildProjectBeforeDeployCheckBox->text()
- + sep + m_ui.deployProjectBeforeRunCheckBox->text()
- + sep + m_ui.showCompileOutputCheckBox->text()
- + sep + m_ui.cleanOldAppOutputCheckBox->text()
- + sep + m_ui.mergeStdErrAndStdOutCheckBox->text()
- + sep + m_ui.mergeStdErrAndStdOutCheckBox->toolTip()
- + sep + m_ui.wrapAppOutputCheckBox->text()
- + sep + m_ui.jomLabel->text()
- ;
- m_searchKeywords.remove(QLatin1Char('&'));
- }
- return m_searchKeywords;
-}
-
// ------------------ ProjectExplorerSettingsPage
ProjectExplorerSettingsPage::ProjectExplorerSettingsPage()
{
@@ -188,15 +165,15 @@ ProjectExplorerSettingsPage::~ProjectExplorerSettingsPage()
{
}
-QWidget *ProjectExplorerSettingsPage::createPage(QWidget *parent)
+QWidget *ProjectExplorerSettingsPage::widget()
{
- m_widget = new ProjectExplorerSettingsWidget(parent);
- m_widget->setSettings(ProjectExplorerPlugin::projectExplorerSettings());
- m_widget->setProjectsDirectory(Core::DocumentManager::projectsDirectory());
- m_widget->setUseProjectsDirectory(Core::DocumentManager::useProjectsDirectory());
- m_widget->setBuildDirectory(Core::DocumentManager::buildDirectory());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new ProjectExplorerSettingsWidget;
+ m_widget->setSettings(ProjectExplorerPlugin::projectExplorerSettings());
+ m_widget->setProjectsDirectory(Core::DocumentManager::projectsDirectory());
+ m_widget->setUseProjectsDirectory(Core::DocumentManager::useProjectsDirectory());
+ m_widget->setBuildDirectory(Core::DocumentManager::buildDirectory());
+ }
return m_widget;
}
@@ -212,12 +189,7 @@ void ProjectExplorerSettingsPage::apply()
void ProjectExplorerSettingsPage::finish()
{
- // Nothing to do
-}
-
-bool ProjectExplorerSettingsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.h b/src/plugins/projectexplorer/projectexplorersettingspage.h
index 38b99181f4..2dbc211753 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.h
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.h
@@ -59,8 +59,6 @@ public:
QString buildDirectory() const;
void setBuildDirectory(const QString &bd);
- QString searchKeywords() const;
-
private slots:
void slotDirectoryButtonGroupChanged();
void resetDefaultBuildDirectory();
@@ -70,7 +68,6 @@ private:
void setJomVisible(bool);
Ui::ProjectExplorerSettingsPageUi m_ui;
- mutable QString m_searchKeywords;
QUuid m_environmentId;
};
@@ -82,13 +79,11 @@ public:
ProjectExplorerSettingsPage();
~ProjectExplorerSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
private:
- QString m_searchKeywords;
QPointer<ProjectExplorerSettingsWidget> m_widget;
};
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 44b1a82191..7222a3ae0c 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -450,92 +450,81 @@ ToolChainOptionsPage::ToolChainOptionsPage() :
setCategoryIcon(QLatin1String(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY_ICON));
}
-QWidget *ToolChainOptionsPage::createPage(QWidget *parent)
-{
- // Actual page setup:
- m_configWidget = new QWidget(parent);
-
- m_toolChainView = new QTreeView(m_configWidget);
- m_toolChainView->setUniformRowHeights(true);
- m_toolChainView->header()->setStretchLastSection(false);
-
- m_addButton = new QPushButton(tr("Add"), m_configWidget);
- m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
- m_delButton = new QPushButton(tr("Remove"), m_configWidget);
-
- m_container = new Utils::DetailsWidget(m_configWidget);
- m_container->setState(Utils::DetailsWidget::NoSummary);
- m_container->setVisible(false);
-
- QVBoxLayout *buttonLayout = new QVBoxLayout();
- buttonLayout->setSpacing(6);
- buttonLayout->setContentsMargins(0, 0, 0, 0);
- buttonLayout->addWidget(m_addButton);
- buttonLayout->addWidget(m_cloneButton);
- buttonLayout->addWidget(m_delButton);
- buttonLayout->addItem(new QSpacerItem(10, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
-
- QVBoxLayout *verticalLayout = new QVBoxLayout();
- verticalLayout->addWidget(m_toolChainView);
- verticalLayout->addWidget(m_container);
-
- QHBoxLayout *horizontalLayout = new QHBoxLayout(m_configWidget);
- horizontalLayout->addLayout(verticalLayout);
- horizontalLayout->addLayout(buttonLayout);
- Q_ASSERT(!m_model);
- m_model = new ToolChainModel(m_configWidget);
-
- connect(m_model, SIGNAL(toolChainStateChanged()), this, SLOT(updateState()));
-
- m_toolChainView->setModel(m_model);
- m_toolChainView->header()->setResizeMode(0, QHeaderView::ResizeToContents);
- m_toolChainView->header()->setResizeMode(1, QHeaderView::Stretch);
- m_toolChainView->expandAll();
-
- m_selectionModel = m_toolChainView->selectionModel();
- connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
- this, SLOT(toolChainSelectionChanged()));
- connect(ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
- this, SLOT(toolChainSelectionChanged()));
-
- // Get toolchainfactories:
- m_factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>();
-
- // Set up add menu:
- QMenu *addMenu = new QMenu(m_addButton);
- QSignalMapper *mapper = new QSignalMapper(addMenu);
- connect(mapper, SIGNAL(mapped(QObject*)), this, SLOT(createToolChain(QObject*)));
-
- foreach (ToolChainFactory *factory, m_factories) {
- if (factory->canCreate()) {
- QAction *action = new QAction(addMenu);
- action->setText(factory->displayName());
- connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
- mapper->setMapping(action, static_cast<QObject *>(factory));
-
- addMenu->addAction(action);
+QWidget *ToolChainOptionsPage::widget()
+{
+ if (!m_configWidget) {
+ // Actual page setup:
+ m_configWidget = new QWidget;
+
+ m_toolChainView = new QTreeView(m_configWidget);
+ m_toolChainView->setUniformRowHeights(true);
+ m_toolChainView->header()->setStretchLastSection(false);
+
+ m_addButton = new QPushButton(tr("Add"), m_configWidget);
+ m_cloneButton = new QPushButton(tr("Clone"), m_configWidget);
+ m_delButton = new QPushButton(tr("Remove"), m_configWidget);
+
+ m_container = new Utils::DetailsWidget(m_configWidget);
+ m_container->setState(Utils::DetailsWidget::NoSummary);
+ m_container->setVisible(false);
+
+ QVBoxLayout *buttonLayout = new QVBoxLayout();
+ buttonLayout->setSpacing(6);
+ buttonLayout->setContentsMargins(0, 0, 0, 0);
+ buttonLayout->addWidget(m_addButton);
+ buttonLayout->addWidget(m_cloneButton);
+ buttonLayout->addWidget(m_delButton);
+ buttonLayout->addItem(new QSpacerItem(10, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
+
+ QVBoxLayout *verticalLayout = new QVBoxLayout();
+ verticalLayout->addWidget(m_toolChainView);
+ verticalLayout->addWidget(m_container);
+
+ QHBoxLayout *horizontalLayout = new QHBoxLayout(m_configWidget);
+ horizontalLayout->addLayout(verticalLayout);
+ horizontalLayout->addLayout(buttonLayout);
+ Q_ASSERT(!m_model);
+ m_model = new ToolChainModel(m_configWidget);
+
+ connect(m_model, SIGNAL(toolChainStateChanged()), this, SLOT(updateState()));
+
+ m_toolChainView->setModel(m_model);
+ m_toolChainView->header()->setResizeMode(0, QHeaderView::ResizeToContents);
+ m_toolChainView->header()->setResizeMode(1, QHeaderView::Stretch);
+ m_toolChainView->expandAll();
+
+ m_selectionModel = m_toolChainView->selectionModel();
+ connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+ this, SLOT(toolChainSelectionChanged()));
+ connect(ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
+ this, SLOT(toolChainSelectionChanged()));
+
+ // Get toolchainfactories:
+ m_factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>();
+
+ // Set up add menu:
+ QMenu *addMenu = new QMenu(m_addButton);
+ QSignalMapper *mapper = new QSignalMapper(addMenu);
+ connect(mapper, SIGNAL(mapped(QObject*)), this, SLOT(createToolChain(QObject*)));
+
+ foreach (ToolChainFactory *factory, m_factories) {
+ if (factory->canCreate()) {
+ QAction *action = new QAction(addMenu);
+ action->setText(factory->displayName());
+ connect(action, SIGNAL(triggered()), mapper, SLOT(map()));
+ mapper->setMapping(action, static_cast<QObject *>(factory));
+
+ addMenu->addAction(action);
+ }
}
- }
- connect(m_cloneButton, SIGNAL(clicked()), mapper, SLOT(map()));
- mapper->setMapping(m_cloneButton, static_cast<QObject *>(0));
-
- m_addButton->setMenu(addMenu);
-
- connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeToolChain()));
+ connect(m_cloneButton, SIGNAL(clicked()), mapper, SLOT(map()));
+ mapper->setMapping(m_cloneButton, static_cast<QObject *>(0));
- // setup keywords:
- if (m_searchKeywords.isEmpty()) {
- QLatin1Char sep(' ');
- QTextStream stream(&m_searchKeywords);
- stream << tr("Compilers");
- foreach (ToolChainFactory *f, m_factories)
- stream << sep << f->displayName();
+ m_addButton->setMenu(addMenu);
- m_searchKeywords.remove(QLatin1Char('&'));
+ connect(m_delButton, SIGNAL(clicked()), this, SLOT(removeToolChain()));
+ updateState();
}
-
- updateState();
-
return m_configWidget;
}
@@ -550,8 +539,7 @@ void ToolChainOptionsPage::finish()
disconnect(ToolChainManager::instance(), SIGNAL(toolChainsChanged()),
this, SLOT(toolChainSelectionChanged()));
- // delete by settingsdialog;
- m_configWidget = 0;
+ delete m_configWidget;
// children of m_configWidget
m_model = 0;
@@ -563,11 +551,6 @@ void ToolChainOptionsPage::finish()
m_delButton = 0;
}
-bool ToolChainOptionsPage::matches(const QString &s) const
-{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void ToolChainOptionsPage::toolChainSelectionChanged()
{
if (!m_container)
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.h b/src/plugins/projectexplorer/toolchainoptionspage.h
index 19b365dca4..4c3186c675 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.h
+++ b/src/plugins/projectexplorer/toolchainoptionspage.h
@@ -33,6 +33,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
#include <QAbstractItemModel>
+#include <QPointer>
QT_BEGIN_NAMESPACE
class QItemSelectionModel;
@@ -117,10 +118,9 @@ class ToolChainOptionsPage : public Core::IOptionsPage
public:
ToolChainOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
private slots:
void toolChainSelectionChanged();
@@ -131,8 +131,7 @@ private slots:
private:
QModelIndex currentIndex() const;
- QWidget *m_configWidget;
- QString m_searchKeywords;
+ QPointer<QWidget> m_configWidget;
ToolChainModel *m_model;
QList<ToolChainFactory *> m_factories;
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index 3cf0e6cc0e..4b25f9f207 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -73,18 +73,6 @@ void SettingsPageWidget::setSettings(const DesignerSettings &designerSettings)
m_ui.designerEnableDebuggerCheckBox->setChecked(designerSettings.enableDebugView);
}
-QString SettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc)
- << ' ' << m_ui.snapMarginLabel->text()
- << ' ' << m_ui.itemSpacingLabel->text()
- << ' ' << m_ui.canvasWidthLabel->text()
- << ' ' << m_ui.canvasHeightLabel->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void SettingsPageWidget::debugViewEnabledToggled(bool b)
{
if (b && ! m_ui.designerShowDebuggerCheckBox->isChecked())
@@ -102,12 +90,12 @@ SettingsPage::SettingsPage() :
setCategoryIcon(QLatin1String(Constants::SETTINGS_CATEGORY_QML_ICON));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
- m_widget->setSettings(QmlDesignerPlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsPageWidget;
+ m_widget->setSettings(QmlDesignerPlugin::instance()->settings());
+ }
return m_widget;
}
@@ -118,7 +106,7 @@ void SettingsPage::apply()
QmlDesignerPlugin::instance()->setSettings(m_widget->settings());
}
-bool SettingsPage::matches(const QString &s) const
+void SettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/qmldesigner/settingspage.h b/src/plugins/qmldesigner/settingspage.h
index 78a143a068..2dc8417725 100644
--- a/src/plugins/qmldesigner/settingspage.h
+++ b/src/plugins/qmldesigner/settingspage.h
@@ -35,6 +35,7 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
#include <QWidget>
QT_BEGIN_NAMESPACE
@@ -57,8 +58,6 @@ public:
DesignerSettings settings() const;
void setSettings(const DesignerSettings &designerSettings);
- QString searchKeywords() const;
-
public slots:
void debugViewEnabledToggled(bool b);
@@ -74,14 +73,12 @@ class SettingsPage : public Core::IOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
- SettingsPageWidget* m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp b/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
index 59d0b858ea..c79be8a96f 100644
--- a/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
+++ b/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
@@ -101,16 +101,6 @@ void QuickToolBarSettingsPageWidget::setSettings(const QuickToolBarSettings &s)
m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane);
}
-QString QuickToolBarSettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QTextStream(&rc)
- << ' ' << m_ui.textEditHelperCheckBox->text()
- << ' ' << m_ui.textEditHelperCheckBoxPin->text();
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
QuickToolBarSettings QuickToolBarSettings::get()
{
QuickToolBarSettings settings;
@@ -129,12 +119,12 @@ QuickToolBarSettingsPage::QuickToolBarSettingsPage() :
setCategoryIcon(QLatin1String(QmlDesigner::Constants::SETTINGS_CATEGORY_QML_ICON));
}
-QWidget *QuickToolBarSettingsPage::createPage(QWidget *parent)
+QWidget *QuickToolBarSettingsPage::widget()
{
- m_widget = new QuickToolBarSettingsPageWidget(parent);
- m_widget->setSettings(QuickToolBarSettings::get());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new QuickToolBarSettingsPageWidget;
+ m_widget->setSettings(QuickToolBarSettings::get());
+ }
return m_widget;
}
@@ -145,7 +135,7 @@ void QuickToolBarSettingsPage::apply()
m_widget->settings().set();
}
-bool QuickToolBarSettingsPage::matches(const QString &s) const
+void QuickToolBarSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/qmljseditor/quicktoolbarsettingspage.h b/src/plugins/qmljseditor/quicktoolbarsettingspage.h
index db5ca870e9..059b916e58 100644
--- a/src/plugins/qmljseditor/quicktoolbarsettingspage.h
+++ b/src/plugins/qmljseditor/quicktoolbarsettingspage.h
@@ -33,6 +33,7 @@
#include "ui_quicktoolbarsettingspage.h"
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
#include <QWidget>
QT_BEGIN_NAMESPACE
@@ -76,7 +77,6 @@ public:
QuickToolBarSettings settings() const;
void setSettings(const QuickToolBarSettings &);
- QString searchKeywords() const;
static QuickToolBarSettings get();
private:
@@ -91,14 +91,12 @@ class QuickToolBarSettingsPage : public Core::IOptionsPage
public:
QuickToolBarSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
- QuickToolBarSettingsPageWidget* m_widget;
+ QPointer<QuickToolBarSettingsPageWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
index b0dcc8a60d..1ba76f43c7 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
@@ -95,17 +95,6 @@ void QmlJSCodeStylePreferencesWidget::setPreferences(TextEditor::ICodeStylePrefe
}
-QString QmlJSCodeStylePreferencesWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui->tabPreferencesWidget->searchKeywords()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void QmlJSCodeStylePreferencesWidget::decorateEditor(const TextEditor::FontSettings &fontSettings)
{
const ISnippetProvider *provider = 0;
@@ -171,18 +160,19 @@ QmlJSCodeStyleSettingsPage::QmlJSCodeStyleSettingsPage(/*QSharedPointer<CppFileS
setCategoryIcon(QLatin1String(QmlDesigner::Constants::SETTINGS_CATEGORY_QML_ICON));
}
-QWidget *QmlJSCodeStyleSettingsPage::createPage(QWidget *parent)
+QWidget *QmlJSCodeStyleSettingsPage::widget()
{
- TextEditor::SimpleCodeStylePreferences *originalTabPreferences
- = QmlJSToolsSettings::globalCodeStyle();
- m_pageTabPreferences = new TextEditor::SimpleCodeStylePreferences(m_widget);
- m_pageTabPreferences->setDelegatingPool(originalTabPreferences->delegatingPool());
- m_pageTabPreferences->setTabSettings(originalTabPreferences->tabSettings());
- m_pageTabPreferences->setCurrentDelegate(originalTabPreferences->currentDelegate());
- m_pageTabPreferences->setId(originalTabPreferences->id());
- m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID),
- m_pageTabPreferences, parent);
-
+ if (!m_widget) {
+ TextEditor::SimpleCodeStylePreferences *originalTabPreferences
+ = QmlJSToolsSettings::globalCodeStyle();
+ m_pageTabPreferences = new TextEditor::SimpleCodeStylePreferences(m_widget);
+ m_pageTabPreferences->setDelegatingPool(originalTabPreferences->delegatingPool());
+ m_pageTabPreferences->setTabSettings(originalTabPreferences->tabSettings());
+ m_pageTabPreferences->setCurrentDelegate(originalTabPreferences->currentDelegate());
+ m_pageTabPreferences->setId(originalTabPreferences->id());
+ m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID),
+ m_pageTabPreferences);
+ }
return m_widget;
}
@@ -203,9 +193,9 @@ void QmlJSCodeStyleSettingsPage::apply()
}
}
-bool QmlJSCodeStyleSettingsPage::matches(const QString &s) const
+void QmlJSCodeStyleSettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.h b/src/plugins/qmljstools/qmljscodestylesettingspage.h
index 7f95bd654a..53b78e9cb2 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.h
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.h
@@ -61,7 +61,6 @@ public:
~QmlJSCodeStylePreferencesWidget();
void setPreferences(TextEditor::ICodeStylePreferences *preferences);
- QString searchKeywords() const;
private slots:
void decorateEditor(const TextEditor::FontSettings &fontSettings);
@@ -82,13 +81,11 @@ class QmlJSCodeStyleSettingsPage : public Core::IOptionsPage
public:
explicit QmlJSCodeStyleSettingsPage(QWidget *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
TextEditor::ICodeStylePreferences *m_pageTabPreferences;
QPointer<TextEditor::CodeStyleEditor> m_widget;
};
diff --git a/src/plugins/qnx/blackberrykeyspage.cpp b/src/plugins/qnx/blackberrykeyspage.cpp
index 39493bf5a0..37d5f7c2d0 100644
--- a/src/plugins/qnx/blackberrykeyspage.cpp
+++ b/src/plugins/qnx/blackberrykeyspage.cpp
@@ -51,9 +51,10 @@ BlackBerryKeysPage::BlackBerryKeysPage(QObject *parent) :
Constants::QNX_BB_CATEGORY_TR));
}
-QWidget *BlackBerryKeysPage::createPage(QWidget *parent)
+QWidget *BlackBerryKeysPage::widget()
{
- m_widget = new BlackBerryKeysWidget(parent);
+ if (!m_widget)
+ m_widget = new BlackBerryKeysWidget;
return m_widget;
}
@@ -63,6 +64,7 @@ void BlackBerryKeysPage::apply()
void BlackBerryKeysPage::finish()
{
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/qnx/blackberrykeyspage.h b/src/plugins/qnx/blackberrykeyspage.h
index 27e4423305..945ed46f9a 100644
--- a/src/plugins/qnx/blackberrykeyspage.h
+++ b/src/plugins/qnx/blackberrykeyspage.h
@@ -34,6 +34,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Qnx {
namespace Internal {
@@ -44,12 +46,12 @@ class BlackBerryKeysPage : public Core::IOptionsPage
Q_OBJECT
public:
explicit BlackBerryKeysPage(QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- BlackBerryKeysWidget *m_widget;
+ QPointer<BlackBerryKeysWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/qnx/blackberryndksettingspage.cpp b/src/plugins/qnx/blackberryndksettingspage.cpp
index 5a98414d72..d43758f669 100644
--- a/src/plugins/qnx/blackberryndksettingspage.cpp
+++ b/src/plugins/qnx/blackberryndksettingspage.cpp
@@ -52,9 +52,10 @@ BlackBerryNDKSettingsPage::BlackBerryNDKSettingsPage(QObject *parent) :
setCategoryIcon(QLatin1String(Constants::QNX_BB_CATEGORY_ICON));
}
-QWidget *BlackBerryNDKSettingsPage::createPage(QWidget *parent)
+QWidget *BlackBerryNDKSettingsPage::widget()
{
- m_widget = new BlackBerryNDKSettingsWidget(parent);
+ if (!m_widget)
+ m_widget = new BlackBerryNDKSettingsWidget;
return m_widget;
}
@@ -73,6 +74,7 @@ void BlackBerryNDKSettingsPage::apply()
void BlackBerryNDKSettingsPage::finish()
{
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/qnx/blackberryndksettingspage.h b/src/plugins/qnx/blackberryndksettingspage.h
index 4e2de119e1..0f82480f5a 100644
--- a/src/plugins/qnx/blackberryndksettingspage.h
+++ b/src/plugins/qnx/blackberryndksettingspage.h
@@ -34,6 +34,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Qnx {
namespace Internal {
@@ -44,12 +46,12 @@ class BlackBerryNDKSettingsPage : public Core::IOptionsPage
Q_OBJECT
public:
explicit BlackBerryNDKSettingsPage(QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
private:
- BlackBerryNDKSettingsWidget *m_widget;
+ QPointer<BlackBerryNDKSettingsWidget> m_widget;
};
} // namespace Internal
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 8ac4570e4f..e993f3c8fe 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -75,11 +75,10 @@ QtOptionsPage::QtOptionsPage()
setCategoryIcon(QLatin1String(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY_ICON));
}
-QWidget *QtOptionsPage::createPage(QWidget *parent)
+QWidget *QtOptionsPage::widget()
{
- m_widget = new QtOptionsPageWidget(parent);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget)
+ m_widget = new QtOptionsPageWidget;
return m_widget;
}
@@ -92,9 +91,9 @@ void QtOptionsPage::apply()
m_widget->apply();
}
-bool QtOptionsPage::matches(const QString &s) const
+void QtOptionsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
//-----------------------------------------------------
@@ -1010,19 +1009,5 @@ QList<BaseQtVersion *> QtOptionsPageWidget::versions() const
return result;
}
-QString QtOptionsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream ts(&rc);
- ts << sep << m_versionUi->versionNameLabel->text()
- << sep << m_versionUi->pathLabel->text()
- << sep << m_debuggingHelperUi->gdbHelperLabel->text()
- << sep << m_debuggingHelperUi->qmlDumpLabel->text();
-
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
} // namespace Internal
} // namespace QtSupport
diff --git a/src/plugins/qtsupport/qtoptionspage.h b/src/plugins/qtsupport/qtoptionspage.h
index 5d506c3bbe..80a740a43d 100644
--- a/src/plugins/qtsupport/qtoptionspage.h
+++ b/src/plugins/qtsupport/qtoptionspage.h
@@ -33,8 +33,9 @@
#include "debugginghelperbuildtask.h"
#include <coreplugin/dialogs/ioptionspage.h>
-#include <QWidget>
#include <QIcon>
+#include <QPointer>
+#include <QWidget>
QT_BEGIN_NAMESPACE
class QTreeWidgetItem;
@@ -63,12 +64,11 @@ class QtOptionsPageWidget : public QWidget
Q_OBJECT
public:
- QtOptionsPageWidget(QWidget *parent);
+ QtOptionsPageWidget(QWidget *parent = 0);
~QtOptionsPageWidget();
QList<BaseQtVersion *> versions() const;
void finish();
void apply();
- QString searchKeywords() const;
private:
void updateDescriptionLabel();
@@ -141,14 +141,12 @@ class QtOptionsPage : public Core::IOptionsPage
public:
QtOptionsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() {}
- bool matches(const QString &) const;
+ void finish();
private:
- QtOptionsPageWidget *m_widget;
- QString m_searchKeywords;
+ QPointer<QtOptionsPageWidget> m_widget;
};
} //namespace Internal
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index ea5d21f04d..80a7f6cfdb 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -82,26 +82,6 @@ void SettingsPageWidget::setSettings(const SubversionSettings &s)
m_ui.logCountSpinBox->setValue(s.intValue(SubversionSettings::logCountKey));
}
-QString SettingsPageWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << m_ui.generalGroupBox->title()
- << sep << m_ui.commandLabel->text()
- << sep << m_ui.userGroupBox->title()
- << sep << m_ui.usernameLabel->text()
- << sep << m_ui.passwordLabel->text()
- << sep << m_ui.miscGroupBox->title()
- << sep << m_ui.logCountLabel->text()
- << sep << m_ui.timeOutLabel->text()
- << sep << m_ui.promptToSubmitCheckBox->text()
- << sep << m_ui.spaceIgnorantAnnotationCheckBox->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
SettingsPage::SettingsPage() :
m_widget(0)
{
@@ -109,12 +89,12 @@ SettingsPage::SettingsPage() :
setDisplayName(tr("Subversion"));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_widget = new SettingsPageWidget(parent);
- m_widget->setSettings(SubversionPlugin::instance()->settings());
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_widget->searchKeywords();
+ if (!m_widget) {
+ m_widget = new SettingsPageWidget;
+ m_widget->setSettings(SubversionPlugin::instance()->settings());
+ }
return m_widget;
}
@@ -123,7 +103,7 @@ void SettingsPage::apply()
SubversionPlugin::instance()->setSettings(m_widget->settings());
}
-bool SettingsPage::matches(const QString &s) const
+void SettingsPage::finish()
{
- return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h
index 71438eea73..a902ccc34b 100644
--- a/src/plugins/subversion/settingspage.h
+++ b/src/plugins/subversion/settingspage.h
@@ -57,8 +57,6 @@ public:
SubversionSettings settings() const;
void setSettings(const SubversionSettings &);
- QString searchKeywords() const;
-
private:
Ui::SettingsPage m_ui;
};
@@ -71,14 +69,12 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
public:
SettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &) const;
+ void finish();
private:
- QString m_searchKeywords;
- SettingsPageWidget* m_widget;
+ QPointer<SettingsPageWidget> m_widget;
};
} // namespace Subversion
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
index a5a7001f0a..b9a2bc1524 100644
--- a/src/plugins/texteditor/behaviorsettingspage.cpp
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -49,6 +49,7 @@
#include <qmljseditor/qmljseditorconstants.h>
#include <qmljstools/qmljstoolsconstants.h>
+#include <QPointer>
#include <QSettings>
#include <QTextCodec>
@@ -59,6 +60,7 @@ struct BehaviorSettingsPage::BehaviorSettingsPagePrivate
explicit BehaviorSettingsPagePrivate(const BehaviorSettingsPageParameters &p);
const BehaviorSettingsPageParameters m_parameters;
+ QPointer<QWidget> m_widget;
Internal::Ui::BehaviorSettingsPage *m_page;
void init();
@@ -70,8 +72,6 @@ struct BehaviorSettingsPage::BehaviorSettingsPagePrivate
StorageSettings m_storageSettings;
BehaviorSettings m_behaviorSettings;
ExtraEncodingSettings m_extraEncodingSettings;
-
- QString m_searchKeywords;
};
BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate
@@ -114,30 +114,28 @@ BehaviorSettingsPage::~BehaviorSettingsPage()
delete d;
}
-QWidget *BehaviorSettingsPage::createPage(QWidget *parent)
+QWidget *BehaviorSettingsPage::widget()
{
- QWidget *w = new QWidget(parent);
- d->m_page = new Internal::Ui::BehaviorSettingsPage;
- d->m_page->setupUi(w);
- if (Utils::HostOsInfo::isMacHost())
- d->m_page->gridLayout->setContentsMargins(-1, 0, -1, 0); // don't ask.
- d->m_pageCodeStyle = new SimpleCodeStylePreferences(w);
- d->m_pageCodeStyle->setDelegatingPool(d->m_codeStyle->delegatingPool());
- d->m_pageCodeStyle->setTabSettings(d->m_codeStyle->tabSettings());
- d->m_pageCodeStyle->setCurrentDelegate(d->m_codeStyle->currentDelegate());
- d->m_page->behaviorWidget->setCodeStyle(d->m_pageCodeStyle);
-
- TabSettingsWidget *tabSettingsWidget = d->m_page->behaviorWidget->tabSettingsWidget();
- tabSettingsWidget->setCodingStyleWarningVisible(true);
- connect(tabSettingsWidget, SIGNAL(codingStyleLinkClicked(TextEditor::TabSettingsWidget::CodingStyleLink)),
- this, SLOT(openCodingStylePreferences(TextEditor::TabSettingsWidget::CodingStyleLink)));
-
- settingsToUI();
-
- if (d->m_searchKeywords.isEmpty())
- d->m_searchKeywords = d->m_page->behaviorWidget->collectUiKeywords();
-
- return w;
+ if (!d->m_widget) {
+ d->m_widget = new QWidget;
+ d->m_page = new Internal::Ui::BehaviorSettingsPage;
+ d->m_page->setupUi(d->m_widget);
+ if (Utils::HostOsInfo::isMacHost())
+ d->m_page->gridLayout->setContentsMargins(-1, 0, -1, 0); // don't ask.
+ d->m_pageCodeStyle = new SimpleCodeStylePreferences(d->m_widget);
+ d->m_pageCodeStyle->setDelegatingPool(d->m_codeStyle->delegatingPool());
+ d->m_pageCodeStyle->setTabSettings(d->m_codeStyle->tabSettings());
+ d->m_pageCodeStyle->setCurrentDelegate(d->m_codeStyle->currentDelegate());
+ d->m_page->behaviorWidget->setCodeStyle(d->m_pageCodeStyle);
+
+ TabSettingsWidget *tabSettingsWidget = d->m_page->behaviorWidget->tabSettingsWidget();
+ tabSettingsWidget->setCodingStyleWarningVisible(true);
+ connect(tabSettingsWidget, SIGNAL(codingStyleLinkClicked(TextEditor::TabSettingsWidget::CodingStyleLink)),
+ this, SLOT(openCodingStylePreferences(TextEditor::TabSettingsWidget::CodingStyleLink)));
+
+ settingsToUI();
+ }
+ return d->m_widget;
}
void BehaviorSettingsPage::apply()
@@ -227,6 +225,7 @@ void BehaviorSettingsPage::settingsToUI()
void BehaviorSettingsPage::finish()
{
+ delete d->m_widget;
if (!d->m_page) // page was never shown
return;
delete d->m_page;
@@ -263,11 +262,6 @@ const ExtraEncodingSettings &BehaviorSettingsPage::extraEncodingSettings() const
return d->m_extraEncodingSettings;
}
-bool BehaviorSettingsPage::matches(const QString &s) const
-{
- return d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
void BehaviorSettingsPage::openCodingStylePreferences(TabSettingsWidget::CodingStyleLink link)
{
diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index ccaaaa34ef..042c9640dc 100644
--- a/src/plugins/texteditor/behaviorsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -62,10 +62,9 @@ public:
~BehaviorSettingsPage();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
ICodeStylePreferences *codeStyle() const;
CodeStylePool *codeStylePool() const;
diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp
index 044b2a328d..83571a06c3 100644
--- a/src/plugins/texteditor/behaviorsettingswidget.cpp
+++ b/src/plugins/texteditor/behaviorsettingswidget.cpp
@@ -223,35 +223,6 @@ void BehaviorSettingsWidget::assignedExtraEncodingSettings(
(ExtraEncodingSettings::Utf8BomSetting)d->m_ui.utf8BomBox->currentIndex();
}
-QString BehaviorSettingsWidget::collectUiKeywords() const
-{
- static const QLatin1Char sep(' ');
- QString keywords;
- QTextStream(&keywords)
- << sep << d->m_ui.tabPreferencesWidget->searchKeywords()
- << sep << d->m_ui.autoIndent->text()
- << sep << d->m_ui.smartBackspaceLabel->text()
- << sep << d->m_ui.tabKeyBehaviorLabel->text()
- << sep << d->m_ui.cleanWhitespace->text()
- << sep << d->m_ui.inEntireDocument->text()
- << sep << d->m_ui.cleanIndentation->text()
- << sep << d->m_ui.addFinalNewLine->text()
- << sep << d->m_ui.encodingLabel->text()
- << sep << d->m_ui.utf8BomLabel->text()
- << sep << d->m_ui.mouseNavigation->text()
- << sep << d->m_ui.scrollWheelZooming->text()
- << sep << d->m_ui.helpTooltipsLabel->text()
- << sep << d->m_ui.constrainTooltipsBox->itemText(0)
- << sep << d->m_ui.constrainTooltipsBox->itemText(1)
- << sep << d->m_ui.camelCaseNavigation->text()
- << sep << d->m_ui.keyboardTooltips->text()
- << sep << d->m_ui.groupBoxStorageSettings->title()
- << sep << d->m_ui.groupBoxEncodings->title()
- << sep << d->m_ui.groupBoxMouse->title();
- keywords.remove(QLatin1Char('&'));
- return keywords;
-}
-
TabSettingsWidget *BehaviorSettingsWidget::tabSettingsWidget() const
{
return d->m_ui.tabPreferencesWidget->tabSettingsWidget();
diff --git a/src/plugins/texteditor/behaviorsettingswidget.h b/src/plugins/texteditor/behaviorsettingswidget.h
index 7fe303da22..50420bfaca 100644
--- a/src/plugins/texteditor/behaviorsettingswidget.h
+++ b/src/plugins/texteditor/behaviorsettingswidget.h
@@ -76,8 +76,6 @@ public:
void setAssignedExtraEncodingSettings(const ExtraEncodingSettings &encodingSettings);
void assignedExtraEncodingSettings(ExtraEncodingSettings *encodingSettings) const;
- QString collectUiKeywords() const;
-
TabSettingsWidget *tabSettingsWidget() const;
signals:
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index b5470e8ea0..010c4f9c9e 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -33,6 +33,7 @@
#include <coreplugin/icore.h>
+#include <QPointer>
#include <QTextStream>
using namespace TextEditor;
@@ -42,9 +43,9 @@ struct DisplaySettingsPage::DisplaySettingsPagePrivate
explicit DisplaySettingsPagePrivate(const DisplaySettingsPageParameters &p);
const DisplaySettingsPageParameters m_parameters;
+ QPointer<QWidget> m_widget;
Internal::Ui::DisplaySettingsPage *m_page;
DisplaySettings m_displaySettings;
- QString m_searchKeywords;
};
DisplaySettingsPage::DisplaySettingsPagePrivate::DisplaySettingsPagePrivate
@@ -68,28 +69,15 @@ DisplaySettingsPage::~DisplaySettingsPage()
delete d;
}
-QWidget *DisplaySettingsPage::createPage(QWidget *parent)
+QWidget *DisplaySettingsPage::widget()
{
- QWidget *w = new QWidget(parent);
- d->m_page = new Internal::Ui::DisplaySettingsPage;
- d->m_page->setupUi(w);
- settingsToUI();
- if (d->m_searchKeywords.isEmpty()) {
- QTextStream(&d->m_searchKeywords) << d->m_page->displayLineNumbers->text()
- << ' ' << d->m_page->highlightCurrentLine->text()
- << ' ' << d->m_page->displayFoldingMarkers->text()
- << ' ' << d->m_page->highlightBlocks->text()
- << ' ' << d->m_page->visualizeWhitespace->text()
- << ' ' << d->m_page->animateMatchingParentheses->text()
- << ' ' << d->m_page->highlightMatchingParentheses->text()
- << ' ' << d->m_page->enableTextWrapping->text()
- << ' ' << d->m_page->autoFoldFirstComment->text()
- << ' ' << d->m_page->centerOnScroll->text()
- << ' ' << d->m_page->openLinksInNextSplit->text()
- << ' ' << d->m_page->displayFileEncoding->text();
- d->m_searchKeywords.remove(QLatin1Char('&'));
+ if (!d->m_widget) {
+ d->m_widget = new QWidget;
+ d->m_page = new Internal::Ui::DisplaySettingsPage;
+ d->m_page->setupUi(d->m_widget);
+ settingsToUI();
}
- return w;
+ return d->m_widget;
}
void DisplaySettingsPage::apply()
@@ -104,6 +92,7 @@ void DisplaySettingsPage::apply()
void DisplaySettingsPage::finish()
{
+ delete d->m_widget;
if (!d->m_page) // page was never shown
return;
delete d->m_page;
@@ -163,8 +152,3 @@ void DisplaySettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySe
emit displaySettingsChanged(newDisplaySettings);
}
}
-
-bool DisplaySettingsPage::matches(const QString &s) const
-{
- return d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
index 802e303277..54f08259e3 100644
--- a/src/plugins/texteditor/displaysettingspage.h
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -55,10 +55,9 @@ public:
~DisplaySettingsPage();
// IOptionsPage
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
const DisplaySettings &displaySettings() const;
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index e3cd7e496a..a5bd146316 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -36,14 +36,15 @@
#include <utils/stringutils.h>
#include <utils/qtcassert.h>
-#include <QDebug>
-#include <QSettings>
-#include <QTimer>
#include <QFileDialog>
#include <QFontDatabase>
#include <QInputDialog>
#include <QMessageBox>
#include <QPalette>
+#include <QPointer>
+#include <QSettings>
+#include <QTimer>
+#include <QDebug>
namespace TextEditor {
namespace Internal {
@@ -122,10 +123,10 @@ public:
TextEditor::FormatDescriptions m_descriptions;
FontSettings m_value;
FontSettings m_lastValue;
+ QPointer<QWidget> m_widget;
Ui::FontSettingsPage *m_ui;
SchemeListModel *m_schemeListModel;
bool m_refreshingSchemeList;
- QString m_searchKeywords;
};
} // namespace Internal
@@ -326,49 +327,40 @@ FontSettingsPage::~FontSettingsPage()
delete d_ptr;
}
-QWidget *FontSettingsPage::createPage(QWidget *parent)
+QWidget *FontSettingsPage::widget()
{
- QWidget *w = new QWidget(parent);
- d_ptr->m_ui = new Ui::FontSettingsPage;
- d_ptr->m_ui->setupUi(w);
- d_ptr->m_ui->schemeComboBox->setModel(d_ptr->m_schemeListModel);
+ if (!d_ptr->m_widget){
+ d_ptr->m_widget = new QWidget;
+ d_ptr->m_ui = new Ui::FontSettingsPage;
+ d_ptr->m_ui->setupUi(d_ptr->m_widget);
+ d_ptr->m_ui->schemeComboBox->setModel(d_ptr->m_schemeListModel);
- QFontDatabase db;
- const QStringList families = db.families();
- d_ptr->m_ui->familyComboBox->addItems(families);
- const int idx = families.indexOf(d_ptr->m_value.family());
- d_ptr->m_ui->familyComboBox->setCurrentIndex(idx);
+ QFontDatabase db;
+ const QStringList families = db.families();
+ d_ptr->m_ui->familyComboBox->addItems(families);
+ const int idx = families.indexOf(d_ptr->m_value.family());
+ d_ptr->m_ui->familyComboBox->setCurrentIndex(idx);
- d_ptr->m_ui->antialias->setChecked(d_ptr->m_value.antialias());
- d_ptr->m_ui->zoomSpinBox->setValue(d_ptr->m_value.fontZoom());
+ d_ptr->m_ui->antialias->setChecked(d_ptr->m_value.antialias());
+ d_ptr->m_ui->zoomSpinBox->setValue(d_ptr->m_value.fontZoom());
- d_ptr->m_ui->schemeEdit->setFormatDescriptions(d_ptr->m_descriptions);
- d_ptr->m_ui->schemeEdit->setBaseFont(d_ptr->m_value.font());
- d_ptr->m_ui->schemeEdit->setColorScheme(d_ptr->m_value.colorScheme());
+ d_ptr->m_ui->schemeEdit->setFormatDescriptions(d_ptr->m_descriptions);
+ d_ptr->m_ui->schemeEdit->setBaseFont(d_ptr->m_value.font());
+ d_ptr->m_ui->schemeEdit->setColorScheme(d_ptr->m_value.colorScheme());
- connect(d_ptr->m_ui->familyComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(fontFamilySelected(QString)));
- connect(d_ptr->m_ui->sizeComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(fontSizeSelected(QString)));
- connect(d_ptr->m_ui->zoomSpinBox, SIGNAL(valueChanged(int)), this, SLOT(fontZoomChanged()));
- connect(d_ptr->m_ui->schemeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(colorSchemeSelected(int)));
- connect(d_ptr->m_ui->copyButton, SIGNAL(clicked()), this, SLOT(copyColorScheme()));
- connect(d_ptr->m_ui->deleteButton, SIGNAL(clicked()), this, SLOT(confirmDeleteColorScheme()));
+ connect(d_ptr->m_ui->familyComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(fontFamilySelected(QString)));
+ connect(d_ptr->m_ui->sizeComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(fontSizeSelected(QString)));
+ connect(d_ptr->m_ui->zoomSpinBox, SIGNAL(valueChanged(int)), this, SLOT(fontZoomChanged()));
+ connect(d_ptr->m_ui->schemeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(colorSchemeSelected(int)));
+ connect(d_ptr->m_ui->copyButton, SIGNAL(clicked()), this, SLOT(copyColorScheme()));
+ connect(d_ptr->m_ui->deleteButton, SIGNAL(clicked()), this, SLOT(confirmDeleteColorScheme()));
- updatePointSizes();
- refreshColorSchemeList();
- d_ptr->m_lastValue = d_ptr->m_value;
- if (d_ptr->m_searchKeywords.isEmpty()) {
- QLatin1Char sep(' ');
- d_ptr->m_searchKeywords =
- d_ptr->m_ui->fontGroupBox->title() + sep
- + d_ptr->m_ui->familyLabel->text() + sep
- + d_ptr->m_ui->sizeLabel->text() + sep
- + d_ptr->m_ui->zoomLabel->text() + sep
- + d_ptr->m_ui->antialias->text() + sep
- + d_ptr->m_ui->colorSchemeGroupBox->title();
- d_ptr->m_searchKeywords.remove(QLatin1Char('&'));
+ updatePointSizes();
+ refreshColorSchemeList();
+ d_ptr->m_lastValue = d_ptr->m_value;
}
- return w;
+ return d_ptr->m_widget;
}
void FontSettingsPage::fontFamilySelected(const QString &family)
@@ -630,6 +622,7 @@ void FontSettingsPage::saveSettings()
void FontSettingsPage::finish()
{
+ delete d_ptr->m_widget;
if (!d_ptr->m_ui) // page was never shown
return;
// If changes were applied, these are equal. Otherwise restores last value.
@@ -642,8 +635,3 @@ const FontSettings &FontSettingsPage::fontSettings() const
{
return d_ptr->m_value;
}
-
-bool FontSettingsPage::matches(const QString &s) const
-{
- return d_ptr->m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index 3870904cd2..a5b9f6057f 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -92,10 +92,9 @@ public:
~FontSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &) const;
void saveSettings();
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp b/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
index 637a580434..3aba87e3ad 100644
--- a/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
@@ -36,6 +36,7 @@
#include <coreplugin/icore.h>
#include <QMessageBox>
+#include <QPointer>
using namespace TextEditor;
using namespace Internal;
@@ -50,10 +51,9 @@ struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
const QString m_displayName;
const QString m_settingsPrefix;
- QString m_searchKeywords;
-
HighlighterSettings m_settings;
+ QPointer<QWidget> m_widget;
Ui::HighlighterSettingsPage *m_page;
};
@@ -88,36 +88,30 @@ HighlighterSettingsPage::~HighlighterSettingsPage()
delete m_d;
}
-QWidget *HighlighterSettingsPage::createPage(QWidget *parent)
-{
- QWidget *w = new QWidget(parent);
- m_d->m_page = new Ui::HighlighterSettingsPage;
- m_d->m_page->setupUi(w);
- m_d->m_page->definitionFilesPath->setExpectedKind(Utils::PathChooser::ExistingDirectory);
- m_d->m_page->definitionFilesPath->setHistoryCompleter(QLatin1String("TextEditor.Highlighter.History"));
- m_d->m_page->definitionFilesPath->addButton(tr("Download Definitions..."), this,
- SLOT(requestAvailableDefinitionsMetaData()));
- m_d->m_page->fallbackDefinitionFilesPath->setExpectedKind(Utils::PathChooser::ExistingDirectory);
- m_d->m_page->fallbackDefinitionFilesPath->setHistoryCompleter(QLatin1String("TextEditor.Highlighter.History"));
- m_d->m_page->fallbackDefinitionFilesPath->addButton(tr("Autodetect"), this,
- SLOT(resetDefinitionsLocation()));
-
- settingsToUI();
-
- if (m_d->m_searchKeywords.isEmpty()) {
- QTextStream(&m_d->m_searchKeywords) << m_d->m_page->definitionFilesGroupBox->title()
- << m_d->m_page->locationLabel->text()
- << m_d->m_page->useFallbackLocation->text()
- << m_d->m_page->ignoreLabel->text();
+QWidget *HighlighterSettingsPage::widget()
+{
+ if (!m_d->m_widget) {
+ m_d->m_widget = new QWidget;
+ m_d->m_page = new Ui::HighlighterSettingsPage;
+ m_d->m_page->setupUi(m_d->m_widget);
+ m_d->m_page->definitionFilesPath->setExpectedKind(Utils::PathChooser::ExistingDirectory);
+ m_d->m_page->definitionFilesPath->setHistoryCompleter(QLatin1String("TextEditor.Highlighter.History"));
+ m_d->m_page->definitionFilesPath->addButton(tr("Download Definitions..."), this,
+ SLOT(requestAvailableDefinitionsMetaData()));
+ m_d->m_page->fallbackDefinitionFilesPath->setExpectedKind(Utils::PathChooser::ExistingDirectory);
+ m_d->m_page->fallbackDefinitionFilesPath->setHistoryCompleter(QLatin1String("TextEditor.Highlighter.History"));
+ m_d->m_page->fallbackDefinitionFilesPath->addButton(tr("Autodetect"), this,
+ SLOT(resetDefinitionsLocation()));
+
+ settingsToUI();
+
+ connect(m_d->m_page->useFallbackLocation, SIGNAL(clicked(bool)),
+ this, SLOT(setFallbackLocationState(bool)));
+ connect(m_d->m_page->definitionFilesPath, SIGNAL(validChanged(bool)),
+ this, SLOT(setDownloadDefinitionsState(bool)));
+ connect(m_d->m_widget, SIGNAL(destroyed()), this, SLOT(ignoreDownloadReply()));
}
-
- connect(m_d->m_page->useFallbackLocation, SIGNAL(clicked(bool)),
- this, SLOT(setFallbackLocationState(bool)));
- connect(m_d->m_page->definitionFilesPath, SIGNAL(validChanged(bool)),
- this, SLOT(setDownloadDefinitionsState(bool)));
- connect(w, SIGNAL(destroyed()), this, SLOT(ignoreDownloadReply()));
-
- return w;
+ return m_d->m_widget;
}
void HighlighterSettingsPage::apply()
@@ -135,17 +129,13 @@ void HighlighterSettingsPage::apply()
void HighlighterSettingsPage::finish()
{
+ delete m_d->m_widget;
if (!m_d->m_page) // page was not shown
return;
delete m_d->m_page;
m_d->m_page = 0;
}
-bool HighlighterSettingsPage::matches(const QString &s) const
-{
- return m_d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
-}
-
const HighlighterSettings &HighlighterSettingsPage::highlighterSettings() const
{
m_d->ensureInitialized();
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettingspage.h b/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
index 770ef4c4cf..ef72878b48 100644
--- a/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
+++ b/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
@@ -52,10 +52,9 @@ public:
HighlighterSettingsPage(Core::Id id, QObject *parent);
~HighlighterSettingsPage();
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &s) const;
const HighlighterSettings &highlighterSettings() const;
diff --git a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp
index 072a8a25f4..f143c249d4 100644
--- a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp
+++ b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp
@@ -94,11 +94,6 @@ void SimpleCodeStylePreferencesWidget::slotTabSettingsChanged(const TextEditor::
current->setTabSettings(settings);
}
-QString SimpleCodeStylePreferencesWidget::searchKeywords() const
-{
- return m_tabSettingsWidget->searchKeywords();
-}
-
void SimpleCodeStylePreferencesWidget::setFlat(bool on)
{
m_tabSettingsWidget->setFlat(on);
diff --git a/src/plugins/texteditor/simplecodestylepreferenceswidget.h b/src/plugins/texteditor/simplecodestylepreferenceswidget.h
index 2ba5a38d36..776da7a75b 100644
--- a/src/plugins/texteditor/simplecodestylepreferenceswidget.h
+++ b/src/plugins/texteditor/simplecodestylepreferenceswidget.h
@@ -52,7 +52,6 @@ public:
explicit SimpleCodeStylePreferencesWidget(QWidget *parent = 0);
void setPreferences(ICodeStylePreferences *tabPreferences);
- QString searchKeywords() const;
void setFlat(bool on);
TabSettingsWidget *tabSettingsWidget() const;
diff --git a/src/plugins/texteditor/snippets/snippetssettingspage.cpp b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
index c59d510f32..88bb429c3e 100644
--- a/src/plugins/texteditor/snippets/snippetssettingspage.cpp
+++ b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
@@ -39,11 +39,12 @@
#include <texteditor/texteditorsettings.h>
#include <extensionsystem/pluginmanager.h>
-#include <QModelIndex>
#include <QAbstractTableModel>
#include <QList>
-#include <QTextStream>
#include <QMessageBox>
+#include <QModelIndex>
+#include <QPointer>
+#include <QTextStream>
namespace TextEditor {
namespace Internal {
@@ -269,12 +270,13 @@ public:
Core::Id id() const { return m_id; }
const QString &displayName() const { return m_displayName; }
- bool isKeyword(const QString &s) const { return m_keywords.contains(s, Qt::CaseInsensitive); }
void configureUi(QWidget *parent);
void apply();
void finish();
+ QPointer<QWidget> m_widget;
+
private slots:
void loadSnippetGroup(int index);
void markSnippetsCollection();
@@ -302,7 +304,6 @@ private:
const QString m_settingsPrefix;
SnippetsTableModel *m_model;
bool m_snippetsCollectionChanged;
- QString m_keywords;
SnippetsSettings m_settings;
Ui::SnippetsSettingsPage m_ui;
};
@@ -350,8 +351,6 @@ void SnippetsSettingsPagePrivate::configureUi(QWidget *w)
m_ui.revertButton->setEnabled(false);
- QTextStream(&m_keywords) << m_displayName;
-
loadSettings();
loadSnippetGroup(m_ui.groupCombo->currentIndex());
@@ -566,16 +565,13 @@ SnippetsSettingsPage::~SnippetsSettingsPage()
delete d;
}
-bool SnippetsSettingsPage::matches(const QString &s) const
+QWidget *SnippetsSettingsPage::widget()
{
- return d->isKeyword(s);
-}
-
-QWidget *SnippetsSettingsPage::createPage(QWidget *parent)
-{
- QWidget *w = new QWidget(parent);
- d->configureUi(w);
- return w;
+ if (!d->m_widget) {
+ d->m_widget = new QWidget;
+ d->configureUi(d->m_widget);
+ }
+ return d->m_widget;
}
void SnippetsSettingsPage::apply()
@@ -586,6 +582,7 @@ void SnippetsSettingsPage::apply()
void SnippetsSettingsPage::finish()
{
d->finish();
+ delete d->m_widget;
}
} // Internal
diff --git a/src/plugins/texteditor/snippets/snippetssettingspage.h b/src/plugins/texteditor/snippets/snippetssettingspage.h
index 04737b71d3..154dbd670c 100644
--- a/src/plugins/texteditor/snippets/snippetssettingspage.h
+++ b/src/plugins/texteditor/snippets/snippetssettingspage.h
@@ -45,8 +45,7 @@ public:
SnippetsSettingsPage(Core::Id id, QObject *parent);
~SnippetsSettingsPage();
- bool matches(const QString &s) const;
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
diff --git a/src/plugins/texteditor/tabsettingswidget.cpp b/src/plugins/texteditor/tabsettingswidget.cpp
index 2ce5756437..3f36eef375 100644
--- a/src/plugins/texteditor/tabsettingswidget.cpp
+++ b/src/plugins/texteditor/tabsettingswidget.cpp
@@ -101,21 +101,6 @@ void TabSettingsWidget::setFlat(bool on)
ui->tabsAndIndentationGroupBox->layout()->setContentsMargins(margin, -1, margin, margin);
}
-QString TabSettingsWidget::searchKeywords() const
-{
- QString rc;
- QLatin1Char sep(' ');
- QTextStream(&rc)
- << sep << ui->tabsAndIndentationGroupBox->title()
- << sep << ui->tabPolicyLabel->text()
- << sep << ui->tabSizeLabel->text()
- << sep << ui->indentSizeLabel->text()
- << sep << ui->continuationAlignBehaviorLabel->text()
- ;
- rc.remove(QLatin1Char('&'));
- return rc;
-}
-
void TabSettingsWidget::setCodingStyleWarningVisible(bool visible)
{
ui->codingStyleWarning->setVisible(visible);
diff --git a/src/plugins/texteditor/tabsettingswidget.h b/src/plugins/texteditor/tabsettingswidget.h
index 802a7933ca..41a490f783 100644
--- a/src/plugins/texteditor/tabsettingswidget.h
+++ b/src/plugins/texteditor/tabsettingswidget.h
@@ -56,7 +56,6 @@ public:
TabSettings tabSettings() const;
void setFlat(bool on);
- QString searchKeywords() const;
void setCodingStyleWarningVisible(bool visible);
public slots:
diff --git a/src/plugins/todo/optionspage.cpp b/src/plugins/todo/optionspage.cpp
index 5200853756..d1b0da3dab 100644
--- a/src/plugins/todo/optionspage.cpp
+++ b/src/plugins/todo/optionspage.cpp
@@ -45,7 +45,7 @@ namespace Internal {
OptionsPage::OptionsPage(const Settings &settings, QObject *parent) :
IOptionsPage(parent),
- m_dialog(0)
+ m_widget(0)
{
setSettings(settings);
@@ -61,16 +61,18 @@ void OptionsPage::setSettings(const Settings &settings)
m_settings = settings;
}
-QWidget *OptionsPage::createPage(QWidget *parent)
+QWidget *OptionsPage::widget()
{
- m_dialog = new OptionsDialog(parent);
- m_dialog->setSettings(m_settings);
- return m_dialog;
+ if (!m_widget) {
+ m_widget = new OptionsDialog;
+ m_widget->setSettings(m_settings);
+ }
+ return m_widget;
}
void OptionsPage::apply()
{
- Settings newSettings = m_dialog->settings();
+ Settings newSettings = m_widget->settings();
if (newSettings != m_settings) {
m_settings = newSettings;
@@ -80,11 +82,7 @@ void OptionsPage::apply()
void OptionsPage::finish()
{
-}
-
-bool OptionsPage::matches(const QString &searchKeyWord) const
-{
- return searchKeyWord == QLatin1String("todo");
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/todo/optionspage.h b/src/plugins/todo/optionspage.h
index 601a15642a..a4d989ab6a 100644
--- a/src/plugins/todo/optionspage.h
+++ b/src/plugins/todo/optionspage.h
@@ -35,6 +35,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace Todo {
namespace Internal {
@@ -49,16 +51,15 @@ public:
void setSettings(const Settings &settings);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &searchKeyWord) const;
signals:
void settingsChanged(const Settings &settings);
private:
- OptionsDialog *m_dialog;
+ QPointer<OptionsDialog> m_widget;
Settings m_settings;
};
diff --git a/src/plugins/updateinfo/settingspage.cpp b/src/plugins/updateinfo/settingspage.cpp
index 2125baad61..b6d0de60c5 100644
--- a/src/plugins/updateinfo/settingspage.cpp
+++ b/src/plugins/updateinfo/settingspage.cpp
@@ -36,7 +36,7 @@ using namespace UpdateInfo;
using namespace UpdateInfo::Internal;
SettingsPage::SettingsPage(UpdateInfoPlugin *plugin)
- : m_page(0)
+ : m_widget(0)
, m_plugin(plugin)
{
setId(Constants::FILTER_OPTIONS_PAGE);
@@ -46,15 +46,15 @@ SettingsPage::SettingsPage(UpdateInfoPlugin *plugin)
setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE));
}
-QWidget *SettingsPage::createPage(QWidget *parent)
+QWidget *SettingsPage::widget()
{
- m_page = new QWidget(parent);
- m_ui.setupUi(m_page);
- if (m_searchKeywords.isEmpty())
- m_searchKeywords = m_ui.m_info->text();
- m_ui.m_timeTable->setItemText(m_ui.m_timeTable->currentIndex(), QTime(m_plugin->scheduledUpdateTime())
- .toString(QLatin1String("hh:mm")));
- return m_page;
+ if (!m_widget) {
+ m_widget = new QWidget;
+ m_ui.setupUi(m_widget);
+ m_ui.m_timeTable->setItemText(m_ui.m_timeTable->currentIndex(), QTime(m_plugin->scheduledUpdateTime())
+ .toString(QLatin1String("hh:mm")));
+ }
+ return m_widget;
}
void SettingsPage::apply()
@@ -66,9 +66,5 @@ void SettingsPage::apply()
void SettingsPage::finish()
{
-}
-
-bool SettingsPage::matches(const QString &searchKey) const
-{
- return m_searchKeywords.contains(searchKey, Qt::CaseInsensitive);
+ delete m_widget;
}
diff --git a/src/plugins/updateinfo/settingspage.h b/src/plugins/updateinfo/settingspage.h
index 9806eafb43..dc8ded50b2 100644
--- a/src/plugins/updateinfo/settingspage.h
+++ b/src/plugins/updateinfo/settingspage.h
@@ -34,6 +34,8 @@
#include <coreplugin/dialogs/ioptionspage.h>
+#include <QPointer>
+
namespace UpdateInfo {
namespace Internal {
@@ -46,15 +48,13 @@ class SettingsPage : public Core::IOptionsPage
public:
explicit SettingsPage(UpdateInfoPlugin *plugin);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
void finish();
- bool matches(const QString &searchKey) const;
private:
- QWidget *m_page;
+ QPointer<QWidget> m_widget;
Ui::SettingsWidget m_ui;
- QString m_searchKeywords;
UpdateInfoPlugin *m_plugin;
};
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index 3cef9593ea..90b4694f2b 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -52,6 +52,7 @@
#include <QtPlugin>
#include <QCoreApplication>
+#include <QPointer>
using namespace Analyzer;
@@ -72,14 +73,25 @@ public:
setCategoryIcon(QLatin1String(":/images/analyzer_category.png"));
}
- QWidget *createPage(QWidget *parent) {
- return new ValgrindConfigWidget(theGlobalSettings, parent, true);
+ QWidget *widget()
+ {
+ if (!m_widget)
+ m_widget = new ValgrindConfigWidget(theGlobalSettings, 0, true);
+ return m_widget;
}
- void apply() {
+ void apply()
+ {
theGlobalSettings->writeSettings();
}
- void finish() {}
+
+ void finish()
+ {
+ delete m_widget;
+ }
+
+private:
+ QPointer<QWidget> m_widget;
};
class ValgrindAction : public AnalyzerAction
diff --git a/src/plugins/vcsbase/commonsettingspage.cpp b/src/plugins/vcsbase/commonsettingspage.cpp
index aeffd6e7da..e280ed5300 100644
--- a/src/plugins/vcsbase/commonsettingspage.cpp
+++ b/src/plugins/vcsbase/commonsettingspage.cpp
@@ -115,12 +115,12 @@ CommonOptionsPage::CommonOptionsPage(QObject *parent) :
setDisplayName(QCoreApplication::translate("VcsBase", Constants::VCS_COMMON_SETTINGS_NAME));
}
-QWidget *CommonOptionsPage::createPage(QWidget *parent)
+QWidget *CommonOptionsPage::widget()
{
- m_widget = new CommonSettingsWidget(parent);
- m_widget->setSettings(m_settings);
- if (m_searchKeyWords.isEmpty())
- m_searchKeyWords = m_widget->searchKeyWordMatchString();
+ if (!m_widget) {
+ m_widget = new CommonSettingsWidget;
+ m_widget->setSettings(m_settings);
+ }
return m_widget;
}
@@ -136,9 +136,9 @@ void CommonOptionsPage::apply()
}
}
-bool CommonOptionsPage::matches(const QString &key) const
+void CommonOptionsPage::finish()
{
- return m_searchKeyWords.contains(key, Qt::CaseInsensitive);
+ delete m_widget;
}
} // namespace Internal
diff --git a/src/plugins/vcsbase/commonsettingspage.h b/src/plugins/vcsbase/commonsettingspage.h
index e0d0b1e45b..7fa0768c8b 100644
--- a/src/plugins/vcsbase/commonsettingspage.h
+++ b/src/plugins/vcsbase/commonsettingspage.h
@@ -34,6 +34,7 @@
#include "vcsbaseoptionspage.h"
+#include <QPointer>
#include <QWidget>
namespace VcsBase {
@@ -65,10 +66,9 @@ class CommonOptionsPage : public VcsBaseOptionsPage
public:
explicit CommonOptionsPage(QObject *parent = 0);
- QWidget *createPage(QWidget *parent);
+ QWidget *widget();
void apply();
- void finish() { }
- bool matches(const QString &key) const;
+ void finish();
CommonVcsSettings settings() const { return m_settings; }
@@ -76,9 +76,8 @@ signals:
void settingsChanged(const VcsBase::Internal::CommonVcsSettings &s);
private:
- CommonSettingsWidget *m_widget;
+ QPointer<CommonSettingsWidget> m_widget;
CommonVcsSettings m_settings;
- QString m_searchKeyWords;
};
} // namespace Internal