Merge pull request #7096 from xiota/pr_config
Enable extensions that are missing from config
This commit is contained in:
@@ -2154,7 +2154,7 @@ TP_WBALANCE_PATCHLABEL_TOOLTIP;Display number of read colours (max=237).\nDispla
|
||||
!PREFERENCES_PARSEDEXT;Parsed Extensions
|
||||
!PREFERENCES_PARSEDEXTADD;Add extension
|
||||
!PREFERENCES_PARSEDEXTADDHINT;Add entered extension to the list.
|
||||
!PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.
|
||||
!PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.\nPredefined extensions cannot be deleted.
|
||||
!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list.
|
||||
!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list.
|
||||
!PREFERENCES_PERFORMANCE_MEASURE;Measure
|
||||
|
@@ -1971,7 +1971,7 @@
|
||||
!PREFERENCES_PARSEDEXT;Parsed Extensions
|
||||
!PREFERENCES_PARSEDEXTADD;Add extension
|
||||
!PREFERENCES_PARSEDEXTADDHINT;Add entered extension to the list.
|
||||
!PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.
|
||||
!PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.\nPredefined extensions cannot be deleted.
|
||||
!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list.
|
||||
!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list.
|
||||
!PREFERENCES_PERFORMANCE_MEASURE;Measure
|
||||
|
@@ -2047,7 +2047,7 @@ PREFERENCES_PANFACTORLABEL;Pan rate amplification
|
||||
PREFERENCES_PARSEDEXT;Parsed Extensions
|
||||
PREFERENCES_PARSEDEXTADD;Add extension
|
||||
PREFERENCES_PARSEDEXTADDHINT;Add entered extension to the list.
|
||||
PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.
|
||||
PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list.\nPredefined extensions cannot be deleted.
|
||||
PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list.
|
||||
PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list.
|
||||
PREFERENCES_PERFORMANCE_MEASURE;Measure
|
||||
|
@@ -12,8 +12,8 @@ MultiUser=true
|
||||
|
||||
[File Browser]
|
||||
# Image filename extensions to be looked for, and their corresponding search state (0/1 -> skip/include)
|
||||
ParseExtensions=3fr;arw;arq;cr2;cr3;crf;crw;dcr;dng;fff;iiq;jpg;jpeg;jxl;kdc;mef;mos;mrw;nef;nrw;orf;ori;pef;png;raf;raw;rw2;rwl;rwz;sr2;srf;srw;tif;tiff;x3f;
|
||||
ParseExtensionsEnabled=1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;1;1;1;1;
|
||||
ParseExtensions=
|
||||
ParseExtensionsEnabled=
|
||||
|
||||
[Output]
|
||||
PathTemplate=%p1/converted/%f
|
||||
|
@@ -13,8 +13,8 @@ UseSystemTheme=false
|
||||
|
||||
[File Browser]
|
||||
# Image filename extensions to be looked for, and their corresponding search state (0/1 -> skip/include)
|
||||
ParseExtensions=3fr;arw;arq;cr2;cr3;crf;crw;dcr;dng;fff;iiq;jpg;jpeg;jxl;kdc;mef;mos;mrw;nef;nrw;orf;ori;pef;png;raf;raw;rw2;rwl;rwz;sr2;srf;srw;tif;tiff;x3f;
|
||||
ParseExtensionsEnabled=1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;1;1;1;1;
|
||||
ParseExtensions=
|
||||
ParseExtensionsEnabled=
|
||||
|
||||
[Output]
|
||||
PathTemplate=%p1/converted/%f
|
||||
|
@@ -14,8 +14,8 @@ UseSystemTheme=false
|
||||
|
||||
[File Browser]
|
||||
# Image filename extensions to be looked for, and their corresponding search state (0/1 -> skip/include)
|
||||
ParseExtensions=3fr;arw;arq;cr2;cr3;crf;crw;dcr;dng;fff;iiq;jpg;jpeg;jxl;kdc;mef;mos;mrw;nef;nrw;orf;ori;pef;png;raf;raw;rw2;rwl;rwz;sr2;srf;srw;tif;tiff;x3f;
|
||||
ParseExtensionsEnabled=1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;1;1;1;1;
|
||||
ParseExtensions=
|
||||
ParseExtensionsEnabled=
|
||||
|
||||
[Output]
|
||||
PathTemplate=%p1/converted/%f
|
||||
|
@@ -580,8 +580,8 @@ void Options::setDefaults()
|
||||
|
||||
rtSettings.darkFramesPath = "";
|
||||
rtSettings.flatFieldsPath = "";
|
||||
rtSettings.cameraProfilesPath = "";
|
||||
rtSettings.lensProfilesPath = "";
|
||||
rtSettings.cameraProfilesPath = "";
|
||||
rtSettings.lensProfilesPath = "";
|
||||
|
||||
#ifdef _WIN32
|
||||
const gchar* sysRoot = g_getenv("SystemRoot"); // Returns e.g. "c:\Windows"
|
||||
@@ -673,8 +673,8 @@ void Options::setDefaults()
|
||||
lastIccDir = rtSettings.iccDirectory;
|
||||
lastDarkframeDir = rtSettings.darkFramesPath;
|
||||
lastFlatfieldDir = rtSettings.flatFieldsPath;
|
||||
lastCameraProfilesDir = rtSettings.cameraProfilesPath;
|
||||
lastLensProfilesDir = rtSettings.lensProfilesPath;
|
||||
lastCameraProfilesDir = rtSettings.cameraProfilesPath;
|
||||
lastLensProfilesDir = rtSettings.lensProfilesPath;
|
||||
// rtSettings.bw_complementary = true;
|
||||
// There is no reasonable default for curves. We can still suppose that they will take place
|
||||
// in a subdirectory of the user's own ProcParams presets, i.e. in a subdirectory
|
||||
@@ -816,7 +816,7 @@ void Options::readFromFile(Glib::ustring fname)
|
||||
rtSettings.cameraProfilesPath = keyFile.get_string("General", "CameraProfilesPath");
|
||||
}
|
||||
|
||||
if (keyFile.has_key("General", "LensProfilesPath")) {
|
||||
if (keyFile.has_key("General", "LensProfilesPath")) {
|
||||
rtSettings.lensProfilesPath = keyFile.get_string("General", "LensProfilesPath");
|
||||
}
|
||||
|
||||
@@ -1268,6 +1268,29 @@ void Options::readFromFile(Glib::ustring fname)
|
||||
}
|
||||
}
|
||||
|
||||
// check and add extensions that are missing from config
|
||||
std::map<std::string, int> checkedExtensions;
|
||||
|
||||
if (parseExtensions.size() == parseExtensionsEnabled.size()) {
|
||||
for (auto i = 0; i < parseExtensions.size(); ++i) {
|
||||
checkedExtensions[parseExtensions[i]] = parseExtensionsEnabled[i];
|
||||
}
|
||||
}
|
||||
|
||||
parseExtensions.clear();
|
||||
parseExtensionsEnabled.clear();
|
||||
|
||||
for (auto const &i : knownExtensions) {
|
||||
if (checkedExtensions.count(i) == 0) {
|
||||
checkedExtensions[i] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
for (auto const &x : checkedExtensions) {
|
||||
parseExtensions.emplace_back(x.first);
|
||||
parseExtensionsEnabled.emplace_back(x.second);
|
||||
}
|
||||
|
||||
if (keyFile.has_key("File Browser", "ThumbnailArrangement")) {
|
||||
fbArrangement = keyFile.get_integer("File Browser", "ThumbnailArrangement");
|
||||
}
|
||||
@@ -2395,8 +2418,8 @@ void Options::saveToFile(Glib::ustring fname)
|
||||
keyFile.set_string("General", "Version", RTVERSION);
|
||||
keyFile.set_string("General", "DarkFramesPath", rtSettings.darkFramesPath);
|
||||
keyFile.set_string("General", "FlatFieldsPath", rtSettings.flatFieldsPath);
|
||||
keyFile.set_string("General", "CameraProfilesPath", rtSettings.cameraProfilesPath);
|
||||
keyFile.set_string("General", "LensProfilesPath", rtSettings.lensProfilesPath);
|
||||
keyFile.set_string("General", "CameraProfilesPath", rtSettings.cameraProfilesPath);
|
||||
keyFile.set_string("General", "LensProfilesPath", rtSettings.lensProfilesPath);
|
||||
keyFile.set_boolean("General", "Verbose", rtSettings.verbose);
|
||||
keyFile.set_integer("General", "Cropsleep", rtSettings.cropsleep);
|
||||
keyFile.set_double("General", "Reduchigh", rtSettings.reduchigh);
|
||||
|
@@ -310,6 +310,13 @@ public:
|
||||
int maxThumbnailWidth;
|
||||
std::size_t maxCacheEntries;
|
||||
int thumbInterp; // 0: nearest, 1: bilinear
|
||||
|
||||
std::vector<std::string> knownExtensions = {
|
||||
"3fr", "arw", "arq", "cr2", "cr3", "crf", "crw", "dcr", "dng",
|
||||
"fff", "iiq", "jpg", "jpeg", "jxl", "kdc", "mef", "mos", "mrw",
|
||||
"nef", "nrw", "orf", "ori", "pef", "png", "raf", "raw", "rw2",
|
||||
"rwl", "rwz", "sr2", "srf", "srw", "tif", "tiff", "x3f"};
|
||||
|
||||
std::vector<Glib::ustring> parseExtensions; // List containing all extensions type
|
||||
std::vector<int> parseExtensionsEnabled; // List of bool to retain extension or not
|
||||
std::vector<Glib::ustring> parsedExtensions; // List containing all retained extensions (lowercase)
|
||||
@@ -472,8 +479,8 @@ public:
|
||||
Glib::ustring lastIccDir;
|
||||
Glib::ustring lastDarkframeDir;
|
||||
Glib::ustring lastFlatfieldDir;
|
||||
Glib::ustring lastCameraProfilesDir;
|
||||
Glib::ustring lastLensProfilesDir;
|
||||
Glib::ustring lastCameraProfilesDir;
|
||||
Glib::ustring lastLensProfilesDir;
|
||||
Glib::ustring lastRgbCurvesDir;
|
||||
Glib::ustring lastLabCurvesDir;
|
||||
Glib::ustring lastRetinexDir;
|
||||
|
@@ -656,7 +656,7 @@ Gtk::Widget* Preferences::getImageProcessingPanel ()
|
||||
Gtk::Grid* dirgrid = Gtk::manage(new Gtk::Grid());
|
||||
setExpandAlignProperties(dirgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
|
||||
|
||||
// Dark Frames Dir
|
||||
// Dark Frames Dir
|
||||
Gtk::Label *dfLab = Gtk::manage(new Gtk::Label(M("PREFERENCES_DIRDARKFRAMES") + ":"));
|
||||
setExpandAlignProperties(dfLab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
|
||||
darkFrameDir = Gtk::manage(new MyFileChooserButton(M("PREFERENCES_DIRDARKFRAMES"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
|
||||
@@ -705,7 +705,7 @@ Gtk::Widget* Preferences::getImageProcessingPanel ()
|
||||
dirgrid->attach_next_to(*cameraProfilesDirLabel, *clutsDirLabel, Gtk::POS_BOTTOM, 1, 1);
|
||||
dirgrid->attach_next_to(*cameraProfilesDir, *cameraProfilesDirLabel, Gtk::POS_RIGHT, 1, 1);
|
||||
|
||||
//Lens Profiles Dir
|
||||
//Lens Profiles Dir
|
||||
Gtk::Label *lensProfilesDirLabel = Gtk::manage(new Gtk::Label(M("PREFERENCES_LENSPROFILESDIR") + ":"));
|
||||
lensProfilesDirLabel->set_tooltip_text(M("PREFERENCES_LENSPROFILESDIR_TOOLTIP"));
|
||||
setExpandAlignProperties(lensProfilesDirLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
|
||||
@@ -1552,9 +1552,9 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
||||
|
||||
frmnu->add (*menuGrid);
|
||||
|
||||
|
||||
Gtk::Frame* fre = Gtk::manage(new Gtk::Frame(M("PREFERENCES_PARSEDEXT")));
|
||||
Gtk::Box* vbre = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
|
||||
|
||||
Gtk::Box* hb0 = Gtk::manage(new Gtk::Box());
|
||||
Gtk::Label* elab = Gtk::manage (new Gtk::Label (M("PREFERENCES_PARSEDEXTADD") + ":", Gtk::ALIGN_START));
|
||||
hb0->pack_start(*elab, Gtk::PACK_SHRINK, 4);
|
||||
@@ -1566,8 +1566,10 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
||||
delExt = Gtk::manage(new Gtk::Button());
|
||||
moveExtUp = Gtk::manage(new Gtk::Button());
|
||||
moveExtDown = Gtk::manage(new Gtk::Button());
|
||||
addExt->set_tooltip_text(M("PREFERENCES_PARSEDEXTADDHINT"));
|
||||
delExt->set_tooltip_text(M("PREFERENCES_PARSEDEXTDELHINT"));
|
||||
addExt->set_sensitive(false);
|
||||
delExt->set_sensitive(false);
|
||||
addExt->set_tooltip_markup(M("PREFERENCES_PARSEDEXTADDHINT"));
|
||||
delExt->set_tooltip_markup(M("PREFERENCES_PARSEDEXTDELHINT"));
|
||||
moveExtUp->set_tooltip_text(M("PREFERENCES_PARSEDEXTUPHINT"));
|
||||
moveExtDown->set_tooltip_text(M("PREFERENCES_PARSEDEXTDOWNHINT"));
|
||||
Gtk::Image* addExtImg = Gtk::manage ( new RTImage ("add-small", Gtk::ICON_SIZE_BUTTON) );
|
||||
@@ -1582,6 +1584,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
||||
hb0->pack_end(*moveExtUp, Gtk::PACK_SHRINK, 4);
|
||||
hb0->pack_end(*delExt, Gtk::PACK_SHRINK, 4);
|
||||
hb0->pack_end(*addExt, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
extensions = Gtk::manage(new Gtk::TreeView());
|
||||
Gtk::ScrolledWindow* hscrollw = Gtk::manage(new Gtk::ScrolledWindow());
|
||||
hscrollw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
|
||||
@@ -1591,8 +1594,9 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
||||
extensions->append_column_editable("Enabled", extensionColumns.enabled);
|
||||
extensions->append_column("Extension", extensionColumns.ext);
|
||||
extensions->set_headers_visible(false);
|
||||
vbre->pack_start(*hscrollw);
|
||||
|
||||
vbre->pack_start(*hb0, Gtk::PACK_SHRINK, 4);
|
||||
vbre->pack_start(*hscrollw);
|
||||
|
||||
fre->add(*vbre);
|
||||
|
||||
@@ -1670,11 +1674,14 @@ Gtk::Widget* Preferences::getFileBrowserPanel()
|
||||
|
||||
vbFileBrowser->pack_start (*hb6, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
extensions->signal_cursor_changed().connect(sigc::mem_fun(*this, &Preferences::extensionsChanged));
|
||||
extension->signal_changed().connect(sigc::mem_fun(*this, &Preferences::extensionChanged));
|
||||
|
||||
addExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::addExtPressed));
|
||||
delExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::delExtPressed));
|
||||
moveExtUp->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtUpPressed));
|
||||
moveExtDown->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::moveExtDownPressed));
|
||||
extension->signal_activate().connect(sigc::mem_fun(*this, &Preferences::addExtPressed));
|
||||
|
||||
clearThumbsBtn->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::clearThumbImagesPressed) );
|
||||
if (moptions.saveParamsCache) {
|
||||
clearProfilesBtn->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::clearProfilesPressed));
|
||||
@@ -2668,25 +2675,69 @@ void Preferences::workflowUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
void Preferences::addExtPressed()
|
||||
void Preferences::extensionsChanged()
|
||||
{
|
||||
const Glib::RefPtr<Gtk::TreeSelection> selection = extensions->get_selection();
|
||||
if (!selection) {
|
||||
delExt->set_sensitive(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const Gtk::TreeModel::iterator selected = selection->get_selected();
|
||||
if (!selected) {
|
||||
delExt->set_sensitive(false);
|
||||
return;
|
||||
}
|
||||
|
||||
bool delOkay = true;
|
||||
for (auto const &x : moptions.knownExtensions) {
|
||||
if (x == (*selected)[extensionColumns.ext]) {
|
||||
delOkay = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
delExt->set_sensitive(delOkay);
|
||||
}
|
||||
|
||||
void Preferences::extensionChanged()
|
||||
{
|
||||
if (extension->get_text().empty()) {
|
||||
addExt->set_sensitive(false);
|
||||
return;
|
||||
}
|
||||
|
||||
Gtk::TreeNodeChildren c = extensionModel->children();
|
||||
for (size_t i = 0; i < c.size(); i++) {
|
||||
if (c[i][extensionColumns.ext] == extension->get_text()) {
|
||||
addExt->set_sensitive(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < c.size(); i++)
|
||||
addExt->set_sensitive(true);
|
||||
}
|
||||
|
||||
void Preferences::addExtPressed()
|
||||
{
|
||||
Gtk::TreeNodeChildren c = extensionModel->children();
|
||||
|
||||
for (size_t i = 0; i < c.size(); i++) {
|
||||
if (c[i][extensionColumns.ext] == extension->get_text()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Gtk::TreeRow row = * (extensionModel->append());
|
||||
Gtk::TreeRow row = * (extensionModel->prepend());
|
||||
|
||||
row[extensionColumns.enabled] = true;
|
||||
row[extensionColumns.ext] = extension->get_text();
|
||||
|
||||
extension->set_text("");
|
||||
addExt->set_sensitive(false);
|
||||
}
|
||||
|
||||
void Preferences::delExtPressed()
|
||||
{
|
||||
|
||||
extensionModel->erase(extensions->get_selection()->get_selected());
|
||||
}
|
||||
|
||||
|
@@ -323,6 +323,8 @@ public:
|
||||
void observer10Toggled ();
|
||||
|
||||
void selectStartupDir ();
|
||||
void extensionsChanged ();
|
||||
void extensionChanged ();
|
||||
void addExtPressed ();
|
||||
void delExtPressed ();
|
||||
void moveExtUpPressed ();
|
||||
|
Reference in New Issue
Block a user