[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/graphics/kphotoalbum
From:       Miika Turkia <miika.turkia () gmail ! com>
Date:       2011-01-09 6:50:40
Message-ID: 20110109065040.C8E0AAC8B0 () svn ! kde ! org
[Download RAW message or body]

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 <miika.turkia@gmail.com>
+
+	* Fixed bug #262127, compile fails with exiv2-0.21
+
 2010-12-22  Miika Turkia <miika.turkia@gmail.com>
 
 	* 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<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 );
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic