File Fixed-compilation-with-exiv2-0.28.patch of Package kphotoalbum4

From b1719d6b337059e070b2db812eb3b747a3e5a627 Mon Sep 17 00:00:00 2001
From: Tobias Leupold <tl@stonemx.de>
Date: Sat, 20 May 2023 22:33:44 +0200
Subject: [PATCH] Fixed compilation with exiv2 0.28

---
 DB/FileInfo.cpp                 | 11 ++++++++++-
 lib/kpaexif/Database.cpp        | 13 +++++++++++--
 lib/kpaexif/DatabaseElement.cpp | 21 ++++++++++++++-------
 lib/kpaexif/Info.cpp            |  9 +++++++++
 4 files changed, 44 insertions(+), 10 deletions(-)

diff --git a/DB/FileInfo.cpp b/DB/FileInfo.cpp
index dc4c9819b..ca18ddc2f 100644
--- a/DB/FileInfo.cpp
+++ b/DB/FileInfo.cpp
@@ -22,6 +22,7 @@
 #include <config-kpa-exiv2.h>
 #ifdef HAVE_EXIV2
 #  include "Exif/Info.h"
+#include <exiv2/version.hpp>
 #endif
 #include <kfilemetainfo.h>
 
@@ -87,8 +88,14 @@ void DB::FileInfo::parseEXIV2(const DB::FileName &fileName)
         const Exiv2::Exifdatum& datum = map["Exif.Image.Orientation"];
 
         int orientation = 0;
-        if (datum.count() > 0)
+        if (datum.count() > 0) {
+#if EXIV2_TEST_VERSION(0, 28, 0)
+            orientation =  datum.toInt64();
+#else
             orientation =  datum.toLong();
+#endif
+        }
+
         m_angle = orientationToAngle( orientation );
     }
 
diff --git a/Exif/Database.cpp b/Exif/Database.cpp
index 4d0e228c7..930d1c8ed 100644
--- a/Exif/Database.cpp
+++ b/Exif/Database.cpp
@@ -24,6 +24,7 @@
 
 #include <exiv2/exif.hpp>
 #include <exiv2/image.hpp>
+#include <exiv2/version.hpp>
 
 #include <klocale.h>
 #include <kmessagebox.h>
@@ -208,7 +209,11 @@ bool Exif::Database::add( const DB::FileName& fileName )
         return false;
 
     try {
+#if EXIV2_TEST_VERSION(0, 28, 0)
+        Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(fileName.absolute().toLocal8Bit().data());
+#else
         Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(fileName.absolute().toLocal8Bit().data());
+#endif
         Q_ASSERT(image.get() != nullptr);
         image->readMetadata();
         Exiv2::ExifData &exifData = image->exifData();
diff --git a/Exif/DatabaseElement.cpp b/Exif/DatabaseElement.cpp
index 4e7ba198e..e218bb5e1 100644
--- a/Exif/DatabaseElement.cpp
+++ b/Exif/DatabaseElement.cpp
@@ -17,6 +17,7 @@
 */
 #include "DatabaseElement.h"
 #include <exiv2/exif.hpp>
+#include <exiv2/version.hpp>
 #include <QVariant>
 #include <QDebug>
 
@@ -98,10 +99,15 @@ QString Exif::IntExifElement::queryString() const
 
 QVariant Exif::IntExifElement::valueFromExif(Exiv2::ExifData &data) const
 {
-    if (data[m_tag].count() > 0)
-        return QVariant{ (int) data[m_tag].toLong() };
-    else
-        return QVariant{ (int) 0 };
+    if (data[m_tag].count() > 0) {
+#if EXIV2_TEST_VERSION(0, 28, 0)
+        return QVariant((int) data[m_tag].toInt64());
+#else
+        return QVariant((int) data[m_tag].toLong());
+#endif
+    } else {
+        return QVariant(0);
+    }
 }
 
 
diff --git a/Exif/Info.cpp b/Exif/Info.cpp
index 5f77fc814..d72d88b31 100644
--- a/Exif/Info.cpp
+++ b/Exif/Info.cpp
@@ -187,7 +193,11 @@ Info::Info()
 void Exif::Info::writeInfoToFile( const DB::FileName& srcName, const QString& destName )
 {
     // Load Exif from source image
+#if EXIV2_TEST_VERSION(0, 28, 0)
+    Exiv2::Image::UniquePtr image =
+#else
     Exiv2::Image::AutoPtr image =
+#endif
         Exiv2::ImageFactory::open( QFile::encodeName(srcName.absolute()).data() );
     image->readMetadata();
     Exiv2::ExifData data = image->exifData();
@@ -224,7 +234,11 @@ Exif::Metadata Exif::Info::metadata( const DB::FileName& fileName )
 {
     try {
         Exif::Metadata result;
+#if EXIV2_TEST_VERSION(0, 28, 0)
+        Exiv2::Image::UniquePtr image =
+#else
         Exiv2::Image::AutoPtr image =
+#endif
                 Exiv2::ImageFactory::open( QFile::encodeName(fileName.absolute()).data() );
         Q_ASSERT(image.get() != 0);
         image->readMetadata();
-- 
GitLab

openSUSE Build Service is sponsored by