File: wildcardhelpers.cpp

package info (click to toggle)
kdevelop 4%3A24.12.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 71,888 kB
  • sloc: cpp: 290,869; python: 3,626; javascript: 3,518; sh: 1,316; ansic: 703; xml: 401; php: 95; lisp: 66; makefile: 31; sed: 12
file content (24 lines) | stat: -rw-r--r-- 1,064 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
    SPDX-FileCopyrightText: 2024 Igor Kushnir <igorkuo@gmail.com>

    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#include "wildcardhelpers.h"

#include <QRegularExpression>
#include <QSortFilterProxyModel>

void WildcardHelpers::setFilterNonPathWildcard(QSortFilterProxyModel& model, const QString& pattern)
{
#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
    // This code would have been equivalent to `model.setFilterWildcard(pattern);` had the latter passed the
    // NonPathWildcardConversion flag to wildcardToRegularExpression(). This implementation is based on comparison of
    // the definitions of QSortFilterProxyModel's setFilterRegularExpression() and setFilterWildcard() member functions.
    model.setFilterRegularExpression(QRegularExpression::wildcardToRegularExpression(
        pattern, QRegularExpression::UnanchoredWildcardConversion | QRegularExpression::NonPathWildcardConversion));
#else
    // Fall back to the filepath-globbing wildcard when NonPathWildcardConversion is unavailable.
    model.setFilterWildcard(pattern);
#endif
}