public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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 --
2019-01-08  1:49 [gentoo-commits] proj/kde:master commit in: kde-apps/gwenview/, kde-apps/gwenview/files/ Andreas Sturmlechner
  -- strict thread matches above, loose matches on Subject: below --
2017-10-22 15:00 Andreas Sturmlechner
2015-01-30 23:33 Johannes Huber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox