QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QmlObjectListModel.h
Go to the documentation of this file.
1#pragma once
2
4
6{
10
11public:
12 QmlObjectListModel(QObject* parent = nullptr);
13
14 // Overrides from ObjectListModelBase
15 int count() const override final;
16 bool isEmpty() const override final { return count() == 0; }
17 void setDirty(bool dirty) override final;
18 void clear() override final;
19 QObject* removeOne(const QObject* object) override final { return removeAt(indexOf(object)); }
20 bool contains(const QObject* object) override final { return _objectList.indexOf(object) != -1; }
22
23 // QmlObjectListModel specific methods
24 Q_INVOKABLE QObject* get(int index);
25 QObject* operator[](int index);
26 const QObject* operator[](int index) const;
27 void append(QObject* object);
28 void append(QList<QObject*> objects);
30 QObject* removeAt(int index);
31 void insert(int index, QObject* object);
32 void insert(int index, QList<QObject*> objects);
33 int indexOf(const QObject* object) { return _objectList.indexOf(object); }
34 void move(int from, int to);
35 template<class T> T value(int index) const { return qobject_cast<T>(_objectList[index]); }
36 QList<QObject*>* objectList() { return &_objectList; }
37
38protected:
39 // Overrides from QAbstractListModel
40 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
41 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
42 bool insertRows(int position, int rows, const QModelIndex& index = QModelIndex()) override;
43 bool removeRows(int position, int rows, const QModelIndex& index = QModelIndex()) override;
44 bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
45
46private:
47 QList<QObject*> _objectList;
48};
Base class for flat QObject* list models. Inherits common dirty/reset/role handling from ObjectItemMo...
QModelIndex index(int row, int column=0, const QModelIndex &parent=QModelIndex()) const override
QModelIndex parent(const QModelIndex &child) const override
void append(QObject *object)
Caller maintains responsibility for object ownership and deletion.
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
T value(int index) const
void move(int from, int to)
void setDirty(bool dirty) override final
bool isEmpty() const override final
bool contains(const QObject *object) override final
Q_INVOKABLE QObject * get(int index)
bool removeRows(int position, int rows, const QModelIndex &index=QModelIndex()) override
QObject * removeAt(int index)
QObject * removeOne(const QObject *object) override final
int rowCount(const QModelIndex &parent=QModelIndex()) const override
int count() const override final
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
void clear() override final
bool insertRows(int position, int rows, const QModelIndex &index=QModelIndex()) override
void clearAndDeleteContents() override final
Clears the list and calls deleteLater on each entry.
QObjectList swapObjectList(const QObjectList &newlist)
QList< QObject * > * objectList()
void insert(int index, QObject *object)
int indexOf(const QObject *object)