TODO netlogon_user_flags_ntlmv2_enabled
[wireshark-sm.git] / ui / qt / models / manuf_table_model.h
blob9f85077472e836adc7d37e013101f6b7c1c218cb
1 /** @file
3 * Wireshark - Network traffic analyzer
4 * By Gerald Combs <gerald@wireshark.org>
5 * Copyright 1998 Gerald Combs
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
10 #ifndef MANUF_TABLE_MODEL_H
11 #define MANUF_TABLE_MODEL_H
13 #include <QSortFilterProxyModel>
14 #include <QAbstractTableModel>
15 #include <QList>
17 #include <wireshark.h>
18 #include <epan/manuf.h>
20 class ManufTableItem
22 public:
23 ManufTableItem(struct ws_manuf *ptr);
24 ~ManufTableItem();
26 QByteArray block_bytes_;
27 QString block_name_;
28 QString short_name_;
29 QString long_name_;
32 class ManufTableModel : public QAbstractTableModel
34 Q_OBJECT
36 public:
37 ManufTableModel(QObject *parent);
38 ~ManufTableModel();
39 virtual int rowCount(const QModelIndex &parent = QModelIndex()) const ;
40 virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
41 virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
42 virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
44 void addRecord(struct ws_manuf *ptr);
46 void clear();
48 enum {
49 COL_MAC_PREFIX,
50 COL_SHORT_NAME,
51 COL_VENDOR_NAME,
52 NUM_COLS,
55 private:
56 QList<ManufTableItem *> rows_;
59 class ManufSortFilterProxyModel : public QSortFilterProxyModel
61 Q_OBJECT
63 public:
64 enum ManufProxyFilterType
66 FilterEmpty = 0,
67 FilterByAddress,
68 FilterByName,
70 Q_ENUM(ManufProxyFilterType)
72 ManufSortFilterProxyModel(QObject *parent);
74 virtual bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
76 public slots:
77 void setFilterAddress(const QByteArray&);
78 void setFilterName(QRegularExpression&);
79 void clearFilter();
81 private:
82 ManufProxyFilterType filter_type_;
83 QByteArray filter_bytes_;
84 QRegularExpression filter_name_;
86 bool filterAddressAcceptsRow(int source_row, const QModelIndex& source_parent) const;
87 bool filterNameAcceptsRow(int source_row, const QModelIndex& source_parent) const;
90 #endif