bool MetaEngine::Private::saveToXMPSidecar(const QFileInfo& finfo) const { QString filePath = MetaEngine::sidecarFilePathForFile(finfo.filePath()); if (filePath.isEmpty()) { return false; } try { Exiv2::Image::AutoPtr image; image = Exiv2::ImageFactory::create(Exiv2::ImageType::xmp, (const char*)(QFile::encodeName(filePath).constData())); return saveOperations(finfo, image); } catch( Exiv2::Error& e ) { printExiv2ExceptionError(QString::fromLatin1("Cannot save metadata to XMP sidecar using Exiv2 "), e); return false; } catch(...) { qCCritical(DIGIKAM_METAENGINE_LOG) << "Default exception from Exiv2"; return false; } }
bool KExiv2::Private::saveToXMPSidecar(const QFileInfo& finfo) const { QString filePath = KExiv2::sidecarFilePathForFile(finfo.filePath()); if (filePath.isEmpty()) { return false; } try { Exiv2::Image::AutoPtr image; image = Exiv2::ImageFactory::create(Exiv2::ImageType::xmp, (const char*)(QFile::encodeName(filePath))); return saveOperations(finfo, image); } catch( Exiv2::Error& e ) { printExiv2ExceptionError("Cannot save metadata to XMP sidecar using Exiv2 ", e); return false; } }
bool KExiv2::Private::saveToFile(const QFileInfo& finfo) const { if (!finfo.isWritable()) { kDebug() << "File '" << finfo.fileName().toAscii().constData() << "' is read only. Metadata not written."; return false; } QStringList rawTiffBasedSupported, rawTiffBasedNotSupported; // Raw files supported by Exiv2 0.21 rawTiffBasedSupported << "dng" << "nef" << "pef" << "orf" << "srw"; if (Exiv2::testVersion(0,23,0)) { rawTiffBasedSupported << "cr2"; } // Raw files not supported by Exiv2 0.21 rawTiffBasedNotSupported << "3fr" << "arw" << "cr2" << "dcr" << "erf" << "k25" << "kdc" << "mos" << "raw" << "sr2" << "srf" << "rw2"; if (!Exiv2::testVersion(0,23,0)) { rawTiffBasedNotSupported << "cr2"; } QString ext = finfo.suffix().toLower(); if (!writeRawFiles && (rawTiffBasedSupported.contains(ext) || rawTiffBasedNotSupported.contains(ext)) ) { kDebug() << finfo.fileName() << "is a TIFF based RAW file, writing to such a file is disabled by current settings."; return false; } /* if (rawTiffBasedNotSupported.contains(ext)) { kDebug() << finfo.fileName() << "is TIFF based RAW file not yet supported. Metadata not saved."; return false; } if (rawTiffBasedSupported.contains(ext) && !writeRawFiles) { kDebug() << finfo.fileName() << "is TIFF based RAW file supported but writing mode is disabled. " << "Metadata not saved."; return false; } kDebug() << "File Extension: " << ext << " is supported for writing mode"; bool ret = false; */ try { Exiv2::Image::AutoPtr image; image = Exiv2::ImageFactory::open((const char*)(QFile::encodeName(finfo.filePath()))); return saveOperations(finfo, image); } catch( Exiv2::Error& e ) { printExiv2ExceptionError("Cannot save metadata to image using Exiv2 ", e); return false; } }
bool MetaEngine::Private::saveToFile(const QFileInfo& finfo) const { if (!finfo.isWritable()) { qCDebug(DIGIKAM_METAENGINE_LOG) << "File" << finfo.fileName() << "is read only. Metadata not written."; return false; } QStringList rawTiffBasedSupported, rawTiffBasedNotSupported; // Raw files supported by Exiv2 0.21 rawTiffBasedSupported << QString::fromLatin1("dng") << QString::fromLatin1("nef") << QString::fromLatin1("pef") << QString::fromLatin1("orf") << QString::fromLatin1("srw"); if (Exiv2::testVersion(0,23,0)) { rawTiffBasedSupported << QString::fromLatin1("cr2"); } // Raw files not supported by Exiv2 0.21 rawTiffBasedNotSupported << QString::fromLatin1("3fr") << QString::fromLatin1("arw") << QString::fromLatin1("dcr") << QString::fromLatin1("erf") << QString::fromLatin1("k25") << QString::fromLatin1("kdc") << QString::fromLatin1("mos") << QString::fromLatin1("raw") << QString::fromLatin1("sr2") << QString::fromLatin1("srf") << QString::fromLatin1("rw2"); if (!Exiv2::testVersion(0,23,0)) { rawTiffBasedNotSupported << QString::fromLatin1("cr2"); } QString ext = finfo.suffix().toLower(); if (!writeRawFiles && (rawTiffBasedSupported.contains(ext) || rawTiffBasedNotSupported.contains(ext)) ) { qCDebug(DIGIKAM_METAENGINE_LOG) << finfo.fileName() << "is a TIFF based RAW file, writing to such a file is disabled by current settings."; return false; } /* if (rawTiffBasedNotSupported.contains(ext)) { qCDebug(DIGIKAM_METAENGINE_LOG) << finfo.fileName() << "is TIFF based RAW file not yet supported. Metadata not saved."; return false; } if (rawTiffBasedSupported.contains(ext) && !writeRawFiles) { qCDebug(DIGIKAM_METAENGINE_LOG) << finfo.fileName() << "is TIFF based RAW file supported but writing mode is disabled. " << "Metadata not saved."; return false; } qCDebug(DIGIKAM_METAENGINE_LOG) << "File Extension: " << ext << " is supported for writing mode"; bool ret = false; */ try { Exiv2::Image::AutoPtr image; image = Exiv2::ImageFactory::open((const char*)(QFile::encodeName(finfo.filePath()).constData())); return saveOperations(finfo, image); } catch( Exiv2::Error& e ) { printExiv2ExceptionError(QString::fromLatin1("Cannot save metadata to image using Exiv2 "), e); return false; } catch(...) { qCCritical(DIGIKAM_METAENGINE_LOG) << "Default exception from Exiv2"; return false; } }