SVN commit 642722 by cgilles:
libkexiv2 from trunk : Fix broken compilation with current Exiv2 implementation (next 0.14.0 release), duing a change with C++ Exception rule. I recommend to cleanup and recompile this library and clients program witch use it. Note : libkexiv2 still compatible with older Exiv2 releases 0.12 and 0.13 CCMAIL: [hidden email] M +66 -62 kexiv2.cpp M +6 -0 kexiv2.h --- trunk/extragear/libs/libkexiv2/kexiv2.cpp #642721:642722 @@ -27,7 +27,6 @@ #include <cstdlib> #include <cstdio> #include <cassert> -#include <string> #include <cmath> #include <iostream> #include <iomanip> @@ -101,7 +100,11 @@ .arg(EXIV2_PATCH_VERSION); } -// -- Protected Methods ------------------------------------- +void KExiv2::printExiv2ExceptionError(const QString& msg, Exiv2::Error& e) +{ + std::string s(e.what()); + qDebug("%s (%s)", msg.ascii(), s.c_str()); +} std::string& KExiv2::commentsMetaData() { @@ -118,8 +121,6 @@ return d->iptcMetadata; } -// -- Public Methods -------------------------------- - bool KExiv2::clearComments() { return setComments(QByteArray()); @@ -134,7 +135,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot clear Exif data using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot clear Exif data using Exiv2 ", e); } return false; @@ -149,7 +150,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot clear Iptc data using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot clear Iptc data using Exiv2 ", e); } return false; @@ -195,7 +196,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot get Exif data using Exiv2 (%s", e.what().c_str()); + printExiv2ExceptionError("Cannot get Exif data using Exiv2 ", e); } return QByteArray(); @@ -236,7 +237,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot get Iptc data using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot get Iptc data using Exiv2 ",e); } return QByteArray(); @@ -265,7 +266,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot set Exif data using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif data using Exiv2 ", e); } return false; @@ -288,7 +289,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot set Iptc data using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot set Iptc data using Exiv2 ", e); } return false; @@ -311,7 +312,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot set Exif data using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif data using Exiv2 ", e); } return false; @@ -334,7 +335,7 @@ if (!d->filePath.isEmpty()) qDebug ("From file %s", d->filePath.ascii()); - qDebug("Cannot set Iptc data using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot set Iptc data using Exiv2 ", e); } return false; @@ -369,9 +370,10 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot load metadata using Exiv2 (%s)", e.what().c_str()); - return false; + printExiv2ExceptionError("Cannot load metadata using Exiv2 ", e); } + + return false; } bool KExiv2::save(const QString& filePath) @@ -425,9 +427,10 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot save metadata using Exiv2 (%s)", e.what().c_str()); - return false; + printExiv2ExceptionError("Cannot save metadata using Exiv2 ", e); } + + return false; } bool KExiv2::applyChanges() @@ -487,7 +490,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Program identity into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Program identity into image using Exiv2 ", e); } return false; @@ -542,7 +545,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot parse image dimensions tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot parse image dimensions tag using Exiv2 ", e); } return QSize(); @@ -563,7 +566,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set image dimensions using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set image dimensions using Exiv2 ", e); } return false; @@ -640,7 +643,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get Exif Thumbnail using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get Exif Thumbnail using Exiv2 ", e); } return thumbnail; @@ -663,7 +666,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif Thumbnail using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif Thumbnail using Exiv2 ", e); } return false; @@ -754,7 +757,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot parse Exif Orientation tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot parse Exif Orientation tag using Exiv2 ", e); } return ORIENTATION_UNSPECIFIED; @@ -822,7 +825,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif Orientation tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif Orientation tag using Exiv2 ", e); } return false; @@ -863,7 +866,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot parse image color workspace tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot parse image color workspace tag using Exiv2 ", e); } return WORKSPACE_UNSPECIFIED; @@ -885,7 +888,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif color workspace tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif color workspace tag using Exiv2 ", e); } return false; @@ -1014,7 +1017,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot parse Exif date & time tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot parse Exif date & time tag using Exiv2 ", e); } return QDateTime(); @@ -1059,7 +1062,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Date & Time into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Date & Time into image using Exiv2 ", e); } return false; @@ -1077,7 +1080,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get image preview using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get image preview using Exiv2 ", e); } return false; @@ -1119,7 +1122,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get image preview using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get image preview using Exiv2 ", e); } return false; @@ -1146,8 +1149,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Exif key '%s' into image using Exiv2 (%s)", - exifTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Exif key '%1' into image using Exiv2 ") + .arg(exifTagName), e); } return QString(); @@ -1165,7 +1168,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif tag string into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif tag string into image using Exiv2 ", e); } return false; @@ -1192,8 +1195,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Iptc key '%s' into image using Exiv2 (%s)", - iptcTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Iptc key '%1' into image using Exiv2 ") + .arg(iptcTagName), e); } return QString(); @@ -1211,7 +1214,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Iptc tag string into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Iptc tag string into image using Exiv2 ", e); } return false; @@ -1232,8 +1235,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Exif key '%s' into image using Exiv2 (%s)", - exifTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Exif key '%1' into image using Exiv2 ") + .arg(exifTagName), e); } return false; @@ -1256,8 +1259,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Exif key '%s' into image using Exiv2 (%s)", - exifTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Exif key '%1' into image using Exiv2 ") + .arg(exifTagName), e); } return QByteArray(); @@ -1280,8 +1283,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Iptc key '%s' into image using Exiv2 (%s)", - iptcTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Iptc key '%1' into image using Exiv2 ") + .arg(iptcTagName), e); } return QByteArray(); @@ -1303,8 +1306,8 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Exif Rational value from key '%s' into image using Exiv2 (%s)", - exifTagName, e.what().c_str()); + printExiv2ExceptionError(QString("Cannot find Exif Rational value from key '%1' " + "into image using Exiv2 ").arg(exifTagName), e); } return false; @@ -1322,7 +1325,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif tag long value into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif tag long value into image using Exiv2 ", e); } return false; @@ -1340,7 +1343,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif tag rational value into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif tag rational value into image using Exiv2 ", e); } return false; @@ -1362,7 +1365,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif tag data into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif tag data into image using Exiv2 ", e); } return false; @@ -1384,7 +1387,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Iptc tag data into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Iptc tag data into image using Exiv2 ", e); } return false; @@ -1407,7 +1410,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot remove Exif tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot remove Exif tag using Exiv2 ", e); } return false; @@ -1430,7 +1433,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot remove Iptc tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot remove Iptc tag using Exiv2 ", e); } return false; @@ -1528,7 +1531,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get Exif GPS tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get Exif GPS tag using Exiv2 ", e); } return false; @@ -1651,7 +1654,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif GPS tag using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif GPS tag using Exiv2 ", e); } return false; @@ -1687,7 +1690,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot remove Exif GPS tag using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot remove Exif GPS tag using Exiv2 ", e); } return false; @@ -1778,7 +1781,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get IPTC Keywords from image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get IPTC Keywords from image using Exiv2 ", e); } return QStringList(); @@ -1835,7 +1838,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set IPTC Keywords into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set IPTC Keywords into image using Exiv2 ", e); } return false; @@ -1866,7 +1869,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get IPTC Subjects from image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get IPTC Subjects from image using Exiv2 ", e); } return QStringList(); @@ -1918,7 +1921,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set IPTC Subjects into image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set IPTC Subjects into image using Exiv2 ", e); } return false; @@ -1949,7 +1952,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot get IPTC Sub Categories from image using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot get IPTC Sub Categories from image using Exiv2 ", e); } return QStringList(); @@ -1981,7 +1984,8 @@ ++it; }; - // Add new Sub Categories. Note that SubCategories IPTC tag is limited to 32 char but can be redondant. + // Add new Sub Categories. Note that SubCategories IPTC tag is limited to 32 + // characters but can be redondant. Exiv2::IptcKey iptcTag("Iptc.Application2.SuppCategory"); @@ -2001,7 +2005,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set IPTC Sub Categories into image using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot set IPTC Sub Categories into image using Exiv2 ", e); } return false; @@ -2029,7 +2033,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot find Exif User Comment using Exiv2 (%s)",e.what().c_str()); + printExiv2ExceptionError("Cannot find Exif User Comment using Exiv2 ", e); } return QString(); @@ -2072,7 +2076,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot set Exif Comment using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot set Exif Comment using Exiv2 ", e); } return false; @@ -2143,7 +2147,7 @@ } catch( Exiv2::Error &e ) { - qDebug("Cannot convert Comment using Exiv2 (%s)", e.what().c_str()); + printExiv2ExceptionError("Cannot convert Comment using Exiv2 ", e); } return QString(); --- trunk/extragear/libs/libkexiv2/kexiv2.h #642721:642722 @@ -46,6 +46,7 @@ class Exifdatum; class ExifData; class IptcData; + class Error; } namespace KExiv2Iface @@ -95,6 +96,11 @@ /** Return a string version of Exiv2 release in format "major.minor.patch" */ static QString Exiv2Version(); + /** Generic method to print the Exiv2 C++ Exception error message from 'e'. + 'msg' string is printed just before like debug header. + */ + static void printExiv2ExceptionError(const QString& msg, Exiv2::Error& e); + //-- Metadata manipulation methods ---------------------------------------------- /** Clear the Comments metadata container in memory. */ _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Alle 10:09, giovedì 15 marzo 2007, Gilles Caulier ha scritto:
> SVN commit 642722 by cgilles: > > libkexiv2 from trunk : Fix broken compilation with current Exiv2 implementation (next 0.14.0 release), duing a change with C++ Exception rule. I recommend to cleanup and recompile this library and clients program witch use it. > > Note : libkexiv2 still compatible with older Exiv2 releases 0.12 and 0.13 > > CCMAIL: [hidden email] > Please send a mail to kdeimaging@ as well. Angelo _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel attachment0 (196 bytes) Download Attachment |
Free forum by Nabble | Edit this page |