2991343352332e5556e2729e8bae16b98c0c5f93
[gd/wireshark/.git] / ui / qt / filter_action.cpp
1 /* filter_action.cpp
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 #include "filter_action.h"
10
11 FilterAction::FilterAction(QObject *parent, FilterAction::Action action, FilterAction::ActionType type, FilterAction::ActionDirection direction) :
12     QAction(parent),
13     action_(action),
14     type_(type),
15     direction_(direction)
16 {
17     setText(actionDirectionName(direction));
18 }
19
20 FilterAction::FilterAction(QObject *parent, FilterAction::Action action, FilterAction::ActionType type) :
21     QAction(parent),
22     action_(action),
23     type_(type),
24     direction_(ActionDirectionAToAny)
25 {
26     setText(actionTypeName(type));
27 }
28
29 FilterAction::FilterAction(QObject *parent, FilterAction::Action action) :
30     QAction(parent),
31     action_(action),
32     type_(ActionTypePlain),
33     direction_(ActionDirectionAToAny)
34 {
35     setText(actionName(action));
36 }
37
38 const QList<FilterAction::Action> FilterAction::actions() {
39     static const QList<Action> actions_ = QList<Action>()
40             << ActionApply
41             << ActionPrepare
42             << ActionFind
43             << ActionColorize
44             << ActionWebLookup
45             << ActionCopy;
46     return actions_;
47 }
48
49 const QString FilterAction::actionName(Action action) {
50     switch (action) {
51     case ActionApply:
52         return QObject::tr("Apply as Filter");
53         break;
54     case ActionPrepare:
55         return QObject::tr("Prepare a Filter");
56         break;
57     case ActionFind:
58         return QObject::tr("Find");
59         break;
60     case ActionColorize:
61         return QObject::tr("Colorize");
62         break;
63     case ActionWebLookup:
64         return QObject::tr("Look Up");
65         break;
66     case ActionCopy:
67         return QObject::tr("Copy");
68         break;
69     default:
70         return QObject::tr("UNKNOWN");
71         break;
72     }
73 }
74
75
76 const QList<FilterAction::ActionType> FilterAction::actionTypes(Action filter_action)
77 {
78     static const QList<ActionType> action_types_ = QList<ActionType>()
79             << ActionTypePlain
80             << ActionTypeNot
81             << ActionTypeAnd
82             << ActionTypeOr
83             << ActionTypeAndNot
84             << ActionTypeOrNot;
85
86     static const QList<ActionType> simple_action_types_ = QList<ActionType>()
87             << ActionTypePlain
88             << ActionTypeNot;
89
90     switch (filter_action) {
91     case ActionFind:
92     case ActionColorize:
93         return simple_action_types_;
94     default:
95         break;
96     }
97
98     return action_types_;
99 }
100
101 const QString FilterAction::actionTypeName(ActionType type) {
102     switch (type) {
103     case ActionTypePlain:
104         return QObject::tr("Selected");
105         break;
106     case ActionTypeNot:
107         return QObject::tr("Not Selected");
108         break;
109     case ActionTypeAnd:
110         return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "and Selected");
111         break;
112     case ActionTypeOr:
113         return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "or Selected");
114         break;
115     case ActionTypeAndNot:
116         return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "and not Selected");
117         break;
118     case ActionTypeOrNot:
119         return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "or not Selected");
120         break;
121     default:
122         return QObject::tr("UNKNOWN");
123         break;
124     }
125 }
126
127
128 const QList<FilterAction::ActionDirection> FilterAction::actionDirections()
129 {
130     static const QList<FilterAction::ActionDirection> action_directions_ = QList<ActionDirection>()
131             << ActionDirectionAToFromB
132             << ActionDirectionAToB
133             << ActionDirectionAFromB
134             << ActionDirectionAToFromAny
135             << ActionDirectionAToAny
136             << ActionDirectionAFromAny
137             << ActionDirectionAnyToFromB
138             << ActionDirectionAnyToB
139             << ActionDirectionAnyFromB;
140     return action_directions_;
141 }
142
143 const QString FilterAction::actionDirectionName(ActionDirection direction) {
144     switch (direction) {
145     case ActionDirectionAToFromB:
146         return QObject::tr("A " UTF8_LEFT_RIGHT_ARROW " B");
147         break;
148     case ActionDirectionAToB:
149         return QObject::tr("A " UTF8_RIGHTWARDS_ARROW " B");
150         break;
151     case ActionDirectionAFromB:
152         return QObject::tr("B " UTF8_RIGHTWARDS_ARROW " A");
153         break;
154     case ActionDirectionAToFromAny:
155         return QObject::tr("A " UTF8_LEFT_RIGHT_ARROW " Any");
156         break;
157     case ActionDirectionAToAny:
158         return QObject::tr("A " UTF8_RIGHTWARDS_ARROW " Any");
159         break;
160     case ActionDirectionAFromAny:
161         return QObject::tr("Any " UTF8_RIGHTWARDS_ARROW " A");
162         break;
163     case ActionDirectionAnyToFromB:
164         return QObject::tr("Any " UTF8_LEFT_RIGHT_ARROW " B");
165         break;
166     case ActionDirectionAnyToB:
167         return QObject::tr("Any " UTF8_RIGHTWARDS_ARROW " B");
168         break;
169     case ActionDirectionAnyFromB:
170         return QObject::tr("B " UTF8_RIGHTWARDS_ARROW " Any");
171         break;
172     default:
173         return QObject::tr("UNKNOWN");
174         break;
175     }
176 }
177
178 /*
179  * Editor modelines
180  *
181  * Local Variables:
182  * c-basic-offset: 4
183  * tab-width: 8
184  * indent-tabs-mode: nil
185  * End:
186  *
187  * ex: set shiftwidth=4 tabstop=8 expandtab:
188  * :indentSize=4:tabSize=8:noTabs=true:
189  */