merge branch 'user-dcp-profiles-dir'

This commit is contained in:
Alberto Griggio 2018-06-13 14:31:07 +02:00
commit 09b5dca08d
3 changed files with 41 additions and 38 deletions

View File

@ -1795,13 +1795,13 @@ void DCPStore::init(const Glib::ustring& rt_profile_dir, bool loadAll)
file_std_profiles.clear();
if (!loadAll) {
profileDir.assign (rt_profile_dir);
profileDir = { rt_profile_dir, Glib::build_filename(options.rtdir, "dcpprofiles") };
return;
}
if (!rt_profile_dir.empty()) {
std::deque<Glib::ustring> dirs = {
rt_profile_dir
rt_profile_dir,
Glib::build_filename(options.rtdir, "dcpprofiles")
};
while (!dirs.empty()) {
@ -1852,7 +1852,6 @@ void DCPStore::init(const Glib::ustring& rt_profile_dir, bool loadAll)
file_std_profiles[alias_name] = real->second;
}
}
}
}
bool DCPStore::isValidDCPFileName(const Glib::ustring& filename) const
@ -1907,13 +1906,15 @@ DCPProfile* DCPStore::getStdProfile(const Glib::ustring& requested_cam_short_nam
}
// profile not found, looking if we're in loadAll=false mode
if (!profileDir.empty()) {
const Glib::ustring fname = Glib::build_filename(profileDir, requested_cam_short_name + Glib::ustring(".dcp"));
for (const auto &dir : profileDir) {
if (!dir.empty()) {
const Glib::ustring fname = Glib::build_filename(dir, requested_cam_short_name + Glib::ustring(".dcp"));
if (Glib::file_test(fname, Glib::FILE_TEST_EXISTS)) {
return getProfile(fname);
}
}
}
return nullptr;
}

View File

@ -166,7 +166,7 @@ private:
DCPStore() = default;
mutable MyMutex mutex;
Glib::ustring profileDir;
std::vector<Glib::ustring> profileDir;
// these contain standard profiles from RT. keys are all in uppercase, file path is value
std::map<Glib::ustring, Glib::ustring> file_std_profiles;

View File

@ -334,6 +334,8 @@ public:
fileStdProfilesFileNames.clear();
if (loadAll) {
loadProfiles(stdProfilesDir, nullptr, nullptr, &fileStdProfilesFileNames, true);
Glib::ustring user_input_icc_dir = Glib::build_filename(options.rtdir, "iccprofiles", "input");
loadProfiles(user_input_icc_dir, nullptr, nullptr, &fileStdProfilesFileNames, true);
}
defaultMonitorProfile = settings->monitorProfile;