1 /*
2     This file is part of KDevelop
3 
4     SPDX-FileCopyrightText: 2018 Friedrich W. H. Kossebau <kossebau@kde.org>
5 
6     SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8 
9 #include "filterproxysearchline.h"
10 
11 // KF
12 #include <KLocalizedString>
13 // Qt
14 #include <QSortFilterProxyModel>
15 #include <QTimer>
16 
17 
FilterProxySearchLine(QWidget * parent)18 FilterProxySearchLine::FilterProxySearchLine(QWidget *parent)
19     : QLineEdit(parent)
20     , m_delayTimer(new QTimer(this))
21 {
22     setClearButtonEnabled(true);
23     setPlaceholderText(i18n("Search"));
24 
25     m_delayTimer->setSingleShot(true);
26     m_delayTimer->setInterval(300);
27     connect(m_delayTimer, &QTimer::timeout,
28             this, &FilterProxySearchLine::updateFilter);
29     connect(this, &FilterProxySearchLine::textChanged,
30             m_delayTimer, static_cast<void(QTimer::*)()>(&QTimer::start));
31 }
32 
setFilterProxyModel(QSortFilterProxyModel * filterProxyModel)33 void FilterProxySearchLine::setFilterProxyModel(QSortFilterProxyModel* filterProxyModel)
34 {
35     m_filterProxyModel = filterProxyModel;
36 }
37 
updateFilter()38 void FilterProxySearchLine::updateFilter()
39 {
40     if (!m_filterProxyModel) {
41         return;
42     }
43 
44     m_filterProxyModel->setFilterFixedString(text());
45 }
46