aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/models/expert_info_proxy_model.h
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-06-28 20:00:38 -0400
committerRoland Knall <rknall@gmail.com>2017-12-13 16:07:07 +0000
commitb0112e60ada68646b3e304f73f8321f5fb1ddc01 (patch)
tree4b7e3e2503ba90cbfda0c10ccddb783afe43143b /ui/qt/models/expert_info_proxy_model.h
parentf945b85391976bc59da4b542fe84cb58033bd22e (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.h73
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:
+ */