forked from qt-creator/qt-creator
GitClient: Some minor corrections
Use GroupItem instead of ProcessTask inside topRevision(). Replace some [=] captures with more explicit ones. Change-Id: I2e321f7121f80fd2689ecf57cd9735ba56a7962e Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -391,7 +391,7 @@ void BranchModel::clear()
|
||||
d->rootNode->children.takeLast();
|
||||
|
||||
d->currentSha.clear();
|
||||
d->currentDateTime = QDateTime();
|
||||
d->currentDateTime = {};
|
||||
d->currentBranch = nullptr;
|
||||
d->headNode = nullptr;
|
||||
d->obsoleteLocalBranches.clear();
|
||||
@@ -410,14 +410,13 @@ void BranchModel::refresh(const FilePath &workingDirectory, ShowError showError)
|
||||
return;
|
||||
}
|
||||
|
||||
const ProcessTask topRevisionProc =
|
||||
gitClient().topRevision(workingDirectory,
|
||||
[=](const QString &ref, const QDateTime &dateTime) {
|
||||
const GroupItem topRevisionProc = gitClient().topRevision(workingDirectory,
|
||||
[this](const QString &ref, const QDateTime &dateTime) {
|
||||
d->currentSha = ref;
|
||||
d->currentDateTime = dateTime;
|
||||
});
|
||||
|
||||
const auto setupForEachRef = [=](Process &process) {
|
||||
const auto setupForEachRef = [this, workingDirectory](Process &process) {
|
||||
d->workingDirectory = workingDirectory;
|
||||
QStringList args = {"for-each-ref",
|
||||
"--format=%(objectname)\t%(refname)\t%(upstream:short)\t"
|
||||
@@ -429,7 +428,7 @@ void BranchModel::refresh(const FilePath &workingDirectory, ShowError showError)
|
||||
gitClient().setupCommand(process, workingDirectory, args);
|
||||
};
|
||||
|
||||
const auto forEachRefDone = [=](const Process &process) {
|
||||
const auto forEachRefDone = [this](const Process &process) {
|
||||
const QString output = process.stdOut();
|
||||
const QStringList lines = output.split('\n');
|
||||
for (const QString &l : lines)
|
||||
@@ -450,7 +449,7 @@ void BranchModel::refresh(const FilePath &workingDirectory, ShowError showError)
|
||||
}
|
||||
};
|
||||
|
||||
const auto forEachRefError = [=](const Process &process) {
|
||||
const auto forEachRefError = [workingDirectory, showError](const Process &process) {
|
||||
if (showError == ShowError::No)
|
||||
return;
|
||||
const QString message = Tr::tr("Cannot run \"%1\" in \"%2\": %3")
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <utils/elidinglabel.h>
|
||||
#include <utils/fancylineedit.h>
|
||||
#include <utils/navigationtreeview.h>
|
||||
#include <utils/process.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/stylehelper.h>
|
||||
#include <utils/utilsicons.h>
|
||||
@@ -546,14 +547,14 @@ TaskTree *BranchView::onFastForwardMerge(const std::function<void()> &callback)
|
||||
|
||||
const TreeStorage<FastForwardStorage> storage;
|
||||
|
||||
const auto setupMergeBase = [=](Process &process) {
|
||||
gitClient().setupCommand(process, m_repository, {"merge-base", "HEAD", branch});
|
||||
const auto setupMergeBase = [repository = m_repository, branch](Process &process) {
|
||||
gitClient().setupCommand(process, repository, {"merge-base", "HEAD", branch});
|
||||
};
|
||||
const auto onMergeBaseDone = [storage](const Process &process) {
|
||||
storage->mergeBase = process.cleanedStdOut().trimmed();
|
||||
};
|
||||
|
||||
const ProcessTask topRevisionProc = gitClient().topRevision(
|
||||
const GroupItem topRevisionProc = gitClient().topRevision(
|
||||
m_repository,
|
||||
[storage](const QString &revision, const QDateTime &) {
|
||||
storage->topRevision = revision;
|
||||
|
||||
@@ -1715,13 +1715,13 @@ bool GitClient::synchronousRevParseCmd(const FilePath &workingDirectory, const Q
|
||||
}
|
||||
|
||||
// Retrieve head revision
|
||||
ProcessTask GitClient::topRevision(const FilePath &workingDirectory,
|
||||
GroupItem GitClient::topRevision(const FilePath &workingDirectory,
|
||||
const std::function<void(const QString &, const QDateTime &)> &callback)
|
||||
{
|
||||
const auto setupProcess = [=](Process &process) {
|
||||
const auto setupProcess = [this, workingDirectory](Process &process) {
|
||||
setupCommand(process, workingDirectory, {"show", "-s", "--pretty=format:%H:%ct", HEAD});
|
||||
};
|
||||
const auto onProcessDone = [=](const Process &process) {
|
||||
const auto onProcessDone = [callback](const Process &process) {
|
||||
const QStringList output = process.cleanedStdOut().trimmed().split(':');
|
||||
QDateTime dateTime;
|
||||
if (output.size() > 1) {
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
|
||||
#include <coreplugin/editormanager/ieditor.h>
|
||||
#include <coreplugin/iversioncontrol.h>
|
||||
#include <vcsbase/vcsbaseclient.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/process.h>
|
||||
|
||||
#include <vcsbase/vcsbaseclient.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
@@ -24,6 +24,7 @@ class QMenu;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Core { class ICore; }
|
||||
namespace Tasking { class GroupItem; }
|
||||
|
||||
namespace DiffEditor {
|
||||
class ChunkSelection;
|
||||
@@ -245,7 +246,7 @@ public:
|
||||
QString synchronousTopic(const Utils::FilePath &workingDirectory) const;
|
||||
bool synchronousRevParseCmd(const Utils::FilePath &workingDirectory, const QString &ref,
|
||||
QString *output, QString *errorMessage = nullptr) const;
|
||||
Utils::ProcessTask topRevision(const Utils::FilePath &workingDirectory,
|
||||
Tasking::GroupItem topRevision(const Utils::FilePath &workingDirectory,
|
||||
const std::function<void(const QString &, const QDateTime &)> &callback);
|
||||
bool isRemoteCommit(const Utils::FilePath &workingDirectory, const QString &commit);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user