Wireshark 5.1.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
pref_models.h
Go to the documentation of this file.
1
9
10#ifndef PREF_MODELS_H
11#define PREF_MODELS_H
12
13#include <config.h>
14
16
17#include <epan/prefs.h>
18
19#include <QSortFilterProxyModel>
20#include <QTreeView>
21
22class PrefsItem;
23
27class PrefsModel : public QAbstractItemModel
28{
29 Q_OBJECT
30
31public:
36 explicit PrefsModel(QObject *parent = Q_NULLPTR);
37
39 virtual ~PrefsModel();
40
58
69
77 QModelIndex index(int row, int column,
78 const QModelIndex &parent = QModelIndex()) const override;
79
86 QModelIndex parent(const QModelIndex &index) const override;
87
94 QVariant data(const QModelIndex &index, int role) const override;
95
101 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
102
108 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
109
115 static QString typeToString(PrefsModelType type);
116
122 static QString typeToHelp(PrefsModelType type);
123
124private:
128 void populate();
129
130 PrefsItem *root_;
131};
132
136class PrefsItem : public ModelHelperTreeItem<PrefsItem>
137{
138public:
145 PrefsItem(module_t *module, pref_t *pref, PrefsItem *parent);
146
152 PrefsItem(const QString name, PrefsItem *parent);
153
160
162 virtual ~PrefsItem();
163
168 QString getName() const { return name_; }
169
174 pref_t *getPref() const { return pref_; }
175
180 int getPrefType() const;
181
186 bool isPrefDefault() const;
187
192 QString getPrefTypeName() const;
193
198 module_t *getModule() const { return module_; }
199
204 QString getModuleName() const;
205
210 QString getModuleTitle() const;
211
216 QString getModuleHelp() const;
217
222 void setChanged(bool changed = true);
223
224private:
225 pref_t *pref_;
226 module_t *module_;
227 QString name_;
228 QString help_;
231 bool changed_;
232};
233
237class AdvancedPrefsModel : public QSortFilterProxyModel
238{
239 Q_OBJECT
240
241public:
246 explicit AdvancedPrefsModel(QObject *parent = Q_NULLPTR);
247
258
269 virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
270
279 void setFilter(const QString &filter);
280
286 void setShowChangedValues(bool show_changed_values);
287
295 QVariant headerData(int section, Qt::Orientation orientation,
296 int role = Qt::DisplayRole) const override;
297
305 QVariant data(const QModelIndex &index, int role) const override;
306
315 Qt::ItemFlags flags(const QModelIndex &index) const override;
316
325 bool setData(const QModelIndex &index, const QVariant &value,
326 int role = Qt::EditRole) override;
327
333 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
334
344 void setFirstColumnSpanned(QTreeView *tree, const QModelIndex &index = QModelIndex());
345
346protected:
352 bool filterAcceptItem(PrefsItem &item) const;
353
354private:
355 QString filter_;
356 bool show_changed_values_;
357 const QChar passwordChar_;
358};
359
364class ModulePrefsModel : public QSortFilterProxyModel
365{
366public:
371 explicit ModulePrefsModel(QObject *parent = Q_NULLPTR);
372
380
385 ModuleName = Qt::UserRole + 1,
386 ModuleHelp = Qt::UserRole + 2
387 };
388
396 QVariant data(const QModelIndex &index, int role) const override;
397
404 Qt::ItemFlags flags(const QModelIndex &index) const override;
405
411 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
412
420 virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
421
422protected:
430 bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override;
431
432private:
435 QString advancedPrefName_;
436};
437
444extern pref_t *prefFromPrefPtr(void *pref_ptr);
445
446#endif // PREF_MODELS_H
Qt::ItemFlags flags(const QModelIndex &index) const override
Return the item flags for index.
Definition pref_models.cpp:630
void setFirstColumnSpanned(QTreeView *tree, const QModelIndex &index=QModelIndex())
Mark module-level rows as spanning all columns in tree.
Definition pref_models.cpp:659
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Return the column header label.
Definition pref_models.cpp:414
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of columns in this model.
Definition pref_models.cpp:653
AdvancedPrefsModelColumn
Column indices for the Advanced preferences view.
Definition pref_models.h:251
@ colStatus
Definition pref_models.h:253
@ colType
Definition pref_models.h:254
@ colName
Definition pref_models.h:252
@ colLast
Definition pref_models.h:256
@ colValue
Definition pref_models.h:255
QVariant data(const QModelIndex &index, int role) const override
Return data for index under role.
Definition pref_models.cpp:434
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override
Determine whether a source row should be included in the view.
Definition pref_models.cpp:728
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Write value to the preference at index.
Definition pref_models.cpp:533
void setShowChangedValues(bool show_changed_values)
Restrict the view to preferences that differ from their defaults.
Definition pref_models.cpp:758
bool filterAcceptItem(PrefsItem &item) const
Test whether a single PrefsItem passes the current filters.
Definition pref_models.cpp:683
void setFilter(const QString &filter)
Set the text filter applied to preference names and values.
Definition pref_models.cpp:745
AdvancedPrefsModel(QObject *parent=Q_NULLPTR)
Construct an AdvancedPrefsModel.
Definition pref_models.cpp:406
ModelHelperTreeItem(PrefsItem *parent)
Definition tree_model_helpers.h:31
Qt::ItemFlags flags(const QModelIndex &index) const override
Return the item flags for index.
Definition pref_models.cpp:813
ModulePrefsModel(QObject *parent=Q_NULLPTR)
Construct a ModulePrefsModel.
Definition pref_models.cpp:773
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override
Determine whether a source row should appear in the module pane.
Definition pref_models.cpp:881
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of columns in this model.
Definition pref_models.cpp:846
QVariant data(const QModelIndex &index, int role) const override
Return data for index under role.
Definition pref_models.cpp:779
ModulePrefsModelColumn
Column indices for the module pane.
Definition pref_models.h:376
@ colName
Definition pref_models.h:377
@ colLast
Definition pref_models.h:378
ModulePrefsRoles
Custom data roles for module items.
Definition pref_models.h:384
@ ModuleHelp
Definition pref_models.h:386
@ ModuleName
Definition pref_models.h:385
bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override
Define the sort order for module rows.
Definition pref_models.cpp:851
A single node in the PrefsModel tree.
Definition pref_models.h:137
QString getModuleHelp() const
Return the help text for the associated module.
Definition pref_models.cpp:125
void setChanged(bool changed=true)
Mark this preference as having been changed during this session.
Definition pref_models.cpp:139
QString getName() const
Return the display name of this item.
Definition pref_models.h:168
bool isPrefDefault() const
Return whether the preference currently holds its default value.
Definition pref_models.cpp:90
QString getPrefTypeName() const
Return a human-readable string for the preference type.
Definition pref_models.cpp:101
PrefsItem(module_t *module, pref_t *pref, PrefsItem *parent)
Construct a PrefsItem for an individual preference.
Definition pref_models.cpp:45
QString getModuleName() const
Return the internal (short) name of the associated module.
Definition pref_models.cpp:109
int getPrefType() const
Return the numeric type of the underlying preference.
Definition pref_models.cpp:82
QString getModuleTitle() const
Return the display title of the associated module.
Definition pref_models.cpp:117
pref_t * getPref() const
Return the pref_t this item represents.
Definition pref_models.h:174
module_t * getModule() const
Return the preference module associated with this item.
Definition pref_models.h:198
virtual ~PrefsItem()
Destroy this PrefsItem and all of its children.
Definition pref_models.cpp:78
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of child rows under parent.
Definition pref_models.cpp:156
static QString typeToString(PrefsModelType type)
Return the display name for a built-in preference page type.
Definition pref_models.cpp:336
virtual ~PrefsModel()
Destroy the model and its PrefsItem tree.
Definition pref_models.cpp:151
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Return the model index for the item at (row, column) under parent.
Definition pref_models.cpp:198
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of columns.
Definition pref_models.cpp:173
PrefsModel(QObject *parent=Q_NULLPTR)
Construct a PrefsModel and populate it from the preference registry.
Definition pref_models.cpp:144
static QString typeToHelp(PrefsModelType type)
Return the help text for a built-in preference page type.
Definition pref_models.cpp:359
PrefsModelType
Top-level preference page type identifiers.
Definition pref_models.h:44
@ Appearance
Definition pref_models.h:46
@ Capture
Definition pref_models.h:51
@ Expert
Definition pref_models.h:52
@ Advanced
Definition pref_models.h:45
@ FontAndColors
Definition pref_models.h:49
@ Layout
Definition pref_models.h:47
@ FilterButtons
Definition pref_models.h:53
@ WelcomePage
Definition pref_models.h:50
@ RSAKeys
Definition pref_models.h:54
@ Fonts
Definition pref_models.h:56
@ Columns
Definition pref_models.h:48
@ Aggregation
Definition pref_models.h:55
QVariant data(const QModelIndex &index, int role) const override
Return data for index under role.
Definition pref_models.cpp:220
QModelIndex parent(const QModelIndex &index) const override
Return the parent model index of index.
Definition pref_models.cpp:179
PrefsModelColumn
Column indices for the raw PrefsModel tree.
Definition pref_models.h:62
@ colStatus
Definition pref_models.h:64
@ colLast
Definition pref_models.h:67
@ colValue
Definition pref_models.h:66
@ colName
Definition pref_models.h:63
@ colType
Definition pref_models.h:65
pref_t * prefFromPrefPtr(void *pref_ptr)
Retrieves the preference structure associated with a given preference pointer.
Definition pref_models.cpp:27