File indexing completed on 2024-03-24 05:49:16
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 <QTabWidget> 0011 #include <QVariant> 0012 0013 class QString; 0014 class QIcon; 0015 0016 class LogManager; 0017 class TabLogManager; 0018 class View; 0019 class LogMode; 0020 class QMenu; 0021 0022 class TabLogViewsWidget : public QTabWidget 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 explicit TabLogViewsWidget(QWidget *parent = nullptr); 0028 0029 ~TabLogViewsWidget() override; 0030 0031 QList<LogManager *> logManagers() const; 0032 0033 LogManager *activeLogManager() const; 0034 0035 void load(LogMode *logMode, LogManager *manager, const QVariant &analyzerOptions = QVariant()); 0036 0037 public Q_SLOTS: 0038 0039 LogManager *createTab(); 0040 LogManager *duplicateTab(); 0041 0042 void closeTab(); 0043 0044 void moveTabLeft(); 0045 void moveTabRight(); 0046 0047 void reloadCurrent(); 0048 void reloadAll(); 0049 0050 /** 0051 * Display a reload icon on the specified view tab 0052 */ 0053 void changeReloadingTab(View *view, bool reloading); 0054 0055 // Methods that transmit a signal to the current logViewWidget 0056 void expandAllCurrentView(); 0057 void collapseAllCurrentView(); 0058 void selectAllCurrentView(); 0059 0060 void fileSaveCurrentView(); 0061 void copyToClipboardCurrentView(); 0062 void sendMailCurrentView(); 0063 void printSelectionCurrentView(); 0064 void printPreviewSelectionCurrentView(); 0065 0066 private Q_SLOTS: 0067 void changeTab(View *view, const QIcon &icon, const QString &label); 0068 0069 void changeCurrentTab(int index); 0070 void changeTitleAddedLines(View *, int); 0071 0072 void showContextMenu(const QPoint &cursorPosition); 0073 void showContextMenu(QWidget *tab, const QPoint &cursorPosition); 0074 0075 Q_SIGNALS: 0076 0077 void logManagerCreated(LogManager *manager); 0078 0079 void statusBarChanged(const QString &message); 0080 0081 private: 0082 TabLogManager *newTabLogManager(); 0083 0084 void newTab(View *view); 0085 0086 LogManager *findRelatedLogManager(View *view); 0087 0088 QIcon logModeIcon(LogMode *icon) const; 0089 0090 TabLogManager *activeTabLogManager() const; 0091 TabLogManager *findRelatedTabLogManager(View *view) const; 0092 0093 void prepareContextMenu(bool onTab); 0094 QList<TabLogManager *> mTabLogManagers; 0095 0096 QMenu *mContextMenu = nullptr; 0097 };