From 660c9507cceb35c914af243ad476ce6cbf91f89f Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 11 Jun 2023 11:47:46 -0700 Subject: [PATCH] Add recursive browsing options to preferences Allow maximum recursion depth and maximum sub-directories to be configured in preferences. --- rtdata/languages/default | 2 ++ rtgui/preferences.cc | 22 ++++++++++++++++++++++ rtgui/preferences.h | 2 ++ 3 files changed, 26 insertions(+) diff --git a/rtdata/languages/default b/rtdata/languages/default index c23410661..0b581d05d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1824,6 +1824,8 @@ PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustment PREFERENCES_BEHAVIOR;Behavior PREFERENCES_BEHSETALL;All to 'Set' PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. +PREFERENCES_BROWSERECURSIVEDEPTH;Browse sub-folders depth +PREFERENCES_BROWSERECURSIVEMAXDIRS;Maximum sub-folders PREFERENCES_CACHECLEAR;Clear PREFERENCES_CACHECLEAR_ALL;Clear all cached files: PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index c9737704e..025fbb3ae 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1389,6 +1389,24 @@ Gtk::Widget* Preferences::getFileBrowserPanel() maxRecentFolders->set_range(1, 25); vbro->pack_start(*hbrecent, Gtk::PACK_SHRINK, 4); + // Recursive browsing options. + Gtk::Box *hbBrowseRecursive = Gtk::manage(new Gtk::Box()); + Gtk::Label *labBrowseRecursiveDepth = Gtk::manage(new Gtk::Label(M("PREFERENCES_BROWSERECURSIVEDEPTH") + ":")); + browseRecursiveDepth = Gtk::manage(new Gtk::SpinButton()); + browseRecursiveDepth->set_digits(0); + browseRecursiveDepth->set_increments(1, 5); + browseRecursiveDepth->set_range(1, 999); + Gtk::Label *labBrowseRecursiveMaxDirs = Gtk::manage(new Gtk::Label(M("PREFERENCES_BROWSERECURSIVEMAXDIRS") + ":")); + browseRecursiveMaxDirs = Gtk::manage(new Gtk::SpinButton()); + browseRecursiveMaxDirs->set_digits(0); + browseRecursiveMaxDirs->set_increments(1, 5); + browseRecursiveMaxDirs->set_range(1, 999); + hbBrowseRecursive->pack_start(*labBrowseRecursiveDepth, Gtk::PACK_SHRINK, 4); + hbBrowseRecursive->pack_start(*browseRecursiveDepth, Gtk::PACK_SHRINK, 4); + hbBrowseRecursive->pack_start(*labBrowseRecursiveMaxDirs, Gtk::PACK_SHRINK, 4); + hbBrowseRecursive->pack_start(*browseRecursiveMaxDirs, Gtk::PACK_SHRINK, 4); + vbro->pack_start(*hbBrowseRecursive, Gtk::PACK_SHRINK, 0); + fro->add(*vbro); @@ -1864,6 +1882,8 @@ void Preferences::storePreferences() moptions.filmStripOverlayedFileNames = filmStripOverlayedFileNames->get_active(); moptions.sameThumbSize = sameThumbSize->get_active(); moptions.internalThumbIfUntouched = ckbInternalThumbIfUntouched->get_active(); + moptions.browseRecursiveDepth = static_cast(browseRecursiveDepth->get_value()); + moptions.browseRecursiveMaxDirs = static_cast(browseRecursiveMaxDirs->get_value()); auto save_where = saveParamsPreference->get_active_row_number(); moptions.saveParamsFile = save_where == 0 || save_where == 2; @@ -2089,6 +2109,8 @@ void Preferences::fillPreferences() filmStripOverlayedFileNames->set_active(moptions.filmStripOverlayedFileNames); sameThumbSize->set_active(moptions.sameThumbSize); ckbInternalThumbIfUntouched->set_active(moptions.internalThumbIfUntouched); + browseRecursiveDepth->set_value(moptions.browseRecursiveDepth); + browseRecursiveMaxDirs->set_value(moptions.browseRecursiveMaxDirs); saveParamsPreference->set_active(moptions.saveParamsFile ? (moptions.saveParamsCache ? 2 : 0) : 1); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 6e31761a4..829506894 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -194,6 +194,8 @@ class Preferences final : Gtk::CheckButton* overlayedFileNames; Gtk::CheckButton* filmStripOverlayedFileNames; Gtk::CheckButton* sameThumbSize; + Gtk::SpinButton* browseRecursiveDepth; + Gtk::SpinButton* browseRecursiveMaxDirs; Gtk::SpinButton* threadsSpinBtn; Gtk::SpinButton* clutCacheSizeSB;