From 29f4f37cdb114e86e7e8d8ee5a34f126bf10905d Mon Sep 17 00:00:00 2001 From: xiota Date: Mon, 10 Jun 2024 04:23:19 +0000 Subject: [PATCH 1/7] Enable extensions that are missing from config --- rtdata/options/options.lin | 4 ++-- rtdata/options/options.osx | 4 ++-- rtdata/options/options.win | 4 ++-- rtgui/options.cc | 29 +++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/rtdata/options/options.lin b/rtdata/options/options.lin index 2a96c6997..18cb01901 100644 --- a/rtdata/options/options.lin +++ b/rtdata/options/options.lin @@ -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 diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index eff9cd8d9..8d954529f 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -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 diff --git a/rtdata/options/options.win b/rtdata/options/options.win index e3f43343e..a88cc3db2 100644 --- a/rtdata/options/options.win +++ b/rtdata/options/options.win @@ -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 diff --git a/rtgui/options.cc b/rtgui/options.cc index c96febe86..643012dfe 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -1268,6 +1268,35 @@ void Options::readFromFile(Glib::ustring fname) } } + // check and add extensions that are missing from config + static const std::vector extensions_known = { + "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::map extensions_checked; + + if (parseExtensions.size() == parseExtensionsEnabled.size()) { + for (auto i = 0; i < parseExtensions.size(); ++i) { + extensions_checked[parseExtensions[i]] = parseExtensionsEnabled[i]; + } + } + + parseExtensions.clear(); + parseExtensionsEnabled.clear(); + + for (auto const &i : extensions_known) { + if (extensions_checked.count(i) == 0) { + extensions_checked[i] = 1; + } + } + + for (auto const &x : extensions_checked) { + parseExtensions.emplace_back(x.first); + parseExtensionsEnabled.emplace_back(x.second); + } + if (keyFile.has_key("File Browser", "ThumbnailArrangement")) { fbArrangement = keyFile.get_integer("File Browser", "ThumbnailArrangement"); } From 8503d5323e5b05dc79c583d59de395e4d1544714 Mon Sep 17 00:00:00 2001 From: xiota Date: Mon, 10 Jun 2024 13:46:17 +0000 Subject: [PATCH 2/7] Fix whitespace/formatting --- rtgui/options.cc | 16 ++++++++-------- rtgui/options.h | 6 +++--- rtgui/preferences.cc | 13 +++++++------ 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 643012dfe..af40595aa 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -471,7 +471,7 @@ void Options::setDefaults() curvebboxpos = 1; complexity = 2; spotmet = 0; - + inspectorWindow = false; zoomOnScroll = true; prevdemo = PD_Sidecar; @@ -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"); } @@ -2424,8 +2424,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); diff --git a/rtgui/options.h b/rtgui/options.h index b2221e844..38f4fe896 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -331,7 +331,7 @@ public: bool overwriteOutputFile; int complexity; int spotmet; - + bool inspectorWindow; // open inspector in separate window bool zoomOnScroll; // translate scroll events to zoom @@ -472,8 +472,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; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index d92080af8..04a9ece60 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -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); @@ -1111,7 +1111,7 @@ Gtk::Widget* Preferences::getGeneralPanel() workflowGrid->attach_next_to(*curveBBoxPosL, *flayoutlab, Gtk::POS_BOTTOM, 1, 1); workflowGrid->attach_next_to(*curveBBoxPosC, *editorLayout, Gtk::POS_BOTTOM, 1, 1); workflowGrid->attach_next_to(*curveBBoxPosRestartL, *lNextStart, Gtk::POS_BOTTOM, 1, 1); - + curveBBoxPosS = Gtk::manage(new Gtk::ComboBoxText()); setExpandAlignProperties(curveBBoxPosS, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); @@ -2013,8 +2013,8 @@ void Preferences::storePreferences() moptions.curvebboxpos = curveBBoxPosC->get_active_row_number(); moptions.complexity = complexitylocal->get_active_row_number(); - moptions.spotmet = spotlocal->get_active_row_number(); - + moptions.spotmet = spotlocal->get_active_row_number(); + moptions.inspectorWindow = inspectorWindowCB->get_active(); moptions.zoomOnScroll = zoomOnScrollCB->get_active(); moptions.histogramPosition = ckbHistogramPositionLeft->get_active() ? 1 : 2; @@ -2673,10 +2673,11 @@ void Preferences::addExtPressed() Gtk::TreeNodeChildren c = extensionModel->children(); - for (size_t i = 0; i < c.size(); i++) + for (size_t i = 0; i < c.size(); i++) { if (c[i][extensionColumns.ext] == extension->get_text()) { return; } + } Gtk::TreeRow row = * (extensionModel->append()); From 7f7e808b9c07d6da896af462a8ab63146735fd74 Mon Sep 17 00:00:00 2001 From: xiota Date: Mon, 10 Jun 2024 14:03:41 +0000 Subject: [PATCH 3/7] Don't allow deleting known extensions --- rtgui/options.cc | 18 ++++++------------ rtgui/options.h | 7 +++++++ rtgui/preferences.cc | 23 ++++++++++++++++++++++- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index af40595aa..a6756d37d 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -1269,30 +1269,24 @@ void Options::readFromFile(Glib::ustring fname) } // check and add extensions that are missing from config - static const std::vector extensions_known = { - "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::map extensions_checked; + std::map checkedExtensions; if (parseExtensions.size() == parseExtensionsEnabled.size()) { for (auto i = 0; i < parseExtensions.size(); ++i) { - extensions_checked[parseExtensions[i]] = parseExtensionsEnabled[i]; + checkedExtensions[parseExtensions[i]] = parseExtensionsEnabled[i]; } } parseExtensions.clear(); parseExtensionsEnabled.clear(); - for (auto const &i : extensions_known) { - if (extensions_checked.count(i) == 0) { - extensions_checked[i] = 1; + for (auto const &i : knownExtensions) { + if (checkedExtensions.count(i) == 0) { + checkedExtensions[i] = 1; } } - for (auto const &x : extensions_checked) { + for (auto const &x : checkedExtensions) { parseExtensions.emplace_back(x.first); parseExtensionsEnabled.emplace_back(x.second); } diff --git a/rtgui/options.h b/rtgui/options.h index 38f4fe896..6a2b0c35d 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -310,6 +310,13 @@ public: int maxThumbnailWidth; std::size_t maxCacheEntries; int thumbInterp; // 0: nearest, 1: bilinear + + std::vector 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 parseExtensions; // List containing all extensions type std::vector parseExtensionsEnabled; // List of bool to retain extension or not std::vector parsedExtensions; // List containing all retained extensions (lowercase) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 04a9ece60..97bfb92b6 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -2687,8 +2687,29 @@ void Preferences::addExtPressed() void Preferences::delExtPressed() { + const Glib::RefPtr selection = extensions->get_selection(); - extensionModel->erase(extensions->get_selection()->get_selected()); + if (!selection) { + return; + } + + const Gtk::TreeModel::iterator selected = selection->get_selected(); + + if (!selected) { + return; + } + + bool delOkay = true; + for (auto const &x : moptions.knownExtensions) { + if (x == (*selected)[extensionColumns.ext]) { + delOkay = false; + break; + } + } + + if (delOkay) { + extensionModel->erase(selected); + } } void Preferences::moveExtUpPressed() From cffba6c3b065a3d537107875d98ab527484d014d Mon Sep 17 00:00:00 2001 From: xiota Date: Mon, 17 Jun 2024 02:15:19 +0000 Subject: [PATCH 4/7] Move add-extension panel to top of frame --- rtgui/preferences.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 97bfb92b6..54e0c6725 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -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); @@ -1582,6 +1582,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 +1592,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); @@ -2679,7 +2681,7 @@ void Preferences::addExtPressed() } } - Gtk::TreeRow row = * (extensionModel->append()); + Gtk::TreeRow row = * (extensionModel->prepend()); row[extensionColumns.enabled] = true; row[extensionColumns.ext] = extension->get_text(); From 6eb191c5e5e55044c357a0c27869c7bf2c744277 Mon Sep 17 00:00:00 2001 From: xiota Date: Mon, 17 Jun 2024 01:25:06 +0000 Subject: [PATCH 5/7] Disable addExt/delExt buttons based on context --- rtgui/preferences.cc | 81 +++++++++++++++++++++++++++++--------------- rtgui/preferences.h | 2 ++ 2 files changed, 56 insertions(+), 27 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 54e0c6725..94dc68e65 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -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) ); @@ -1672,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)); @@ -2670,9 +2675,50 @@ void Preferences::workflowUpdate() } } +void Preferences::extensionsChanged() +{ + const Glib::RefPtr 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()[0] == '\0') { + 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; + } + } + + addExt->set_sensitive(true); +} + void Preferences::addExtPressed() { - Gtk::TreeNodeChildren c = extensionModel->children(); for (size_t i = 0; i < c.size(); i++) { @@ -2685,33 +2731,14 @@ void Preferences::addExtPressed() row[extensionColumns.enabled] = true; row[extensionColumns.ext] = extension->get_text(); + + extension->set_text(""); + addExt->set_sensitive(false); } void Preferences::delExtPressed() { - const Glib::RefPtr selection = extensions->get_selection(); - - if (!selection) { - return; - } - - const Gtk::TreeModel::iterator selected = selection->get_selected(); - - if (!selected) { - return; - } - - bool delOkay = true; - for (auto const &x : moptions.knownExtensions) { - if (x == (*selected)[extensionColumns.ext]) { - delOkay = false; - break; - } - } - - if (delOkay) { - extensionModel->erase(selected); - } + extensionModel->erase(extensions->get_selection()->get_selected()); } void Preferences::moveExtUpPressed() diff --git a/rtgui/preferences.h b/rtgui/preferences.h index e01ec85c0..b98a8a306 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -323,6 +323,8 @@ public: void observer10Toggled (); void selectStartupDir (); + void extensionsChanged (); + void extensionChanged (); void addExtPressed (); void delExtPressed (); void moveExtUpPressed (); From 88160bd8b858256260253546b5b014f7b9991259 Mon Sep 17 00:00:00 2001 From: xiota Date: Sun, 30 Jun 2024 02:53:49 +0000 Subject: [PATCH 6/7] Update PREFERENCES_PARSEDEXTDELHINT (default/English) --- rtdata/languages/English (UK) | 2 +- rtdata/languages/English (US) | 2 +- rtdata/languages/default | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 37ccdc48f..5d22fa61f 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -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 diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 079713ac1..4cd01622a 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -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 diff --git a/rtdata/languages/default b/rtdata/languages/default index 75d060dec..7a4c8aea7 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2038,7 +2038,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 From 7168870d695d887e65c4bf595843d1170b542ea7 Mon Sep 17 00:00:00 2001 From: xiota Date: Sun, 30 Jun 2024 02:55:30 +0000 Subject: [PATCH 7/7] Improve empty string check --- rtgui/preferences.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 94dc68e65..f6f80a2d3 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -2701,7 +2701,7 @@ void Preferences::extensionsChanged() void Preferences::extensionChanged() { - if (extension->get_text()[0] == '\0') { + if (extension->get_text().empty()) { addExt->set_sensitive(false); return; }