forked from qt-creator/qt-creator
Vcs: Move createCommand and enqueueJob into VcsBaseClientImpl
Change-Id: I86a4ddfd6c53a3be61c56579d8eaf5d49258a8f1 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
@@ -118,8 +118,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BazaarClient::BazaarClient() :
|
BazaarClient::BazaarClient() : VcsBaseClient(new BazaarSettings)
|
||||||
VcsBaseClient(new BazaarSettings)
|
|
||||||
{
|
{
|
||||||
setDiffParameterWidgetCreator([this] { return new BazaarDiffParameterWidget(settings()); });
|
setDiffParameterWidgetCreator([this] { return new BazaarDiffParameterWidget(settings()); });
|
||||||
setLogParameterWidgetCreator([this] { return new BazaarLogParameterWidget(settings()); });
|
setLogParameterWidgetCreator([this] { return new BazaarLogParameterWidget(settings()); });
|
||||||
|
@@ -603,7 +603,7 @@ static inline void msgCannotRun(const QStringList &args, const QString &workingD
|
|||||||
|
|
||||||
const char *GitClient::stashNamePrefix = "stash@{";
|
const char *GitClient::stashNamePrefix = "stash@{";
|
||||||
|
|
||||||
GitClient::GitClient() : VcsBase::VcsBaseClientImpl(new GitSettings),
|
GitClient::GitClient() : VcsBase::VcsBaseClientImpl(this, new GitSettings),
|
||||||
m_cachedGitVersion(0),
|
m_cachedGitVersion(0),
|
||||||
m_disableEditor(false)
|
m_disableEditor(false)
|
||||||
{
|
{
|
||||||
@@ -1967,36 +1967,6 @@ bool GitClient::synchronousApplyPatch(const QString &workingDirectory,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Factory function to create an asynchronous command
|
|
||||||
VcsCommand *GitClient::createCommand(const QString &workingDirectory, VcsBaseEditorWidget *editor,
|
|
||||||
JobOutputBindMode mode)
|
|
||||||
{
|
|
||||||
GitEditorWidget *gitEditor = qobject_cast<GitEditorWidget *>(editor);
|
|
||||||
auto command = new VcsCommand(vcsBinary(), workingDirectory, processEnvironment());
|
|
||||||
command->setCodec(getSourceCodec(currentDocumentPath()));
|
|
||||||
if (gitEditor) {
|
|
||||||
gitEditor->setCommand(command);
|
|
||||||
connect(command, &VcsCommand::finished,
|
|
||||||
gitEditor, &GitEditorWidget::commandFinishedGotoLine);
|
|
||||||
}
|
|
||||||
if (mode & VcsWindowOutputBind) {
|
|
||||||
command->addFlags(VcsBasePlugin::ShowStdOutInLogWindow);
|
|
||||||
command->addFlags(VcsBasePlugin::ShowSuccessMessage);
|
|
||||||
if (editor) // assume that the commands output is the important thing
|
|
||||||
command->addFlags(VcsBasePlugin::SilentOutput);
|
|
||||||
} else if (gitEditor) {
|
|
||||||
connect(command, &VcsCommand::output, gitEditor, &GitEditorWidget::setPlainTextFiltered);
|
|
||||||
}
|
|
||||||
|
|
||||||
return command;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GitClient::enqueueJob(VcsCommand *cmd, const QStringList &args, ExitCodeInterpreter *interpreter)
|
|
||||||
{
|
|
||||||
cmd->addJob(args, vcsTimeout(), interpreter);
|
|
||||||
cmd->execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute a single command
|
// Execute a single command
|
||||||
VcsCommand *GitClient::executeGit(const QString &workingDirectory,
|
VcsCommand *GitClient::executeGit(const QString &workingDirectory,
|
||||||
const QStringList &arguments,
|
const QStringList &arguments,
|
||||||
@@ -2016,7 +1986,7 @@ VcsCommand *GitClient::executeGit(const QString &workingDirectory,
|
|||||||
|
|
||||||
QProcessEnvironment GitClient::processEnvironment() const
|
QProcessEnvironment GitClient::processEnvironment() const
|
||||||
{
|
{
|
||||||
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
QProcessEnvironment environment = VcsBaseClientImpl::processEnvironment();
|
||||||
QString gitPath = settings().stringValue(GitSettings::pathKey);
|
QString gitPath = settings().stringValue(GitSettings::pathKey);
|
||||||
if (!gitPath.isEmpty()) {
|
if (!gitPath.isEmpty()) {
|
||||||
gitPath += HostOsInfo::pathListSeparator();
|
gitPath += HostOsInfo::pathListSeparator();
|
||||||
@@ -2028,8 +1998,6 @@ QProcessEnvironment GitClient::processEnvironment() const
|
|||||||
environment.insert(QLatin1String("HOME"), QDir::toNativeSeparators(QDir::homePath()));
|
environment.insert(QLatin1String("HOME"), QDir::toNativeSeparators(QDir::homePath()));
|
||||||
}
|
}
|
||||||
environment.insert(QLatin1String("GIT_EDITOR"), m_disableEditor ? QLatin1String("true") : m_gitQtcEditor);
|
environment.insert(QLatin1String("GIT_EDITOR"), m_disableEditor ? QLatin1String("true") : m_gitQtcEditor);
|
||||||
// Set up SSH and C locale (required by git using perl).
|
|
||||||
VcsBasePlugin::setProcessEnvironment(&environment, false);
|
|
||||||
return environment;
|
return environment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -376,17 +376,6 @@ private:
|
|||||||
void requestReload(const QString &documentId, const QString &source, const QString &title,
|
void requestReload(const QString &documentId, const QString &source, const QString &title,
|
||||||
std::function<DiffEditor::DiffEditorController *(Core::IDocument *)> factory) const;
|
std::function<DiffEditor::DiffEditorController *(Core::IDocument *)> factory) const;
|
||||||
|
|
||||||
enum JobOutputBindMode {
|
|
||||||
NoOutputBind,
|
|
||||||
VcsWindowOutputBind
|
|
||||||
};
|
|
||||||
|
|
||||||
VcsBase::VcsCommand *createCommand(const QString &workingDirectory,
|
|
||||||
VcsBase::VcsBaseEditorWidget *editor = 0,
|
|
||||||
JobOutputBindMode mode = NoOutputBind);
|
|
||||||
void enqueueJob(VcsBase::VcsCommand *cmd, const QStringList &args,
|
|
||||||
Utils::ExitCodeInterpreter *interpreter = 0);
|
|
||||||
|
|
||||||
VcsBase::VcsCommand *executeGit(const QString &workingDirectory,
|
VcsBase::VcsCommand *executeGit(const QString &workingDirectory,
|
||||||
const QStringList &arguments,
|
const QStringList &arguments,
|
||||||
VcsBase::VcsBaseEditorWidget* editor = 0,
|
VcsBase::VcsBaseEditorWidget* editor = 0,
|
||||||
|
@@ -197,16 +197,6 @@ void GitEditorWidget::setPlainTextFiltered(const QString &text)
|
|||||||
textDocument()->setPlainText(modText);
|
textDocument()->setPlainText(modText);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GitEditorWidget::commandFinishedGotoLine(bool ok, int exitCode, const QVariant &v)
|
|
||||||
{
|
|
||||||
reportCommandFinished(ok, exitCode, v);
|
|
||||||
if (ok && v.type() == QVariant::Int) {
|
|
||||||
const int line = v.toInt();
|
|
||||||
if (line >= 0)
|
|
||||||
gotoLine(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GitEditorWidget::checkoutChange()
|
void GitEditorWidget::checkoutChange()
|
||||||
{
|
{
|
||||||
GitPlugin::instance()->client()->stashAndCheckout(
|
GitPlugin::instance()->client()->stashAndCheckout(
|
||||||
|
@@ -51,8 +51,6 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setPlainTextFiltered(const QString &text);
|
void setPlainTextFiltered(const QString &text);
|
||||||
// Matches the signature of the finished signal of GitCommand
|
|
||||||
void commandFinishedGotoLine(bool ok, int exitCode, const QVariant &v);
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void checkoutChange();
|
void checkoutChange();
|
||||||
|
@@ -68,8 +68,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
MercurialClient::MercurialClient() :
|
MercurialClient::MercurialClient() : VcsBaseClient(new MercurialSettings)
|
||||||
VcsBaseClient(new MercurialSettings)
|
|
||||||
{
|
{
|
||||||
setDiffParameterWidgetCreator([this] { return new MercurialDiffParameterWidget(settings()); });
|
setDiffParameterWidgetCreator([this] { return new MercurialDiffParameterWidget(settings()); });
|
||||||
}
|
}
|
||||||
|
@@ -82,15 +82,27 @@ namespace VcsBase {
|
|||||||
class VcsBaseClientImplPrivate
|
class VcsBaseClientImplPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VcsBaseClientImplPrivate(VcsBaseClientSettings *settings);
|
VcsBaseClientImplPrivate(VcsBaseClientImpl *client, VcsBaseClientSettings *settings);
|
||||||
~VcsBaseClientImplPrivate();
|
~VcsBaseClientImplPrivate();
|
||||||
|
|
||||||
|
void bindCommandToEditor(VcsCommand *cmd, VcsBaseEditorWidget *editor);
|
||||||
|
|
||||||
VcsBaseClientSettings *m_clientSettings;
|
VcsBaseClientSettings *m_clientSettings;
|
||||||
|
QSignalMapper *m_cmdFinishedMapper;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void VcsBaseClientImplPrivate::bindCommandToEditor(VcsCommand *cmd, VcsBaseEditorWidget *editor)
|
||||||
|
{
|
||||||
|
editor->setCommand(cmd);
|
||||||
|
QObject::connect(cmd, &VcsCommand::finished,
|
||||||
|
m_cmdFinishedMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
||||||
|
m_cmdFinishedMapper->setMapping(cmd, editor);
|
||||||
|
}
|
||||||
|
|
||||||
VcsBaseClientImplPrivate::VcsBaseClientImplPrivate(VcsBaseClientSettings *settings) :
|
VcsBaseClientImplPrivate::VcsBaseClientImplPrivate(VcsBaseClientImpl *client,
|
||||||
m_clientSettings(settings)
|
VcsBaseClientSettings *settings) :
|
||||||
|
m_clientSettings(settings),
|
||||||
|
m_cmdFinishedMapper(new QSignalMapper(client))
|
||||||
{
|
{
|
||||||
m_clientSettings->readSettings(Core::ICore::settings());
|
m_clientSettings->readSettings(Core::ICore::settings());
|
||||||
}
|
}
|
||||||
@@ -100,11 +112,14 @@ VcsBaseClientImplPrivate::~VcsBaseClientImplPrivate()
|
|||||||
delete m_clientSettings;
|
delete m_clientSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientSettings *settings) :
|
VcsBaseClientImpl::VcsBaseClientImpl(VcsBaseClientImpl *client, VcsBaseClientSettings *settings) :
|
||||||
d(new VcsBaseClientImplPrivate(settings))
|
d(new VcsBaseClientImplPrivate(client, settings))
|
||||||
{
|
{
|
||||||
connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
|
connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
|
||||||
this, &VcsBaseClientImpl::saveSettings);
|
this, &VcsBaseClientImpl::saveSettings);
|
||||||
|
|
||||||
|
connect(d->m_cmdFinishedMapper, static_cast<void (QSignalMapper::*)(QWidget*)>(&QSignalMapper::mapped),
|
||||||
|
this, &VcsBaseClientImpl::commandFinishedGotoLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseClientImpl::~VcsBaseClientImpl()
|
VcsBaseClientImpl::~VcsBaseClientImpl()
|
||||||
@@ -122,6 +137,40 @@ Utils::FileName VcsBaseClientImpl::vcsBinary() const
|
|||||||
return settings().binaryPath();
|
return settings().binaryPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VcsCommand *VcsBaseClientImpl::createCommand(const QString &workingDirectory,
|
||||||
|
VcsBaseEditorWidget *editor,
|
||||||
|
JobOutputBindMode mode) const
|
||||||
|
{
|
||||||
|
auto cmd = new VcsCommand(vcsBinary(), workingDirectory,
|
||||||
|
processEnvironment());
|
||||||
|
cmd->setDefaultTimeout(vcsTimeout());
|
||||||
|
if (editor)
|
||||||
|
d->bindCommandToEditor(cmd, editor);
|
||||||
|
if (mode == VcsWindowOutputBind) {
|
||||||
|
cmd->addFlags(VcsBasePlugin::ShowStdOutInLogWindow);
|
||||||
|
if (editor) // assume that the commands output is the important thing
|
||||||
|
cmd->addFlags(VcsBasePlugin::SilentOutput);
|
||||||
|
} else if (editor) {
|
||||||
|
connect(cmd, &VcsCommand::output, editor, &VcsBaseEditorWidget::setPlainText);
|
||||||
|
}
|
||||||
|
|
||||||
|
return cmd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void VcsBaseClientImpl::enqueueJob(VcsCommand *cmd, const QStringList &args,
|
||||||
|
Utils::ExitCodeInterpreter *interpreter)
|
||||||
|
{
|
||||||
|
cmd->addJob(args, vcsTimeout(), interpreter);
|
||||||
|
cmd->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
QProcessEnvironment VcsBaseClientImpl::processEnvironment() const
|
||||||
|
{
|
||||||
|
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
||||||
|
VcsBasePlugin::setProcessEnvironment(&environment, false);
|
||||||
|
return environment;
|
||||||
|
}
|
||||||
|
|
||||||
int VcsBaseClientImpl::vcsTimeout() const
|
int VcsBaseClientImpl::vcsTimeout() const
|
||||||
{
|
{
|
||||||
return settings().intValue(VcsBaseClientSettings::timeoutKey);
|
return settings().intValue(VcsBaseClientSettings::timeoutKey);
|
||||||
@@ -132,34 +181,32 @@ void VcsBaseClientImpl::saveSettings()
|
|||||||
settings().writeSettings(Core::ICore::settings());
|
settings().writeSettings(Core::ICore::settings());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VcsBaseClientImpl::commandFinishedGotoLine(QWidget *editorObject)
|
||||||
|
{
|
||||||
|
VcsBaseEditorWidget *editor = qobject_cast<VcsBaseEditorWidget *>(editorObject);
|
||||||
|
VcsCommand *cmd = qobject_cast<VcsCommand *>(d->m_cmdFinishedMapper->mapping(editor));
|
||||||
|
if (editor && cmd) {
|
||||||
|
if (!cmd->lastExecutionSuccess()) {
|
||||||
|
editor->reportCommandFinished(false, cmd->lastExecutionExitCode(), cmd->cookie());
|
||||||
|
} else if (cmd->cookie().type() == QVariant::Int) {
|
||||||
|
const int line = cmd->cookie().toInt();
|
||||||
|
if (line >= 0)
|
||||||
|
editor->gotoLine(line);
|
||||||
|
}
|
||||||
|
d->m_cmdFinishedMapper->removeMappings(cmd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class VcsBaseClientPrivate
|
class VcsBaseClientPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VcsBaseClientPrivate(VcsBaseClient *client);
|
|
||||||
|
|
||||||
void bindCommandToEditor(VcsCommand *cmd, VcsBaseEditorWidget *editor);
|
|
||||||
|
|
||||||
VcsBaseEditorParameterWidget *createDiffEditor();
|
VcsBaseEditorParameterWidget *createDiffEditor();
|
||||||
VcsBaseEditorParameterWidget *createLogEditor();
|
VcsBaseEditorParameterWidget *createLogEditor();
|
||||||
|
|
||||||
QSignalMapper *m_cmdFinishedMapper;
|
|
||||||
|
|
||||||
VcsBaseClient::ParameterWidgetCreator m_diffParamWidgetCreator;
|
VcsBaseClient::ParameterWidgetCreator m_diffParamWidgetCreator;
|
||||||
VcsBaseClient::ParameterWidgetCreator m_logParamWidgetCreator;
|
VcsBaseClient::ParameterWidgetCreator m_logParamWidgetCreator;
|
||||||
};
|
};
|
||||||
|
|
||||||
VcsBaseClientPrivate::VcsBaseClientPrivate(VcsBaseClient *client) :
|
|
||||||
m_cmdFinishedMapper(new QSignalMapper(client))
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void VcsBaseClientPrivate::bindCommandToEditor(VcsCommand *cmd, VcsBaseEditorWidget *editor)
|
|
||||||
{
|
|
||||||
editor->setCommand(cmd);
|
|
||||||
QObject::connect(cmd, &VcsCommand::finished,
|
|
||||||
m_cmdFinishedMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
|
||||||
m_cmdFinishedMapper->setMapping(cmd, editor);
|
|
||||||
}
|
|
||||||
|
|
||||||
VcsBaseEditorParameterWidget *VcsBaseClientPrivate::createDiffEditor()
|
VcsBaseEditorParameterWidget *VcsBaseClientPrivate::createDiffEditor()
|
||||||
{
|
{
|
||||||
return m_diffParamWidgetCreator ? m_diffParamWidgetCreator() : 0;
|
return m_diffParamWidgetCreator ? m_diffParamWidgetCreator() : 0;
|
||||||
@@ -175,12 +222,10 @@ VcsBaseClient::StatusItem::StatusItem(const QString &s, const QString &f) :
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
||||||
VcsBaseClientImpl(settings),
|
VcsBaseClientImpl(this, settings),
|
||||||
d(new VcsBaseClientPrivate(this))
|
d(new VcsBaseClientPrivate)
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QVariant>();
|
qRegisterMetaType<QVariant>();
|
||||||
connect(d->m_cmdFinishedMapper, static_cast<void (QSignalMapper::*)(QWidget*)>(&QSignalMapper::mapped),
|
|
||||||
this, &VcsBaseClient::commandFinishedGotoLine);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseClient::~VcsBaseClient()
|
VcsBaseClient::~VcsBaseClient()
|
||||||
@@ -582,39 +627,6 @@ VcsBaseEditorWidget *VcsBaseClient::createVcsEditor(Core::Id kind, QString title
|
|||||||
return baseEditor;
|
return baseEditor;
|
||||||
}
|
}
|
||||||
|
|
||||||
QProcessEnvironment VcsBaseClient::processEnvironment() const
|
|
||||||
{
|
|
||||||
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
|
|
||||||
VcsBasePlugin::setProcessEnvironment(&environment, false);
|
|
||||||
return environment;
|
|
||||||
}
|
|
||||||
|
|
||||||
VcsCommand *VcsBaseClient::createCommand(const QString &workingDirectory,
|
|
||||||
VcsBaseEditorWidget *editor,
|
|
||||||
JobOutputBindMode mode) const
|
|
||||||
{
|
|
||||||
auto cmd = new VcsCommand(vcsBinary(), workingDirectory,
|
|
||||||
processEnvironment());
|
|
||||||
cmd->setDefaultTimeout(vcsTimeout());
|
|
||||||
if (editor)
|
|
||||||
d->bindCommandToEditor(cmd, editor);
|
|
||||||
if (mode == VcsWindowOutputBind) {
|
|
||||||
cmd->addFlags(VcsBasePlugin::ShowStdOutInLogWindow);
|
|
||||||
if (editor) // assume that the commands output is the important thing
|
|
||||||
cmd->addFlags(VcsBasePlugin::SilentOutput);
|
|
||||||
} else if (editor) {
|
|
||||||
connect(cmd, &VcsCommand::output, editor, &VcsBaseEditorWidget::setPlainText);
|
|
||||||
}
|
|
||||||
|
|
||||||
return cmd;
|
|
||||||
}
|
|
||||||
|
|
||||||
void VcsBaseClient::enqueueJob(VcsCommand *cmd, const QStringList &args, Utils::ExitCodeInterpreter *interpreter)
|
|
||||||
{
|
|
||||||
cmd->addJob(args, vcsTimeout(), interpreter);
|
|
||||||
cmd->execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
void VcsBaseClient::resetCachedVcsInfo(const QString &workingDir)
|
void VcsBaseClient::resetCachedVcsInfo(const QString &workingDir)
|
||||||
{
|
{
|
||||||
Core::VcsManager::resetVersionControlForDirectory(workingDir);
|
Core::VcsManager::resetVersionControlForDirectory(workingDir);
|
||||||
@@ -647,22 +659,6 @@ void VcsBaseClient::annotateRevision(const QString &workingDirectory, const QSt
|
|||||||
annotate(workingDirectory, file, changeCopy, lineNumber);
|
annotate(workingDirectory, file, changeCopy, lineNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VcsBaseClient::commandFinishedGotoLine(QWidget *editorObject)
|
|
||||||
{
|
|
||||||
VcsBaseEditorWidget *editor = qobject_cast<VcsBaseEditorWidget *>(editorObject);
|
|
||||||
VcsCommand *cmd = qobject_cast<VcsCommand *>(d->m_cmdFinishedMapper->mapping(editor));
|
|
||||||
if (editor && cmd) {
|
|
||||||
if (!cmd->lastExecutionSuccess()) {
|
|
||||||
editor->reportCommandFinished(false, cmd->lastExecutionExitCode(), cmd->cookie());
|
|
||||||
} else if (cmd->cookie().type() == QVariant::Int) {
|
|
||||||
const int line = cmd->cookie().toInt();
|
|
||||||
if (line >= 0)
|
|
||||||
editor->gotoLine(line);
|
|
||||||
}
|
|
||||||
d->m_cmdFinishedMapper->removeMappings(cmd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace VcsBase
|
} // namespace VcsBase
|
||||||
|
|
||||||
#include "moc_vcsbaseclient.cpp"
|
#include "moc_vcsbaseclient.cpp"
|
||||||
|
@@ -68,7 +68,7 @@ class VCSBASE_EXPORT VcsBaseClientImpl : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit VcsBaseClientImpl(VcsBaseClientSettings *settings);
|
explicit VcsBaseClientImpl(VcsBaseClientImpl *client, VcsBaseClientSettings *settings);
|
||||||
~VcsBaseClientImpl();
|
~VcsBaseClientImpl();
|
||||||
|
|
||||||
VcsBaseClientSettings &settings() const;
|
VcsBaseClientSettings &settings() const;
|
||||||
@@ -76,8 +76,23 @@ public:
|
|||||||
virtual Utils::FileName vcsBinary() const;
|
virtual Utils::FileName vcsBinary() const;
|
||||||
int vcsTimeout() const;
|
int vcsTimeout() const;
|
||||||
|
|
||||||
|
enum JobOutputBindMode {
|
||||||
|
NoOutputBind,
|
||||||
|
VcsWindowOutputBind
|
||||||
|
};
|
||||||
|
|
||||||
|
VcsCommand *createCommand(const QString &workingDirectory,
|
||||||
|
VcsBaseEditorWidget *editor = 0,
|
||||||
|
JobOutputBindMode mode = NoOutputBind) const;
|
||||||
|
|
||||||
|
void enqueueJob(VcsCommand *cmd, const QStringList &args,
|
||||||
|
Utils::ExitCodeInterpreter *interpreter = 0);
|
||||||
|
|
||||||
|
virtual QProcessEnvironment processEnvironment() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
|
void commandFinishedGotoLine(QWidget*);
|
||||||
|
|
||||||
VcsBaseClientImplPrivate *d;
|
VcsBaseClientImplPrivate *d;
|
||||||
};
|
};
|
||||||
@@ -144,8 +159,6 @@ public:
|
|||||||
|
|
||||||
virtual QString findTopLevelForFile(const QFileInfo &file) const = 0;
|
virtual QString findTopLevelForFile(const QFileInfo &file) const = 0;
|
||||||
|
|
||||||
virtual QProcessEnvironment processEnvironment() const;
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void parsedStatus(const QList<VcsBase::VcsBaseClient::StatusItem> &statusList);
|
void parsedStatus(const QList<VcsBase::VcsBaseClient::StatusItem> &statusList);
|
||||||
// Passes on changed signals from VcsJob to Control
|
// Passes on changed signals from VcsJob to Control
|
||||||
@@ -201,22 +214,11 @@ protected:
|
|||||||
const char *registerDynamicProperty,
|
const char *registerDynamicProperty,
|
||||||
const QString &dynamicPropertyValue) const;
|
const QString &dynamicPropertyValue) const;
|
||||||
|
|
||||||
enum JobOutputBindMode {
|
|
||||||
NoOutputBind,
|
|
||||||
VcsWindowOutputBind
|
|
||||||
};
|
|
||||||
|
|
||||||
VcsCommand *createCommand(const QString &workingDirectory,
|
|
||||||
VcsBaseEditorWidget *editor = 0,
|
|
||||||
JobOutputBindMode mode = NoOutputBind) const;
|
|
||||||
void enqueueJob(VcsCommand *cmd, const QStringList &args, Utils::ExitCodeInterpreter *interpreter = 0);
|
|
||||||
|
|
||||||
void resetCachedVcsInfo(const QString &workingDir);
|
void resetCachedVcsInfo(const QString &workingDir);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void statusParser(const QString&);
|
void statusParser(const QString&);
|
||||||
void annotateRevision(const QString&, const QString&, const QString&, int);
|
void annotateRevision(const QString&, const QString&, const QString&, int);
|
||||||
void commandFinishedGotoLine(QWidget*);
|
|
||||||
|
|
||||||
friend class VcsBaseClientPrivate;
|
friend class VcsBaseClientPrivate;
|
||||||
VcsBaseClientPrivate *d;
|
VcsBaseClientPrivate *d;
|
||||||
|
Reference in New Issue
Block a user