VCS: Use a single filename for log

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

Take 2. This time it actually compiles ;-)

Change-Id: I71a9822360a9b569ba79afa0f575e27918bb2e03
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 92afe048ef
commit 35798d4ad6
14 changed files with 88 additions and 85 deletions

View File

@@ -724,7 +724,9 @@ void CvsPlugin::diffProject()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasProject(), return);
cvsDiff(state.currentProjectTopLevel(), state.relativeCurrentProject());
const QString relativeProject = state.relativeCurrentProject();
cvsDiff(state.currentProjectTopLevel(),
relativeProject.isEmpty() ? QStringList() : QStringList(relativeProject));
}
void CvsPlugin::diffCurrentFile()
@@ -738,7 +740,7 @@ void CvsPlugin::startCommitCurrentFile()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return);
startCommit(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()));
startCommit(state.currentFileTopLevel(), state.relativeCurrentFile());
}
void CvsPlugin::startCommitAll()
@@ -751,7 +753,7 @@ void CvsPlugin::startCommitAll()
/* Start commit of files of a single repository by displaying
* template and files in a submit editor. On closing, the real
* commit will start. */
void CvsPlugin::startCommit(const QString &workingDir, const QStringList &files)
void CvsPlugin::startCommit(const QString &workingDir, const QString &file)
{
if (raiseSubmitEditor())
return;
@@ -770,9 +772,9 @@ void CvsPlugin::startCommit(const QString &workingDir, const QStringList &files)
// Get list of added/modified/deleted files and purge out undesired ones
// (do not run status with relative arguments as it will omit the directories)
StateList statusOutput = parseStatusOutput(QString(), response.stdOut);
if (!files.isEmpty()) {
if (!file.isEmpty()) {
for (StateList::iterator it = statusOutput.begin(); it != statusOutput.end() ; ) {
if (files.contains(it->second))
if (file == it->second)
++it;
else
it = statusOutput.erase(it);
@@ -821,7 +823,7 @@ void CvsPlugin::filelogCurrentFile()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return);
filelog(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true);
filelog(state.currentFileTopLevel(), state.relativeCurrentFile(), true);
}
void CvsPlugin::logProject()
@@ -839,16 +841,16 @@ void CvsPlugin::logRepository()
}
void CvsPlugin::filelog(const QString &workingDir,
const QStringList &files,
const QString &file,
bool enableAnnotationContextMenu)
{
QTextCodec *codec = VcsBaseEditorWidget::getCodec(workingDir, files);
QTextCodec *codec = VcsBaseEditorWidget::getCodec(workingDir, QStringList(file));
// no need for temp file
const QString id = VcsBaseEditorWidget::getTitleId(workingDir, files);
const QString source = VcsBaseEditorWidget::getSource(workingDir, files);
const QString id = VcsBaseEditorWidget::getTitleId(workingDir, QStringList(file));
const QString source = VcsBaseEditorWidget::getSource(workingDir, file);
QStringList args;
args << QLatin1String("log");
args.append(files);
args.append(file);
const CvsResponse response =
runCvs(workingDir, args, m_settings.timeOutMS(),
SshPasswordPrompt, codec);
@@ -857,7 +859,7 @@ void CvsPlugin::filelog(const QString &workingDir,
// Re-use an existing view if possible to support
// the common usage pattern of continuously changing and diffing a file
const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, files);
const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, QStringList(file));
if (Core::IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->document()->setContents(response.stdOut.toUtf8());
Core::EditorManager::activateEditor(editor);
@@ -877,11 +879,12 @@ void CvsPlugin::updateProject()
update(state.currentProjectTopLevel(), state.relativeCurrentProject());
}
bool CvsPlugin::update(const QString &topLevel, const QStringList &files)
bool CvsPlugin::update(const QString &topLevel, const QString &file)
{
QStringList args(QLatin1String("update"));
args.push_back(QLatin1String("-dR"));
args.append(files);
if (!file.isEmpty())
args.append(file);
const CvsResponse response =
runCvs(topLevel, args, m_settings.longTimeOutMS(),
SshPasswordPrompt|ShowStdOutInLogWindow);
@@ -1012,10 +1015,11 @@ void CvsPlugin::annotate(const QString &workingDir, const QString &file,
}
}
bool CvsPlugin::status(const QString &topLevel, const QStringList &files, const QString &title)
bool CvsPlugin::status(const QString &topLevel, const QString &file, const QString &title)
{
QStringList args(QLatin1String("status"));
args.append(files);
if (!file.isEmpty())
args.append(file);
const CvsResponse response =
runCvs(topLevel, args, m_settings.timeOutMS(), 0);
const bool ok = response.result == CvsResponse::Ok;
@@ -1049,14 +1053,14 @@ void CvsPlugin::statusRepository()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
status(state.topLevel(), QStringList(), tr("Repository status"));
status(state.topLevel(), QString(), tr("Repository status"));
}
void CvsPlugin::updateRepository()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
update(state.topLevel(), QStringList());
update(state.topLevel(), QString());
}