Adapt to upstream changes

Change-Id: Iae091f1dedb3ea944c4e65ad6a2d67c2f327a939
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Christian Stenger
2022-08-02 09:08:15 +02:00
parent 91a82da6b7
commit 810517d9c9
2 changed files with 61 additions and 60 deletions

View File

@@ -30,6 +30,7 @@
#include <vcsbase/vcsbaseplugin.h> #include <vcsbase/vcsbaseplugin.h>
#include <vcsbase/vcsbaseeditor.h> #include <vcsbase/vcsbaseeditor.h>
#include <vcsbase/vcsbaseeditorconfig.h> #include <vcsbase/vcsbaseeditorconfig.h>
#include <vcsbase/vcscommand.h>
#include <vcsbase/vcsoutputwindow.h> #include <vcsbase/vcsoutputwindow.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
@@ -38,7 +39,6 @@
#include <utils/processenums.h> #include <utils/processenums.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/shellcommand.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
#include <QSyntaxHighlighter> #include <QSyntaxHighlighter>
@@ -52,24 +52,25 @@
#include <QRegularExpression> #include <QRegularExpression>
using namespace Utils; using namespace Utils;
using namespace VcsBase;
namespace Fossil { namespace Fossil {
namespace Internal { namespace Internal {
// Disable UNIX terminals to suppress SSH prompting // Disable UNIX terminals to suppress SSH prompting
const unsigned s_pullFlags = ShellCommand::SshPasswordPrompt const unsigned s_pullFlags = VcsCommand::SshPasswordPrompt
| ShellCommand::ShowStdOut | VcsCommand::ShowStdOut
| ShellCommand::ShowSuccessMessage; | VcsCommand::ShowSuccessMessage;
// Parameter widget controlling whitespace diff mode, associated with a parameter // Parameter widget controlling whitespace diff mode, associated with a parameter
class FossilDiffConfig : public VcsBase::VcsBaseEditorConfig class FossilDiffConfig : public VcsBaseEditorConfig
{ {
Q_OBJECT Q_OBJECT
public: public:
FossilDiffConfig(FossilClient *client, QToolBar *toolBar) : FossilDiffConfig(FossilClient *client, QToolBar *toolBar) :
VcsBase::VcsBaseEditorConfig(toolBar) VcsBaseEditorConfig(toolBar)
{ {
QTC_ASSERT(client, return); QTC_ASSERT(client, return);
@@ -86,13 +87,13 @@ public:
}; };
// Parameter widget controlling annotate/blame mode // Parameter widget controlling annotate/blame mode
class FossilAnnotateConfig : public VcsBase::VcsBaseEditorConfig class FossilAnnotateConfig : public VcsBaseEditorConfig
{ {
Q_OBJECT Q_OBJECT
public: public:
FossilAnnotateConfig(FossilClient *client, QToolBar *toolBar) : FossilAnnotateConfig(FossilClient *client, QToolBar *toolBar) :
VcsBase::VcsBaseEditorConfig(toolBar) VcsBaseEditorConfig(toolBar)
{ {
QTC_ASSERT(client, return); QTC_ASSERT(client, return);
@@ -113,13 +114,13 @@ public:
} }
}; };
class FossilLogCurrentFileConfig : public VcsBase::VcsBaseEditorConfig class FossilLogCurrentFileConfig : public VcsBaseEditorConfig
{ {
Q_OBJECT Q_OBJECT
public: public:
FossilLogCurrentFileConfig(FossilClient *client, QToolBar *toolBar) : FossilLogCurrentFileConfig(FossilClient *client, QToolBar *toolBar) :
VcsBase::VcsBaseEditorConfig(toolBar) VcsBaseEditorConfig(toolBar)
{ {
QTC_ASSERT(client, return); QTC_ASSERT(client, return);
addReloadButton(); addReloadButton();
@@ -127,13 +128,13 @@ public:
}; };
class FossilLogConfig : public VcsBase::VcsBaseEditorConfig class FossilLogConfig : public VcsBaseEditorConfig
{ {
Q_OBJECT Q_OBJECT
public: public:
FossilLogConfig(FossilClient *client, QToolBar *toolBar) : FossilLogConfig(FossilClient *client, QToolBar *toolBar) :
VcsBase::VcsBaseEditorConfig(toolBar), VcsBaseEditorConfig(toolBar),
m_client(client) m_client(client)
{ {
QTC_ASSERT(client, return); QTC_ASSERT(client, return);
@@ -250,7 +251,7 @@ QString FossilClient::makeVersionString(unsigned version)
} }
FossilClient::FossilClient(FossilSettings *settings) FossilClient::FossilClient(FossilSettings *settings)
: VcsBase::VcsBaseClient(settings), m_settings(settings) : VcsBaseClient(settings), m_settings(settings)
{ {
setDiffConfigCreator([this](QToolBar *toolBar) { setDiffConfigCreator([this](QToolBar *toolBar) {
return new FossilDiffConfig(this, toolBar); return new FossilDiffConfig(this, toolBar);
@@ -388,7 +389,7 @@ RevisionInfo FossilClient::synchronousRevisionQuery(const FilePath &workingDirec
args << id; args << id;
const CommandResult result = vcsFullySynchronousExec(workingDirectory, args, const CommandResult result = vcsFullySynchronousExec(workingDirectory, args,
ShellCommand::SuppressCommandLogging); VcsCommand::SuppressCommandLogging);
if (result.result() != ProcessResult::FinishedWithSuccess) if (result.result() != ProcessResult::FinishedWithSuccess)
return RevisionInfo(); return RevisionInfo();
@@ -639,7 +640,7 @@ QString FossilClient::synchronousTopic(const FilePath &workingDirectory)
bool FossilClient::synchronousCreateRepository(const FilePath &workingDirectory, const QStringList &extraOptions) bool FossilClient::synchronousCreateRepository(const FilePath &workingDirectory, const QStringList &extraOptions)
{ {
VcsBase::VcsOutputWindow *outputWindow = VcsBase::VcsOutputWindow::instance(); VcsOutputWindow *outputWindow = VcsOutputWindow::instance();
// init repository file of the same name as the working directory // init repository file of the same name as the working directory
// use the configured default repository location for path // use the configured default repository location for path
@@ -760,7 +761,7 @@ void FossilClient::commit(const FilePath &repositoryRoot, const QStringList &fil
QStringList(extraOptions) << "-M" << commitMessageFile); QStringList(extraOptions) << "-M" << commitMessageFile);
} }
VcsBase::VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir, const QString &file, const QString &revision, VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir, const QString &file, const QString &revision,
int lineNumber, const QStringList &extraOptions) int lineNumber, const QStringList &extraOptions)
{ {
// 'fossil annotate' command has a variant 'fossil blame'. // 'fossil annotate' command has a variant 'fossil blame'.
@@ -769,34 +770,34 @@ VcsBase::VcsBaseEditorWidget *FossilClient::annotate(const FilePath &workingDir,
QString vcsCmdString = vcsCommandString(AnnotateCommand); QString vcsCmdString = vcsCommandString(AnnotateCommand);
const Id kind = vcsEditorKind(AnnotateCommand); const Id kind = vcsEditorKind(AnnotateCommand);
const QString id = VcsBase::VcsBaseEditor::getTitleId(workingDir, QStringList(file), revision); const QString id = VcsBaseEditor::getTitleId(workingDir, QStringList(file), revision);
const QString title = vcsEditorTitle(vcsCmdString, id); const QString title = vcsEditorTitle(vcsCmdString, id);
const QString source = VcsBase::VcsBaseEditor::getSource(workingDir, file); const QString source = VcsBaseEditor::getSource(workingDir, file);
VcsBase::VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source, VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source,
VcsBase::VcsBaseEditor::getCodec(source), VcsBaseEditor::getCodec(source),
vcsCmdString.toLatin1().constData(), id); vcsCmdString.toLatin1().constData(), id);
auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor); auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor);
QTC_ASSERT(fossilEditor, return editor); QTC_ASSERT(fossilEditor, return editor);
if (!fossilEditor->editorConfig()) { if (!fossilEditor->editorConfig()) {
if (VcsBase::VcsBaseEditorConfig *editorConfig = createAnnotateEditor(fossilEditor)) { if (VcsBaseEditorConfig *editorConfig = createAnnotateEditor(fossilEditor)) {
editorConfig->setBaseArguments(extraOptions); editorConfig->setBaseArguments(extraOptions);
// editor has been just created, createVcsEditor() didn't set a configuration widget yet // editor has been just created, createVcsEditor() didn't set a configuration widget yet
connect(editorConfig, &VcsBase::VcsBaseEditorConfig::commandExecutionRequested, connect(editorConfig, &VcsBaseEditorConfig::commandExecutionRequested,
[=]() { [=]() {
const int line = VcsBase::VcsBaseEditor::lineNumberOfCurrentEditor(); const int line = VcsBaseEditor::lineNumberOfCurrentEditor();
return this->annotate(workingDir, file, revision, line, editorConfig->arguments()); return this->annotate(workingDir, file, revision, line, editorConfig->arguments());
} ); } );
fossilEditor->setEditorConfig(editorConfig); fossilEditor->setEditorConfig(editorConfig);
} }
} }
QStringList effectiveArgs = extraOptions; QStringList effectiveArgs = extraOptions;
if (VcsBase::VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig()) if (VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig())
effectiveArgs = editorConfig->arguments(); effectiveArgs = editorConfig->arguments();
ShellCommand *cmd = createCommand(workingDir, fossilEditor); VcsCommand *cmd = createCommand(workingDir, fossilEditor);
// here we introduce a "|BLAME|" meta-option to allow both annotate and blame modes // here we introduce a "|BLAME|" meta-option to allow both annotate and blame modes
int pos = effectiveArgs.indexOf("|BLAME|"); int pos = effectiveArgs.indexOf("|BLAME|");
@@ -830,7 +831,7 @@ bool FossilClient::isVcsFileOrDirectory(const FilePath &filePath) const
FilePath FossilClient::findTopLevelForFile(const FilePath &file) const FilePath FossilClient::findTopLevelForFile(const FilePath &file) const
{ {
return VcsBase::findRepositoryForFile(file, Constants::FOSSILREPO); return findRepositoryForFile(file, Constants::FOSSILREPO);
} }
bool FossilClient::managesFile(const FilePath &workingDirectory, const QString &fileName) const bool FossilClient::managesFile(const FilePath &workingDirectory, const QString &fileName) const
@@ -920,8 +921,8 @@ void FossilClient::view(const QString &source, const QString &id, const QStringL
const Id kind = vcsEditorKind(DiffCommand); const Id kind = vcsEditorKind(DiffCommand);
const QString title = vcsEditorTitle(vcsCommandString(DiffCommand), id); const QString title = vcsEditorTitle(vcsCommandString(DiffCommand), id);
VcsBase::VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source, VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source,
VcsBase::VcsBaseEditor::getCodec(source), "view", id); VcsBaseEditor::getCodec(source), "view", id);
editor->setWorkingDirectory(workingDirectory); editor->setWorkingDirectory(workingDirectory);
enqueueJob(createCommand(workingDirectory, editor), args); enqueueJob(createCommand(workingDirectory, editor), args);
@@ -989,11 +990,11 @@ void FossilClient::log(const FilePath &workingDir, const QStringList &files,
const QString vcsCmdString = vcsCommandString(LogCommand); const QString vcsCmdString = vcsCommandString(LogCommand);
const Id kind = vcsEditorKind(LogCommand); const Id kind = vcsEditorKind(LogCommand);
const QString id = VcsBase::VcsBaseEditor::getTitleId(workingDir, files); const QString id = VcsBaseEditor::getTitleId(workingDir, files);
const QString title = vcsEditorTitle(vcsCmdString, id); const QString title = vcsEditorTitle(vcsCmdString, id);
const QString source = VcsBase::VcsBaseEditor::getSource(workingDir, files); const QString source = VcsBaseEditor::getSource(workingDir, files);
VcsBase::VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source, VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source,
VcsBase::VcsBaseEditor::getCodec(source), VcsBaseEditor::getCodec(source),
vcsCmdString.toLatin1().constData(), id); vcsCmdString.toLatin1().constData(), id);
auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor); auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor);
@@ -1002,16 +1003,16 @@ void FossilClient::log(const FilePath &workingDir, const QStringList &files,
fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu); fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu);
if (!fossilEditor->editorConfig()) { if (!fossilEditor->editorConfig()) {
if (VcsBase::VcsBaseEditorConfig *editorConfig = createLogEditor(fossilEditor)) { if (VcsBaseEditorConfig *editorConfig = createLogEditor(fossilEditor)) {
editorConfig->setBaseArguments(extraOptions); editorConfig->setBaseArguments(extraOptions);
// editor has been just created, createVcsEditor() didn't set a configuration widget yet // editor has been just created, createVcsEditor() didn't set a configuration widget yet
connect(editorConfig, &VcsBase::VcsBaseEditorConfig::commandExecutionRequested, connect(editorConfig, &VcsBaseEditorConfig::commandExecutionRequested,
[=]() { this->log(workingDir, files, editorConfig->arguments(), enableAnnotationContextMenu); } ); [=]() { this->log(workingDir, files, editorConfig->arguments(), enableAnnotationContextMenu); } );
fossilEditor->setEditorConfig(editorConfig); fossilEditor->setEditorConfig(editorConfig);
} }
} }
QStringList effectiveArgs = extraOptions; QStringList effectiveArgs = extraOptions;
if (VcsBase::VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig()) if (VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig())
effectiveArgs = editorConfig->arguments(); effectiveArgs = editorConfig->arguments();
//@TODO: move highlighter and widgets to fossil editor sources. //@TODO: move highlighter and widgets to fossil editor sources.
@@ -1041,11 +1042,11 @@ void FossilClient::logCurrentFile(const FilePath &workingDir, const QStringList
const QString vcsCmdString = "finfo"; const QString vcsCmdString = "finfo";
const Id kind = vcsEditorKind(LogCommand); const Id kind = vcsEditorKind(LogCommand);
const QString id = VcsBase::VcsBaseEditor::getTitleId(workingDir, files); const QString id = VcsBaseEditor::getTitleId(workingDir, files);
const QString title = vcsEditorTitle(vcsCmdString, id); const QString title = vcsEditorTitle(vcsCmdString, id);
const QString source = VcsBase::VcsBaseEditor::getSource(workingDir, files); const QString source = VcsBaseEditor::getSource(workingDir, files);
VcsBase::VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source, VcsBaseEditorWidget *editor = createVcsEditor(kind, title, source,
VcsBase::VcsBaseEditor::getCodec(source), VcsBaseEditor::getCodec(source),
vcsCmdString.toLatin1().constData(), id); vcsCmdString.toLatin1().constData(), id);
auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor); auto *fossilEditor = qobject_cast<FossilEditorWidget *>(editor);
@@ -1054,16 +1055,16 @@ void FossilClient::logCurrentFile(const FilePath &workingDir, const QStringList
fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu); fossilEditor->setFileLogAnnotateEnabled(enableAnnotationContextMenu);
if (!fossilEditor->editorConfig()) { if (!fossilEditor->editorConfig()) {
if (VcsBase::VcsBaseEditorConfig *editorConfig = createLogCurrentFileEditor(fossilEditor)) { if (VcsBaseEditorConfig *editorConfig = createLogCurrentFileEditor(fossilEditor)) {
editorConfig->setBaseArguments(extraOptions); editorConfig->setBaseArguments(extraOptions);
// editor has been just created, createVcsEditor() didn't set a configuration widget yet // editor has been just created, createVcsEditor() didn't set a configuration widget yet
connect(editorConfig, &VcsBase::VcsBaseEditorConfig::commandExecutionRequested, connect(editorConfig, &VcsBaseEditorConfig::commandExecutionRequested,
[=]() { this->logCurrentFile(workingDir, files, editorConfig->arguments(), enableAnnotationContextMenu); } ); [=]() { this->logCurrentFile(workingDir, files, editorConfig->arguments(), enableAnnotationContextMenu); } );
fossilEditor->setEditorConfig(editorConfig); fossilEditor->setEditorConfig(editorConfig);
} }
} }
QStringList effectiveArgs = extraOptions; QStringList effectiveArgs = extraOptions;
if (VcsBase::VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig()) if (VcsBaseEditorConfig *editorConfig = fossilEditor->editorConfig())
effectiveArgs = editorConfig->arguments(); effectiveArgs = editorConfig->arguments();
//@TODO: move highlighter and widgets to fossil editor sources. //@TODO: move highlighter and widgets to fossil editor sources.
@@ -1087,9 +1088,9 @@ void FossilClient::revertFile(const FilePath &workingDir,
args << extraOptions << file; args << extraOptions << file;
// Indicate file list // Indicate file list
ShellCommand *cmd = createCommand(workingDir); VcsCommand *cmd = createCommand(workingDir);
cmd->setCookie(QStringList(workingDir.toString() + "/" + file)); cmd->setCookie(QStringList(workingDir.toString() + "/" + file));
connect(cmd, &ShellCommand::finished, this, [this](bool success, const QVariant &cookie) { connect(cmd, &VcsCommand::finished, this, [this](bool success, const QVariant &cookie) {
if (success) if (success)
emit changed(cookie); emit changed(cookie);
}); });
@@ -1116,9 +1117,9 @@ void FossilClient::revertAll(const FilePath &workingDir, const QString &revision
} }
// Indicate repository change // Indicate repository change
ShellCommand *cmd = createCommand(workingDir); VcsCommand *cmd = createCommand(workingDir);
cmd->setCookie(QStringList(workingDir.toString())); cmd->setCookie(QStringList(workingDir.toString()));
connect(cmd, &ShellCommand::finished, this, [this](bool success, const QVariant &cookie) { connect(cmd, &VcsCommand::finished, this, [this](bool success, const QVariant &cookie) {
if (success) if (success)
emit changed(cookie); emit changed(cookie);
}); });
@@ -1243,12 +1244,12 @@ FossilClient::StatusItem FossilClient::parseStatusLine(const QString &line) cons
return item; return item;
} }
VcsBase::VcsBaseEditorConfig *FossilClient::createAnnotateEditor(VcsBase::VcsBaseEditorWidget *editor) VcsBaseEditorConfig *FossilClient::createAnnotateEditor(VcsBaseEditorWidget *editor)
{ {
return new FossilAnnotateConfig(this, editor->toolBar()); return new FossilAnnotateConfig(this, editor->toolBar());
} }
VcsBase::VcsBaseEditorConfig *FossilClient::createLogCurrentFileEditor(VcsBase::VcsBaseEditorWidget *editor) VcsBaseEditorConfig *FossilClient::createLogCurrentFileEditor(VcsBaseEditorWidget *editor)
{ {
SupportedFeatures features = supportedFeatures(); SupportedFeatures features = supportedFeatures();
@@ -1258,7 +1259,7 @@ VcsBase::VcsBaseEditorConfig *FossilClient::createLogCurrentFileEditor(VcsBase::
return new FossilLogCurrentFileConfig(this, editor->toolBar()); return new FossilLogCurrentFileConfig(this, editor->toolBar());
} }
VcsBase::VcsBaseEditorConfig *FossilClient::createLogEditor(VcsBase::VcsBaseEditorWidget *editor) VcsBaseEditorConfig *FossilClient::createLogEditor(VcsBaseEditorWidget *editor)
{ {
return new FossilLogConfig(this, editor->toolBar()); return new FossilLogConfig(this, editor->toolBar());
} }

View File

@@ -56,7 +56,6 @@
#include <utils/commandline.h> #include <utils/commandline.h>
#include <utils/parameteraction.h> #include <utils/parameteraction.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/shellcommand.h>
#include <vcsbase/basevcseditorfactory.h> #include <vcsbase/basevcseditorfactory.h>
#include <vcsbase/basevcssubmiteditorfactory.h> #include <vcsbase/basevcssubmiteditorfactory.h>
@@ -64,6 +63,7 @@
#include <vcsbase/vcsbaseconstants.h> #include <vcsbase/vcsbaseconstants.h>
#include <vcsbase/vcsbaseeditor.h> #include <vcsbase/vcsbaseeditor.h>
#include <vcsbase/vcsbasesubmiteditor.h> #include <vcsbase/vcsbasesubmiteditor.h>
#include <vcsbase/vcscommand.h>
#include <vcsbase/vcsoutputwindow.h> #include <vcsbase/vcsoutputwindow.h>
#include <QtPlugin> #include <QtPlugin>
@@ -166,7 +166,7 @@ public:
void vcsAnnotate(const FilePath &file, int line) final; void vcsAnnotate(const FilePath &file, int line) final;
void vcsDescribe(const FilePath &source, const QString &id) final; void vcsDescribe(const FilePath &source, const QString &id) final;
Utils::ShellCommand *createInitialCheckoutCommand(const QString &url, VcsCommand *createInitialCheckoutCommand(const QString &url,
const Utils::FilePath &baseDirectory, const Utils::FilePath &baseDirectory,
const QString &localName, const QString &localName,
const QStringList &extraArgs) final; const QStringList &extraArgs) final;
@@ -996,7 +996,7 @@ void FossilPluginPrivate::vcsAnnotate(const FilePath &filePath, int line)
void FossilPluginPrivate::vcsDescribe(const FilePath &source, const QString &id) { m_client.view(source.toString(), id); } void FossilPluginPrivate::vcsDescribe(const FilePath &source, const QString &id) { m_client.view(source.toString(), id); }
Utils::ShellCommand *FossilPluginPrivate::createInitialCheckoutCommand(const QString &sourceUrl, VcsCommand *FossilPluginPrivate::createInitialCheckoutCommand(const QString &sourceUrl,
const FilePath &baseDirectory, const FilePath &baseDirectory,
const QString &localName, const QString &localName,
const QStringList &extraArgs) const QStringList &extraArgs)