16#ifndef QGSPROJECTSTOREDOBJECTMANAGERMODEL_H
17#define QGSPROJECTSTOREDOBJECTMANAGERMODEL_H
23#include <QAbstractListModel>
25#include <QSortFilterProxyModel>
49 Object = Qt::UserRole + 1,
59 int rowCount(
const QModelIndex &parent )
const override;
60 QVariant data(
const QModelIndex &index,
int role )
const override;
61 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
62 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
68 void objectAboutToBeAdded(
const QString &name );
69 void objectAboutToBeRemoved(
const QString &name );
70 void objectAdded(
const QString &name );
71 void objectRemoved(
const QString &name );
79 virtual void objectAboutToBeAddedInternal(
const QString & ) {}
80 virtual void objectAboutToBeRemovedInternal(
const QString & ) {}
81 virtual void objectAddedInternal(
const QString & ) {}
82 virtual void objectRemovedInternal(
const QString & ) {}
84 virtual int rowCountInternal(
const QModelIndex & )
const {
return 0; }
85 virtual QVariant dataInternal(
const QModelIndex &,
int )
const {
return QVariant(); }
86 virtual bool setDataInternal(
const QModelIndex &,
const QVariant &,
int = Qt::EditRole ) {
return false; }
87 virtual Qt::ItemFlags flagsInternal(
const QModelIndex & )
const {
return Qt::ItemFlags();}
139 int rowCountInternal(
const QModelIndex &parent )
const override;
140 QVariant dataInternal(
const QModelIndex &index,
int role )
const override;
141 bool setDataInternal(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
142 Qt::ItemFlags flagsInternal(
const QModelIndex &index )
const override;
144 void objectAboutToBeAddedInternal(
const QString &name )
override;
145 void objectAboutToBeRemovedInternal(
const QString &name )
override;
146 void objectAddedInternal(
const QString &name )
override;
147 void objectRemovedInternal(
const QString &name )
override;
148 void objectRenamedInternal( T *
object,
const QString &newName );
149 QVariant objectToVariant( T *
object )
const;
156 bool mAllowEmpty =
false;
182 bool lessThan(
const QModelIndex &left,
const QModelIndex &right )
const override;
183 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
200 void setFilterString(
const QString &filter );
211 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.