summaryrefslogtreecommitdiff
path: root/src/plugins/subversion
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-03-27 12:55:28 +0100
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-04-09 07:25:11 +0000
commit73a773285081fa85975de47a60ccdb8f04e5d0de (patch)
treef9f001d294d4d5be63926c6e05a9c8c3f9478a31 /src/plugins/subversion
parent9d86b7ed4e5234f1c686688d99e604af9ba15d3a (diff)
downloadqt-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/subversion')
-rw-r--r--src/plugins/subversion/settingspage.cpp33
-rw-r--r--src/plugins/subversion/settingspage.h20
-rw-r--r--src/plugins/subversion/subversionplugin.cpp2
3 files changed, 8 insertions, 47 deletions
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<SettingsPageWidget> 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); }));