File indexing completed on 2024-05-05 10:08:45
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 <QList> 0010 #include <QTreeWidget> 0011 0012 #include "logViewColumns.h" 0013 0014 class LogViewWidgetItem; 0015 class LogViewModel; 0016 class LogLine; 0017 class QActionGroup; 0018 class LogViewWidget : public QTreeWidget 0019 { 0020 Q_OBJECT 0021 0022 public: 0023 explicit LogViewWidget(QWidget *parent = nullptr); 0024 0025 ~LogViewWidget() override; 0026 void selectAll() override; 0027 void setColumns(const LogViewColumns &columns); 0028 0029 int itemCount() const; 0030 int notHiddenItemCount(); 0031 0032 QList<LogViewWidgetItem *> items(); 0033 QList<LogLine *> logLines(); 0034 0035 /** 0036 * Return the related widget item of this logLine or NULL if it has not been found 0037 */ 0038 LogViewWidgetItem *findItem(LogLine *logLine); 0039 0040 LogViewWidgetItem *findNewestItem(); 0041 0042 LogViewModel *model() const; 0043 0044 bool hasItemsSelected(); 0045 LogViewWidgetItem *firstSelectedItem(); 0046 LogViewWidgetItem *lastSelectedItem(); 0047 0048 void scrollToNewestItem(); 0049 0050 void expandAll(); 0051 void collapseAll(); 0052 0053 void resizeColumns(); 0054 0055 public Q_SLOTS: 0056 void toggleToolTip(bool enabled); 0057 0058 Q_SIGNALS: 0059 void columnsChanged(const LogViewColumns &columns); 0060 0061 private Q_SLOTS: 0062 void toggleHeader(QAction *action); 0063 0064 private: 0065 LogViewModel *mLogViewModel = nullptr; 0066 0067 QActionGroup *mHeadersTogglingActions = nullptr; 0068 };