Hi, Attached patch adds support for XMP metadata to Gwenview. I would like to see it go into KDE 4.3.
Since it takes advantage of the latest features from Exiv2, the patch is quite simple. It introduces only one new string: XMP, which I believe in fact should not be translated. Is it OK to apply? Aurélien PS: Please CC me.
>From 9eed2735afbbb558d6ffa31cba505676440ff83b Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Aur=C3=A9lien=20G=C3=A2teau?= <[email protected]> Date: Wed, 6 May 2009 19:09:40 +0200 Subject: [PATCH] Add support for Xmp. --- gwenview/lib/imagemetainfomodel.cpp | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gwenview/lib/imagemetainfomodel.cpp b/gwenview/lib/imagemetainfomodel.cpp index 292a6f9..6e40575 100644 --- a/gwenview/lib/imagemetainfomodel.cpp +++ b/gwenview/lib/imagemetainfomodel.cpp @@ -45,7 +45,8 @@ enum GroupRow { NoGroup = -1, GeneralGroup, ExifGroup, - IptcGroup + IptcGroup, + XmpGroup }; @@ -276,10 +277,11 @@ struct ImageMetaInfoModelPrivate { ImageMetaInfoModel::ImageMetaInfoModel() : d(new ImageMetaInfoModelPrivate) { d->mModel = this; - d->mMetaInfoGroupVector.resize(3); + d->mMetaInfoGroupVector.resize(4); d->mMetaInfoGroupVector[GeneralGroup] = new MetaInfoGroup(i18nc("@title:group General info about the image", "General")); d->mMetaInfoGroupVector[ExifGroup] = new MetaInfoGroup(i18nc("@title:group", "Exif")); d->mMetaInfoGroupVector[IptcGroup] = new MetaInfoGroup(i18nc("@title:group", "Iptc")); + d->mMetaInfoGroupVector[XmpGroup] = new MetaInfoGroup(i18nc("@title:group", "Xmp")); d->initGeneralGroup(); } @@ -324,10 +326,13 @@ void ImageMetaInfoModel::setImageSize(const QSize& size) { void ImageMetaInfoModel::setExiv2Image(const Exiv2::Image* image) { MetaInfoGroup* exifGroup = d->mMetaInfoGroupVector[ExifGroup]; MetaInfoGroup* iptcGroup = d->mMetaInfoGroupVector[IptcGroup]; + MetaInfoGroup* xmpGroup = d->mMetaInfoGroupVector[XmpGroup]; QModelIndex exifIndex = index(ExifGroup, 0); QModelIndex iptcIndex = index(IptcGroup, 0); + QModelIndex xmpIndex = index(XmpGroup, 0); d->clearGroup(exifGroup, exifIndex); d->clearGroup(iptcGroup, iptcIndex); + d->clearGroup(xmpGroup, xmpIndex); if (!image) { return; @@ -342,6 +347,11 @@ void ImageMetaInfoModel::setExiv2Image(const Exiv2::Image* image) { const Exiv2::IptcData& iptcData = image->iptcData(); d->fillExivGroup<Exiv2::IptcData, Exiv2::IptcData::const_iterator>(iptcIndex, iptcGroup, iptcData); } + + if (image->checkMode(Exiv2::mdXmp) & Exiv2::amRead) { + const Exiv2::XmpData& xmpData = image->xmpData(); + d->fillExivGroup<Exiv2::XmpData, Exiv2::XmpData::const_iterator>(xmpIndex, xmpGroup, xmpData); + } } @@ -353,6 +363,8 @@ void ImageMetaInfoModel::getInfoForKey(const QString& key, QString* label, QStri group = d->mMetaInfoGroupVector[ExifGroup]; } else if (key.startsWith(QLatin1String("Iptc"))) { group = d->mMetaInfoGroupVector[IptcGroup]; + } else if (key.startsWith(QLatin1String("Xmp"))) { + group = d->mMetaInfoGroupVector[XmpGroup]; } else { kWarning() << "Unknown metainfo key" << key; return; -- 1.6.0.4
_______________________________________________ release-team mailing list [email protected] https://mail.kde.org/mailman/listinfo/release-team
