summaryrefslogtreecommitdiff
path: root/src/plugins/diffeditor/diffeditorplugin.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-02-11 23:21:58 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-03-09 11:53:18 +0000
commit5ff073df19b872b8db601f31e1124c6048a89a3c (patch)
treeb3f1dec556a5e99a266b8829d559955bad8995e5 /src/plugins/diffeditor/diffeditorplugin.cpp
parenta8214665fe45f61668df380f045150258487a55a (diff)
downloadqt-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.cpp27
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);