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/cvs | |
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/cvs')
-rw-r--r-- | src/plugins/cvs/cvsplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/cvs/settingspage.cpp | 32 | ||||
-rw-r--r-- | src/plugins/cvs/settingspage.h | 16 |
3 files changed, 8 insertions, 45 deletions
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index f139b2763e..3fbc418f1b 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -254,10 +254,7 @@ bool CvsPlugin::initialize(const QStringList &arguments, QString *errorMessage) m_client = new CvsClient; - auto options = new SettingsPage; - connect(options, &SettingsPage::settingsChanged, - versionControl(), &IVersionControl::configurationChanged); - addAutoReleasedObject(new SettingsPage); + addAutoReleasedObject(new SettingsPage(versionControl())); addAutoReleasedObject(new VcsSubmitEditorFactory(&submitParameters, []() { return new CvsSubmitEditor(&submitParameters); })); diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp index 7c76f20342..d0ee1f6d95 100644 --- a/src/plugins/cvs/settingspage.cpp +++ b/src/plugins/cvs/settingspage.cpp @@ -47,8 +47,7 @@ using namespace Cvs::Internal; using namespace Utils; using namespace VcsBase; -SettingsPageWidget::SettingsPageWidget(QWidget *parent) : - QWidget(parent) +SettingsPageWidget::SettingsPageWidget(QWidget *parent) : VcsClientOptionsPageWidget(parent) { m_ui.setupUi(this); m_ui.commandPathChooser->setExpectedKind(PathChooser::ExistingCommand); @@ -78,33 +77,10 @@ void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s) m_ui.describeByCommitIdCheckBox->setChecked(s.boolValue(CvsSettings::describeByCommitIdKey)); } -SettingsPage::SettingsPage() +SettingsPage::SettingsPage(Core::IVersionControl *control) : + VcsClientOptionsPage(control, CvsPlugin::instance()->client()) { setId(VcsBase::Constants::VCS_ID_CVS); setDisplayName(tr("CVS")); -} - -QWidget *SettingsPage::widget() -{ - if (!m_widget) { - m_widget = new SettingsPageWidget; - m_widget->setSettings(CvsPlugin::instance()->client()->settings()); - } - return m_widget; -} - -void SettingsPage::apply() -{ - VcsBaseClientSettings &s = CvsPlugin::instance()->client()->settings(); - const VcsBaseClientSettings newSettings = m_widget->settings(); - if (s != newSettings) { - s = newSettings; - s.writeSettings(Core::ICore::settings()); - emit settingsChanged(); - } -} - -void SettingsPage::finish() -{ - delete m_widget; + setWidgetFactory([]() { return new SettingsPageWidget; }); } diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h index 6c0a3bc11a..18ec0906db 100644 --- a/src/plugins/cvs/settingspage.h +++ b/src/plugins/cvs/settingspage.h @@ -50,7 +50,7 @@ class VcsBaseClientSettings; namespace Cvs { namespace Internal { -class SettingsPageWidget : public QWidget +class SettingsPageWidget : public VcsBase::VcsClientOptionsPageWidget { Q_OBJECT @@ -65,22 +65,12 @@ private: }; -class SettingsPage : public VcsBase::VcsBaseOptionsPage +class SettingsPage : public VcsBase::VcsClientOptionsPage { Q_OBJECT public: - SettingsPage(); - - QWidget *widget(); - void apply(); - void finish(); - -signals: - void settingsChanged(); - -private: - QPointer<SettingsPageWidget> m_widget; + SettingsPage(Core::IVersionControl *control); }; } // namespace Cvs |