Wireshark  4.3.0
The Wireshark network protocol analyzer
column_list_model.h
Go to the documentation of this file.
1 
10 #ifndef COLUMN_LIST_MODELS_H
11 #define COLUMN_LIST_MODELS_H
12 
13 #include <QAbstractListModel>
14 #include <QSortFilterProxyModel>
15 #include <QStyledItemDelegate>
16 #include <QSortFilterProxyModel>
17 #include <QMimeData>
18 
19 class ColumnProxyModel : public QSortFilterProxyModel
20 {
21 public:
22  ColumnProxyModel(QObject *parent = Q_NULLPTR);
23 
24  void setShowDisplayedOnly(bool set);
25 
26 protected:
27  virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
28 
29 private:
30  bool showDisplayedOnly_;
31 };
32 
33 class ColumnTypeDelegate : public QStyledItemDelegate
34 {
35 public:
36  ColumnTypeDelegate(QObject * parent = Q_NULLPTR);
37 
38  QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option,
39  const QModelIndex &index) const override;
40 
41  void setEditorData(QWidget *editor, const QModelIndex &index) const override;
42  void setModelData(QWidget *editor, QAbstractItemModel *model,
43  const QModelIndex &index) const override;
44 
45  void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
46  const QModelIndex &index) const override;
47 };
48 
49 class ColumnListModel : public QAbstractTableModel
50 {
51  Q_OBJECT
52 
53 public:
54  ColumnListModel(QObject * parent = Q_NULLPTR);
55 
56  enum {
57  COL_DISPLAYED,
58  COL_TITLE,
59  COL_TYPE,
60  COL_FIELDS,
61  COL_OCCURRENCE,
62  COL_RESOLVED
63  };
64 
65  enum {
66  OriginalType = Qt::UserRole,
67  DisplayedState
68  };
69 
70  void saveColumns();
71 
72  void addEntry();
73  void deleteEntry(int row);
74  void reset();
75 
76  virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
77  virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
78  virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
79  virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
80  virtual Qt::ItemFlags flags(const QModelIndex &index) const;
81 
82  virtual QStringList mimeTypes() const;
83  virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
84  virtual Qt::DropActions supportedDropActions() const;
85  virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const;
86  virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
87 
88  virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
89 
90 private:
91  QString headerTitle(int section) const;
92 
93  void populate();
94 };
95 
96 #endif // COLUMN_LIST_MODELS_H
Definition: column_list_model.h:50
Definition: column_list_model.h:20
Definition: column_list_model.h:34