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 bool moveRows(
const QModelIndex &fromIndex,
int fromRowIndex,
int rows,
57 const QModelIndex &toIndex,
int toRowIndex) override;
58 Q_INVOKABLE
void removeRow(QModelIndex index);
59 Q_INVOKABLE
void setRow(QModelIndex index,
const QVariant &rowData);
61 Q_INVOKABLE QModelIndex index(
const std::vector<
int> &rowIndex,
int column);
64 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const override;
65 int rowCount(
const QModelIndex &parent = {})
const override;
66 int columnCount(
const QModelIndex &parent = {})
const override;
67 QModelIndex parent(
const QModelIndex &index)
const override;
70 QVariant firstRow()
const override;
71 void setInitialRows() override;
74 QQmlTreeRow *getPointerToTreeRow(QModelIndex &index,
const std::vector<
int> &rowIndex)
const;
77 friend class ::tst_QQmlTreeModel;
79 void setRowsPrivate(
const QVariantList &rowsAsVariantList);
80 QVariant dataPrivate(
const QModelIndex &index,
const QString &roleName)
const override;
81 void setDataPrivate(
const QModelIndex &index,
const QString &roleName, QVariant value) override;
83 bool validateNewRow(QLatin1StringView functionName,
const QVariant &row,
84 NewRowOperationFlag = OtherOperation)
const override;
86 void doInsert(
const QModelIndex &index,
int rowIndex,
const QVariant &row);
88 std::vector<std::unique_ptr<QQmlTreeRow>> mRows;
90 QVariantList mInitialRows;