From 3084a4e11e54b71065a408c7d288489bc72ea8a2 Mon Sep 17 00:00:00 2001 From: Alessio Bonfiglio Date: Wed, 11 Mar 2026 20:52:55 +0100 Subject: 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. --- src/dolphinviewcontainer.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/dolphinviewcontainer.h') diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h index 3829a4f78..f7ec01885 100644 --- a/src/dolphinviewcontainer.h +++ b/src/dolphinviewcontainer.h @@ -371,6 +371,16 @@ private Q_SLOTS: */ void setNameFilter(const QString &nameFilter); + /** + * Set the filtering mode of the filter. + */ + void setFilterMode(const KFileItemModelFilter::FilterMode mode); + + /** + * Enable or disable the case sensitive filtering. + */ + void setFilterCaseSensitive(const bool caseSensitive); + /** * Marks the view container as active * (see DolphinViewContainer::setActive()). -- cgit v1.3