34class Q_LABSQMLMODELS_EXPORT
QQmlTreeModel :
public QQmlAbstractColumnModel
37 Q_PROPERTY(QVariant rows READ rows WRITE setRows NOTIFY rowsChanged FINAL)
38 QML_NAMED_ELEMENT(TreeModel)
39 QML_ADDED_IN_VERSION(6, 10)
42 Q_DISABLE_COPY_MOVE(QQmlTreeModel)
44 explicit QQmlTreeModel(QObject *parent =
nullptr);
45 ~QQmlTreeModel() override;
47 QVariant rows()
const;
48 void setRows(
const QVariant &rows);
50 Q_INVOKABLE
void appendRow(QModelIndex parent,
const QVariant &row);
51 Q_INVOKABLE
void appendRow(
const QVariant &row);
52 Q_INVOKABLE
void clear();
53 Q_INVOKABLE QVariant getRow(
const QModelIndex &index)
const;
54 Q_INVOKABLE
void insertRow(
int rowIndex, QModelIndex parent,
const QVariant &row);
55 Q_INVOKABLE
void insertRow(
int rowIndex,
const QVariant &row);
56 Q_INVOKABLE
void removeRow(QModelIndex index);
57 Q_INVOKABLE
void setRow(QModelIndex index,
const QVariant &rowData);
59 Q_INVOKABLE QModelIndex index(
const std::vector<
int> &rowIndex,
int column);
62 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const override;
63 int rowCount(
const QModelIndex &parent = {})
const override;
64 int columnCount(
const QModelIndex &parent = {})
const override;
65 QModelIndex parent(
const QModelIndex &index)
const override;
68 QVariant firstRow()
const override;
69 void setInitialRows() override;
72 QQmlTreeRow *getPointerToTreeRow(QModelIndex &index,
const std::vector<
int> &rowIndex)
const;
75 friend class ::tst_QQmlTreeModel;
77 void setRowsPrivate(
const QVariantList &rowsAsVariantList);
78 QVariant dataPrivate(
const QModelIndex &index,
const QString &roleName)
const override;
79 void setDataPrivate(
const QModelIndex &index,
const QString &roleName, QVariant value) override;
81 bool validateNewRow(QLatin1StringView functionName,
const QVariant &row,
82 NewRowOperationFlag = OtherOperation)
const override;
84 void doInsert(
const QModelIndex &index,
int rowIndex,
const QVariant &row);
86 std::vector<std::unique_ptr<QQmlTreeRow>> mRows;
88 QVariantList mInitialRows;