diff options
author | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-03-27 12:55:28 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-04-09 07:25:11 +0000 |
commit | 73a773285081fa85975de47a60ccdb8f04e5d0de (patch) | |
tree | f9f001d294d4d5be63926c6e05a9c8c3f9478a31 /src/plugins/mercurial | |
parent | 9d86b7ed4e5234f1c686688d99e604af9ba15d3a (diff) | |
download | qt-creator-73a773285081fa85975de47a60ccdb8f04e5d0de.tar.gz |
Vcs: Unify options pages for VcsBaseClientImpl based VCSes
Change-Id: Ia5dd7746f5857e7254251e3510c0987737cfad6d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/mercurial')
-rw-r--r-- | src/plugins/mercurial/mercurialplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/mercurial/optionspage.cpp | 35 | ||||
-rw-r--r-- | src/plugins/mercurial/optionspage.h | 16 |
3 files changed, 8 insertions, 46 deletions
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index 4f0799407a..dd13a0f2a9 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -139,8 +139,7 @@ bool MercurialPlugin::initialize(const QStringList & /* arguments */, QString * m_client = new MercurialClient; initializeVcs(new MercurialControl(m_client), context); - optionsPage = new OptionsPage(); - addAutoReleasedObject(optionsPage); + addAutoReleasedObject(new OptionsPage(versionControl())); connect(m_client, SIGNAL(changed(QVariant)), versionControl(), SLOT(changed(QVariant))); connect(m_client, SIGNAL(needUpdate()), this, SLOT(update())); diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp index 924ea2a03a..bd28db736c 100644 --- a/src/plugins/mercurial/optionspage.cpp +++ b/src/plugins/mercurial/optionspage.cpp @@ -45,8 +45,7 @@ using namespace VcsBase; namespace Mercurial { namespace Internal { -OptionsPageWidget::OptionsPageWidget(QWidget *parent) : - QWidget(parent) +OptionsPageWidget::OptionsPageWidget(QWidget *parent) : VcsClientOptionsPageWidget(parent) { m_ui.setupUi(this); m_ui.commandChooser->setExpectedKind(Utils::PathChooser::ExistingCommand); @@ -74,38 +73,12 @@ void OptionsPageWidget::setSettings(const VcsBaseClientSettings &s) m_ui.timeout->setValue(s.intValue(MercurialSettings::timeoutKey)); } -OptionsPage::OptionsPage() +OptionsPage::OptionsPage(Core::IVersionControl *control) : + VcsClientOptionsPage(control, MercurialPlugin::client()) { setId(VcsBase::Constants::VCS_ID_MERCURIAL); setDisplayName(tr("Mercurial")); -} - -QWidget *OptionsPage::widget() -{ - if (!optionsPageWidget) - optionsPageWidget = new OptionsPageWidget; - optionsPageWidget->setSettings(MercurialPlugin::client()->settings()); - return optionsPageWidget; -} - -void OptionsPage::apply() -{ - if (!optionsPageWidget) - return; - - const VcsBaseClientSettings newSettings = optionsPageWidget->settings(); - VcsBaseClientSettings &s = MercurialPlugin::instance()->client()->settings(); - if (s != newSettings) { - s = newSettings; - s.writeSettings(Core::ICore::settings()); - emit settingsChanged(); - } - -} - -void OptionsPage::finish() -{ - delete optionsPageWidget; + setWidgetFactory([]() { return new OptionsPageWidget; }); } } // namespace Internal diff --git a/src/plugins/mercurial/optionspage.h b/src/plugins/mercurial/optionspage.h index 24dcac25dd..5b7e0876bb 100644 --- a/src/plugins/mercurial/optionspage.h +++ b/src/plugins/mercurial/optionspage.h @@ -45,7 +45,7 @@ class VcsBaseClientSettings; namespace Mercurial { namespace Internal { -class OptionsPageWidget : public QWidget +class OptionsPageWidget : public VcsBase::VcsClientOptionsPageWidget { Q_OBJECT @@ -60,22 +60,12 @@ private: }; -class OptionsPage : public VcsBase::VcsBaseOptionsPage +class OptionsPage : public VcsBase::VcsClientOptionsPage { Q_OBJECT public: - OptionsPage(); - - QWidget *widget(); - void apply(); - void finish(); - -signals: - void settingsChanged(); - -private: - QPointer<OptionsPageWidget> optionsPageWidget; + OptionsPage(Core::IVersionControl *control); }; } // namespace Internal |