* [gentoo-commits] proj/kde:master commit in: kde-apps/gwenview/, kde-apps/gwenview/files/
@ 2015-01-30 23:33 Johannes Huber
0 siblings, 0 replies; 3+ messages in thread
From: Johannes Huber @ 2015-01-30 23:33 UTC (permalink / raw
To: gentoo-commits
commit: 0b19a3560ef9962b6542342d55fa0edcada4f725
Author: Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
AuthorDate: Thu Jan 29 00:00:13 2015 +0000
Commit: Johannes Huber <johu <AT> gentoo <DOT> org>
CommitDate: Fri Jan 30 23:32:55 2015 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=0b19a356
[kde-apps/gwenview] Add US kipi + raw, make tests optional
Package-Manager: portage-2.2.15
---
.../files/gwenview-9999-tests-optional.patch | 28 ++++++++++++++++++++++
kde-apps/gwenview/gwenview-9999.ebuild | 18 ++++++++++----
kde-apps/gwenview/metadata.xml | 3 +++
3 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/kde-apps/gwenview/files/gwenview-9999-tests-optional.patch b/kde-apps/gwenview/files/gwenview-9999-tests-optional.patch
new file mode 100644
index 0000000..b5d1248
--- /dev/null
+++ b/kde-apps/gwenview/files/gwenview-9999-tests-optional.patch
@@ -0,0 +1,28 @@
+--- a/CMakeLists.txt 2015-01-29 00:15:10.245160459 +0100
++++ b/CMakeLists.txt 2015-01-29 00:16:41.950314278 +0100
+@@ -36,7 +36,7 @@
+ set(GWENVIEW_SEMANTICINFO_BACKEND_BALOO ON)
+ endif()
+
+-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Widgets Script Test Concurrent Svg OpenGL)
++find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus Widgets Script Concurrent Svg OpenGL)
+
+ find_package(Phonon4Qt5 4.6.60 NO_MODULE)
+ include_directories(BEFORE ${PHONON_INCLUDES})
+@@ -101,11 +101,15 @@
+ add_subdirectory(app)
+ # add_subdirectory(importer)
+ add_subdirectory(part)
+-add_subdirectory(tests)
+ add_subdirectory(icons)
+ add_subdirectory(images)
+ add_subdirectory(cursors)
+ add_subdirectory(color-schemes)
+ add_subdirectory(doc)
+
++if(BUILD_TESTING)
++ find_package(Qt5Test CONFIG REQUIRED)
++ add_subdirectory(tests)
++endif()
++
+ feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff --git a/kde-apps/gwenview/gwenview-9999.ebuild b/kde-apps/gwenview/gwenview-9999.ebuild
index 88ae87c..5d176c0 100644
--- a/kde-apps/gwenview/gwenview-9999.ebuild
+++ b/kde-apps/gwenview/gwenview-9999.ebuild
@@ -4,6 +4,8 @@
EAPI=5
+KDE_HANDBOOK="true"
+KDE_TEST="true"
inherit kde5
DESCRIPTION="KDE image viewer"
@@ -12,7 +14,7 @@ HOMEPAGE="
http://gwenview.sourceforge.net/
"
KEYWORDS=""
-IUSE="semantic-desktop"
+IUSE="kipi raw semantic-desktop"
DEPEND="
$(add_frameworks_dep kactivities)
@@ -43,13 +45,21 @@ DEPEND="
media-libs/phonon[qt5]
virtual/jpeg:0
x11-libs/libX11
+ kipi? ( $(add_kdeapps_dep libkipi '' 5.9999) )
+ raw? ( $(add_kdeapps_dep libkdcraw '' 5.9999) )
semantic-desktop? ( $(add_kdeplasma_dep baloo) )
"
-RDEPEND="${DEPEND}
- !kde-base/gwenview:4
-"
+
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}"-9999-tests-optional.patch )
src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_find_package kipi KF5Kipi)
+ $(cmake-utils_use_find_package raw KF5KDcraw)
+ )
+
# Workaround for bug #479510
if [[ -e ${EPREFIX}/usr/include/${CHOST}/jconfig.h ]]; then
mycmakeargs+=( -DJCONFIG_H="${EPREFIX}/usr/include/${CHOST}/jconfig.h" )
diff --git a/kde-apps/gwenview/metadata.xml b/kde-apps/gwenview/metadata.xml
index a23f444..0776135 100644
--- a/kde-apps/gwenview/metadata.xml
+++ b/kde-apps/gwenview/metadata.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+ <use>
+ <flag name="kipi">Support for the KDE Image Plugin Interface</flag>
+ </use>
<herd>kde</herd>
</pkgmetadata>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-apps/gwenview/, kde-apps/gwenview/files/
@ 2017-10-22 15:00 Andreas Sturmlechner
0 siblings, 0 replies; 3+ messages in thread
From: Andreas Sturmlechner @ 2017-10-22 15:00 UTC (permalink / raw
To: gentoo-commits
commit: ae4172895d1de98be7727abff3171cd7d226498f
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 22 13:58:41 2017 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Oct 22 13:58:41 2017 +0000
URL: https://gitweb.gentoo.org/proj/kde.git/commit/?id=ae417289
kde-apps/gwenview: Add USE=fits, bug #632200
Package-Manager: Portage-2.3.12, Repoman-2.3.3
.../gwenview/files/gwenview-17.11.80-cfitsio.patch | 172 +++++++++++++++++++++
kde-apps/gwenview/gwenview-9999.ebuild | 6 +-
kde-apps/gwenview/metadata.xml | 1 +
3 files changed, 178 insertions(+), 1 deletion(-)
diff --git a/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch b/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch
new file mode 100644
index 0000000000..aa56d94755
--- /dev/null
+++ b/kde-apps/gwenview/files/gwenview-17.11.80-cfitsio.patch
@@ -0,0 +1,172 @@
+From 48f0fa32a451bd25378a63d7caa39b7a13a78f49 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Sun, 22 Oct 2017 14:23:41 +0200
+Subject: [PATCH] Make CFitsio optional
+
+---
+ CMakeLists.txt | 5 ++++-
+ app/main.cpp | 6 +++++-
+ config-gwenview.h.cmake | 1 +
+ lib/CMakeLists.txt | 29 ++++++++++++++++++++++-------
+ lib/imagemetainfomodel.cpp | 7 +++++--
+ 5 files changed, 37 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8dd8d5e1..2ddb8c10 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -99,7 +99,10 @@ find_package(Exiv2)
+ set_package_properties(Exiv2 PROPERTIES URL "http://www.exiv2.org" DESCRIPTION "image metadata support" TYPE REQUIRED)
+
+ find_package(CFitsio)
+-set_package_properties(CFitsio PROPERTIES URL "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html" DESCRIPTION "FITS format support" TYPE REQUIRED)
++set_package_properties(CFitsio PROPERTIES URL "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html" DESCRIPTION "FITS format support" TYPE OPTIONAL)
++if(CFITSIO_FOUND)
++ set(HAVE_FITS true)
++endif()
+
+ find_package(KF5Kipi)
+ if (KF5Kipi_FOUND)
+diff --git a/app/main.cpp b/app/main.cpp
+index 662dcd7b..e844668c 100644
+--- a/app/main.cpp
++++ b/app/main.cpp
+@@ -40,12 +40,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #include <lib/imageformats/imageformats.h>
+ #include "mainwindow.h"
+
++#ifdef HAVE_FITS
+ // This hack is needed to include the fitsplugin moc file in main.cpp
+ // Otherwise the linker complains about: undefined reference to `qt_static_plugin_FitsPlugin()'
+ // This symbol is defined in the moc file, but it is not a visible symbol after libgwenview is linked.
+ // If Q_IMPORT_PLUGIN(FitsPlugin) is moved to the library, gwenview crashes on the first call to FitsPlugin()
+ // when the vtable is looked up in the plugin registration.
+ #include <../lib/imageformats/moc_fitsplugin.cpp>
++#endif
+
+ class StartHelper
+ {
+@@ -165,4 +167,6 @@ int main(int argc, char *argv[])
+ return app.exec();
+ }
+
+-Q_IMPORT_PLUGIN(FitsPlugin)
++#ifdef HAVE_FITS
++ Q_IMPORT_PLUGIN(FitsPlugin)
++#endif
+diff --git a/config-gwenview.h.cmake b/config-gwenview.h.cmake
+index 21e7ca98..80dc9cac 100644
+--- a/config-gwenview.h.cmake
++++ b/config-gwenview.h.cmake
+@@ -4,3 +4,4 @@
+ #cmakedefine KIPI_FOUND 1
+ #define GV_TEST_DATA_DIR "@CMAKE_CURRENT_SOURCE_DIR@/tests/data"
+ #cmakedefine HAVE_X11 ${HAVE_X11}
++#cmakedefine HAVE_FITS ${HAVE_FITS}
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index e1893d71..2f5ce417 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -56,9 +56,14 @@ include_directories(
+ ${EXIV2_INCLUDE_DIR}
+ ${JPEG_INCLUDE_DIR}
+ ${PNG_INCLUDE_DIRS}
+- ${CFITSIO_INCLUDE_DIR}
+ )
+
++if(HAVE_FITS)
++ include_directories(
++ ${CFITSIO_INCLUDE_DIR}
++ )
++endif()
++
+ # For config-gwenview.h
+ include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}/..
+@@ -124,11 +129,6 @@ set(gwenviewlib_SRCS
+ imageformats/imageformats.cpp
+ # imageformats/jpegplugin.cpp
+ # imageformats/jpeghandler.cpp
+- imageformats/fitsplugin.cpp
+- imageformats/fitsplugin.h
+- imageformats/fitshandler.cpp
+- imageformats/fitsformat/bayer.c
+- imageformats/fitsformat/fitsdata.cpp
+ imagemetainfomodel.cpp
+ imagescaler.cpp
+ imageutils.cpp
+@@ -175,6 +175,17 @@ set(gwenviewlib_SRCS
+ ${GV_JPEG_DIR}/transupp.c
+ )
+
++if(HAVE_FITS)
++ set(gwenviewlib_SRCS
++ ${gwenviewlib_SRCS}
++ imageformats/fitsplugin.cpp
++ imageformats/fitsplugin.h
++ imageformats/fitshandler.cpp
++ imageformats/fitsformat/bayer.c
++ imageformats/fitsformat/fitsdata.cpp
++ )
++endif()
++
+ if (NOT GWENVIEW_SEMANTICINFO_BACKEND_NONE)
+ set(gwenviewlib_SRCS
+ ${gwenviewlib_SRCS}
+@@ -241,8 +252,12 @@ target_link_libraries(gwenviewlib
+ ${PNG_LIBRARIES}
+ ${LCMS2_LIBRARIES}
+ ${PHONON_LIBRARY}
+- ${CFITSIO_LIBRARIES}
+ )
++
++if(HAVE_FITS)
++ target_link_libraries(gwenviewlib ${CFITSIO_LIBRARIES})
++endif()
++
+ if (WIN32)
+ target_link_libraries(gwenviewlib ${EXPAT_LIBRARIES})
+ endif()
+diff --git a/lib/imagemetainfomodel.cpp b/lib/imagemetainfomodel.cpp
+index e92e584c..c8e36ced 100644
+--- a/lib/imagemetainfomodel.cpp
++++ b/lib/imagemetainfomodel.cpp
+@@ -21,8 +21,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ // Self
+ #include "imagemetainfomodel.h"
+
+-#include "imageformats/fitsformat/fitsdata.h"
+-
+ // Qt
+ #include <QSize>
+ #include <QDebug>
+@@ -39,7 +37,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #include <exiv2/iptc.hpp>
+
+ // Local
++#ifdef HAVE_FITS
++#include "imageformats/fitsformat/fitsdata.h"
+ #include "urlutils.h"
++#endif
+
+ namespace Gwenview
+ {
+@@ -331,6 +332,7 @@ void ImageMetaInfoModel::setUrl(const QUrl &url)
+ d->setGroupEntryValue(GeneralGroup, "General.Size", sizeString);
+ d->setGroupEntryValue(GeneralGroup, "General.Time", timeString);
+
++#ifdef HAVE_FITS
+ if (UrlUtils::urlIsFastLocalFile(url) && (url.fileName().endsWith(".fit", Qt::CaseInsensitive) ||
+ url.fileName().endsWith(".fits", Qt::CaseInsensitive))) {
+ FITSData fitsLoader;
+@@ -385,6 +387,7 @@ void ImageMetaInfoModel::setUrl(const QUrl &url)
+ }
+ }
+ }
++#endif
+ }
+
+ void ImageMetaInfoModel::setImageSize(const QSize& size)
+--
+2.14.2
+
diff --git a/kde-apps/gwenview/gwenview-9999.ebuild b/kde-apps/gwenview/gwenview-9999.ebuild
index ee69757158..50ae7beaa9 100644
--- a/kde-apps/gwenview/gwenview-9999.ebuild
+++ b/kde-apps/gwenview/gwenview-9999.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="
LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
KEYWORDS=""
-IUSE="kipi raw semantic-desktop X"
+IUSE="fits kipi raw semantic-desktop X"
# requires running environment
RESTRICT+=" test"
@@ -48,6 +48,7 @@ COMMON_DEPEND="
media-libs/libpng:0=
media-libs/phonon[qt5(+)]
virtual/jpeg:0
+ fits? ( sci-libs/cfitsio )
kipi? ( $(add_kdeapps_dep libkipi '' '' '5=') )
raw? ( $(add_kdeapps_dep libkdcraw) )
semantic-desktop? (
@@ -68,8 +69,11 @@ RDEPEND="${COMMON_DEPEND}
$(add_qt_dep qtimageformats)
"
+PATCHES=( "${FILESDIR}/${PN}-17.11.80-cfitsio.patch" )
+
src_configure() {
local mycmakeargs=(
+ $(cmake-utils_use_find_package fits CFitsio)
$(cmake-utils_use_find_package kipi KF5Kipi)
$(cmake-utils_use_find_package raw KF5KDcraw)
$(cmake-utils_use_find_package X X11)
diff --git a/kde-apps/gwenview/metadata.xml b/kde-apps/gwenview/metadata.xml
index 69546da44c..5ac564950d 100644
--- a/kde-apps/gwenview/metadata.xml
+++ b/kde-apps/gwenview/metadata.xml
@@ -6,6 +6,7 @@
<name>Gentoo KDE Project</name>
</maintainer>
<use>
+ <flag name="fits">Enable support for NASA's <pkg>sci-libs/cfitsio</pkg> library</flag>
<flag name="kipi">Support for the KDE Image Plugin Interface</flag>
</use>
</pkgmetadata>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/kde:master commit in: kde-apps/gwenview/, kde-apps/gwenview/files/
@ 2019-01-08 1:49 Andreas Sturmlechner
0 siblings, 0 replies; 3+ messages in thread
From: Andreas Sturmlechner @ 2019-01-08 1:49 UTC (permalink / raw
To: gentoo-commits
commit: fbf59947c68f017aedc0d5dff30d823301261565
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 7 23:59:43 2019 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jan 7 23:59:43 2019 +0000
URL: https://gitweb.gentoo.org/proj/kde.git/commit/?id=fbf59947
kde-apps/gwenview: Fix build with exiv2-0.27
Package-Manager: Portage-2.3.54, Repoman-2.3.12
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
.../files/gwenview-18.12.1-exiv2-0.27.patch | 523 +++++++++++++++++++++
kde-apps/gwenview/gwenview-18.12.49.9999.ebuild | 4 +-
2 files changed, 526 insertions(+), 1 deletion(-)
diff --git a/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch b/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch
new file mode 100644
index 0000000000..66ed9ed834
--- /dev/null
+++ b/kde-apps/gwenview/files/gwenview-18.12.1-exiv2-0.27.patch
@@ -0,0 +1,523 @@
+From 61543b42289fc986e580f2e3443719f3334f17b5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
+Date: Sun, 30 Dec 2018 02:46:28 +0100
+Subject: [PATCH 1/2] Use forward declaration for Exiv2::Image, port to
+ std::unique_ptr
+
+Summary:
+Instead of the Exiv2::Image::AutoPtr typedef just use a forward declaration
+for Exiv2::Image, and use std::unique_ptr instead of std::auto_ptr.
+
+The forward declaration avoids pulling in Exiv2 declarations everywhere,
+e.g. via document.h.
+
+Although it would be possible to use std::auto_ptr, unique_ptr is
+preferable for two reasons:
+- ownership transfer is explicit (std::move, release()/reset())
+- Exiv2 0.28 will use std::unique_ptr as well, i.e. the code is forward
+compatible.
+
+Reviewers: #gwenview, cfeck, ngraham
+
+Reviewed By: #gwenview, ngraham
+
+Subscribers: lbeltrame, ngraham, asturmlechner, shubham
+
+Tags: #gwenview
+
+Differential Revision: https://phabricator.kde.org/D17872
+---
+ lib/cms/cmsprofile.cpp | 3 +++
+ lib/cms/cmsprofile.h | 8 +++++---
+ lib/document/abstractdocumentimpl.cpp | 5 +++--
+ lib/document/abstractdocumentimpl.h | 7 ++++++-
+ lib/document/document.cpp | 7 +++++--
+ lib/document/document.h | 11 ++++++++---
+ lib/document/document_p.h | 10 +++++++++-
+ lib/document/loadingdocumentimpl.cpp | 7 +++++--
+ lib/exiv2imageloader.cpp | 13 ++++++-------
+ lib/exiv2imageloader.h | 11 ++++++++---
+ lib/jpegcontent.cpp | 10 +++++-----
+ lib/timeutils.cpp | 8 +++++---
+ tests/auto/cmsprofiletest.cpp | 4 ++--
+ tests/auto/imagemetainfomodeltest.cpp | 9 +++++++--
+ 14 files changed, 77 insertions(+), 36 deletions(-)
+
+diff --git a/lib/cms/cmsprofile.cpp b/lib/cms/cmsprofile.cpp
+index 188b90a4..7d2b753e 100644
+--- a/lib/cms/cmsprofile.cpp
++++ b/lib/cms/cmsprofile.cpp
+@@ -42,6 +42,9 @@ extern "C" {
+ // lcms
+ #include <lcms2.h>
+
++// Exiv2
++#include <exiv2/exiv2.hpp>
++
+ // X11
+ #ifdef HAVE_X11
+ #include <X11/Xlib.h>
+diff --git a/lib/cms/cmsprofile.h b/lib/cms/cmsprofile.h
+index a2a38a87..06c7672d 100644
+--- a/lib/cms/cmsprofile.h
++++ b/lib/cms/cmsprofile.h
+@@ -29,12 +29,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
+ #include <QExplicitlySharedDataPointer>
+ #include <QSharedData>
+
+-// Exiv2
+-#include <exiv2/image.hpp>
+-
+ class QByteArray;
+ class QString;
+
++namespace Exiv2
++{
++ class Image;
++}
++
+ typedef void* cmsHPROFILE;
+
+ namespace Gwenview
+diff --git a/lib/document/abstractdocumentimpl.cpp b/lib/document/abstractdocumentimpl.cpp
+index d841ae5f..d3d0002c 100644
+--- a/lib/document/abstractdocumentimpl.cpp
++++ b/lib/document/abstractdocumentimpl.cpp
+@@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ // Self
+ #include "abstractdocumentimpl.h"
+
++#include <exiv2/exiv2.hpp>
+ // Qt
+
+ // KDE
+@@ -77,9 +78,9 @@ void AbstractDocumentImpl::setDocumentKind(MimeTypeUtils::Kind kind)
+ d->mDocument->setKind(kind);
+ }
+
+-void AbstractDocumentImpl::setDocumentExiv2Image(Exiv2::Image::AutoPtr image)
++void AbstractDocumentImpl::setDocumentExiv2Image(std::unique_ptr<Exiv2::Image> image)
+ {
+- d->mDocument->setExiv2Image(image);
++ d->mDocument->setExiv2Image(std::move(image));
+ }
+
+ void AbstractDocumentImpl::setDocumentDownSampledImage(const QImage& image, int invertedZoom)
+diff --git a/lib/document/abstractdocumentimpl.h b/lib/document/abstractdocumentimpl.h
+index 1f427e60..86e6bfd2 100644
+--- a/lib/document/abstractdocumentimpl.h
++++ b/lib/document/abstractdocumentimpl.h
+@@ -34,6 +34,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ class QImage;
+ class QRect;
+
++namespace Exiv2
++{
++ class Image;
++}
++
+ namespace Gwenview
+ {
+
+@@ -108,7 +113,7 @@ protected:
+ void setDocumentImageSize(const QSize& size);
+ void setDocumentKind(MimeTypeUtils::Kind);
+ void setDocumentFormat(const QByteArray& format);
+- void setDocumentExiv2Image(Exiv2::Image::AutoPtr);
++ void setDocumentExiv2Image(std::unique_ptr<Exiv2::Image>);
+ void setDocumentDownSampledImage(const QImage&, int invertedZoom);
+ void setDocumentCmsProfile(Cms::Profile::Ptr profile);
+ void setDocumentErrorString(const QString&);
+diff --git a/lib/document/document.cpp b/lib/document/document.cpp
+index 18756700..afa9ed03 100644
+--- a/lib/document/document.cpp
++++ b/lib/document/document.cpp
+@@ -31,6 +31,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #include <KLocalizedString>
+ #include <KJobUiDelegate>
+
++// Exiv2
++#include <exiv2/exiv2.hpp>
++
+ // Local
+ #include "documentjob.h"
+ #include "emptydocumentimpl.h"
+@@ -388,9 +391,9 @@ AbstractDocumentEditor* Document::editor()
+ return d->mImpl->editor();
+ }
+
+-void Document::setExiv2Image(Exiv2::Image::AutoPtr image)
++void Document::setExiv2Image(std::unique_ptr<Exiv2::Image> image)
+ {
+- d->mExiv2Image = image;
++ d->mExiv2Image = std::move(image);
+ d->mImageMetaInfoModel.setExiv2Image(d->mExiv2Image.get());
+ emit metaInfoUpdated();
+ }
+diff --git a/lib/document/document.h b/lib/document/document.h
+index c0bb454b..4b40a6e1 100644
+--- a/lib/document/document.h
++++ b/lib/document/document.h
+@@ -22,8 +22,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ #include <lib/gwenviewlib_export.h>
+
+-#include <string.h>
+-#include <exiv2/image.hpp>
++// STL
++#include <memory>
+
+ // Qt
+ #include <QObject>
+@@ -43,6 +43,11 @@ class QUndoStack;
+ class KJob;
+ class QUrl;
+
++namespace Exiv2
++{
++ class Image;
++}
++
+ namespace Gwenview
+ {
+
+@@ -235,7 +240,7 @@ private:
+ void setKind(MimeTypeUtils::Kind);
+ void setFormat(const QByteArray&);
+ void setSize(const QSize&);
+- void setExiv2Image(Exiv2::Image::AutoPtr);
++ void setExiv2Image(std::unique_ptr<Exiv2::Image>);
+ void setDownSampledImage(const QImage&, int invertedZoom);
+ void switchToImpl(AbstractDocumentImpl* impl);
+ void setErrorString(const QString&);
+diff --git a/lib/document/document_p.h b/lib/document/document_p.h
+index 78e0ac6e..4de25f15 100644
+--- a/lib/document/document_p.h
++++ b/lib/document/document_p.h
+@@ -21,6 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
+ #ifndef DOCUMENT_P_H
+ #define DOCUMENT_P_H
+
++// STL
++#include <memory>
++
+ // Local
+ #include <imagemetainfomodel.h>
+ #include <document/documentjob.h>
+@@ -34,6 +37,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
+ #include <QUndoStack>
+ #include <QPointer>
+
++namespace Exiv2
++{
++ class Image;
++}
++
+ namespace Gwenview
+ {
+
+@@ -54,7 +62,7 @@ struct DocumentPrivate
+ QSize mSize;
+ QImage mImage;
+ QMap<int, QImage> mDownSampledImageMap;
+- Exiv2::Image::AutoPtr mExiv2Image;
++ std::unique_ptr<Exiv2::Image> mExiv2Image;
+ MimeTypeUtils::Kind mKind;
+ QByteArray mFormat;
+ ImageMetaInfoModel mImageMetaInfoModel;
+diff --git a/lib/document/loadingdocumentimpl.cpp b/lib/document/loadingdocumentimpl.cpp
+index 07675783..766a1831 100644
+--- a/lib/document/loadingdocumentimpl.cpp
++++ b/lib/document/loadingdocumentimpl.cpp
+@@ -24,6 +24,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ // STL
+ #include <memory>
+
++// Exiv2
++#include <exiv2/exiv2.hpp>
++
+ // Qt
+ #include <QBuffer>
+ #include <QByteArray>
+@@ -100,7 +103,7 @@ struct LoadingDocumentImplPrivate
+ QByteArray mData;
+ QByteArray mFormat;
+ QSize mImageSize;
+- Exiv2::Image::AutoPtr mExiv2Image;
++ std::unique_ptr<Exiv2::Image> mExiv2Image;
+ std::unique_ptr<JpegContent> mJpegContent;
+ QImage mImage;
+ Cms::Profile::Ptr mCmsProfile;
+@@ -486,7 +489,7 @@ void LoadingDocumentImpl::slotMetaInfoLoaded()
+
+ setDocumentFormat(d->mFormat);
+ setDocumentImageSize(d->mImageSize);
+- setDocumentExiv2Image(d->mExiv2Image);
++ setDocumentExiv2Image(std::move(d->mExiv2Image));
+ setDocumentCmsProfile(d->mCmsProfile);
+
+ d->mMetaInfoLoaded = true;
+diff --git a/lib/exiv2imageloader.cpp b/lib/exiv2imageloader.cpp
+index f2830f81..f13dff7a 100644
+--- a/lib/exiv2imageloader.cpp
++++ b/lib/exiv2imageloader.cpp
+@@ -29,8 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ // KDE
+
+ // Exiv2
+-#include <exiv2/error.hpp>
+-#include <exiv2/types.hpp>
++#include <exiv2/exiv2.hpp>
+
+ // Local
+
+@@ -39,7 +38,7 @@ namespace Gwenview
+
+ struct Exiv2ImageLoaderPrivate
+ {
+- Exiv2::Image::AutoPtr mImage;
++ std::unique_ptr<Exiv2::Image> mImage;
+ QString mErrorMessage;
+ };
+
+@@ -57,7 +56,7 @@ bool Exiv2ImageLoader::load(const QString& filePath)
+ {
+ QByteArray filePathByteArray = QFile::encodeName(filePath);
+ try {
+- d->mImage = Exiv2::ImageFactory::open(filePathByteArray.constData());
++ d->mImage.reset(Exiv2::ImageFactory::open(filePathByteArray.constData()).release());
+ d->mImage->readMetadata();
+ } catch (const Exiv2::Error& error) {
+ d->mErrorMessage = QString::fromUtf8(error.what());
+@@ -69,7 +68,7 @@ bool Exiv2ImageLoader::load(const QString& filePath)
+ bool Exiv2ImageLoader::load(const QByteArray& data)
+ {
+ try {
+- d->mImage = Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size());
++ d->mImage.reset(Exiv2::ImageFactory::open((unsigned char*)data.constData(), data.size()).release());
+ d->mImage->readMetadata();
+ } catch (const Exiv2::Error& error) {
+ d->mErrorMessage = QString::fromUtf8(error.what());
+@@ -83,9 +82,9 @@ QString Exiv2ImageLoader::errorMessage() const
+ return d->mErrorMessage;
+ }
+
+-Exiv2::Image::AutoPtr Exiv2ImageLoader::popImage()
++std::unique_ptr<Exiv2::Image> Exiv2ImageLoader::popImage()
+ {
+- return d->mImage;
++ return std::move(d->mImage);
+ }
+
+ } // namespace
+diff --git a/lib/exiv2imageloader.h b/lib/exiv2imageloader.h
+index 57ef24d2..12a45b68 100644
+--- a/lib/exiv2imageloader.h
++++ b/lib/exiv2imageloader.h
+@@ -23,13 +23,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ #include <lib/gwenviewlib_export.h>
+
++// STL
++#include <memory>
++
+ // Qt
+
+ // KDE
+
+ // Exiv2
+-#include <string.h>
+-#include <exiv2/image.hpp>
++namespace Exiv2
++{
++ class Image;
++}
+
+ // Local
+
+@@ -54,7 +59,7 @@ public:
+ bool load(const QString&);
+ bool load(const QByteArray&);
+ QString errorMessage() const;
+- Exiv2::Image::AutoPtr popImage();
++ std::unique_ptr<Exiv2::Image> popImage();
+
+ private:
+ Exiv2ImageLoaderPrivate* const d;
+diff --git a/lib/jpegcontent.cpp b/lib/jpegcontent.cpp
+index bb810dd4..a8cf909f 100644
+--- a/lib/jpegcontent.cpp
++++ b/lib/jpegcontent.cpp
+@@ -42,8 +42,7 @@ extern "C" {
+ #include <KLocalizedString>
+
+ // Exiv2
+-#include <exiv2/exif.hpp>
+-#include <exiv2/image.hpp>
++#include <exiv2/exiv2.hpp>
+
+ // Local
+ #include "jpegerrormanager.h"
+@@ -216,12 +215,12 @@ bool JpegContent::load(const QString& path)
+
+ bool JpegContent::loadFromData(const QByteArray& data)
+ {
+- Exiv2::Image::AutoPtr image;
++ std::unique_ptr<Exiv2::Image> image;
+ Exiv2ImageLoader loader;
+ if (!loader.load(data)) {
+ qCritical() << "Could not load image with Exiv2, reported error:" << loader.errorMessage();
+ }
+- image = loader.popImage();
++ image.reset(loader.popImage().release());
+
+ return loadFromData(data, image.get());
+ }
+@@ -603,7 +602,8 @@ bool JpegContent::save(QIODevice* device)
+ d->mPendingTransformation = false;
+ }
+
+- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((unsigned char*)d->mRawData.data(), d->mRawData.size());
++ std::unique_ptr<Exiv2::Image> image;
++ image.reset(Exiv2::ImageFactory::open((unsigned char*)d->mRawData.data(), d->mRawData.size()).release());
+
+ // Store Exif info
+ image->setExifData(d->mExifData);
+diff --git a/lib/timeutils.cpp b/lib/timeutils.cpp
+index 9e8836a9..3c519098 100644
+--- a/lib/timeutils.cpp
++++ b/lib/timeutils.cpp
+@@ -21,6 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
+ // Self
+ #include "timeutils.h"
+
++// STL
++#include <memory>
++
+ // Qt
+ #include <QFile>
+ #include <QDateTime>
+@@ -30,8 +33,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA
+ #include <KFileItem>
+
+ // Exiv2
+-#include <exiv2/exif.hpp>
+-#include <exiv2/image.hpp>
++#include <exiv2/exiv2.hpp>
+
+ // Local
+ #include <lib/exiv2imageloader.h>
+@@ -92,7 +94,7 @@ struct CacheItem
+ if (!loader.load(path)) {
+ return false;
+ }
+- Exiv2::Image::AutoPtr img = loader.popImage();
++ std::unique_ptr<Exiv2::Image> img(loader.popImage().release());
+ try {
+ Exiv2::ExifData exifData = img->exifData();
+ if (exifData.empty()) {
+diff --git a/tests/auto/cmsprofiletest.cpp b/tests/auto/cmsprofiletest.cpp
+index 4efc441b..f4c7f9e5 100644
+--- a/tests/auto/cmsprofiletest.cpp
++++ b/tests/auto/cmsprofiletest.cpp
+@@ -69,7 +69,7 @@ void CmsProfileTest::testLoadFromImageData_data()
+ void CmsProfileTest::testLoadFromExiv2Image()
+ {
+ QFETCH(QString, fileName);
+- Exiv2::Image::AutoPtr image;
++ std::unique_ptr<Exiv2::Image> image;
+ {
+ QByteArray data;
+ QString path = pathForTestFile(fileName);
+@@ -80,7 +80,7 @@ void CmsProfileTest::testLoadFromExiv2Image()
+
+ Exiv2ImageLoader loader;
+ QVERIFY(loader.load(data));
+- image = loader.popImage();
++ image.reset(loader.popImage().release());
+ }
+ Cms::Profile::Ptr ptr = Cms::Profile::loadFromExiv2Image(image.get());
+ QVERIFY(!ptr.isNull());
+diff --git a/tests/auto/imagemetainfomodeltest.cpp b/tests/auto/imagemetainfomodeltest.cpp
+index e3ec8d30..5a286b00 100644
+--- a/tests/auto/imagemetainfomodeltest.cpp
++++ b/tests/auto/imagemetainfomodeltest.cpp
+@@ -17,6 +17,10 @@ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ */
++
++// STL
++#include <memory>
++
+ // Qt
+
+ // KDE
+@@ -28,7 +32,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #include "../lib/imagemetainfomodel.h"
+ #include "testutils.h"
+
+-#include <exiv2/exif.hpp>
++// Exiv2
++#include <exiv2/exiv2.hpp>
+
+ #include "imagemetainfomodeltest.h"
+
+@@ -46,7 +51,7 @@ void ImageMetaInfoModelTest::testCatchExiv2Errors()
+ data = file.readAll();
+ }
+
+- Exiv2::Image::AutoPtr image;
++ std::unique_ptr<Exiv2::Image> image;
+ {
+ Exiv2ImageLoader loader;
+ QVERIFY(loader.load(data));
+--
+2.20.1
+
+
+From b81eed1dc4d879f06d651ea0954bee1b46c7947e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
+Date: Sat, 29 Dec 2018 23:39:30 +0100
+Subject: [PATCH 2/2] Compile more files with enabled exceptions, required for
+ exiv2 0.27
+
+Summary:
+The (exception based) error handling is now pulled in by e.g. image.hpp,
+so more files require enabled exception handling.
+
+Depends on D17872
+
+Test Plan: build
+
+Reviewers: #gwenview, ngraham, cfeck, asturmlechner
+
+Reviewed By: #gwenview, ngraham
+
+Subscribers: wbauer, lbeltrame
+
+Tags: #gwenview
+
+Differential Revision: https://phabricator.kde.org/D17873
+---
+ lib/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index d60ae47f..229eac2a 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -224,6 +224,11 @@ kde_source_files_enable_exceptions(
+ exiv2imageloader.cpp
+ imagemetainfomodel.cpp
+ timeutils.cpp
++ cms/cmsprofile.cpp
++ document/abstractdocumentimpl.cpp
++ document/document.cpp
++ document/loadingdocumentimpl.cpp
++ jpegcontent.cpp
+ )
+
+ ki18n_wrap_ui(gwenviewlib_SRCS
+--
+2.20.1
diff --git a/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild b/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild
index a826c85306..55fde8ff57 100644
--- a/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild
+++ b/kde-apps/gwenview/gwenview-18.12.49.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -71,6 +71,8 @@ RDEPEND="${COMMON_DEPEND}
kipi? ( media-plugins/kipi-plugins:5 )
"
+PATCHES=( "${FILESDIR}/${PN}-18.12.1-exiv2-0.27.patch" )
+
src_prepare() {
kde5_src_prepare
if ! use mpris; then
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-01-08 1:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-30 23:33 [gentoo-commits] proj/kde:master commit in: kde-apps/gwenview/, kde-apps/gwenview/files/ Johannes Huber
-- strict thread matches above, loose matches on Subject: below --
2017-10-22 15:00 Andreas Sturmlechner
2019-01-08 1:49 Andreas Sturmlechner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox