more work on synchronizing metadata with xmp sidecars

(cherry picked from commit 81bbff6e6ae87bd35e8050a1cc621297ca24939b)
This commit is contained in:
Alberto Griggio
2019-05-14 07:03:07 -07:00
committed by Lawrence Lee
parent caa23df465
commit 1a771fa211
18 changed files with 611 additions and 173 deletions

View File

@@ -626,7 +626,7 @@ void Options::setDefaults()
rtSettings.edghi = 3.0;//1.1 and 5.
rtSettings.edglo = 0.5;//0.1 and 0.95
rtSettings.limrad = 20.;//1 and 60
rtSettings.protectred = 60;
rtSettings.protectredh = 0.3;
@@ -682,6 +682,9 @@ void Options::setDefaults()
cropAutoFit = false;
rtSettings.thumbnail_inspector_mode = rtengine::Settings::ThumbnailInspectorMode::JPEG;
rtSettings.xmp_sidecar_style = rtengine::Settings::XmpSidecarStyle::STD;
rtSettings.metadata_xmp_sync = rtengine::Settings::MetadataXmpSync::NONE;
}
Options* Options::copyFrom(Options* other)
@@ -1488,11 +1491,11 @@ void Options::readFromFile(Glib::ustring fname)
if (keyFile.has_key("GUI", "CurveBBoxPosition")) {
curvebboxpos = keyFile.get_integer("GUI", "CurveBBoxPosition");
}
if (keyFile.has_key("GUI", "Complexity")) {
complexity = keyFile.get_integer("GUI", "Complexity");
}
if (keyFile.has_key("GUI", "InspectorWindow")) {
inspectorWindow = keyFile.get_boolean("GUI", "InspectorWindow");
}
@@ -1755,8 +1758,8 @@ void Options::readFromFile(Glib::ustring fname)
}
}
if (keyFile.has_group("ICC Profile Creator")) {
if (keyFile.has_key("ICC Profile Creator", "PimariesPreset")) {
ICCPC_primariesPreset = keyFile.get_string("ICC Profile Creator", "PimariesPreset");
@@ -2030,6 +2033,27 @@ void Options::readFromFile(Glib::ustring fname)
}
}
if (keyFile.has_group("Metadata")) {
if (keyFile.has_key("Metadata", "XMPSidecarStyle")) {
std::string val = keyFile.get_string("Metadata", "XMPSidecarStyle");
if (val == "ext") {
rtSettings.xmp_sidecar_style = rtengine::Settings::XmpSidecarStyle::EXT;
} else {
rtSettings.xmp_sidecar_style = rtengine::Settings::XmpSidecarStyle::STD;
}
}
if (keyFile.has_key("Metadata", "XMPSynchronization")) {
std::string val = keyFile.get_string("Metadata", "XMPSynchronization");
if (val == "read") {
rtSettings.metadata_xmp_sync = rtengine::Settings::MetadataXmpSync::READ;
} else if (val == "readwrite") {
rtSettings.metadata_xmp_sync = rtengine::Settings::MetadataXmpSync::READ_WRITE;
} else {
rtSettings.metadata_xmp_sync = rtengine::Settings::MetadataXmpSync::NONE;
}
}
}
// --------------------------------------------------------------------------------------------------------
filterOutParsedExtensions();
@@ -2448,6 +2472,25 @@ void Options::saveToFile(Glib::ustring fname)
keyFile.set_string("Lensfun", "DBDirectory", rtSettings.lensfunDbDirectory);
switch (rtSettings.xmp_sidecar_style) {
case rtengine::Settings::XmpSidecarStyle::EXT:
keyFile.set_string("Metadata", "XMPSidecarStyle", "ext");
break;
default:
keyFile.set_string("Metadata", "XMPSidecarStyle", "std");
}
switch (rtSettings.metadata_xmp_sync) {
case rtengine::Settings::MetadataXmpSync::READ:
keyFile.set_string("Metadata", "XMPSynchronization", "read");
break;
case rtengine::Settings::MetadataXmpSync::READ_WRITE:
keyFile.set_string("Metadata", "XMPSynchronization", "readwrite");
break;
default:
keyFile.set_string("Metadata", "XMPSynchronization", "none");
}
keyData = keyFile.to_data();
} catch (Glib::KeyFileError &e) {