/* filter_action.cpp * * Wireshark - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "filter_action.h" FilterAction::FilterAction(QObject *parent, FilterAction::Action action, FilterAction::ActionType type, FilterAction::ActionDirection direction) : QAction(parent), action_(action), type_(type), direction_(direction) { setText(actionDirectionName(direction)); } FilterAction::FilterAction(QObject *parent, FilterAction::Action action, FilterAction::ActionType type) : QAction(parent), action_(action), type_(type), direction_(ActionDirectionAToAny) { setText(actionTypeName(type)); } FilterAction::FilterAction(QObject *parent, FilterAction::Action action) : QAction(parent), action_(action), type_(ActionTypePlain), direction_(ActionDirectionAToAny) { setText(actionName(action)); } const QList FilterAction::actions() { static const QList actions_ = QList() << ActionApply << ActionPrepare << ActionFind << ActionColorize << ActionWebLookup << ActionCopy; return actions_; } const QString FilterAction::actionName(Action action) { switch (action) { case ActionApply: return QObject::tr("Apply as Filter"); break; case ActionPrepare: return QObject::tr("Prepare a Filter"); break; case ActionFind: return QObject::tr("Find"); break; case ActionColorize: return QObject::tr("Colorize"); break; case ActionWebLookup: return QObject::tr("Look Up"); break; case ActionCopy: return QObject::tr("Copy"); break; default: return QObject::tr("UNKNOWN"); break; } } const QList FilterAction::actionTypes(Action filter_action) { static const QList action_types_ = QList() << ActionTypePlain << ActionTypeNot << ActionTypeAnd << ActionTypeOr << ActionTypeAndNot << ActionTypeOrNot; static const QList simple_action_types_ = QList() << ActionTypePlain << ActionTypeNot; switch (filter_action) { case ActionFind: case ActionColorize: return simple_action_types_; default: break; } return action_types_; } const QString FilterAction::actionTypeName(ActionType type) { switch (type) { case ActionTypePlain: return QObject::tr("Selected"); break; case ActionTypeNot: return QObject::tr("Not Selected"); break; case ActionTypeAnd: return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "and Selected"); break; case ActionTypeOr: return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "or Selected"); break; case ActionTypeAndNot: return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "and not Selected"); break; case ActionTypeOrNot: return QObject::tr(UTF8_HORIZONTAL_ELLIPSIS "or not Selected"); break; default: return QObject::tr("UNKNOWN"); break; } } const QList FilterAction::actionDirections() { static const QList action_directions_ = QList() << ActionDirectionAToFromB << ActionDirectionAToB << ActionDirectionAFromB << ActionDirectionAToFromAny << ActionDirectionAToAny << ActionDirectionAFromAny << ActionDirectionAnyToFromB << ActionDirectionAnyToB << ActionDirectionAnyFromB; return action_directions_; } const QString FilterAction::actionDirectionName(ActionDirection direction) { switch (direction) { case ActionDirectionAToFromB: return QObject::tr("A " UTF8_LEFT_RIGHT_ARROW " B"); break; case ActionDirectionAToB: return QObject::tr("A " UTF8_RIGHTWARDS_ARROW " B"); break; case ActionDirectionAFromB: return QObject::tr("B " UTF8_RIGHTWARDS_ARROW " A"); break; case ActionDirectionAToFromAny: return QObject::tr("A " UTF8_LEFT_RIGHT_ARROW " Any"); break; case ActionDirectionAToAny: return QObject::tr("A " UTF8_RIGHTWARDS_ARROW " Any"); break; case ActionDirectionAFromAny: return QObject::tr("Any " UTF8_RIGHTWARDS_ARROW " A"); break; case ActionDirectionAnyToFromB: return QObject::tr("Any " UTF8_LEFT_RIGHT_ARROW " B"); break; case ActionDirectionAnyToB: return QObject::tr("Any " UTF8_RIGHTWARDS_ARROW " B"); break; case ActionDirectionAnyFromB: return QObject::tr("B " UTF8_RIGHTWARDS_ARROW " Any"); break; default: return QObject::tr("UNKNOWN"); break; } } /* * Editor modelines * * Local Variables: * c-basic-offset: 4 * tab-width: 8 * indent-tabs-mode: nil * End: * * ex: set shiftwidth=4 tabstop=8 expandtab: * :indentSize=4:tabSize=8:noTabs=true: */