From kde-commits Sun Jan 09 06:50:40 2011 From: Miika Turkia Date: Sun, 09 Jan 2011 06:50:40 +0000 To: kde-commits Subject: extragear/graphics/kphotoalbum Message-Id: <20110109065040.C8E0AAC8B0 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=129455588008389 SVN commit 1213128 by mturkia: Fixed bug #262127, compile fails with exiv2-0.21 M +4 -0 ChangeLog M +23 -1 Exif/Info.cpp --- trunk/extragear/graphics/kphotoalbum/ChangeLog #1213127:1213128 @@ -1,3 +1,7 @@ +2011-01-09 Miika Turkia + + * Fixed bug #262127, compile fails with exiv2-0.21 + 2010-12-22 Miika Turkia * Fixed bugs #255286 and #237889, crashes on missing exif information --- trunk/extragear/graphics/kphotoalbum/Exif/Info.cpp #1213127:1213128 @@ -106,6 +106,28 @@ return res; QList 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::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( 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 );