From 80e0cb56ec145ea13293cec104cdcd85d653a04b Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 7 Jan 2022 14:54:40 +0100 Subject: [PATCH] Fix build with macOS deployment target < 10.14 As is used for the Qt 5 based prebuilt binaries. std::optional is only fully supported out of the box since 10.14. Change-Id: Ide8bd9ac8b66b05e1bb6e9b350edf3e7ffdaf97e Reviewed-by: hjk Reviewed-by: Marco Bubke Reviewed-by: --- .../imagecache/asynchronousexplicitimagecache.cpp | 2 +- .../imagecache/asynchronousimagecache.cpp | 2 +- .../imagecache/asynchronousimagefactory.cpp | 2 +- .../imagecache/asynchronousimagefactory.h | 4 ++-- .../imagecache/imagecachestorageinterface.h | 5 +++-- .../include/asynchronousexplicitimagecache.h | 5 +++-- .../designercore/include/asynchronousimagecache.h | 5 +++-- tests/unit/unittest/imagecachestorage-test.cpp | 12 ++++++------ 8 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp index 20aa1000d3e..6b8de4a3fa2 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp @@ -115,7 +115,7 @@ void AsynchronousExplicitImageCache::clean() clearEntries(); } -std::optional AsynchronousExplicitImageCache::getEntry() +Utils::optional AsynchronousExplicitImageCache::getEntry() { std::unique_lock lock{m_mutex}; diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp index da503dc9411..0d83ec71d07 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp @@ -145,7 +145,7 @@ void AsynchronousImageCache::clean() m_generator.clean(); } -std::optional AsynchronousImageCache::getEntry() +Utils::optional AsynchronousImageCache::getEntry() { std::unique_lock lock{m_mutex}; diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp index 6e30b26ccf8..22c5a09c06c 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp @@ -90,7 +90,7 @@ void AsynchronousImageFactory::waitForEntries() m_condition.wait(lock, [&] { return m_entries.size() || m_finishing; }); } -std::optional AsynchronousImageFactory::getEntry() +Utils::optional AsynchronousImageFactory::getEntry() { std::unique_lock lock{m_mutex}; diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h index 8ec280ac482..d9da32d3a5b 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h +++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h @@ -27,12 +27,12 @@ #include "imagecacheauxiliarydata.h" +#include #include #include #include #include -#include #include namespace QmlDesigner { @@ -78,7 +78,7 @@ private: ImageCache::AuxiliaryData &&auxiliaryData); bool isRunning(); void waitForEntries(); - std::optional getEntry(); + Utils::optional getEntry(); void request(Utils::SmallStringView name, Utils::SmallStringView extraId, ImageCache::AuxiliaryData auxiliaryData, diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h b/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h index 67b194cba55..7d0f4ea9039 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h @@ -29,6 +29,7 @@ #include #include +#include #include namespace QmlDesigner { @@ -36,8 +37,8 @@ namespace QmlDesigner { class ImageCacheStorageInterface { public: - using ImageEntry = std::optional; - using IconEntry = std::optional; + using ImageEntry = Utils::optional; + using IconEntry = Utils::optional; virtual ImageEntry fetchImage(Utils::SmallStringView name, Sqlite::TimeStamp minimumTimeStamp) const = 0; diff --git a/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h b/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h index 625cd71026f..993a30b7ce6 100644 --- a/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h +++ b/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h @@ -27,11 +27,12 @@ #include "asynchronousimagecacheinterface.h" +#include + #include #include #include #include -#include #include namespace QmlDesigner { @@ -80,7 +81,7 @@ private: RequestType requestType = RequestType::Image; }; - std::optional getEntry(); + Utils::optional getEntry(); void addEntry(Utils::PathString &&name, Utils::SmallString &&extraId, ImageCache::CaptureImageCallback &&captureCallback, diff --git a/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h b/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h index 881f22d0d54..023ada3096e 100644 --- a/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h +++ b/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h @@ -27,11 +27,12 @@ #include "asynchronousimagecacheinterface.h" +#include + #include #include #include #include -#include #include namespace QmlDesigner { @@ -90,7 +91,7 @@ private: RequestType requestType = RequestType::Image; }; - std::optional getEntry(); + Utils::optional getEntry(); void addEntry(Utils::PathString &&name, Utils::SmallString &&extraId, ImageCache::CaptureImageCallback &&captureCallback, diff --git a/tests/unit/unittest/imagecachestorage-test.cpp b/tests/unit/unittest/imagecachestorage-test.cpp index f544432aee6..670443cf446 100644 --- a/tests/unit/unittest/imagecachestorage-test.cpp +++ b/tests/unit/unittest/imagecachestorage-test.cpp @@ -306,7 +306,7 @@ TEST_F(ImageCacheStorageSlowTest, FetchNonExistingImageIsEmpty) { auto image = storage.fetchImage("/path/to/component", {123}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchSameTimeImage) @@ -324,7 +324,7 @@ TEST_F(ImageCacheStorageSlowTest, DoNotFetchOlderImage) auto image = storage.fetchImage("/path/to/component", {124}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchNewerImage) @@ -340,7 +340,7 @@ TEST_F(ImageCacheStorageSlowTest, FetchNonExistingSmallImageIsEmpty) { auto image = storage.fetchSmallImage("/path/to/component", {123}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchSameTimeSmallImage) @@ -358,7 +358,7 @@ TEST_F(ImageCacheStorageSlowTest, DoNotFetchOlderSmallImage) auto image = storage.fetchSmallImage("/path/to/component", {124}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchNewerSmallImage) @@ -397,7 +397,7 @@ TEST_F(ImageCacheStorageSlowTest, FetchNonExistingIconIsEmpty) { auto image = storage.fetchIcon("/path/to/component", {123}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchSameTimeIcon) @@ -415,7 +415,7 @@ TEST_F(ImageCacheStorageSlowTest, DoNotFetchOlderIcon) auto image = storage.fetchIcon("/path/to/component", {124}); - ASSERT_THAT(image, Eq(std::nullopt)); + ASSERT_THAT(image, Eq(Utils::nullopt)); } TEST_F(ImageCacheStorageSlowTest, FetchNewerIcon)