File indexing completed on 2024-05-05 10:08:44
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QStandardItem> 0010 #include <QWidget> 0011 0012 #include <KTreeWidgetSearchLine> 0013 0014 #include "globals.h" 0015 #include "logViewColumns.h" 0016 0017 class LogViewWidget; 0018 class LogViewWidgetSearchLine; 0019 class QComboBox; 0020 0021 class LogViewFilterWidget : public QWidget 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 explicit LogViewFilterWidget(QWidget *parent = nullptr); 0027 0028 ~LogViewFilterWidget() override; 0029 0030 QComboBox *filterList() const; 0031 LogViewWidgetSearchLine *filterLine() const; 0032 0033 public Q_SLOTS: 0034 void updateFilterColumns(const LogViewColumns &list); 0035 0036 private Q_SLOTS: 0037 void changeColumnFilter(int column); 0038 void prioritiesChanged(QStandardItem *item); 0039 0040 Q_SIGNALS: 0041 void treeWidgetUpdated(); 0042 0043 private: 0044 void initSearchListFilter(); 0045 LogViewWidgetSearchLine *mFilterLine = nullptr; 0046 0047 /** 0048 * Filter of the column list 0049 */ 0050 QComboBox *mFilterList = nullptr; 0051 0052 QComboBox *mPrioritiesComboBox = nullptr; 0053 0054 QStandardItemModel *mPrioritiesModel = nullptr; 0055 }; 0056 0057 class LogViewWidgetSearchLine : public KTreeWidgetSearchLine 0058 { 0059 Q_OBJECT 0060 0061 public: 0062 explicit LogViewWidgetSearchLine(QWidget *parent = nullptr); 0063 0064 ~LogViewWidgetSearchLine() override; 0065 0066 // Silence compiler warning 0067 using KTreeWidgetSearchLine::updateSearch; 0068 0069 // Reimplemented just to send a signal _AFTER_ the tree updating 0070 void updateSearch(const QString &pattern = QString()) override; 0071 0072 void setPriorityEnabled(int priority, bool enabled); 0073 0074 protected: 0075 bool itemMatches(const QTreeWidgetItem *item, const QString &pattern) const override; 0076 0077 Q_SIGNALS: 0078 void treeWidgetUpdated(); 0079 0080 private: 0081 bool mPriorities[Globals::LOG_LEVEL_NUM]; 0082 };