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 removeRow(QModelIndex index);
55 Q_INVOKABLE
void setRow(QModelIndex index,
const QVariant &rowData);
57 Q_INVOKABLE QModelIndex index(
const std::vector<
int> &rowIndex,
int column);
60 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const override;
61 int rowCount(
const QModelIndex &parent = {})
const override;
62 int columnCount(
const QModelIndex &parent = {})
const override;
63 QModelIndex parent(
const QModelIndex &index)
const override;
66 QVariant firstRow()
const override;
67 void setInitialRows() override;
70 QQmlTreeRow *getPointerToTreeRow(QModelIndex &index,
const std::vector<
int> &rowIndex)
const;
73 friend class ::tst_QQmlTreeModel;
75 void setRowsPrivate(
const QVariantList &rowsAsVariantList);
76 QVariant dataPrivate(
const QModelIndex &index,
const QString &roleName)
const override;
77 void setDataPrivate(
const QModelIndex &index,
const QString &roleName, QVariant value) override;
79 bool validateNewRow(QLatin1StringView functionName,
const QVariant &row,
80 NewRowOperationFlag = OtherOperation)
const override;
82 std::vector<std::unique_ptr<QQmlTreeRow>> mRows;
84 QVariantList mInitialRows;