From e7bf1f0d299c4f7c6529438059d14e7a99907066 Mon Sep 17 00:00:00 2001
From: Antonio Rojas <arojas@archlinux.org>
Date: Sun, 4 Jun 2023 18:04:59 +0200
Subject: [PATCH] Fix build with exiv2 0.28

Index: plugins/metadata/common/kis_exiv2_common.h
--- plugins/metadata/common/kis_exiv2_common.h.orig
+++ plugins/metadata/common/kis_exiv2_common.h
@@ -19,7 +19,11 @@
 
 // Convert an exiv value to a KisMetaData value
 inline KisMetaData::Value
+#if EXIV2_TEST_VERSION(0,28,0)
+exivValueToKMDValue(const Exiv2::Value::UniquePtr value,
+#else
 exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
+#endif
                     bool forceSeq,
                     KisMetaData::Value::ValueType arrayType = KisMetaData::Value::UnorderedArray)
 {
@@ -42,11 +46,20 @@ exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
     case Exiv2::signedShort:
     case Exiv2::signedLong: {
         if (value->count() == 1 && !forceSeq) {
+#if EXIV2_TEST_VERSION(0,28,0)
+            return KisMetaData::Value((int)value->toUint32());
+#else
             return KisMetaData::Value((int)value->toLong());
+#endif
         } else {
             QList<KisMetaData::Value> array;
+#if EXIV2_TEST_VERSION(0,28,0)
+            for (size_t i = 0; i < value->count(); i++)
+                array.push_back(KisMetaData::Value((int)value->toUint32(i)));
+#else
             for (int i = 0; i < value->count(); i++)
                 array.push_back(KisMetaData::Value((int)value->toLong(i)));
+#endif
             return KisMetaData::Value(array, arrayType);
         }
     }
@@ -63,7 +76,11 @@ exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
             return {KisMetaData::Rational(value->toRational().first, value->toRational().second)};
         } else {
             QList<KisMetaData::Value> array;
+#if EXIV2_TEST_VERSION(0,28,0)
+            for (size_t i = 0; i < value->count(); i++) {
+#else
             for (long i = 0; i < value->count(); i++) {
+#endif
                 array.push_back(KisMetaData::Rational(value->toRational(i).first, value->toRational(i).second));
             }
             return KisMetaData::Value(array, arrayType);
@@ -77,7 +94,11 @@ exivValueToKMDValue(const Exiv2::Value::AutoPtr value,
             return KisMetaData::Value(KisMetaData::Rational(value->toRational().first, value->toRational().second));
         } else {
             QList<KisMetaData::Value> array;
+#if EXIV2_TEST_VERSION(0,28,0)
+            for (size_t i = 0; i < value->count(); i++) {
+#else
             for (long i = 0; i < value->count(); i++) {
+#endif
                 array.push_back(KisMetaData::Rational(value->toRational(i).first, value->toRational(i).second));
             }
             return KisMetaData::Value(array, arrayType);
