File indexing completed on 2024-05-05 05:48:58
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 <QTreeWidgetItemIterator> 0010 #include <QWidget> 0011 0012 #include "ui_logViewSearchWidgetBase.h" 0013 0014 class LogViewWidget; 0015 class LogViewWidgetItem; 0016 0017 class LogViewSearchWidget : public QWidget, public Ui::LogViewSearchWidgetBase 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 explicit LogViewSearchWidget(QWidget *parent = nullptr); 0023 0024 ~LogViewSearchWidget() override; 0025 0026 void setTreeWidget(LogViewWidget *logViewWidget); 0027 0028 public Q_SLOTS: 0029 void displaySearch(); 0030 0031 void findFirst(); 0032 0033 void findFirst(const QString &); 0034 void findNext(); 0035 void findPrevious(); 0036 0037 private Q_SLOTS: 0038 void hideMessage(); 0039 0040 void highlightAll(); 0041 0042 private: 0043 enum Direction { Next, Previous }; 0044 Q_DECLARE_FLAGS(Directions, Direction) 0045 0046 void showMessage(const QString &text, const QString &iconText); 0047 0048 void internalFind(LogViewWidgetItem *fromItem, Direction direction); 0049 0050 void setSearchLineNotFound(bool notFound); 0051 void unselectAll(); 0052 bool findItem(LogViewWidgetItem *item); 0053 0054 bool compareItem(LogViewWidgetItem *item); 0055 0056 void unlightAll(); 0057 0058 inline void initIterator(QTreeWidgetItemIterator &it, Direction direction); 0059 inline void iteratorJump(QTreeWidgetItemIterator &it, Direction direction); 0060 LogViewWidget *mLogViewWidget = nullptr; 0061 0062 QColor mSearchLineBaseColor; 0063 QColor mSearchLineTextColor; 0064 0065 QTimer *mMessageHidingTimer = nullptr; 0066 };