1 /* main_status_bar.h 2 * 3 * Wireshark - Network traffic analyzer 4 * By Gerald Combs <gerald@wireshark.org> 5 * Copyright 1998 Gerald Combs 6 * 7 * SPDX-License-Identifier: GPL-2.0-or-later 8 */ 9 10 #ifndef MAIN_STATUS_BAR_H 11 #define MAIN_STATUS_BAR_H 12 13 #include "config.h" 14 15 #include "cfile.h" 16 17 #include "capture/capture_session.h" 18 19 #include <ui/qt/utils/field_information.h> 20 #include <ui/qt/widgets/label_stack.h> 21 #include <ui/qt/widgets/clickable_label.h> 22 #include "progress_frame.h" 23 #include "wireshark_application.h" 24 25 #include <QLabel> 26 #include <QMenu> 27 #include <QStatusBar> 28 29 class CaptureFile; 30 class QToolButton; 31 32 class MainStatusBar : public QStatusBar 33 { 34 Q_OBJECT 35 public: 36 explicit MainStatusBar(QWidget *parent = 0); 37 void showExpert(); 38 void captureFileClosing(); 39 void expertUpdate(); 40 void setFileName(CaptureFile &cf); 41 42 protected: 43 44 enum StatusContext { 45 STATUS_CTX_MAIN, 46 STATUS_CTX_FILE, 47 STATUS_CTX_FIELD, 48 STATUS_CTX_BYTE, 49 STATUS_CTX_FILTER, 50 STATUS_CTX_PROGRESS, 51 STATUS_CTX_TEMPORARY 52 }; 53 54 virtual void changeEvent(QEvent* event); 55 56 private: 57 QToolButton *expert_button_; 58 QToolButton *comment_button_; 59 LabelStack info_status_; 60 ProgressFrame progress_frame_; 61 LabelStack packet_status_; 62 ClickableLabel profile_status_; 63 capture_file *cap_file_; 64 QString ready_msg_; 65 66 // Capture statistics 67 bool cs_fixed_; 68 guint32 cs_count_; 69 70 void showCaptureStatistics(); 71 72 void pushGenericStatus(StatusContext status, const QString &message, const QString &messagetip = QString()); 73 void popGenericStatus(StatusContext status); 74 75 signals: 76 void showExpertInfo(); 77 void editCaptureComment(); 78 void stopLoading(); 79 80 public slots: 81 void setCaptureFile(capture_file *cf); 82 void selectedFieldChanged(FieldInformation *); 83 void highlightedFieldChanged(FieldInformation *); 84 void selectedFrameChanged(QList<int>); 85 86 void updateCaptureStatistics(capture_session * cap_session); 87 void updateCaptureFixedStatistics(capture_session * cap_session); 88 89 void captureEventHandler(CaptureEvent ev); 90 91 private slots: 92 void appInitialized(); 93 void toggleBackground(bool enabled); 94 void setProfileName(); 95 void switchToProfile(); 96 void manageProfile(); 97 void showProfileMenu(const QPoint &global_pos, Qt::MouseButton button); 98 99 friend WiresharkApplication; 100 }; 101 102 #endif // MAIN_STATUS_BAR_H 103