diff --git a/examples/todos/src/Bindings.cpp b/examples/todos/src/Bindings.cpp index ed76eab..2ca8fc1 100644 --- a/examples/todos/src/Bindings.cpp +++ b/examples/todos/src/Bindings.cpp @@ -162,6 +162,17 @@ QVariant Todos::data(const QModelIndex &index, int role) const return QVariant(); } +int Todos::role(const char* name) const { + auto names = roleNames(); + auto i = names.constBegin(); + while (i != names.constEnd()) { + if (i.value() == name) { + return i.key(); + } + ++i; + } + return -1; +} QHash Todos::roleNames() const { QHash names = QAbstractItemModel::roleNames(); names.insert(Qt::UserRole + 0, "completed"); diff --git a/examples/todos/src/Bindings.h b/examples/todos/src/Bindings.h index 6f2cab9..cbd6028 100644 --- a/examples/todos/src/Bindings.h +++ b/examples/todos/src/Bindings.h @@ -38,6 +38,7 @@ public: void fetchMore(const QModelIndex &parent) override; Qt::ItemFlags flags(const QModelIndex &index) const override; void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; + int role(const char* name) const; QHash roleNames() const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override;