3 * Data model for coloring rules.
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
12 #ifndef COLORING_RULES_MODEL_H
13 #define COLORING_RULES_MODEL_H
17 #include <epan/color_filters.h>
19 #include <ui/qt/models/tree_model_helpers.h>
23 #include <QAbstractTableModel>
24 #include <QSortFilterProxyModel>
26 class ColoringRuleItem
: public ModelHelperTreeItem
<ColoringRuleItem
>
29 ColoringRuleItem(bool disabled
, QString name
, QString filter
, QColor foreground
, QColor background
, ColoringRuleItem
* parent
);
30 virtual ~ColoringRuleItem();
32 ColoringRuleItem(color_filter_t
*colorf
, ColoringRuleItem
* parent
);
33 ColoringRuleItem(const ColoringRuleItem
& item
);
41 ColoringRuleItem
& operator=(ColoringRuleItem
& rhs
);
45 class ColoringRulesModel
: public QAbstractItemModel
50 ColoringRulesModel(QColor defaultForeground
, QColor defaultBackground
, QObject
*parent
);
51 virtual ~ColoringRulesModel();
53 enum ColoringRulesColumn
{
59 void addColor(color_filter_t
* colorf
);
60 void addColor(bool disabled
, QString filter
, QColor foreground
, QColor background
);
61 bool importColors(QString filename
, QString
& err
);
62 bool exportColors(QString filename
, QString
& err
);
63 bool writeColors(QString
& err
);
65 Qt::ItemFlags
flags(const QModelIndex
&index
) const;
66 QVariant
data(const QModelIndex
&index
, int role
) const;
67 bool setData(const QModelIndex
&index
, const QVariant
&value
, int role
= Qt::EditRole
);
68 QVariant
headerData(int section
, Qt::Orientation orientation
,
69 int role
= Qt::DisplayRole
) const;
70 QModelIndex
index(int row
, int column
,
71 const QModelIndex
& = QModelIndex()) const;
72 QModelIndex
parent(const QModelIndex
&) const;
74 //Drag & drop functionality
75 Qt::DropActions
supportedDropActions() const;
76 QStringList
mimeTypes() const;
77 QMimeData
* mimeData(const QModelIndexList
&indexes
) const;
78 bool dropMimeData(const QMimeData
*data
, Qt::DropAction action
, int row
, int column
, const QModelIndex
&parent
);
80 int rowCount(const QModelIndex
&parent
= QModelIndex()) const;
81 int columnCount(const QModelIndex
&parent
= QModelIndex()) const;
83 bool insertRows(int row
, int count
, const QModelIndex
&parent
= QModelIndex());
84 bool removeRows(int row
, int count
, const QModelIndex
&parent
= QModelIndex());
85 bool copyRow(int dst_row
, int src_row
);
89 struct _GSList
*createColorFilterList();
91 ColoringRuleItem
* root_
;
92 //Save off the conversation colors, do not include in dialog
93 struct _GSList
*conversation_colors_
;
95 QColor defaultForeground_
;
96 QColor defaultBackground_
;
98 QList
<int> dragDropRows_
;
101 #endif // COLORING_RULES_MODEL_H