diff options
author | Michael Mann <mmann78@netscape.net> | 2017-06-28 20:00:38 -0400 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2017-12-13 16:07:07 +0000 |
commit | b0112e60ada68646b3e304f73f8321f5fb1ddc01 (patch) | |
tree | 4b7e3e2503ba90cbfda0c10ccddb783afe43143b /ui/qt/models/expert_info_proxy_model.h | |
parent | f945b85391976bc59da4b542fe84cb58033bd22e (diff) |
Add a model to use for Expert Info dialog.
With the model (and proxy), the following features were added/fixed.
1. Expert severities can be filtered by type
2. Search filter expanded to include summary, protocol and column info
3. Expert info starts with all items collapsed.
4. Context menus for collapse/expand all
Bug: 11753
Bug: 13831
Bug: 13842
Change-Id: I8e89c7be441e1f08e18915ef8805609e5c5d0bd1
Reviewed-on: https://code.wireshark.org/review/22458
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'ui/qt/models/expert_info_proxy_model.h')
-rw-r--r-- | ui/qt/models/expert_info_proxy_model.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/ui/qt/models/expert_info_proxy_model.h b/ui/qt/models/expert_info_proxy_model.h new file mode 100644 index 0000000000..3926e0e9e5 --- /dev/null +++ b/ui/qt/models/expert_info_proxy_model.h @@ -0,0 +1,73 @@ +/* expert_info_model.h + * Data model for Expert Info tap data. + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef EXPERT_INFO_PROXY_MODEL_H +#define EXPERT_INFO_PROXY_MODEL_H + +#include <config.h> + +#include <QSortFilterProxyModel> + +class ExpertPacketItem; + +class ExpertInfoProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT + +public: + ExpertInfoProxyModel(QObject *parent = 0); + + enum SeverityMode { Group, Packet }; + enum ExpertProxyColumn { + colProxySeverity = 0, + colProxySummary, + colProxyGroup, + colProxyProtocol, + colProxyCount, + colProxyLast + }; + + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, + int role = Qt::DisplayRole) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + + virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + + //GUI helpers + void setSeverityMode(enum SeverityMode); + void setSeverityFilter(int severity, bool hide); + void setSummaryFilter(const QString &filter); + +protected: + bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const; + bool filterAcceptItem(ExpertPacketItem& item) const; + + enum SeverityMode severityMode_; + QList<int> hidden_severities_; + + QString textFilter_; + +}; + +#endif // EXPERT_INFO_PROXY_MODEL_H + +/* + * 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: + */ |