16#ifndef QGSPROJECTSTOREDOBJECTMANAGERMODEL_H
17#define QGSPROJECTSTOREDOBJECTMANAGERMODEL_H
23#include <QAbstractListModel>
25#include <QSortFilterProxyModel>
49 Object = Qt::UserRole + 1,
60 int rowCount(
const QModelIndex &parent )
const override;
61 QVariant data(
const QModelIndex &index,
int role )
const override;
62 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
63 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
69 void objectAboutToBeAdded(
const QString &name );
70 void objectAboutToBeRemoved(
const QString &name );
71 void objectAdded(
const QString &name );
72 void objectRemoved(
const QString &name );
80 virtual void objectAboutToBeAddedInternal(
const QString & ) {}
81 virtual void objectAboutToBeRemovedInternal(
const QString & ) {}
82 virtual void objectAddedInternal(
const QString & ) {}
83 virtual void objectRemovedInternal(
const QString & ) {}
85 virtual int rowCountInternal(
const QModelIndex & )
const {
return 0; }
86 virtual QVariant dataInternal(
const QModelIndex &,
int )
const {
return QVariant(); }
87 virtual bool setDataInternal(
const QModelIndex &,
const QVariant &,
int = Qt::EditRole ) {
return false; }
88 virtual Qt::ItemFlags flagsInternal(
const QModelIndex & )
const {
return Qt::ItemFlags();}
140 int rowCountInternal(
const QModelIndex &parent )
const override;
141 QVariant dataInternal(
const QModelIndex &index,
int role )
const override;
142 bool setDataInternal(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
143 Qt::ItemFlags flagsInternal(
const QModelIndex &index )
const override;
145 void objectAboutToBeAddedInternal(
const QString &name )
override;
146 void objectAboutToBeRemovedInternal(
const QString &name )
override;
147 void objectAddedInternal(
const QString &name )
override;
148 void objectRemovedInternal(
const QString &name )
override;
149 void objectRenamedInternal( T *
object,
const QString &newName );
150 QVariant objectToVariant( T *
object )
const;
157 bool mAllowEmpty =
false;
183 bool lessThan(
const QModelIndex &left,
const QModelIndex &right )
const override;
184 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
201 void setFilterString(
const QString &filter );
212 virtual bool filterAcceptsRowInternal(
int sourceRow,
const QModelIndex &sourceParent )
const;
Template class for storage of a set of objects attached to a QgsProject.
Base class for list models representing the objects available in a QgsAbstractProjectStoredObjectMana...
CustomRole
Custom model roles.
QgsProjectStoredObjectManagerModelBase(QObject *parent=nullptr)
Constructor for QgsProjectStoredObjectManagerModelBase, with the specified parent object.
void setAllowEmptyObject(bool allowEmpty)
Sets whether an optional empty object ("not set") option is present in the model.
QModelIndex indexFromObject(T *object) const
Returns the model index corresponding to an object.
T * objectFromIndex(const QModelIndex &index) const
Returns the object at the corresponding index.
QgsProjectStoredObjectManagerModel(QgsAbstractProjectStoredObjectManager< T > *manager, QObject *parent=nullptr)
Constructor for QgsProjectStoredObjectManagerModel, showing the objects from the specified manager.
PRIVATE QgsAbstractProjectStoredObjectManager< T > * mObjectManager
Object manager.
bool allowEmptyObject() const
Returns true if the model allows the empty object ("not set") choice.
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override
QString mFilterString
Filter string.
QString filterString() const
Returns the current filter string, if set.
QgsProjectStoredObjectManagerProxyModelBase(QObject *parent=nullptr)
Constructor for QgsProjectStoredObjectManagerProxyModelBase.
bool lessThan(const QModelIndex &left, const QModelIndex &right) const override
bool filterAcceptsRowInternal(int sourceRow, const QModelIndex &sourceParent) const override
Returns true if the proxy accepts the matching source row.
QgsProjectStoredObjectManagerProxyModel(QObject *parent=nullptr)
Constructor for QgsProjectStoredObjectManagerProxyModel.