16#ifndef QGSMESHDATASETGROUPTREE_H
17#define QGSMESHDATASETGROUPTREE_H
26#include <QItemSelection>
27#include <QStandardItemModel>
28#include <QStyledItemDelegate>
30#include <QSortFilterProxyModel>
47 : QObject( parent ) {}
48 QMenu *
createSaveMenu(
int groupIndex, QMenu *parentMenu =
nullptr );
58 void saveDatasetGroup(
int datasetGroup,
const QString &driver,
const QString &fileSuffix );
82 QVariant
data(
const QModelIndex &
index,
int role )
const override;
83 Qt::ItemFlags
flags(
const QModelIndex &
index )
const override;
84 QVariant
headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
85 QModelIndex
index(
int row,
int column,
const QModelIndex &
parent = QModelIndex() )
const override;
86 QModelIndex
parent(
const QModelIndex &
index )
const override;
87 int rowCount(
const QModelIndex &
parent = QModelIndex() )
const override;
118 std::unique_ptr<QgsMeshDatasetGroupTreeItem> mRootItem;
131 QVariant
data(
const QModelIndex &
index,
int role )
const override;
132 bool setData(
const QModelIndex &
index,
const QVariant &value,
int role )
override;
133 Qt::ItemFlags
flags(
const QModelIndex &
index )
const override;
134 QVariant
headerData(
int section, Qt::Orientation orientation,
int role )
const override;
138 QString textDisplayed(
const QModelIndex &
index )
const;
139 QColor backGroundColor(
const QModelIndex &
index )
const;
152 Qt::ItemFlags
flags(
const QModelIndex &index )
const override;
153 QVariant
data(
const QModelIndex &index,
int role )
const override;
171 bool filterAcceptsRow(
int source_row,
const QModelIndex &source_parent )
const override;
174 int mActiveScalarGroupIndex = -1;
175 int mActiveVectorGroupIndex = -1;
190 void paint( QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
193 QRect
iconRect(
const QRect &rect,
bool isVector )
const;
195 QSize
sizeHint(
const QStyleOptionViewItem &option,
const QModelIndex &index )
const override;
198 const QPixmap mScalarSelectedPixmap;
199 const QPixmap mScalarDeselectedPixmap;
200 const QPixmap mVectorSelectedPixmap;
201 const QPixmap mVectorDeselectedPixmap;
203 QRect
iconRect(
const QRect &rect,
int pos )
const;
227 void selectAllGroups();
228 void deselectAllGroups();
231 void contextMenuEvent( QContextMenuEvent *event )
override;
234 void removeCurrentItem();
235 void onDatasetGroupSaved(
const QString &uri );
241 void selectAllItem(
bool isChecked );
242 QMenu *createContextMenu();
264 int activeScalarGroup()
const;
267 int activeVectorGroup()
const;
272 void mousePressEvent( QMouseEvent *event )
override;
276 void setActiveScalarGroup(
int group );
279 void setActiveVectorGroup(
int group );
289 void setActiveGroup();
309 int rowCount(
const QModelIndex &parent )
const override;
310 QVariant data(
const QModelIndex &index,
int role )
const override;
312 void setDisplayProviderName(
bool displayProviderName );
314 QStringList variableNames()
const;
318 bool mDisplayProviderName =
false;
Tree widget for display of the mesh dataset groups.
void activeVectorGroupChanged(int groupIndex)
Selected dataset group for vectors changed. -1 for invalid group.
void activeScalarGroupChanged(int groupIndex)
Selected dataset group for contours changed. -1 for invalid group.
Qt::ItemFlags flags(const QModelIndex &index) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
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 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.
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
QRect iconRect(const QRect &rect, bool isVector) const
Icon rectangle for given item rectangle.
Tree item for display of the mesh dataset groups.
Item Model for QgsMeshDatasetGroupTreeItem.
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
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
Tree widget for display of the mesh dataset groups.
Represents a mesh layer supporting display of data on structured or unstructured meshes.