1 /* packet_list_header.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 UI_QT_WIDGETS_PACKET_LIST_HEADER_H_
11 #define UI_QT_WIDGETS_PACKET_LIST_HEADER_H_
12 
13 #include <cfile.h>
14 
15 #include <QHeaderView>
16 #include <QDrag>
17 #include <QMenu>
18 
19 class QEvent;
20 
21 class PacketListHeader : public QHeaderView
22 {
23     Q_OBJECT
24 
25 public:
26     PacketListHeader(Qt::Orientation orientation, capture_file * cap_file, QWidget *parent = nullptr);
27 
28     void setCaptureFile(capture_file * cap_file);
29 
30 protected:
31     virtual void dropEvent(QDropEvent *event) override;
32     virtual void dragEnterEvent(QDragEnterEvent *event) override;
33     virtual void dragMoveEvent(QDragMoveEvent *event) override;
34 
35     virtual void mouseMoveEvent(QMouseEvent *e) override;
36     virtual void mousePressEvent(QMouseEvent *e) override;
37 
38     virtual void contextMenuEvent(QContextMenuEvent *event) override;
39 
40 protected slots:
41     void columnVisibilityTriggered();
42 
43     void setAlignment(QAction *);
44 
45     void showColumnPrefs();
46     void doEditColumn();
47     void doResolveNames();
48     void resizeToContent();
49     void removeColumn();
50     void resizeToWidth();
51 
52 signals:
53     void resetColumnWidth(int col);
54     void updatePackets(bool redraw);
55     void showColumnPreferences(QString pane_name);
56     void editColumn(int column);
57 
58     void columnsChanged();
59 
60 private:
61 
62     capture_file * cap_file_;
63     int sectionIdx;
64     int lastSize;
65 
66     void setSectionVisibility();
67 };
68 
69 #endif
70