VcsBase: Don't return editor from annotate()

Take int firstLine as last arg instead. Switch the order of
3rd and 4th args as most callers provide lineNumber
and don't provide revision.

Change-Id: Iab60c1068a4d9829d10219af39bf3dcbf51e37bb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-12-11 11:49:17 +01:00
parent db85862a8c
commit 32e824c762
11 changed files with 45 additions and 54 deletions

View File

@@ -141,12 +141,12 @@ void BazaarClient::commit(const FilePath &repositoryRoot, const QStringList &fil
QStringList(extraOptions) << QLatin1String("-F") << commitMessageFile); QStringList(extraOptions) << QLatin1String("-F") << commitMessageFile);
} }
VcsBaseEditorWidget *BazaarClient::annotate( void BazaarClient::annotate(const Utils::FilePath &workingDir, const QString &file,
const FilePath &workingDir, const QString &file, const QString &revision, int lineNumber, const QString &revision,
int lineNumber, const QStringList &extraOptions) const QStringList &extraOptions, int firstLine)
{ {
return VcsBaseClient::annotate(workingDir, file, revision, lineNumber, VcsBaseClient::annotate(workingDir, file, lineNumber, revision,
QStringList(extraOptions) << QLatin1String("--long")); QStringList(extraOptions) << QLatin1String("--long"), firstLine);
} }
bool BazaarClient::isVcsDirectory(const FilePath &filePath) const bool BazaarClient::isVcsDirectory(const FilePath &filePath) const

View File

@@ -22,9 +22,9 @@ public:
const QStringList &extraOptions = {}); const QStringList &extraOptions = {});
void commit(const Utils::FilePath &repositoryRoot, const QStringList &files, void commit(const Utils::FilePath &repositoryRoot, const QStringList &files,
const QString &commitMessageFile, const QStringList &extraOptions = {}) override; const QString &commitMessageFile, const QStringList &extraOptions = {}) override;
VcsBase::VcsBaseEditorWidget *annotate( void annotate(const Utils::FilePath &workingDir, const QString &file,
const Utils::FilePath &workingDir, const QString &file, const QString &revision = {}, int lineNumber = -1, const QString &revision = {},
int lineNumber = -1, const QStringList &extraOptions ={}) override; const QStringList &extraOptions = {}, int firstLine = -1) override;
bool isVcsDirectory(const Utils::FilePath &filePath) const; bool isVcsDirectory(const Utils::FilePath &filePath) const;
Utils::FilePath findTopLevelForFile(const Utils::FilePath &file) const override; Utils::FilePath findTopLevelForFile(const Utils::FilePath &file) const override;
bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const; bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const;

View File

