1 /* conversation_colorize_action.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 CONVERSATIONCOLORIZEACTION_H
11 #define CONVERSATIONCOLORIZEACTION_H
12 
13 #include <QAction>
14 
15 struct conversation_filter_s;
16 struct _packet_info;
17 
18 // Actions for "Conversation Filter" and "Colorize with Filter" menu items.
19 
20 class ConversationAction : public QAction
21 {
22     Q_OBJECT
23 public:
24     ConversationAction(QObject *parent, struct conversation_filter_s *conv_filter = NULL);
25 
26     bool isFilterValid(struct _packet_info *pinfo);
27 
filter()28     const QByteArray filter() { return filter_ba_; }
29 
setColorNumber(int color_number)30     void setColorNumber(int color_number) { color_number_ = color_number; }
colorNumber()31     int colorNumber() { return color_number_; }
32 
33 public slots:
34     // Exactly one of these should be connected.
35     void setPacketInfo(struct _packet_info *pinfo);
36     void setFieldFilter(const QByteArray field_filter);
37 
38 private:
39     struct conversation_filter_s *conv_filter_;
40     QByteArray filter_ba_;
41     int color_number_;
42 };
43 
44 class ColorizeAction : public QAction
45 {
46     Q_OBJECT
47 public:
ColorizeAction(QObject * parent)48     ColorizeAction(QObject *parent) : QAction(parent),
49         color_number_(-1)
50     {}
51 
filter()52     const QByteArray filter() { return filter_ba_; }
53 
setColorNumber(int color_number)54     void setColorNumber(int color_number) { color_number_ = color_number; }
colorNumber()55     int colorNumber() { return color_number_; }
56 
57 public slots:
setFieldFilter(const QByteArray field_filter)58     void setFieldFilter(const QByteArray field_filter) { filter_ba_ = field_filter; }
59 
60 private:
61     QByteArray filter_ba_;
62     int color_number_;
63 };
64 
65 #endif // CONVERSATIONCOLORIZEACTION_H
66