Changeset View
Changeset View
Standalone View
Standalone View
libs/ui/kisexiv2/kis_iptc_io.cpp
Show First 20 Lines • Show All 120 Lines • ▼ Show 20 Line(s) | 115 | try { | |||
---|---|---|---|---|---|
121 | if (v && v->typeId() != Exiv2::invalidTypeId) { | 121 | if (v && v->typeId() != Exiv2::invalidTypeId) { | ||
122 | iptcData.add(iptcKey, v); | 122 | iptcData.add(iptcKey, v); | ||
123 | } | 123 | } | ||
124 | } catch (Exiv2::AnyError& e) { | 124 | } catch (Exiv2::AnyError& e) { | ||
125 | dbgMetaData << "exiv error " << e.what(); | 125 | dbgMetaData << "exiv error " << e.what(); | ||
126 | } | 126 | } | ||
127 | } | 127 | } | ||
128 | } | 128 | } | ||
129 | #if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17 | 129 | #if EXIV2_TEST_VERSION(0,18,0) | ||
130 | Exiv2::DataBuf rawData = iptcData.copy(); | | |||
131 | #else | | |||
132 | Exiv2::DataBuf rawData = Exiv2::IptcParser::encode(iptcData); | 130 | Exiv2::DataBuf rawData = Exiv2::IptcParser::encode(iptcData); | ||
131 | #else | ||||
132 | Exiv2::DataBuf rawData = iptcData.copy(); | ||||
133 | #endif | 133 | #endif | ||
134 | 134 | | |||
135 | if (headerType == KisMetaData::IOBackend::JpegHeader) { | 135 | if (headerType == KisMetaData::IOBackend::JpegHeader) { | ||
136 | QByteArray header; | 136 | QByteArray header; | ||
137 | header.append(photoshopMarker); | 137 | header.append(photoshopMarker); | ||
138 | header.append(QByteArray(1, 0)); // Null terminated string | 138 | header.append(QByteArray(1, 0)); // Null terminated string | ||
139 | header.append(photoshopBimId_); | 139 | header.append(photoshopBimId_); | ||
140 | header.append(photoshopIptc_); | 140 | header.append(photoshopIptc_); | ||
Show All 21 Lines | |||||
162 | 162 | | |||
163 | bool KisIptcIO::loadFrom(KisMetaData::Store* store, QIODevice* ioDevice) const | 163 | bool KisIptcIO::loadFrom(KisMetaData::Store* store, QIODevice* ioDevice) const | ||
164 | { | 164 | { | ||
165 | initMappingsTable(); | 165 | initMappingsTable(); | ||
166 | dbgMetaData << "Loading IPTC Tags"; | 166 | dbgMetaData << "Loading IPTC Tags"; | ||
167 | ioDevice->open(QIODevice::ReadOnly); | 167 | ioDevice->open(QIODevice::ReadOnly); | ||
168 | QByteArray arr = ioDevice->readAll(); | 168 | QByteArray arr = ioDevice->readAll(); | ||
169 | Exiv2::IptcData iptcData; | 169 | Exiv2::IptcData iptcData; | ||
170 | #if EXIV2_MAJOR_VERSION == 0 && EXIV2_MINOR_VERSION <= 17 | 170 | #if EXIV2_TEST_VERSION(0,18,0) | ||
171 | iptcData.load((const Exiv2::byte*)arr.data(), arr.size()); | | |||
172 | #else | | |||
173 | Exiv2::IptcParser::decode(iptcData, (const Exiv2::byte*)arr.data(), arr.size()); | 171 | Exiv2::IptcParser::decode(iptcData, (const Exiv2::byte*)arr.data(), arr.size()); | ||
172 | #else | ||||
173 | iptcData.load((const Exiv2::byte*)arr.data(), arr.size()); | ||||
174 | #endif | 174 | #endif | ||
175 | dbgMetaData << "There are" << iptcData.count() << " entries in the IPTC section"; | 175 | dbgMetaData << "There are" << iptcData.count() << " entries in the IPTC section"; | ||
176 | for (Exiv2::IptcMetadata::const_iterator it = iptcData.begin(); | 176 | for (Exiv2::IptcMetadata::const_iterator it = iptcData.begin(); | ||
177 | it != iptcData.end(); ++it) { | 177 | it != iptcData.end(); ++it) { | ||
178 | dbgMetaData << "Reading info for key" << it->key().c_str(); | 178 | dbgMetaData << "Reading info for key" << it->key().c_str(); | ||
179 | if (d->iptcToKMD.contains(it->key().c_str())) { | 179 | if (d->iptcToKMD.contains(it->key().c_str())) { | ||
180 | const IPTCToKMD& iptcToKMd = d->iptcToKMD[it->key().c_str()]; | 180 | const IPTCToKMD& iptcToKMd = d->iptcToKMD[it->key().c_str()]; | ||
181 | const KisMetaData::Schema* schema = KisMetaData::SchemaRegistry::instance()->schemaFromUri(iptcToKMd.namespaceUri); | 181 | const KisMetaData::Schema* schema = KisMetaData::SchemaRegistry::instance()->schemaFromUri(iptcToKMd.namespaceUri); | ||
Show All 19 Lines |