Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
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
22class ColumnProxyModel : public QSortFilterProxyModel
23{
24public:
29 ColumnProxyModel(QObject *parent = Q_NULLPTR);
30
35 void setShowDisplayedOnly(bool set);
36
37protected:
44 virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
45
46private:
48 bool showDisplayedOnly_;
49};
50
54class ColumnTypeDelegate : public QStyledItemDelegate
55{
56public:
61 ColumnTypeDelegate(QObject * parent = Q_NULLPTR);
62
68 static QString displayDesc(char display);
69
75 static QString alignDesc(char xalign);
76
84 QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option,
85 const QModelIndex &index) const override;
86
92 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
93
100 void setModelData(QWidget *editor, QAbstractItemModel *model,
101 const QModelIndex &index) const override;
102
109 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
110 const QModelIndex &index) const override;
111};
112
116class ColumnListModel : public QAbstractTableModel
117{
118 Q_OBJECT
119
120public:
125 ColumnListModel(QObject * parent = Q_NULLPTR);
126
130 enum {
139 };
140
144 enum {
145 OriginalType = Qt::UserRole,
147 };
148
156 static bool displayEnabled(const QModelIndex &index, bool &displayStrings, bool &displayDetails);
157
161 void saveColumns();
162
166 void addEntry();
167
172 void deleteEntry(int row);
173
177 void reset();
178
186 virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
187
194 virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
195
201 virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
202
208 virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
209
215 virtual Qt::ItemFlags flags(const QModelIndex &index) const;
216
221 virtual QStringList mimeTypes() const;
222
228 virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
229
234 virtual Qt::DropActions supportedDropActions() const;
235
245 virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const;
246
256 virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
257
265 virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
266
267private:
273 QString headerTitle(int section) const;
274
278 void populate();
279};
280
281#endif // COLUMN_LIST_MODELS_H
A table model for managing the list of packet list columns.
Definition column_list_model.h:117
@ DisplayedState
Definition column_list_model.h:146
@ OriginalType
Definition column_list_model.h:145
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Retrieves the number of rows in the model.
Definition column_list_model.cpp:334
@ COL_DISPLAYED
Definition column_list_model.h:131
@ COL_WIDTH
Definition column_list_model.h:137
@ COL_TYPE
Definition column_list_model.h:133
@ COL_XALIGN
Definition column_list_model.h:138
@ COL_OCCURRENCE
Definition column_list_model.h:135
@ COL_TITLE
Definition column_list_model.h:132
@ COL_FIELDS
Definition column_list_model.h:134
@ COL_DISPLAY
Definition column_list_model.h:136
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Retrieves the number of columns in the model.
Definition column_list_model.cpp:339
void deleteEntry(int row)
Deletes a specific entry from the column list.
Definition column_list_model.cpp:673
void saveColumns()
Saves the current column list to the global configuration.
Definition column_list_model.cpp:599
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Handles dropped MIME data to rearrange rows.
Definition column_list_model.cpp:499
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
Checks if MIME data can be dropped at a specific location.
Definition column_list_model.cpp:490
virtual Qt::DropActions supportedDropActions() const
Specifies the supported drag and drop actions.
Definition column_list_model.cpp:533
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Retrieves header data for the table model.
Definition column_list_model.cpp:325
static bool displayEnabled(const QModelIndex &index, bool &displayStrings, bool &displayDetails)
Checks whether the display options are enabled for the given index.
Definition column_list_model.cpp:313
void reset()
Resets the column list to the default configuration.
Definition column_list_model.cpp:680
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Sets data in the model for the given index and role.
Definition column_list_model.cpp:538
virtual QMimeData * mimeData(const QModelIndexList &indexes) const
Generates MIME data for the specified list of indexes.
Definition column_list_model.cpp:478
virtual QStringList mimeTypes() const
Retrieves the supported MIME types for drag and drop operations.
Definition column_list_model.cpp:473
void addEntry()
Adds a new default entry to the end of the column list.
Definition column_list_model.cpp:656
Proxy model for filtering and sorting the packet list column models.
Definition column_list_model.h:23
void setShowDisplayedOnly(bool set)
Sets whether to show only the displayed columns.
Definition column_list_model.cpp:60
virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
Determines whether a specific row is accepted by the filter.
Definition column_list_model.cpp:47
A delegate for rendering and editing column types and properties in a view.
Definition column_list_model.h:55
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Sets the data for the editor from the model.
Definition column_list_model.cpp:183
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Creates an editor widget for a given index.
Definition column_list_model.cpp:108
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Sets the data in the model from the editor.
Definition column_list_model.cpp:214
static QString alignDesc(char xalign)
Retrieves the alignment description for a given alignment character.
Definition column_list_model.cpp:77
static QString displayDesc(char display)
Retrieves the display description for a given display format character.
Definition column_list_model.cpp:93
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Updates the geometry of the editor widget based on available space.
Definition column_list_model.cpp:300