File indexing completed on 2023-05-30 10:45:24

0001 /*
0002     This file is part of KDevelop
0003 
0004     SPDX-FileCopyrightText: 2018 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include "filterproxysearchline.h"
0010 
0011 // KF
0012 #include <KLocalizedString>
0013 // Qt
0014 #include <QSortFilterProxyModel>
0015 #include <QTimer>
0016 
0017 
0018 FilterProxySearchLine::FilterProxySearchLine(QWidget *parent)
0019     : QLineEdit(parent)
0020     , m_delayTimer(new QTimer(this))
0021 {
0022     setClearButtonEnabled(true);
0023     setPlaceholderText(i18n("Search"));
0024 
0025     m_delayTimer->setSingleShot(true);
0026     m_delayTimer->setInterval(300);
0027     connect(m_delayTimer, &QTimer::timeout,
0028             this, &FilterProxySearchLine::updateFilter);
0029     connect(this, &FilterProxySearchLine::textChanged,
0030             m_delayTimer, static_cast<void(QTimer::*)()>(&QTimer::start));
0031 }
0032 
0033 void FilterProxySearchLine::setFilterProxyModel(QSortFilterProxyModel* filterProxyModel)
0034 {
0035     m_filterProxyModel = filterProxyModel;
0036 }
0037 
0038 void FilterProxySearchLine::updateFilter()
0039 {
0040     if (!m_filterProxyModel) {
0041         return;
0042     }
0043 
0044     m_filterProxyModel->setFilterFixedString(text());
0045 }