summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-24 14:10:01 +0100
committerhjk <hjk@qt.io>2020-01-24 14:34:10 +0000
commit60f0e0694279e01ec2c2e88ea60bdb463ac1053f (patch)
tree4d51b93ec59219ef8f150c277acb7c1e0d9b9503
parentf39e9be2f2da2f675d0df2032dd5bdf69c7aee39 (diff)
downloadqt-creator-60f0e0694279e01ec2c2e88ea60bdb463ac1053f.tar.gz
Bazaar: Remove direct accesses to singletons
Change-Id: Ie736597dcc17256fc1ef912689ef86e706acbd99 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/bazaar/bazaarplugin.cpp9
-rw-r--r--src/plugins/bazaar/bazaarplugin.h1
-rw-r--r--src/plugins/bazaar/optionspage.cpp34
-rw-r--r--src/plugins/bazaar/optionspage.h4
-rw-r--r--src/plugins/bazaar/uncommitdialog.cpp19
-rw-r--r--src/plugins/bazaar/uncommitdialog.h6
6 files changed, 33 insertions, 40 deletions
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 230269b38a..87e58a97b3 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -168,7 +168,7 @@ BazaarPluginPrivate::BazaarPluginPrivate()
connect(m_client, &VcsBaseClient::changed, vcsCtrl, &BazaarControl::changed);
- new OptionsPage(vcsCtrl, this);
+ new OptionsPage(vcsCtrl, &m_bazaarSettings, this);
const auto describeFunc = [this](const QString &source, const QString &id) {
m_client->view(source, id);
@@ -187,11 +187,6 @@ BazaarPluginPrivate::BazaarPluginPrivate()
createMenu(context);
}
-BazaarPluginPrivate *BazaarPluginPrivate::instance()
-{
- return dd;
-}
-
BazaarClient *BazaarPluginPrivate::client() const
{
return m_client;
@@ -635,7 +630,7 @@ void BazaarPluginPrivate::uncommit()
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
- UnCommitDialog dialog(ICore::dialogParent());
+ UnCommitDialog dialog(this, ICore::dialogParent());
if (dialog.exec() == QDialog::Accepted)
m_client->synchronousUncommit(state.topLevel(), dialog.revision(), dialog.extraOptions());
}
diff --git a/src/plugins/bazaar/bazaarplugin.h b/src/plugins/bazaar/bazaarplugin.h
index cb77e886b7..7aea2a5317 100644
--- a/src/plugins/bazaar/bazaarplugin.h
+++ b/src/plugins/bazaar/bazaarplugin.h
@@ -59,7 +59,6 @@ public:
BazaarPluginPrivate();
~BazaarPluginPrivate() final;
- static BazaarPluginPrivate *instance();
BazaarClient *client() const;
protected:
diff --git a/src/plugins/bazaar/optionspage.cpp b/src/plugins/bazaar/optionspage.cpp
index dbd72f9110..38e787aadc 100644
--- a/src/plugins/bazaar/optionspage.cpp
+++ b/src/plugins/bazaar/optionspage.cpp
@@ -42,53 +42,53 @@ class OptionsPageWidget final : public Core::IOptionsPageWidget
Q_DECLARE_TR_FUNCTIONS(Bazaar::Internal::OptionsPageWidget)
public:
- OptionsPageWidget(Core::IVersionControl *control);
+ OptionsPageWidget(Core::IVersionControl *control, BazaarSettings *settings);
void apply() final;
private:
Ui::OptionsPage m_ui;
Core::IVersionControl *m_control;
- BazaarClient *m_client;
+ BazaarSettings *m_settings;
};
void OptionsPageWidget::apply()
{
- VcsBaseClientSettings s = BazaarPluginPrivate::instance()->client()->settings();
+ BazaarSettings s = *m_settings;
s.setValue(BazaarSettings::binaryPathKey, m_ui.commandChooser->rawPath());
s.setValue(BazaarSettings::userNameKey, m_ui.defaultUsernameLineEdit->text().trimmed());
s.setValue(BazaarSettings::userEmailKey, m_ui.defaultEmailLineEdit->text().trimmed());
s.setValue(BazaarSettings::logCountKey, m_ui.logEntriesCount->value());
s.setValue(BazaarSettings::timeoutKey, m_ui.timeout->value());
- const bool notify = m_client->settings() != s;
- m_client->settings() = s;
- if (notify)
- emit m_control->configurationChanged();
+ if (*m_settings == s)
+ return;
+
+ *m_settings = s;
+ emit m_control->configurationChanged();
}
-OptionsPageWidget::OptionsPageWidget(Core::IVersionControl *control)
- : m_control(control), m_client(BazaarPluginPrivate::instance()->client())
+OptionsPageWidget::OptionsPageWidget(Core::IVersionControl *control, BazaarSettings *settings)
+ : m_control(control), m_settings(settings)
{
m_ui.setupUi(this);
m_ui.commandChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
m_ui.commandChooser->setPromptDialogTitle(tr("Bazaar Command"));
m_ui.commandChooser->setHistoryCompleter(QLatin1String("Bazaar.Command.History"));
- VcsBaseClientSettings s = m_client->settings();
- m_ui.commandChooser->setPath(s.stringValue(BazaarSettings::binaryPathKey));
- m_ui.defaultUsernameLineEdit->setText(s.stringValue(BazaarSettings::userNameKey));
- m_ui.defaultEmailLineEdit->setText(s.stringValue(BazaarSettings::userEmailKey));
- m_ui.logEntriesCount->setValue(s.intValue(BazaarSettings::logCountKey));
- m_ui.timeout->setValue(s.intValue(BazaarSettings::timeoutKey));
+ m_ui.commandChooser->setPath(m_settings->stringValue(BazaarSettings::binaryPathKey));
+ m_ui.defaultUsernameLineEdit->setText(m_settings->stringValue(BazaarSettings::userNameKey));
+ m_ui.defaultEmailLineEdit->setText(m_settings->stringValue(BazaarSettings::userEmailKey));
+ m_ui.logEntriesCount->setValue(m_settings->intValue(BazaarSettings::logCountKey));
+ m_ui.timeout->setValue(m_settings->intValue(BazaarSettings::timeoutKey));
}
-OptionsPage::OptionsPage(Core::IVersionControl *control, QObject *parent) :
+OptionsPage::OptionsPage(Core::IVersionControl *control, BazaarSettings *settings, QObject *parent) :
Core::IOptionsPage(parent)
{
setId(VcsBase::Constants::VCS_ID_BAZAAR);
setDisplayName(OptionsPageWidget::tr("Bazaar"));
- setWidgetCreator([control] { return new OptionsPageWidget(control); });
+ setWidgetCreator([control, settings] { return new OptionsPageWidget(control, settings); });
setCategory(Constants::VCS_SETTINGS_CATEGORY);
}
diff --git a/src/plugins/bazaar/optionspage.h b/src/plugins/bazaar/optionspage.h
index e51d61bbea..9a75dc2671 100644
--- a/src/plugins/bazaar/optionspage.h
+++ b/src/plugins/bazaar/optionspage.h
@@ -30,10 +30,12 @@
namespace Bazaar {
namespace Internal {
+class BazaarSettings;
+
class OptionsPage final : public Core::IOptionsPage
{
public:
- OptionsPage(Core::IVersionControl *control, QObject *parent);
+ OptionsPage(Core::IVersionControl *control, BazaarSettings *settings, QObject *parent);
};
} // namespace Internal
diff --git a/src/plugins/bazaar/uncommitdialog.cpp b/src/plugins/bazaar/uncommitdialog.cpp
index b144715ca7..97832dfe86 100644
--- a/src/plugins/bazaar/uncommitdialog.cpp
+++ b/src/plugins/bazaar/uncommitdialog.cpp
@@ -35,7 +35,8 @@
namespace Bazaar {
namespace Internal {
-UnCommitDialog::UnCommitDialog(QWidget *parent) : QDialog(parent),
+UnCommitDialog::UnCommitDialog(BazaarPluginPrivate *bzrPlugin, QWidget *parent) :
+ QDialog(parent),
m_ui(new Ui::UnCommitDialog)
{
m_ui->setupUi(this);
@@ -43,7 +44,12 @@ UnCommitDialog::UnCommitDialog(QWidget *parent) : QDialog(parent),
auto dryRunBtn = new QPushButton(tr("Dry Run"));
dryRunBtn->setToolTip(tr("Test the outcome of removing the last committed revision, without actually removing anything."));
m_ui->buttonBox->addButton(dryRunBtn, QDialogButtonBox::ApplyRole);
- connect(dryRunBtn, &QPushButton::clicked, this, &UnCommitDialog::dryRun);
+ connect(dryRunBtn, &QPushButton::clicked, this, [this, bzrPlugin] {
+ QTC_ASSERT(bzrPlugin->currentState().hasTopLevel(), return);
+ bzrPlugin->client()->synchronousUncommit(bzrPlugin->currentState().topLevel(),
+ revision(),
+ extraOptions() << QLatin1String("--dry-run"));
+ });
}
UnCommitDialog::~UnCommitDialog()
@@ -66,14 +72,5 @@ QString UnCommitDialog::revision() const
return m_ui->revisionLineEdit->text().trimmed();
}
-void UnCommitDialog::dryRun()
-{
- BazaarPluginPrivate *bzrPlugin = BazaarPluginPrivate::instance();
- QTC_ASSERT(bzrPlugin->currentState().hasTopLevel(), return);
- bzrPlugin->client()->synchronousUncommit(bzrPlugin->currentState().topLevel(),
- revision(),
- extraOptions() << QLatin1String("--dry-run"));
-}
-
} // namespace Internal
} // namespace Bazaar
diff --git a/src/plugins/bazaar/uncommitdialog.h b/src/plugins/bazaar/uncommitdialog.h
index e535b996b0..335250150e 100644
--- a/src/plugins/bazaar/uncommitdialog.h
+++ b/src/plugins/bazaar/uncommitdialog.h
@@ -32,20 +32,20 @@ namespace Internal {
namespace Ui { class UnCommitDialog; }
+class BazaarPluginPrivate;
+
class UnCommitDialog : public QDialog
{
Q_OBJECT
public:
- explicit UnCommitDialog(QWidget *parent = nullptr);
+ explicit UnCommitDialog(BazaarPluginPrivate *plugin, QWidget *parent = nullptr);
~UnCommitDialog() override;
QStringList extraOptions() const;
QString revision() const;
private:
- void dryRun();
-
Ui::UnCommitDialog *m_ui;
};