diff options
author | hjk <hjk@qt.io> | 2020-01-24 14:10:01 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-24 14:34:10 +0000 |
commit | 60f0e0694279e01ec2c2e88ea60bdb463ac1053f (patch) | |
tree | 4d51b93ec59219ef8f150c277acb7c1e0d9b9503 | |
parent | f39e9be2f2da2f675d0df2032dd5bdf69c7aee39 (diff) | |
download | qt-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.cpp | 9 | ||||
-rw-r--r-- | src/plugins/bazaar/bazaarplugin.h | 1 | ||||
-rw-r--r-- | src/plugins/bazaar/optionspage.cpp | 34 | ||||
-rw-r--r-- | src/plugins/bazaar/optionspage.h | 4 | ||||
-rw-r--r-- | src/plugins/bazaar/uncommitdialog.cpp | 19 | ||||
-rw-r--r-- | src/plugins/bazaar/uncommitdialog.h | 6 |
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; }; |