@@ -931,7 +931,7 @@ bool BazaarPluginPrivate::vcsCreateRepository(const FilePath &directory)
void BazaarPluginPrivate::vcsAnnotate(const FilePath &file, int line) void BazaarPluginPrivate::vcsAnnotate(const FilePath &file, int line)
{ {
m_client.annotate(file.parentDir(), file.fileName(), QString(), line); m_client.annotate(file.parentDir(), file.fileName(), line);
} }
VcsCommand *BazaarPluginPrivate::createInitialCheckoutCommand(const QString &url, VcsCommand *BazaarPluginPrivate::createInitialCheckoutCommand(const QString &url,

View File

@@ -1291,27 +1291,24 @@ void GitClient::archive(const FilePath &workingDirectory, QString commit)
RunFlags::ShowStdOut); RunFlags::ShowStdOut);
} }
VcsBaseEditorWidget *GitClient::annotate( void GitClient::annotate(const Utils::FilePath &workingDir, const QString &file, int lineNumber,
const FilePath &workingDir, const QString &file, const QString &revision, const QString &revision, const QStringList &extraOptions, int firstLine)
int lineNumber, const QStringList &extraOptions)
{ {
const Id editorId = Git::Constants::GIT_BLAME_EDITOR_ID; const Id editorId = Git::Constants::GIT_BLAME_EDITOR_ID;
const QString id = VcsBaseEditor::getTitleId(workingDir, {file}, revision); const QString id = VcsBaseEditor::getTitleId(workingDir, {file}, revision);
const QString title = Tr::tr("Git Blame \"%1\"").arg(id); const QString title = Tr::tr("Git Blame \"%1\"").arg(id);
const QString sourceFile = VcsBaseEditor::getSource(workingDir, file); const QString sourceFile = VcsBaseEditor::getSource(workingDir, file);
VcsBaseEditorWidget *editor VcsBaseEditorWidget *editor = createVcsEditor(editorId, title, sourceFile,
= createVcsEditor(editorId, title, sourceFile, codecFor(CodecSource, FilePath::fromString(sourceFile)), codecFor(CodecSource, FilePath::fromString(sourceFile)), "blameFileName", id);
"blameFileName", id);
VcsBaseEditorConfig *argWidget = editor->editorConfig(); VcsBaseEditorConfig *argWidget = editor->editorConfig();
if (!argWidget) { if (!argWidget) {
argWidget = new GitBlameArgumentsWidget(settings(), editor->toolBar()); argWidget = new GitBlameArgumentsWidget(settings(), editor->toolBar());
argWidget->setBaseArguments(extraOptions); argWidget->setBaseArguments(extraOptions);
connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this, connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this, [=] {
[=] { const int line = VcsBaseEditor::lineNumberOfCurrentEditor();
const int line = VcsBaseEditor::lineNumberOfCurrentEditor(); annotate(workingDir, file, line, revision, extraOptions);
annotate(workingDir, file, revision, line, extraOptions); });
} );
editor->setEditorConfig(argWidget); editor->setEditorConfig(argWidget);
} }
@@ -1322,8 +1319,9 @@ VcsBaseEditorWidget *GitClient::annotate(
arguments << revision; arguments << revision;
arguments << "--" << file; arguments << "--" << file;
editor->setDefaultLineNumber(lineNumber); editor->setDefaultLineNumber(lineNumber);
if (firstLine > 0)
editor->setFirstLineNumber(firstLine);
vcsExecWithEditor(workingDir, arguments, editor); vcsExecWithEditor(workingDir, arguments, editor);
return editor;
} }
void GitClient::checkout(const FilePath &workingDirectory, const QString &ref, StashMode stashMode, void GitClient::checkout(const FilePath &workingDirectory, const QString &ref, StashMode stashMode,

View File

@@ -152,9 +152,9 @@ public:
void log(const Utils::FilePath &workingDirectory, const QString &fileName = {}, void log(const Utils::FilePath &workingDirectory, const QString &fileName = {},
bool enableAnnotationContextMenu = false, const QStringList &args = {}); bool enableAnnotationContextMenu = false, const QStringList &args = {});
void reflog(const Utils::FilePath &workingDirectory, const QString &branch = {}); void reflog(const Utils::FilePath &workingDirectory, const QString &branch = {});
VcsBase::VcsBaseEditorWidget *annotate(const Utils::FilePath &workingDir, const QString &file, void annotate(const Utils::FilePath &workingDir, const QString &file,
const QString &revision = {}, int lineNumber = -1, int lineNumber = -1, const QString &revision = {},
const QStringList &extraOptions = {}) override; const QStringList &extraOptions = {}, int firstLine = -1) override;
void reset(const Utils::FilePath &workingDirectory, const QString &argument, const QString &commit = {}); void reset(const Utils::FilePath &workingDirectory, const QString &argument, const QString &commit = {});
void removeStaleRemoteBranches(const Utils::FilePath &workingDirectory, const QString &remote); void removeStaleRemoteBranches(const Utils::FilePath &workingDirectory, const QString &remote);
void recoverDeletedFiles(const Utils::FilePath &workingDirectory); void recoverDeletedFiles(const Utils::FilePath &workingDirectory);

View File

@@ -1133,11 +1133,8 @@ void GitPluginPrivate::blameFile()
const FilePath fileName = FilePath::fromString(state.currentFile()).canonicalPath(); const FilePath fileName = FilePath::fromString(state.currentFile()).canonicalPath();
FilePath topLevel; FilePath topLevel;
VcsManager::findVersionControlForDirectory(fileName.parentDir(), &topLevel); VcsManager::findVersionControlForDirectory(fileName.parentDir(), &topLevel);
VcsBaseEditorWidget *editor = m_gitClient.annotate( m_gitClient.annotate(topLevel, fileName.relativeChildPath(topLevel).toString(),
topLevel, fileName.relativeChildPath(topLevel).toString(), lineNumber, {}, extraOptions, firstLine);
{}, lineNumber, extraOptions);
if (firstLine > 0)
editor->setFirstLineNumber(firstLine);
} }
void GitPluginPrivate::logProject() void GitPluginPrivate::logProject()
@@ -2126,7 +2123,7 @@ FilePaths GitPluginPrivate::unmanagedFiles(const FilePaths &filePaths) const
void GitPluginPrivate::vcsAnnotate(const FilePath &filePath, int line) void GitPluginPrivate::vcsAnnotate(const FilePath &filePath, int line)
{ {
m_gitClient.annotate(filePath.absolutePath(), filePath.fileName(), {}, line); m_gitClient.annotate(filePath.absolutePath(), filePath.fileName(), line);
} }
void GitPlugin::emitFilesChanged(const QStringList &l) void GitPlugin::emitFilesChanged(const QStringList &l)

