From 73a773285081fa85975de47a60ccdb8f04e5d0de Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 27 Mar 2015 12:55:28 +0100 Subject: Vcs: Unify options pages for VcsBaseClientImpl based VCSes Change-Id: Ia5dd7746f5857e7254251e3510c0987737cfad6d Reviewed-by: Orgad Shaneh --- src/plugins/subversion/settingspage.cpp | 33 ++++------------------------- src/plugins/subversion/settingspage.h | 20 +++-------------- src/plugins/subversion/subversionplugin.cpp | 2 +- 3 files changed, 8 insertions(+), 47 deletions(-) (limited to 'src/plugins/subversion') diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp index 851f8ae2c9..548212d744 100644 --- a/src/plugins/subversion/settingspage.cpp +++ b/src/plugins/subversion/settingspage.cpp @@ -47,8 +47,7 @@ using namespace Subversion::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.pathChooser->setExpectedKind(PathChooser::ExistingCommand); @@ -86,34 +85,10 @@ void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s) m_ui.logCountSpinBox->setValue(s.intValue(SubversionSettings::logCountKey)); } -SettingsPage::SettingsPage() : - m_widget(0) +SettingsPage::SettingsPage(Core::IVersionControl *control) : + VcsClientOptionsPage(control, SubversionPlugin::instance()->client()) { setId(VcsBase::Constants::VCS_ID_SUBVERSION); setDisplayName(tr("Subversion")); -} - -QWidget *SettingsPage::widget() -{ - if (!m_widget) { - m_widget = new SettingsPageWidget; - m_widget->setSettings(SubversionPlugin::instance()->client()->settings()); - } - return m_widget; -} - -void SettingsPage::apply() -{ - const VcsBaseClientSettings newSettings = m_widget->settings(); - VcsBaseClientSettings &s = SubversionPlugin::instance()->client()->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/subversion/settingspage.h b/src/plugins/subversion/settingspage.h index dc9ab2b8d0..068cb8591c 100644 --- a/src/plugins/subversion/settingspage.h +++ b/src/plugins/subversion/settingspage.h @@ -43,14 +43,10 @@ QT_BEGIN_NAMESPACE class QSettings; QT_END_NAMESPACE -namespace VcsBase { -class VcsBaseClientSettings; -} // namespace VcsBa - namespace Subversion { namespace Internal { -class SettingsPageWidget : public QWidget +class SettingsPageWidget : public VcsBase::VcsClientOptionsPageWidget { Q_OBJECT @@ -65,22 +61,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 m_widget; + SettingsPage(Core::IVersionControl *control); }; } // namespace Subversion diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index aaef47b008..51480d5f28 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -249,7 +249,7 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments */, QString *e m_client = new SubversionClient; - addAutoReleasedObject(new SettingsPage); + addAutoReleasedObject(new SettingsPage(versionControl())); addAutoReleasedObject(new VcsSubmitEditorFactory(&submitParameters, []() { return new SubversionSubmitEditor(&submitParameters); })); -- cgit v1.2.1