130 void copyPrivateData(
const Private*
const other);
132 bool saveToXMPSidecar(
const QFileInfo& finfo)
const;
133 bool saveToFile(
const QFileInfo& finfo)
const;
134 bool saveUsingExiv2(
const QFileInfo& finfo,
135 const QDateTime& modTime,
136 Exiv2::Image::AutoPtr image)
const;
137 bool saveUsingExifTool(
const QFileInfo& finfo,
138 const QDateTime& modTime)
const;
145 QString convertCommentValue(
const Exiv2::Exifdatum& exifDatum)
const;
150 QString detectEncodingAndDecode(
const std::string&
value)
const;
155 bool isUtf8(
const char*
const buffer)
const;
160 bool decodeGPSCoordinate(
const char* exifTagName,
double*
const coordinate)
const;
164 const Exiv2::ExifData& exifMetadata()
const;
165 const Exiv2::IptcData& iptcMetadata()
const;
166 const std::string& itemComments()
const;
167 const Exiv2::ByteOrder& exifByteOrder()
const;
168 const Exiv2::DataBuf& iccProfileBuf()
const;
170 Exiv2::ExifData& exifMetadata();
171 Exiv2::IptcData& iptcMetadata();
172 std::string& itemComments();
173 Exiv2::ByteOrder& exifByteOrder();
174 Exiv2::DataBuf& iccProfileBuf();
180 const Exiv2::XmpData& xmpMetadata()
const;
181 Exiv2::XmpData& xmpMetadata();
183 void loadSidecarData(Exiv2::Image::AutoPtr xmpsidecar);
192 QString extractIptcTagString(
const Exiv2::IptcData& iptcData,
const Exiv2::Iptcdatum& iptcTag)
const;
200 static void printExiv2ExceptionError(
const QString& msg, Exiv2::AnyError& e);
206 static void printExiv2MessageHandler(
int lvl,
const char* msg);
210 bool readWithExifTool =
false;
211 bool writeWithExifTool =
false;
212 bool writeRawFiles =
false;
213 bool writeDngFiles =
false;
214 bool updateFileTimeStamp =
false;
216 bool useXMPSidecar4Reading =
false;
217 bool useCompatibleFileName =
false;
220 int metadataWritingMode = WRITE_TO_FILE_ONLY;
223 bool loadedFromSidecar =
false;
231 QExplicitlySharedDataPointer<MetaEngineData::Private>
data;