summaryrefslogtreecommitdiff
path: root/graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch')
-rw-r--r--graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch b/graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch
new file mode 100644
index 0000000000..ca8e210054
--- /dev/null
+++ b/graphics/kphotoalbum/kphotoalbum-4.1.1-exiv2.patch
@@ -0,0 +1,47 @@
+--- kphotoalbum/Exif/Info.cpp 2011/01/09 06:47:21 1213127
++++ kphotoalbum/Exif/Info.cpp 2011/01/09 06:50:40 1213128
+@@ -106,6 +106,28 @@
+ return res;
+
+ QList<const Exiv2::TagInfo*> tags;
++ std::ostringstream s;
++
++#if (EXIV2_TEST_VERSION(0,21,0))
++ const Exiv2::GroupInfo* gi = Exiv2::ExifTags::groupList();
++ while (gi->tagList_ != 0) {
++ Exiv2::TagListFct tl = gi->tagList_;
++ const Exiv2::TagInfo* ti = tl();
++
++ while (ti->tag_ != 0xFFFF) {
++ tags << ti;
++ ++ti;
++ }
++ ++gi;
++ }
++
++ for (QList<const Exiv2::TagInfo*>::iterator it = tags.begin(); it != tags.end(); ++it) {
++ while ( (*it)->tag_ != 0xffff ) {
++ res.insert(QString::fromLatin1(Exiv2::ExifKey(**it).key().c_str()));
++ ++(*it);
++ }
++ }
++#else
+ tags <<
+ Exiv2::ExifTags::ifdTagList() <<
+ Exiv2::ExifTags::exifTagList() <<
+@@ -121,7 +143,6 @@
+ // Now the ugly part -- exiv2 doesn't have any way to get a list of
+ // MakerNote tags in a reasonable form, so we have to parse it from strings
+
+- std::ostringstream s;
+ for ( Exiv2::IfdId kind = Exiv2::canonIfdId; kind < Exiv2::lastIfdId;
+ kind = static_cast<Exiv2::IfdId>( kind + 1 ) ) {
+ #if EXIV2_TEST_VERSION(0,17,0)
+@@ -130,6 +151,7 @@
+ Exiv2::ExifTags::makerTaglist( s, kind );
+ #endif
+ }
++#endif
+
+ // IPTC tags use yet another format...
+ Exiv2::IptcDataSets::dataSetList( s );