diff options
author | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-03-26 12:22:29 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-04-08 09:30:44 +0000 |
commit | 90ce38da39ba7acf6f7883a86916abcfc7efe23c (patch) | |
tree | 48a34950ff0b1a64d1f052ede5609e3a949837fc /src/plugins/subversion/subversionclient.cpp | |
parent | d3100774f9b2b342fe36b9b3d213934f79e96b64 (diff) | |
download | qt-creator-90ce38da39ba7acf6f7883a86916abcfc7efe23c.tar.gz |
Vcs: Move handling of settings from VcsBaseClient to VcsBaseClientImpl
... and update users of that functionality accordingly.
Unexpected plus: Now every supported VCS actually saves their setting
when requested.
Change-Id: I02db7b2ce14e5f52d26409b2a01aea290c2a294a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/subversion/subversionclient.cpp')
-rw-r--r-- | src/plugins/subversion/subversionclient.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/plugins/subversion/subversionclient.cpp b/src/plugins/subversion/subversionclient.cpp index 58045aa281..db1b2be053 100644 --- a/src/plugins/subversion/subversionclient.cpp +++ b/src/plugins/subversion/subversionclient.cpp @@ -62,24 +62,18 @@ class SubversionLogParameterWidget : public VcsBaseEditorParameterWidget { Q_OBJECT public: - SubversionLogParameterWidget(SubversionSettings *settings, QWidget *parent = 0) : + SubversionLogParameterWidget(VcsBaseClientSettings &settings, QWidget *parent = 0) : VcsBaseEditorParameterWidget(parent) { mapSetting(addToggleButton(QLatin1String("--verbose"), tr("Verbose"), tr("Show files changed in each revision")), - settings->boolPointer(SubversionSettings::logVerboseKey)); + settings.boolPointer(SubversionSettings::logVerboseKey)); } }; -SubversionClient::SubversionClient(SubversionSettings *settings) : - VcsBaseClient(settings) +SubversionClient::SubversionClient() : VcsBaseClient(new SubversionSettings) { - setLogParameterWidgetCreator([=] { return new SubversionLogParameterWidget(settings); }); -} - -SubversionSettings *SubversionClient::settings() const -{ - return dynamic_cast<SubversionSettings *>(VcsBaseClient::settings()); + setLogParameterWidgetCreator([this] { return new SubversionLogParameterWidget(settings()); }); } VcsCommand *SubversionClient::createCommitCmd(const QString &repositoryRoot, @@ -89,7 +83,7 @@ VcsCommand *SubversionClient::createCommitCmd(const QString &repositoryRoot, { const QStringList svnExtraOptions = QStringList(extraOptions) - << SubversionClient::addAuthenticationOptions(*settings()) + << SubversionClient::addAuthenticationOptions(settings()) << QLatin1String(Constants::NON_INTERACTIVE_OPTION) << QLatin1String("--encoding") << QLatin1String("utf8") << QLatin1String("--file") << commitMessageFile; @@ -124,9 +118,9 @@ Id SubversionClient::vcsEditorKind(VcsCommandTag cmd) const } // Add authorization options to the command line arguments. -QStringList SubversionClient::addAuthenticationOptions(const SubversionSettings &settings) +QStringList SubversionClient::addAuthenticationOptions(const VcsBaseClientSettings &settings) { - if (!settings.hasAuthentication()) + if (!static_cast<const SubversionSettings &>(settings).hasAuthentication()) return QStringList(); const QString userName = settings.stringValue(SubversionSettings::userKey); @@ -223,7 +217,7 @@ void DiffController::setChangeNumber(int changeNumber) QString DiffController::getDescription() const { QStringList args(QLatin1String("log")); - args << SubversionClient::addAuthenticationOptions(*m_client->settings()); + args << SubversionClient::addAuthenticationOptions(m_client->settings()); args << QLatin1String("-r"); args << QString::number(m_changeNumber); const SubversionResponse logResponse = @@ -247,7 +241,7 @@ void DiffController::postCollectTextualDiffOutput() QStringList args; args << QLatin1String("diff"); - args << m_client->addAuthenticationOptions(*m_client->settings()); + args << m_client->addAuthenticationOptions(m_client->settings()); args << QLatin1String("--internal-diff"); if (ignoreWhitespace()) args << QLatin1String("-x") << QLatin1String("-uw"); @@ -312,10 +306,10 @@ void SubversionClient::log(const QString &workingDir, const QStringList &extraOptions, bool enableAnnotationContextMenu) { - const auto logCount = settings()->intValue(SubversionSettings::logCountKey); + const auto logCount = settings().intValue(SubversionSettings::logCountKey); QStringList svnExtraOptions = QStringList(extraOptions) - << SubversionClient::addAuthenticationOptions(*settings()); + << SubversionClient::addAuthenticationOptions(settings()); if (logCount > 0) svnExtraOptions << QLatin1String("-l") << QString::number(logCount); |