From e776c1f0d13ccca44e804d16fa1495b51137f249 Mon Sep 17 00:00:00 2001 From: cerf <delorme.hugues@gmail.com> Date: Thu, 28 Jul 2011 10:22:11 +0000 Subject: [PATCH] Bazaar: support of log format options Change-Id: I85c8e9fb72b1f0175669a7e6c8d2a42f52bbff2d Merge-request: 351 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> Reviewed-on: http://codereview.qt.nokia.com/2332 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> --- src/plugins/bazaar/bazaarclient.cpp | 44 +++++++++++++++++++++++++++ src/plugins/bazaar/bazaarclient.h | 3 ++ src/plugins/bazaar/bazaarsettings.cpp | 28 +++++++++++++++-- src/plugins/bazaar/bazaarsettings.h | 5 +++ 4 files changed, 78 insertions(+), 2 deletions(-) diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp index 34ef1339a6b..03e8487b400 100644 --- a/src/plugins/bazaar/bazaarclient.cpp +++ b/src/plugins/bazaar/bazaarclient.cpp @@ -339,6 +339,50 @@ VCSBase::VCSBaseEditorParameterWidget *BazaarClient::createDiffEditor( return new BazaarDiffParameterWidget(this, parameters); } +class BazaarLogParameterWidget : public VCSBase::VCSBaseEditorParameterWidget +{ + Q_OBJECT +public: + BazaarLogParameterWidget(BazaarClient *client, + const BazaarCommandParameters &p, QWidget *parent = 0) : + VCSBase::VCSBaseEditorParameterWidget(parent), m_client(client), m_params(p) + { + mapSetting(addToggleButton(QLatin1String("--verbose"), tr("Verbose"), + tr("Show files changed in each revision")), + &m_client->settings()->logVerbose); + mapSetting(addToggleButton(QLatin1String("--forward"), tr("Forward"), + tr("Show from oldest to newest")), + &m_client->settings()->logForward); + mapSetting(addToggleButton(QLatin1String("--include-merges"), tr("Include merges"), + tr("Show merged revisions")), + &m_client->settings()->logIncludeMerges); + + QList<ComboBoxItem> logChoices; + logChoices << ComboBoxItem(tr("Detailed"), QLatin1String("long")) + << ComboBoxItem(tr("Moderately short"), QLatin1String("short")) + << ComboBoxItem(tr("One line"), QLatin1String("line")) + << ComboBoxItem(tr("GNU ChangeLog"), QLatin1String("gnu-changelog")); + mapSetting(addComboBox(QLatin1String("--log-format"), logChoices), + &m_client->settings()->logFormat); + } + + void executeCommand() + { + m_client->log(m_params.workingDir, m_params.files, m_params.extraOptions); + } + +private: + BazaarClient* m_client; + const BazaarCommandParameters m_params; +}; + +VCSBase::VCSBaseEditorParameterWidget *BazaarClient::createLogEditor( + const QString &workingDir, const QStringList &files, const QStringList &extraOptions) +{ + const BazaarCommandParameters parameters(workingDir, files, extraOptions); + return new BazaarLogParameterWidget(this, parameters); +} + } //namespace Internal } // namespace Bazaar diff --git a/src/plugins/bazaar/bazaarclient.h b/src/plugins/bazaar/bazaarclient.h index 3ea6320294f..9037247f634 100644 --- a/src/plugins/bazaar/bazaarclient.h +++ b/src/plugins/bazaar/bazaarclient.h @@ -80,6 +80,9 @@ protected: const QStringList &extraOptions); QStringList logArguments(const QStringList &files, const QStringList &extraOptions) const; + VCSBase::VCSBaseEditorParameterWidget *createLogEditor(const QString &workingDir, + const QStringList &files, + const QStringList &extraOptions); QStringList statusArguments(const QString &file) const; QStringList viewArguments(const QString &revision) const; diff --git a/src/plugins/bazaar/bazaarsettings.cpp b/src/plugins/bazaar/bazaarsettings.cpp index 83a8f84d688..c0d650c4ca0 100644 --- a/src/plugins/bazaar/bazaarsettings.cpp +++ b/src/plugins/bazaar/bazaarsettings.cpp @@ -40,10 +40,18 @@ namespace Internal { const QLatin1String diffIgnoreWhiteSpaceKey("diffIgnoreWhiteSpace"); const QLatin1String diffIgnoreBlankLinesKey("diffIgnoreBlankLines"); +const QLatin1String logVerboseKey("logVerbose"); +const QLatin1String logForwardKey("logForward"); +const QLatin1String logIncludeMergesKey("logIncludeMerges"); +const QLatin1String logFormatKey("logFormat"); BazaarSettings::BazaarSettings() : diffIgnoreWhiteSpace(false), - diffIgnoreBlankLines(false) + diffIgnoreBlankLines(false), + logVerbose(false), + logForward(false), + logIncludeMerges(false), + logFormat(QLatin1String("long")) { setSettingsGroup(QLatin1String(Constants::BAZAAR)); setBinary(QLatin1String(Constants::BAZAARDEFAULT)); @@ -55,6 +63,10 @@ BazaarSettings& BazaarSettings::operator=(const BazaarSettings& other) if (this != &other) { diffIgnoreWhiteSpace = other.diffIgnoreWhiteSpace; diffIgnoreBlankLines = other.diffIgnoreBlankLines; + logVerbose = other.logVerbose; + logForward = other.logForward; + logIncludeMerges = other.logIncludeMerges; + logFormat = other.logFormat; } return *this; } @@ -70,6 +82,10 @@ void BazaarSettings::writeSettings(QSettings *settings) const settings->beginGroup(settingsGroup()); settings->setValue(diffIgnoreWhiteSpaceKey, diffIgnoreWhiteSpace); settings->setValue(diffIgnoreBlankLinesKey, diffIgnoreBlankLines); + settings->setValue(logVerboseKey, logVerbose); + settings->setValue(logForwardKey, logForward); + settings->setValue(logIncludeMergesKey, logIncludeMerges); + settings->setValue(logFormatKey, logFormat); settings->endGroup(); } @@ -79,6 +95,10 @@ void BazaarSettings::readSettings(const QSettings *settings) const QString keyRoot = settingsGroup() + QLatin1Char('/'); diffIgnoreWhiteSpace = settings->value(keyRoot + diffIgnoreWhiteSpaceKey, false).toBool(); diffIgnoreBlankLines = settings->value(keyRoot + diffIgnoreBlankLinesKey, false).toBool(); + logVerbose = settings->value(keyRoot + logVerboseKey, false).toBool(); + logForward = settings->value(keyRoot + logForwardKey, false).toBool(); + logIncludeMerges = settings->value(keyRoot + logIncludeMergesKey, false).toBool(); + logFormat = settings->value(keyRoot + logFormatKey, QLatin1String("long")).toString(); } bool BazaarSettings::equals(const VCSBaseClientSettings &rhs) const @@ -88,7 +108,11 @@ bool BazaarSettings::equals(const VCSBaseClientSettings &rhs) const return false; return VCSBaseClientSettings::equals(rhs) && diffIgnoreWhiteSpace == bzrRhs->diffIgnoreWhiteSpace - && diffIgnoreBlankLines == bzrRhs->diffIgnoreBlankLines; + && diffIgnoreBlankLines == bzrRhs->diffIgnoreBlankLines + && logVerbose == bzrRhs->logVerbose + && logForward == bzrRhs->logForward + && logIncludeMerges == bzrRhs->logIncludeMerges + && logFormat == bzrRhs->logFormat; } } // namespace Internal diff --git a/src/plugins/bazaar/bazaarsettings.h b/src/plugins/bazaar/bazaarsettings.h index b23573d8012..32040b307b9 100644 --- a/src/plugins/bazaar/bazaarsettings.h +++ b/src/plugins/bazaar/bazaarsettings.h @@ -51,6 +51,11 @@ public: bool diffIgnoreWhiteSpace; bool diffIgnoreBlankLines; + + bool logVerbose; + bool logForward; + bool logIncludeMerges; + QString logFormat; }; } // namespace Internal -- GitLab