From 3d45b270ea8341d1516d5863cc49884c2744f2f2 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Sun, 3 Aug 2014 18:18:10 +0100 Subject: [PATCH] Disable the DDS and JPEG-2000 plugins when Qt version is 5.3 or later QtImageFormats 5.3 comes with DDS and JPEG-2000 plugins that support more options and are generally better than our plugins. The only advantage our plugins offer is that the Qt DDS plugin does not work on sequential devices, while ours does. This is outweighed by other improvements, though, such as supporting more variants. REVIEW: 119590 --- CMakeLists.txt | 18 +++++++++++------- src/imageformats/CMakeLists.txt | 15 +++++++++++---- src/imageformats/dds-qt.desktop | 7 +++++++ 3 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 src/imageformats/dds-qt.desktop diff --git a/CMakeLists.txt b/CMakeLists.txt index 9aa14b4..1cfa479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,13 +30,17 @@ if (UNIX) endif() endif() -find_package(Jasper) -set_package_properties(Jasper PROPERTIES - DESCRIPTION "A library for handling JPEG-2000 images" - PURPOSE "Required for the QImage plugin for JPEG-2000 images" - URL "http://www.ece.uvic.ca/~mdadams/jasper" - TYPE OPTIONAL -) +# QtImageFormats 5.3 comes with a JPEG-2000 plugin; don't duplicate it here +# TODO: remove our JPEG-2000 plugin when we depend on Qt 5.3. +if (Qt5Gui_VERSION VERSION_LESS 5.3.0) + find_package(Jasper) + set_package_properties(Jasper PROPERTIES + DESCRIPTION "A library for handling JPEG-2000 images" + PURPOSE "Required for the QImage plugin for JPEG-2000 images" + URL "http://www.ece.uvic.ca/~mdadams/jasper" + TYPE OPTIONAL + ) +endif() find_package(OpenEXR) set_package_properties(OpenEXR PROPERTIES diff --git a/src/imageformats/CMakeLists.txt b/src/imageformats/CMakeLists.txt index af169c1..9cc2eb5 100644 --- a/src/imageformats/CMakeLists.txt +++ b/src/imageformats/CMakeLists.txt @@ -2,11 +2,15 @@ ################################## -add_library(kimg_dds MODULE dds.cpp) -target_link_libraries(kimg_dds Qt5::Gui) +if (Qt5Gui_VERSION VERSION_LESS 5.3.0) + add_library(kimg_dds MODULE dds.cpp) + target_link_libraries(kimg_dds Qt5::Gui) -install(TARGETS kimg_dds DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) -install(FILES dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) + install(TARGETS kimg_dds DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) + install(FILES dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) +else() + install(FILES dds-qt.desktop RENAME dds.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) +endif() ################################## @@ -34,6 +38,9 @@ if(JASPER_FOUND) install(TARGETS kimg_jp2 DESTINATION ${QT_PLUGIN_INSTALL_DIR}/imageformats/) install(FILES jp2.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) +elseif (NOT Qt5Gui_VERSION VERSION_LESS 5.3.0) + # need this for Qt's version of the plugin + install(FILES jp2.desktop DESTINATION ${SERVICES_INSTALL_DIR}/qimageioplugins/) endif() ################################## diff --git a/src/imageformats/dds-qt.desktop b/src/imageformats/dds-qt.desktop new file mode 100644 index 0000000..13b6ca3 --- /dev/null +++ b/src/imageformats/dds-qt.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Service +X-KDE-ServiceTypes=QImageIOPlugins +X-KDE-ImageFormat=dds +X-KDE-MimeType=image/x-dds +X-KDE-Read=true +X-KDE-Write=true