View File

@@ -279,13 +279,13 @@ void MercurialClient::outgoing(const FilePath &repositoryRoot)
enqueueJob(createCommand(repositoryRoot, editor), args); enqueueJob(createCommand(repositoryRoot, editor), args);
} }
VcsBaseEditorWidget *MercurialClient::annotate( void MercurialClient::annotate(const Utils::FilePath &workingDir, const QString &file,
const FilePath &workingDir, const QString &file, const QString &revision, int lineNumber, const QString &revision,
int lineNumber, const QStringList &extraOptions) const QStringList &extraOptions, int firstLine)
{ {
QStringList args(extraOptions); QStringList args(extraOptions);
args << QLatin1String("-u") << QLatin1String("-c") << QLatin1String("-d"); args << QLatin1String("-u") << QLatin1String("-c") << QLatin1String("-d");
return VcsBaseClient::annotate(workingDir, file, revision, lineNumber, args); VcsBaseClient::annotate(workingDir, file, lineNumber, revision, args, firstLine);
} }
void MercurialClient::commit(const FilePath &repositoryRoot, const QStringList &files, void MercurialClient::commit(const FilePath &repositoryRoot, const QStringList &files,

View File

@@ -38,9 +38,9 @@ public:
void outgoing(const Utils::FilePath &repositoryRoot); void outgoing(const Utils::FilePath &repositoryRoot);
bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const; bool managesFile(const Utils::FilePath &workingDirectory, const QString &fileName) const;
VcsBase::VcsBaseEditorWidget *annotate( void annotate(const Utils::FilePath &workingDir, const QString &file,
const Utils::FilePath &workingDir, const QString &file, const QString &revision = {}, int lineNumber = -1, const QString &revision = {},
int lineNumber = -1, const QStringList &extraOptions = {}) override; const QStringList &extraOptions = {}, int firstLine = -1) override;
void commit(const Utils::FilePath &repositoryRoot, const QStringList &files, void commit(const Utils::FilePath &repositoryRoot, const QStringList &files,
const QString &commitMessageFile, const QString &commitMessageFile,
const QStringList &extraOptions = QStringList()) override; const QStringList &extraOptions = QStringList()) override;

View File

@@ -351,7 +351,7 @@ void MercurialPluginPrivate::annotateCurrentFile()
currentLine = editor->currentLine(); currentLine = editor->currentLine();
const VcsBasePluginState state = currentState(); const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return); QTC_ASSERT(state.hasFile(), return);
m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), QString(), currentLine); m_client.annotate(state.currentFileTopLevel(), state.relativeCurrentFile(), currentLine);
} }
void MercurialPluginPrivate::diffCurrentFile() void MercurialPluginPrivate::diffCurrentFile()
@@ -775,7 +775,7 @@ bool MercurialPluginPrivate::vcsCreateRepository(const FilePath &directory)
void MercurialPluginPrivate::vcsAnnotate(const FilePath &filePath, int line) void MercurialPluginPrivate::vcsAnnotate(const FilePath &filePath, int line)
{ {
m_client.annotate(filePath.parentDir(), filePath.fileName(), QString(), line); m_client.annotate(filePath.parentDir(), filePath.fileName(), line);
} }
VcsCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const QString &url, VcsCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const QString &url,

