diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp index 34ef1339a6b6721e8aa3292f3c56dd3464755764..03e8487b400565c4ac6db536916e2d59fc070835 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 3ea6320294f108bd80a56e51205cc88fc99fac78..9037247f634860d693b05496972483493f989edb 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 83a8f84d688c01d38cf5df00f47501aa3eb9e927..c0d650c4ca080157732fff43a5e26de36c98a42b 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 b23573d8012aa3f58cead4a2f628ee76811be65b..32040b307b95de7480b7b0e89e1922dc343635eb 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