-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.h
114 lines (99 loc) · 3.9 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define DEBUG 1
#include <sys/time.h>
#include <QAbstractItemModel>
#include <QAction>
#include <QActionGroup>
#include <QCloseEvent>
#include <QDesktopServices>
#include <QFileDialog>
#include <QItemSelection>
#include <QLabel>
#include <QMainWindow>
#include <QMessageBox>
#include <QShowEvent>
#include <QStandardItemModel>
#include <QTableWidgetItem>
#include <QtGlobal>
#include <QUrl>
#include <QVector>
#include "packetcaptor.h"
#include "pktf.h"
#include "packetdetailview.h"
#include "packetfiledialog.h"
#include "packetfilterproxymodel.h"
#include "ethernetpacket.h"
#include "ipv4packet.h"
#include "ipv6packet.h"
#include "arppacket.h"
#include "icmppacket.h"
#include "igmppacket.h"
#include "igmpv3packet.h"
#include "tcppacket.h"
#include "udppacket.h"
#include "nullpacket.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
protected slots:
void triggerAction();
void reloadDeviceList();
void setDevice(int);
void parsePacket(Packet *);
void showPacketDetail(const QItemSelection &, const QItemSelection &);
void showPacketDetailWindow(const QModelIndex &);
void checkChanged(int);
void openClicked();
void saveClicked();
void aboutMeClicked();
void aboutMySchoolClicked();
void filterPackets();
void setCurrentFilter(QAction *);
void saveAs();
void openFilterRuleWebsite();
void errorHandler(QString);
void ready();
void done();
private:
enum confirmState {
dumpPackets,
dropPackets,
cancel,
};
enum filters {
packetsFilter,
flowTrafficFilter
};
void closeEvent(QCloseEvent *) override;
void showEvent(QShowEvent *) override;
enum confirmState confirm();
void updateStatusBar();
void turnOffFilter();
Ui::MainWindow *ui;
PacketCaptor captor;
struct timeval captureStartingTime;
const QString title = "Packetshark";
QVector<PacketDetailView *> unwantedWindows;
QVector<PacketDetailView *> openedWindows;
PacketFilterProxyModel *model;
QStandardItemModel *srcModel;
QActionGroup group;
QString description;
enum filters currentFilter = packetsFilter;
bool on = false; // 是否开启过滤
QString qTemplate = " Device Interface: %1 | Filter Mode: %2 [%3] | Promiscuous: %4";
QLabel *info;
QFont deviceListViewFont{"Consolas", 11};
QFont packetListViewHeaderFont{"Consolas", 11};
QFont packetListViewFont{"Consolas", 11};
QFont packetDetailViewFont{"Consolas", 12};
QFont rawPacketViewFont{"Consolas", 12};
QFont textBoxFont{"Consolas", 11};
};
#endif // MAINWINDOW_H