View File

@@ -149,7 +149,7 @@ void VcsBaseClientImpl::annotateRevisionRequested(const FilePath &workingDirecto
const int blankPos = changeCopy.indexOf(QLatin1Char(' ')); const int blankPos = changeCopy.indexOf(QLatin1Char(' '));
if (blankPos != -1) if (blankPos != -1)
changeCopy.truncate(blankPos); changeCopy.truncate(blankPos);
annotate(workingDirectory, file, changeCopy, line); annotate(workingDirectory, file, line, changeCopy);
} }
void VcsBaseClientImpl::vcsExecWithHandler(const FilePath &workingDirectory, void VcsBaseClientImpl::vcsExecWithHandler(const FilePath &workingDirectory,
@@ -324,10 +324,11 @@ bool VcsBaseClient::synchronousPush(const FilePath &workingDir,
== ProcessResult::FinishedWithSuccess; == ProcessResult::FinishedWithSuccess;
} }
VcsBaseEditorWidget *VcsBaseClient::annotate( void VcsBaseClient::annotate(const Utils::FilePath &workingDir, const QString &file,
const FilePath &workingDir, const QString &file, const QString &revision /* = QString() */, int lineNumber /* = -1 */, const QString &revision /* = {} */,
int lineNumber /* = -1 */, const QStringList &extraOptions) const QStringList &extraOptions /* = {} */, int firstLine /* = -1 */)
{ {
Q_UNUSED(firstLine)
const QString vcsCmdString = vcsCommandString(AnnotateCommand); const QString vcsCmdString = vcsCommandString(AnnotateCommand);
QStringList args; QStringList args;
args << vcsCmdString << revisionSpec(revision) << extraOptions << file; args << vcsCmdString << revisionSpec(revision) << extraOptions << file;
@@ -343,7 +344,6 @@ VcsBaseEditorWidget *VcsBaseClient::annotate(
VcsCommand *cmd = createCommand(workingDir, editor); VcsCommand *cmd = createCommand(workingDir, editor);
editor->setDefaultLineNumber(lineNumber); editor->setDefaultLineNumber(lineNumber);
enqueueJob(cmd, args); enqueueJob(cmd, args);
return editor;
} }
void VcsBaseClient::diff(const FilePath &workingDir, const QStringList &files, void VcsBaseClient::diff(const FilePath &workingDir, const QStringList &files,

View File

@@ -62,11 +62,9 @@ public:
virtual Utils::Environment processEnvironment() const; virtual Utils::Environment processEnvironment() const;
// VCS functionality: // VCS functionality:
virtual VcsBaseEditorWidget *annotate(const Utils::FilePath &workingDir, virtual void annotate(const Utils::FilePath &workingDir, const QString &file,
const QString &file, int lineNumber = -1, const QString &revision = {},
const QString &revision = {}, const QStringList &extraOptions = {}, int firstLine = -1) = 0;
int lineNumber = -1,
const QStringList &extraOptions = {}) = 0;
static QStringList splitLines(const QString &s); static QStringList splitLines(const QString &s);
@@ -140,11 +138,9 @@ public:
virtual bool synchronousPush(const Utils::FilePath &workingDir, virtual bool synchronousPush(const Utils::FilePath &workingDir,
const QString &dstLocation, const QString &dstLocation,
const QStringList &extraOptions = {}); const QStringList &extraOptions = {});
VcsBaseEditorWidget *annotate(const Utils::FilePath &workingDir, void annotate(const Utils::FilePath &workingDir, const QString &file,
const QString &file, int lineNumber = -1, const QString &revision = {},
const QString &revision = {}, const QStringList &extraOptions = {}, int firstLine = -1) override;
int lineNumber = -1,
const QStringList &extraOptions = {}) override;
virtual void diff(const Utils::FilePath &workingDir, virtual void diff(const Utils::FilePath &workingDir,
const QStringList &files = {}, const QStringList &files = {},
const QStringList &extraOptions = {}); const QStringList &extraOptions = {});