aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmltablemodel_p.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2018-12-18 23:48:11 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2019-02-22 17:32:10 +0000
commitb15654d77f7886ae23f06d760b90973983e12779 (patch)
tree8e21d6e4022c77e41180190ccd66c37b57db4cf1 /src/qml/types/qqmltablemodel_p.h
parent22435f49499342ff102411c025efb8007dfa62a2 (diff)
TableModel: add QML-invokable overloads for index(), data() and setData()
data() needs to be invokable because it does more processing to ensure that DisplayRole will give us something, and we want to be able to access it in JS code too, not only via the role context property in a delegate binding. index() needs to be invokable to use it when calling data(). It's useful for setData() to be invokable so that TableView delegates can be used to edit the model. However since we don't normally expose numeric roles to QML, we use string roles, and have to look them up in the roleNames() hash. Change-Id: I38904ac995fc2bac514bde2dd37a95e0b911c00c Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/qml/types/qqmltablemodel_p.h')
-rw-r--r--src/qml/types/qqmltablemodel_p.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/qml/types/qqmltablemodel_p.h b/src/qml/types/qqmltablemodel_p.h
index 863c592678..5cb42b2cc8 100644
--- a/src/qml/types/qqmltablemodel_p.h
+++ b/src/qml/types/qqmltablemodel_p.h
@@ -85,11 +85,13 @@ public:
QJSValue roleDataProvider() const;
void setRoleDataProvider(QJSValue roleDataProvider);
- QModelIndex index(int row, int column, const QModelIndex &parent) const override;
+ Q_INVOKABLE QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
- QVariant data(const QModelIndex &index, int role) const override;
- bool setData(const QModelIndex &index, const QVariant &value, int role) override;
+ Q_INVOKABLE QVariant data(const QModelIndex &index, const QString &role) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+ Q_INVOKABLE bool setData(const QModelIndex &index, const QString &role, const QVariant &value);
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::DisplayRole) override;
QHash<int, QByteArray> roleNames() const override;
Q_SIGNALS: