16#ifndef QGSMESHDATASETGROUPTREE_H 
   17#define QGSMESHDATASETGROUPTREE_H 
   26#include <QItemSelection> 
   27#include <QStandardItemModel> 
   28#include <QStyledItemDelegate> 
   30#include <QSortFilterProxyModel> 
   48      : QObject( parent ) {}
 
 
   49    QMenu *
createSaveMenu( 
int groupIndex, QMenu *parentMenu = 
nullptr );
 
   59    void saveDatasetGroup( 
int datasetGroup, 
const QString &driver, 
const QString &fileSuffix );
 
 
   83    QVariant 
data( 
const QModelIndex &
index, 
int role ) 
const override;
 
   84    Qt::ItemFlags 
flags( 
const QModelIndex &
index ) 
const override;
 
   85    QVariant 
headerData( 
int section, Qt::Orientation orientation, 
int role = Qt::DisplayRole ) 
const override;
 
   86    QModelIndex 
index( 
int row, 
int column, 
const QModelIndex &
parent = QModelIndex() ) 
const override;
 
   87    QModelIndex 
parent( 
const QModelIndex &
index ) 
const override;
 
   88    int rowCount( 
const QModelIndex &
parent = QModelIndex() ) 
const override;
 
  119    std::unique_ptr<QgsMeshDatasetGroupTreeItem> mRootItem;
 
 
  134    QVariant 
data( 
const QModelIndex &
index, 
int role ) 
const override;
 
  135    bool setData( 
const QModelIndex &
index, 
const QVariant &value, 
int role ) 
override;
 
  136    Qt::ItemFlags 
flags( 
const QModelIndex &
index ) 
const override;
 
  137    QVariant 
headerData( 
int section, Qt::Orientation orientation, 
int role ) 
const override;
 
  141    QString textDisplayed( 
const QModelIndex &
index ) 
const;
 
  142    QColor backGroundColor( 
const QModelIndex &
index ) 
const;
 
 
  156    Qt::ItemFlags 
flags( 
const QModelIndex &index ) 
const override;
 
  157    QVariant 
data( 
const QModelIndex &index, 
int role ) 
const override;
 
  175    bool filterAcceptsRow( 
int source_row, 
const QModelIndex &source_parent ) 
const override;
 
  178    int mActiveScalarGroupIndex = -1;
 
  179    int mActiveVectorGroupIndex = -1;
 
 
  194    void paint( QPainter *painter, 
const QStyleOptionViewItem &option, 
const QModelIndex &index ) 
const override;
 
  197    QRect 
iconRect( 
const QRect &rect, 
bool isVector ) 
const;
 
  199    QSize 
sizeHint( 
const QStyleOptionViewItem &option, 
const QModelIndex &index ) 
const override;
 
  202    const QPixmap mScalarSelectedPixmap;
 
  203    const QPixmap mScalarDeselectedPixmap;
 
  204    const QPixmap mVectorSelectedPixmap;
 
  205    const QPixmap mVectorDeselectedPixmap;
 
  207    QRect 
iconRect( 
const QRect &rect, 
int pos ) 
const;
 
 
  231    void selectAllGroups();
 
  232    void deselectAllGroups();
 
  235    void contextMenuEvent( QContextMenuEvent *event ) 
override;
 
  238    void removeCurrentItem();
 
  239    void onDatasetGroupSaved( 
const QString &uri );
 
  245    void selectAllItem( 
bool isChecked );
 
  246    QMenu *createContextMenu();
 
 
  268    int activeScalarGroup() 
const;
 
  271    int activeVectorGroup() 
const;
 
  276    void mousePressEvent( QMouseEvent *event ) 
override;
 
  280    void setActiveScalarGroup( 
int group );
 
  283    void setActiveVectorGroup( 
int group );
 
  293    void setActiveGroup();
 
 
  314    int rowCount( 
const QModelIndex &parent ) 
const override;
 
  315    QVariant data( 
const QModelIndex &index, 
int role ) 
const override;
 
  317    void setDisplayProviderName( 
bool displayProviderName );
 
  319    QStringList variableNames() 
const;
 
  323    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.
 
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
 
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
 
A model representing mesh dataset groups.
 
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.
 
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.