Svn: add "Verbose" option for log command

Change-Id: If58a98ff45ceba251c6972099d38d2ce506422c9
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Hugues Delorme
2015-01-26 15:29:09 +01:00
parent ea1efad6f1
commit ba8c7c91d0
5 changed files with 49 additions and 37 deletions

View File

@@ -59,9 +59,23 @@ using namespace Core;
namespace Subversion {
namespace Internal {
class SubversionLogParameterWidget : public VcsBaseEditorParameterWidget
{
Q_OBJECT
public:
SubversionLogParameterWidget(SubversionSettings *settings, QWidget *parent = 0) :
VcsBaseEditorParameterWidget(parent)
{
mapSetting(addToggleButton(QLatin1String("--verbose"), tr("Verbose"),
tr("Show files changed in each revision")),
settings->boolPointer(SubversionSettings::logVerboseKey));
}
};
SubversionClient::SubversionClient(SubversionSettings *settings) :
VcsBaseClient(settings)
{
setLogParameterWidgetCreator([=] { return new SubversionLogParameterWidget(settings); });
}
SubversionSettings *SubversionClient::settings() const
@@ -102,8 +116,10 @@ void SubversionClient::commit(const QString &repositoryRoot,
Core::Id SubversionClient::vcsEditorKind(VcsCommandTag cmd) const
{
// TODO: add some code here
Q_UNUSED(cmd)
switch (cmd) {
case VcsBaseClient::LogCommand: return Constants::SUBVERSION_LOG_EDITOR_ID;
case VcsBaseClient::AnnotateCommand: return Constants::SUBVERSION_BLAME_EDITOR_ID;
}
return Core::Id();
}
@@ -339,6 +355,27 @@ void SubversionClient::diff(const QString &workingDirectory, const QStringList &
reloader->requestReload();
}
void SubversionClient::log(const QString &workingDir,
const QStringList &files,
const QStringList &extraOptions,
bool enableAnnotationContextMenu)
{
const auto logCount = settings()->intValue(SubversionSettings::logCountKey);
QStringList svnExtraOptions =
QStringList(extraOptions)
<< SubversionClient::addAuthenticationOptions(*settings());
if (logCount > 0)
svnExtraOptions << QLatin1String("-l") << QString::number(logCount);
QStringList nativeFiles;
foreach (const QString& file, files)
nativeFiles.append(QDir::toNativeSeparators(file));
// subversion stores log in UTF-8 and returns it back in user system locale.
// So we do not need to encode it.
VcsBaseClient::log(workingDir, files, svnExtraOptions, enableAnnotationContextMenu);
}
void SubversionClient::describe(const QString &workingDirectory, int changeNumber, const QString &title)
{
const QString documentId = VcsBaseEditor::editorTag(DiffOutput,