diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-02-11 23:21:58 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-03-09 11:53:18 +0000 |
commit | 5ff073df19b872b8db601f31e1124c6048a89a3c (patch) | |
tree | b3f1dec556a5e99a266b8829d559955bad8995e5 /src/plugins/diffeditor/diffeditorplugin.cpp | |
parent | a8214665fe45f61668df380f045150258487a55a (diff) | |
download | qt-creator-5ff073df19b872b8db601f31e1124c6048a89a3c.tar.gz |
DiffEditor: Use QtConcurrent invocation for async tasks
Change-Id: I06640837ffee830e60e8dd2a566f9388f8444010
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/diffeditor/diffeditorplugin.cpp')
-rw-r--r-- | src/plugins/diffeditor/diffeditorplugin.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/plugins/diffeditor/diffeditorplugin.cpp b/src/plugins/diffeditor/diffeditorplugin.cpp index 29020755ea..6ae5f816c3 100644 --- a/src/plugins/diffeditor/diffeditorplugin.cpp +++ b/src/plugins/diffeditor/diffeditorplugin.cpp @@ -47,13 +47,12 @@ public: m_ignoreWhitespace(ignoreWhitespace) {} - void operator()(QFutureInterface<FileData> &futureInterface, - const ReloadInput &reloadInput) const + void operator()(QPromise<FileData> &promise, const ReloadInput &reloadInput) const { if (reloadInput.text[LeftSide] == reloadInput.text[RightSide]) return; // We show "No difference" in this case, regardless if it's binary or not - Differ differ(&futureInterface); + Differ differ(QFuture<void>(promise.future())); FileData fileData; if (!reloadInput.binaryFiles) { @@ -85,7 +84,7 @@ public: fileData.fileInfo = reloadInput.fileInfo; fileData.fileOperation = reloadInput.fileOperation; fileData.binaryFiles = reloadInput.binaryFiles; - futureInterface.reportResult(fileData); + promise.addResult(fileData); } private: @@ -115,7 +114,7 @@ DiffFilesController::DiffFilesController(IDocument *document) QList<std::optional<FileData>> *outputList = storage.activeStorage(); const auto setupDiff = [this](AsyncTask<FileData> &async, const ReloadInput &reloadInput) { - async.setAsyncCallData(DiffFile(ignoreWhitespace(), contextLineCount()), reloadInput); + async.setConcurrentCallData(DiffFile(ignoreWhitespace(), contextLineCount()), reloadInput); async.setFutureSynchronizer(Internal::DiffEditorPlugin::futureSynchronizer()); }; const auto onDiffDone = [outputList](const AsyncTask<FileData> &async, int i) { @@ -771,13 +770,13 @@ void DiffEditor::Internal::DiffEditorPlugin::testMakePatch() QCOMPARE(result, patchText); - bool ok; - QList<FileData> resultList = DiffUtils::readPatch(result, &ok); + const std::optional<QList<FileData>> resultList = DiffUtils::readPatch(result); + const bool ok = resultList.has_value(); QVERIFY(ok); - QCOMPARE(resultList.count(), 1); - for (int i = 0; i < resultList.count(); i++) { - const FileData &resultFileData = resultList.at(i); + QCOMPARE(resultList->count(), 1); + for (int i = 0; i < resultList->count(); i++) { + const FileData &resultFileData = resultList->at(i); QCOMPARE(resultFileData.fileInfo[LeftSide].fileName, fileName); QCOMPARE(resultFileData.fileInfo[RightSide].fileName, fileName); QCOMPARE(resultFileData.chunks.count(), 1); @@ -1335,14 +1334,14 @@ void DiffEditor::Internal::DiffEditorPlugin::testReadPatch() QFETCH(QString, sourcePatch); QFETCH(QList<FileData>, fileDataList); - bool ok; - const QList<FileData> &result = DiffUtils::readPatch(sourcePatch, &ok); + const std::optional<QList<FileData>> result = DiffUtils::readPatch(sourcePatch); + const bool ok = result.has_value(); QVERIFY(ok); - QCOMPARE(result.count(), fileDataList.count()); + QCOMPARE(result->count(), fileDataList.count()); for (int i = 0; i < fileDataList.count(); i++) { const FileData &origFileData = fileDataList.at(i); - const FileData &resultFileData = result.at(i); + const FileData &resultFileData = result->at(i); QCOMPARE(resultFileData.fileInfo[LeftSide].fileName, origFileData.fileInfo[LeftSide].fileName); QCOMPARE(resultFileData.fileInfo[LeftSide].typeInfo, origFileData.fileInfo[LeftSide].typeInfo); QCOMPARE(resultFileData.fileInfo[RightSide].fileName, origFileData.fileInfo[RightSide].fileName); |