Git: Use a single filename for log

The list always contains a single entry (or none) anyway

Change-Id: I567b622efd42dd6f676bebb92fbf1c8774bd80ff
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2013-08-06 15:14:54 +03:00
committed by Orgad Shaneh
parent ec247074d4
commit a05ea71133
5 changed files with 21 additions and 23 deletions

View File

@@ -637,7 +637,7 @@ public:
const QString &directory,
bool enableAnnotationContextMenu,
const QStringList &args,
const QStringList &fileNames) :
const QString &fileName) :
BaseGitDiffArgumentsWidget(client, directory, args),
m_client(client),
m_workingDirectory(directory),
@@ -657,24 +657,24 @@ public:
QToolButton *graphButton = addToggleButton(graphArguments, tr("Graph"),
tr("Show textual graph log."));
mapSetting(graphButton, m_client->settings()->boolPointer(GitSettings::graphLogKey));
setFileNames(fileNames);
setFileName(fileName);
}
void setFileNames(const QStringList &fileNames)
void setFileName(const QString &fileNames)
{
m_fileNames = fileNames;
m_fileName = fileNames;
}
void executeCommand()
{
m_client->log(m_workingDirectory, m_fileNames, m_enableAnnotationContextMenu, baseArguments());
m_client->log(m_workingDirectory, m_fileName, m_enableAnnotationContextMenu, baseArguments());
}
private:
GitClient *m_client;
QString m_workingDirectory;
bool m_enableAnnotationContextMenu;
QStringList m_fileNames;
QString m_fileName;
};
class ConflictHandler : public QObject
@@ -1113,20 +1113,19 @@ void GitClient::status(const QString &workingDirectory)
Qt::QueuedConnection);
}
void GitClient::log(const QString &workingDirectory, const QStringList &fileNames,
void GitClient::log(const QString &workingDirectory, const QString &fileName,
bool enableAnnotationContextMenu, const QStringList &args)
{
const QString msgArg = fileNames.empty() ? workingDirectory :
fileNames.join(QLatin1String(", "));
const QString msgArg = fileName.isEmpty() ? workingDirectory : fileName;
const QString title = tr("Git Log \"%1\"").arg(msgArg);
const Core::Id editorId = Git::Constants::GIT_LOG_EDITOR_ID;
const QString sourceFile = VcsBase::VcsBaseEditorWidget::getSource(workingDirectory, fileNames);
const QString sourceFile = VcsBase::VcsBaseEditorWidget::getSource(workingDirectory, fileName);
VcsBase::VcsBaseEditorWidget *editor = findExistingVCSEditor("logFileName", sourceFile);
if (!editor)
editor = createVcsEditor(editorId, title, sourceFile, CodecLogOutput, "logFileName", sourceFile,
new GitLogArgumentsWidget(this, workingDirectory,
enableAnnotationContextMenu,
args, fileNames));
args, fileName));
editor->setFileLogAnnotateEnabled(enableAnnotationContextMenu);
editor->setDiffBaseDirectory(workingDirectory);
@@ -1140,13 +1139,13 @@ void GitClient::log(const QString &workingDirectory, const QStringList &fileName
GitLogArgumentsWidget *argWidget = qobject_cast<GitLogArgumentsWidget *>(editor->configurationWidget());
argWidget->setBaseArguments(args);
argWidget->setFileNames(fileNames);
argWidget->setFileName(fileName);
QStringList userArgs = argWidget->arguments();
arguments.append(userArgs);
if (!fileNames.isEmpty())
arguments << QLatin1String("--") << fileNames;
if (!fileName.isEmpty())
arguments << QLatin1String("--") << fileName;
executeGit(workingDirectory, arguments, editor);
}