diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index f01d2903d61..3bae1a991f6 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -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) { - d->currentSha = ref; - d->currentDateTime = 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") diff --git a/src/plugins/git/branchview.cpp b/src/plugins/git/branchview.cpp index 77d700147ae..b5282b709e8 100644 --- a/src/plugins/git/branchview.cpp +++ b/src/plugins/git/branchview.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -546,14 +547,14 @@ TaskTree *BranchView::onFastForwardMerge(const std::function &callback) const TreeStorage 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; diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 3b561368f0e..532d0a6ef82 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -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 &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) { diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 03649f0f4e1..d92ea2031ed 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -9,10 +9,10 @@ #include #include -#include #include -#include + +#include #include #include @@ -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 &callback); bool isRemoteCommit(const Utils::FilePath &workingDirectory, const QString &commit);