VcsBase: Use common done handler

Instead of specifying two separate done and error handlers,
specify just one that takes additional "bool success" argument.

Task-number: QTCREATORBUG-29834
Change-Id: Ib92ef2dcd960372d9db6c8f50d4017a33c49ccd3
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Jarek Kobus
2023-10-31 17:55:22 +01:00
parent 6059164299
commit 0e7ecee489
4 changed files with 74 additions and 83 deletions

View File

@@ -165,7 +165,7 @@ SubversionDiffEditorController::SubversionDiffEditorController(IDocument *docume
const TreeStorage<QString> diffInputStorage;
const auto setupDescription = [this](Process &process) {
const auto onDescriptionSetup = [this](Process &process) {
if (m_changeNumber == 0)
return SetupResult::StopWithDone;
setupCommand(process, {"log", "-r", QString::number(m_changeNumber)});
@@ -175,14 +175,11 @@ SubversionDiffEditorController::SubversionDiffEditorController(IDocument *docume
setDescription(Tr::tr("Waiting for data..."));
return SetupResult::Continue;
};
const auto onDescriptionDone = [this](const Process &process) {
setDescription(process.cleanedStdOut());
};
const auto onDescriptionError = [this](const Process &) {
setDescription({});
const auto onDescriptionDone = [this](const Process &process, bool success) {
setDescription(success ? process.cleanedStdOut() : QString());
};
const auto setupDiff = [this](Process &process) {
const auto onDiffSetup = [this](Process &process) {
QStringList args = QStringList{"diff"} << "--internal-diff";
if (ignoreWhitespace())
args << "-x" << "-uw";
@@ -205,10 +202,10 @@ SubversionDiffEditorController::SubversionDiffEditorController(IDocument *docume
parallel,
Group {
finishAllAndDone,
ProcessTask(setupDescription, onDescriptionDone, onDescriptionError)
ProcessTask(onDescriptionSetup, onDescriptionDone)
},
Group {
ProcessTask(setupDiff, onDiffDone),
ProcessTask(onDiffSetup, onDiffDone),
postProcessTask(diffInputStorage)
}
};