Add recursive sub-folder image browsing

Add toggle button in the top toolbar of the file browser to activate or
deactivate recursive browsing. Toggle state is saved in options.

Limit recursion depth and explored directory count.
This commit is contained in:
Lawrence Lee
2023-06-10 18:28:17 -07:00
parent c07a6e8901
commit 676ab8649b
6 changed files with 246 additions and 47 deletions

View File

@@ -435,6 +435,9 @@ void Options::setDefaults()
parseExtensionsEnabled.clear();
parsedExtensions.clear();
parsedExtensionsSet.clear();
browseRecursive = false;
browseRecursiveDepth = 10;
browseRecursiveMaxDirs = 100;
renameUseTemplates = false;
renameTemplates.clear();
thumbnailZoomRatios.clear();
@@ -1342,6 +1345,18 @@ void Options::readFromFile(Glib::ustring fname)
if (keyFile.has_key("File Browser", "SortDescending")) {
sortDescending = keyFile.get_boolean("File Browser", "SortDescending");
}
if (keyFile.has_key("File Browser", "BrowseRecursive")) {
browseRecursive = keyFile.get_boolean("File Browser", "BrowseRecursive");
}
if (keyFile.has_key("File Browser", "BrowseRecursiveDepth")) {
browseRecursiveDepth = keyFile.get_integer("File Browser", "BrowseRecursiveDepth");
}
if (keyFile.has_key("File Browser", "BrowseRecursiveMaxDirs")) {
browseRecursiveMaxDirs = keyFile.get_integer("File Browser", "BrowseRecursiveMaxDirs");
}
}
if (keyFile.has_group("Clipping Indication")) {
@@ -2410,6 +2425,9 @@ void Options::saveToFile(Glib::ustring fname)
}
keyFile.set_integer("File Browser", "SortMethod", sortMethod);
keyFile.set_boolean("File Browser", "SortDescending", sortDescending);
keyFile.set_boolean("File Browser", "BrowseRecursive", browseRecursive);
keyFile.set_integer("File Browser", "BrowseRecursiveDepth", browseRecursiveDepth);
keyFile.set_integer("File Browser", "BrowseRecursiveMaxDirs", browseRecursiveMaxDirs);
keyFile.set_integer("Clipping Indication", "HighlightThreshold", highlightThreshold);
keyFile.set_integer("Clipping Indication", "ShadowThreshold", shadowThreshold);
keyFile.set_boolean("Clipping Indication", "BlinkClipped", blinkClipped);