diff options
| author | Alessio Bonfiglio <[email protected]> | 2026-03-11 20:52:55 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2026-03-12 10:51:45 +0000 |
| commit | 3084a4e11e54b71065a408c7d288489bc72ea8a2 (patch) | |
| tree | 77b44ab7462b05af02822a2ab264d32796bfa7e6 /src/views/dolphinview.h | |
| parent | 287ff66e678f4f5a4edea28fc2699d73cefc3233 (diff) | |
filterbar: Add support to match case and glob patterns for the filter bar
Currently, Dolphin's filter bar defaults to plain text, but it actually has a hidden regex functionality too: it tries to auto-detect and switch to a regular expression if characters like '*', '?', or '[' are present in the search string.
This approach has a couple of issues. First, the regex/wildcard functionality is completely hidden from the user. Second, the auto-detection is flawed because those are perfectly valid characters in Linux filenames. If a user tries to filter for a file literally named [draft].txt, the auto-switching kicks in and causes unexpected behavior.
This MR fixes this by making the filtering modes explicit through a ComboBox at the side of the filter bar, with the options 'Plain Text', 'Glob' and 'Regular Expression'. It also adds a button to toggle the case sensitive matching. A visual feedback for when the user is inputting an invalid expression has also been implemented by turning the bar background red and making appear an error symbol.
Diffstat (limited to 'src/views/dolphinview.h')
| -rw-r--r-- | src/views/dolphinview.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 67233b668..6aa5b595d 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -10,6 +10,7 @@ #include "dolphin_export.h" #include "dolphintabwidget.h" +#include "kitemviews/private/kfileitemmodelfilter.h" #include "tooltips/tooltipmanager.h" #include "config-dolphin.h" @@ -277,6 +278,18 @@ public: QStringList mimeTypeFilters() const; /** + * Sets the filtering mode of the currently used nameFilter. + */ + void setFilterMode(KFileItemModelFilter::FilterMode mode); + KFileItemModelFilter::FilterMode filterMode() const; + + /** + * Enables or disable the caseSensitive matching of the currently used nameFilter. + */ + void setFilterCaseSensitive(bool caseSensitive); + bool isFilterCaseSensitive() const; + + /** * Tells the view to generate an updated status bar text. The result * is returned through the statusBarTextChanged(QString statusBarText) signal. * It will carry a textual representation of the state of the current |
