16#ifndef QGSMESHDATASETGROUPTREE_H
17#define QGSMESHDATASETGROUPTREE_H
24#include <QItemSelection>
29#include <QSortFilterProxyModel>
30#include <QStandardItemModel>
31#include <QStyledItemDelegate>
51 QMenu *
createSaveMenu(
int groupIndex, QMenu *parentMenu =
nullptr );
61 void saveDatasetGroup(
int datasetGroup,
const QString &driver,
const QString &fileSuffix );
85 QVariant
data(
const QModelIndex &
index,
int role )
const override;
86 Qt::ItemFlags
flags(
const QModelIndex &
index )
const override;
87 QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
88 QModelIndex
index(
int row,
int column,
const QModelIndex &
parent = QModelIndex() )
const override;
89 QModelIndex
parent(
const QModelIndex &
index )
const override;
90 int rowCount(
const QModelIndex &
parent = QModelIndex() )
const override;
121 std::unique_ptr<QgsMeshDatasetGroupTreeItem> mRootItem;
136 QVariant
data(
const QModelIndex &
index,
int role )
const override;
137 bool setData(
const QModelIndex &
index,
const QVariant &value,
int role )
override;
138 Qt::ItemFlags
flags(
const QModelIndex &
index )
const override;
139 QVariant
headerData(
int section, Qt::Orientation orientation,
int role )
const override;
143 QString textDisplayed(
const QModelIndex &
index )
const;
144 QColor backGroundColor(
const QModelIndex &
index )
const;
158 Qt::ItemFlags
flags(
const QModelIndex &index )
const override;
159 QVariant
data(
const QModelIndex &index,
int role )
const override;
177 bool filterAcceptsRow(
int source_row,
const QModelIndex &source_parent )
const override;
180 int mActiveScalarGroupIndex = -1;
181 int mActiveVectorGroupIndex = -1;
196 void paint( QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
199 QRect
iconRect(
const QRect &rect,
bool isVector )
const;
201 QSize
sizeHint(
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
204 const QPixmap mScalarSelectedPixmap;
205 const QPixmap mScalarDeselectedPixmap;
206 const QPixmap mVectorSelectedPixmap;
207 const QPixmap mVectorDeselectedPixmap;
209 QRect
iconRect(
const QRect &rect,
int pos )
const;
240 void removeCurrentItem();
241 void onDatasetGroupSaved(
const QString &uri );
247 void selectAllItem(
bool isChecked );
248 QMenu *createContextMenu();
295 void setActiveGroup();
316 int rowCount(
const QModelIndex &parent )
const override;
317 QVariant
data(
const QModelIndex &index,
int role )
const override;
325 bool mDisplayProviderName =
false;
void setActiveScalarGroup(int group)
Sets active group for contours.
QgsMeshActiveDatasetGroupTreeView(QWidget *parent=nullptr)
int activeScalarGroup() const
Returns index of active group for contours.
void setActiveVectorGroup(int group)
Sets active vector group.
void syncToLayer()
Synchronize widgets state with associated mesh layer.
void activeVectorGroupChanged(int groupIndex)
Selected dataset group for vectors changed. -1 for invalid group.
void mousePressEvent(QMouseEvent *event) override
void activeScalarGroupChanged(int groupIndex)
Selected dataset group for contours changed. -1 for invalid group.
int activeVectorGroup() const
Returns index of active group for vectors.
void setLayer(QgsMeshLayer *layer)
Associates mesh layer with the widget.
Item model for available mesh dataset groups.
Qt::ItemFlags flags(const QModelIndex &index) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
QgsMeshAvailableDatasetGroupTreeModel(QObject *parent=nullptr)
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QVariant data(const QModelIndex &index, int role) const override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
void setDisplayProviderName(bool displayProviderName)
QVariant data(const QModelIndex &index, int role) const override
int rowCount(const QModelIndex &parent) const override
void syncToLayer(QgsMeshLayer *layer)
Add groups to the model from mesh layer.
QgsMeshDatasetGroupListModel(QObject *parent)
QStringList variableNames() const
A proxy model for filtering mesh dataset groups.
void setActiveVectorGroup(int group)
Sets active vector group.
int activeScalarGroup() const
Returns index of active group for contours.
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
void setActiveScalarGroup(int group)
Sets active group for contours.
Qt::ItemFlags flags(const QModelIndex &index) const override
void syncToLayer(QgsMeshLayer *layer)
Add groups to the model from mesh layer.
int activeVectorGroup() const
Returns index of active group for vectors.
QgsMeshDatasetGroupProxyModel(QAbstractItemModel *sourceModel)
QVariant data(const QModelIndex &index, int role) const override
Delegate to display tree item with a contours and vector selector.
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
QgsMeshDatasetGroupTreeItemDelegate(QObject *parent=nullptr)
QRect iconRect(const QRect &rect, bool isVector) const
Icon rectangle for given item rectangle.
Tree item for display of the mesh dataset groups.
QgsMeshDatasetGroupTreeItem * datasetGroupTreeItem(int groupIndex)
Returns the dataset group tree item with index, keeps ownership.
QVariant data(const QModelIndex &index, int role) const override
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
void syncToLayer(QgsMeshLayer *layer)
Synchronizes groups to the model from mesh layer.
bool isEnabled(const QModelIndex &index) const
Returns whether the dataset groups related to the QModelIndex is set as enabled.
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
void resetDefault(QgsMeshLayer *meshLayer)
Resets all groups with default state from the mesh layer.
@ IsActiveVectorDatasetGroup
@ IsActiveScalarDatasetGroup
QgsMeshDatasetGroupTreeItem * datasetGroupTreeRootItem()
Returns the dataset group root tree item, keeps ownership.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QgsMeshDatasetGroupTreeModel(QObject *parent=nullptr)
void removeItem(const QModelIndex &index)
Removes an item from the tree.
QModelIndex parent(const QModelIndex &index) const override
void setAllGroupsAsEnabled(bool isEnabled)
Sets all groups as enabled.
int rowCount(const QModelIndex &parent=QModelIndex()) const override
void setPersistentDatasetGroup(const QModelIndex &index, const QString &uri)
Sets the dataset group as persistent with specified uri and for specified index.
Qt::ItemFlags flags(const QModelIndex &index) const override
void syncToLayer(QgsMeshLayer *layer)
QgsMeshDatasetGroupTreeView(QWidget *parent=nullptr)
QgsMeshDatasetGroupTreeItem * datasetGroupTreeRootItem()
void contextMenuEvent(QContextMenuEvent *event) override
void resetDefault(QgsMeshLayer *meshLayer)
Represents a mesh layer supporting display of data on structured or unstructured meshes.