aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/bazaar
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/bazaar
parent9d86b7ed4e5234f1c686688d99e604af9ba15d3a (diff)
Vcs: Unify options pages for VcsBaseClientImpl based VCSes
Change-Id: Ia5dd7746f5857e7254251e3510c0987737cfad6d Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/bazaar')
-rw-r--r--src/plugins/bazaar/bazaarplugin.cpp8
-rw-r--r--src/plugins/bazaar/optionspage.cpp28
-rw-r--r--src/plugins/bazaar/optionspage.h16
3 files changed, 9 insertions, 43 deletions
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index a8b81eea9fe..65280ec98cb 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -168,14 +168,10 @@ bool BazaarPlugin::initialize(const QStringList &arguments, QString *errorMessag
m_client = new BazaarClient;
auto vcsCtrl = new BazaarControl(m_client);
initializeVcs(vcsCtrl, context);
-
- auto options = new OptionsPage;
- connect(options, &OptionsPage::settingsChanged,
- vcsCtrl, &Core::IVersionControl::configurationChanged);
- addAutoReleasedObject(options);
-
connect(m_client, &VcsBaseClient::changed, vcsCtrl, &BazaarControl::changed);
+ addAutoReleasedObject(new OptionsPage(vcsCtrl));
+
static const char *describeSlot = SLOT(view(QString,QString));
const int editorCount = sizeof(editorParameters) / sizeof(VcsBaseEditorParameters);
const auto widgetCreator = []() { return new BazaarEditorWidget; };
diff --git a/src/plugins/bazaar/optionspage.cpp b/src/plugins/bazaar/optionspage.cpp
index 883e7d0e50a..844cabc78b8 100644
--- a/src/plugins/bazaar/optionspage.cpp
+++ b/src/plugins/bazaar/optionspage.cpp
@@ -41,8 +41,7 @@ using namespace Bazaar::Internal;
using namespace Bazaar;
using namespace VcsBase;
-OptionsPageWidget::OptionsPageWidget(QWidget *parent)
- : QWidget(parent)
+OptionsPageWidget::OptionsPageWidget(QWidget *parent) : VcsClientOptionsPageWidget(parent)
{
m_ui.setupUi(this);
m_ui.commandChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
@@ -70,29 +69,10 @@ void OptionsPageWidget::setSettings(const VcsBaseClientSettings &s)
m_ui.timeout->setValue(s.intValue(BazaarSettings::timeoutKey));
}
-OptionsPage::OptionsPage()
+OptionsPage::OptionsPage(Core::IVersionControl *control) :
+ VcsClientOptionsPage(control, BazaarPlugin::instance()->client())
{
setId(VcsBase::Constants::VCS_ID_BAZAAR);
setDisplayName(tr("Bazaar"));
-}
-
-QWidget *OptionsPage::widget()
-{
- if (!m_optionsPageWidget)
- m_optionsPageWidget = new OptionsPageWidget;
- m_optionsPageWidget->setSettings(BazaarPlugin::instance()->client()->settings());
- return m_optionsPageWidget;
-}
-
-void OptionsPage::apply()
-{
- if (!m_optionsPageWidget)
- return;
- BazaarPlugin *plugin = BazaarPlugin::instance();
- const VcsBaseClientSettings newSettings = m_optionsPageWidget->settings();
- VcsBaseClientSettings &s = plugin->client()->settings();
- if (newSettings != s) {
- s = newSettings;
- emit settingsChanged();
- }
+ setWidgetFactory([]() { return new OptionsPageWidget; });
}
diff --git a/src/plugins/bazaar/optionspage.h b/src/plugins/bazaar/optionspage.h
index ddec710dbff..2711b3c4a42 100644
--- a/src/plugins/bazaar/optionspage.h
+++ b/src/plugins/bazaar/optionspage.h
@@ -44,7 +44,7 @@ class VcsBaseClientSettings;
namespace Bazaar {
namespace Internal {
-class OptionsPageWidget : public QWidget
+class OptionsPageWidget : public VcsBase::VcsClientOptionsPageWidget
{
Q_OBJECT
@@ -59,22 +59,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> m_optionsPageWidget;
+ OptionsPage(Core::IVersionControl *control);
};
} // namespace Internal