From 76f4b381971eead6ff31b8bf3bb64bb5717469c3 Mon Sep 17 00:00:00 2001 From: Damir Porobic Date: Thu, 22 Feb 2024 12:18:14 +0100 Subject: [PATCH] Fix build against kImageAnnotator and kColorPicker that use qt5 and qt6 --- CMakeLists.txt | 18 +++++++++++++----- src/CMakeLists.txt | 2 +- src/gui/operations/CopyAsDataUriOperation.cpp | 9 ++++----- tests/CMakeLists.txt | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2613ac42..f8088dd7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,14 @@ endif () set(QT_COMPONENTS Core Widgets Network Xml PrintSupport DBus Svg) set(QT_MIN_VERSION 5.9.4) +option(BUILD_WITH_QT6 "Build against Qt6" OFF) + +if (BUILD_WITH_QT6) + set(QT_MAJOR_VERSION 6) +else() + set(QT_MAJOR_VERSION 5) +endif() + if (UNIX AND NOT APPLE) list(APPEND QT_COMPONENTS Concurrent) endif() @@ -58,13 +66,13 @@ if (BUILD_TESTS) list(APPEND QT_COMPONENTS Test) endif() -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED ${QT_COMPONENTS}) +find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED ${QT_COMPONENTS}) -set(KIMAGEANNOTATOR_MIN_VERSION 0.6.1) -find_package(kImageAnnotator ${KIMAGEANNOTATOR_MIN_VERSION} REQUIRED) +set(KIMAGEANNOTATOR_MIN_VERSION 0.7.0) +find_package(kImageAnnotator-Qt${QT_MAJOR_VERSION} ${KIMAGEANNOTATOR_MIN_VERSION} REQUIRED) -set(KCOLORPICKER_MIN_VERSION 0.2.0) -find_package(kColorPicker ${KCOLORPICKER_MIN_VERSION} REQUIRED) +set(KCOLORPICKER_MIN_VERSION 0.3.0) +find_package(kColorPicker-Qt${QT_MAJOR_VERSION} ${KCOLORPICKER_MIN_VERSION} REQUIRED) set(BASEPATH "${CMAKE_SOURCE_DIR}") include_directories("${BASEPATH}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e60d4bba..5a637411 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -293,7 +293,7 @@ elseif (UNIX) elseif (WIN32) list(APPEND DEPENDENCY_LIBRARIES Qt5::WinExtras - kImageAnnotator + kImageAnnotator::kImageAnnotator kColorPicker Dwmapi ) diff --git a/src/gui/operations/CopyAsDataUriOperation.cpp b/src/gui/operations/CopyAsDataUriOperation.cpp index 7c9b6eef..100aa4fd 100644 --- a/src/gui/operations/CopyAsDataUriOperation.cpp +++ b/src/gui/operations/CopyAsDataUriOperation.cpp @@ -34,14 +34,13 @@ CopyAsDataUriOperation::CopyAsDataUriOperation( bool CopyAsDataUriOperation::execute() { QByteArray byteArray; - QBuffer buffer(&byteArray); buffer.open(QIODevice::WriteOnly); - auto saved = mImage.save(&buffer, "PNG"); + auto isSaved = mImage.save(&buffer, mConfig->saveFormat().toLatin1()); buffer.close(); - if (saved) { - QByteArray output = "data:image/png;base64,"; + if (isSaved) { + QByteArray output = "data:image/" + mConfig->saveFormat().toLatin1() +";base64,"; output.append(byteArray.toBase64()); mClipboardService->setText(output); notifySuccess(); @@ -49,7 +48,7 @@ bool CopyAsDataUriOperation::execute() notifyFailure(); } - return saved; + return isSaved; } void CopyAsDataUriOperation::notifyFailure() const diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f4a49ffd..da19ce93 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -73,6 +73,6 @@ endif () foreach (UnitTest ${UNITTEST_SRC}) get_filename_component(UnitTestName ${UnitTest} NAME_WE) add_executable(${UnitTestName} ${UnitTest} ${TESTUTILS_SRC}) - target_link_libraries(${UnitTestName} KSNIP_STATIC GTest::gmock Qt5::Test) + target_link_libraries(${UnitTestName} KSNIP_STATIC GTest::gmock Qt${QT_MAJOR_VERSION}::Test) add_test(${UnitTestName} ${UnitTestName}) endforeach (UnitTest)