class EE::UI::Models::Model¶
Overview¶
#include <model.hpp> class Model { public: // typedefs typedef std::function<Variant(const ModelIndex&, const void*data)> ModelStyler; // enums enum UpdateFlag; // structs struct Operation; // classes class Client; // construction virtual ~Model(); // methods virtual bool hasChildren(const ModelIndex& modelIndex = ModelIndex()) const; virtual size_t rowCount(const ModelIndex& = ModelIndex()) const = 0; virtual size_t columnCount(const ModelIndex& = ModelIndex()) const = 0; virtual std::string columnName(const size_t&) const; virtual std::string rowName(const size_t&) const; virtual Variant data(const ModelIndex&, ModelRole = ModelRole::Display) const = 0; virtual void update(); virtual ModelIndex parentIndex(const ModelIndex&) const; virtual ModelIndex index(int row, int column = 0, const ModelIndex& = ModelIndex()) const; virtual ModelIndex sibling(int row, int column, const ModelIndex& parent) const; virtual void setData(const ModelIndex&, const Variant&); virtual size_t treeColumn() const; virtual bool acceptsDrag(const ModelIndex&, const std::string& dataType); virtual bool isColumnSortable(const size_t&) const; virtual std::string dragDataType() const; virtual bool isEditable(const ModelIndex&) const; virtual bool isValid(const ModelIndex& index) const; virtual int keyColumn() const; virtual SortOrder sortOrder() const; virtual bool isSortable(); virtual void sort(const size_t&, const SortOrder&); virtual bool classModelRoleEnabled(); virtual bool tooltipModelRoleEnabled(); void registerView(UIAbstractView*); void unregisterView(UIAbstractView*); void registerClient(Client*); void unregisterClient(Client*); void refreshView() const; void setOnUpdate(const std::function<void()>& onUpdate); virtual void invalidate(unsigned int flags = Model::UpdateFlag::InvalidateAllIndexes); std::weak_ptr<PersistentHandle> registerPersistentIndex(ModelIndex const&); void releasePersistentIndex(const std::shared_ptr<PersistentHandle>& handle); void beginInsertRows(ModelIndex const& parent, int first, int last); void beginInsertColumns(ModelIndex const& parent, int first, int last); void beginMoveRows(ModelIndex const& sourceParent, int first, int last, ModelIndex const& targetParent, int target_index); void beginMoveColumns(ModelIndex const& sourceParent, int first, int last, ModelIndex const& targetParent, int target_index); bool beginDeleteRows(ModelIndex const& parent, int first, int last); bool beginDeleteRows(ModelIndex const& index); bool beginDeleteColumns(ModelIndex const& parent, int first, int last); void endInsertRows(); void endInsertColumns(); void endMoveRows(); void endMoveColumns(); void endDeleteRows(); void endDeleteColumns(); Mutex& resourceMutex(); void acquireResourceMutex(); void releaseResourceMutex(); Uint32 subscribeModelStyler(const ModelStyler& styler); void unsubscribeModelStyler(Uint32 id); };
Detailed Documentation¶
Methods¶
void releasePersistentIndex(const std::shared_ptr<PersistentHandle>& handle)
Releases one registration of the handle; the handle is dropped when none remain.