File indexing completed on 2024-04-28 15:39:47

0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org>
0002 
0003    SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 #ifndef LISTVIEWITEMHIDER_H
0006 #define LISTVIEWITEMHIDER_H
0007 
0008 #include <kpabase/enums.h>
0009 
0010 #include <QString>
0011 
0012 class QTreeWidget;
0013 class QTreeWidgetItem;
0014 
0015 namespace AnnotationDialog
0016 {
0017 
0018 class ListViewItemHider
0019 {
0020 protected:
0021     ListViewItemHider() { }
0022     virtual ~ListViewItemHider() { }
0023 
0024     bool setItemsVisible(QTreeWidgetItem *parentItem);
0025     virtual bool shouldItemBeShown(QTreeWidgetItem *) = 0;
0026 };
0027 
0028 class ListViewTextMatchHider : public ListViewItemHider
0029 {
0030 public:
0031     ListViewTextMatchHider(const QString &text, const MatchType mt, QTreeWidget *listView);
0032 
0033 protected:
0034     bool shouldItemBeShown(QTreeWidgetItem *) override;
0035 
0036 private:
0037     QString m_text;
0038     const MatchType m_matchType;
0039 };
0040 
0041 class ListViewCheckedHider : public ListViewItemHider
0042 {
0043 public:
0044     explicit ListViewCheckedHider(QTreeWidget *);
0045 
0046 protected:
0047     bool shouldItemBeShown(QTreeWidgetItem *) override;
0048 };
0049 
0050 }
0051 
0052 #endif /* LISTVIEWITEMHIDER_H */
0053 
0054 // vi:expandtab:tabstop=4 shiftwidth=4: