Ok, here it is model implementation:
#include "matcheslistmodel.h"
#include "roles.h"
MatchesListModel
::MatchesListModel(QObject *parent
) :{
// Adding new roles
QHash<int, QByteArray> roles;
roles.insert(ItemRoles::Title, "title");
roles.insert(ItemRoles::Image, "image");
setRoleNames(roles);
}
MatchesListModel::~MatchesListModel()
{
}
void MatchesListModel::setElements(QList<Item *> items)
{
mItems = items;
}
{
if (!index.isValid())
if (index.row() >= mItems.size())
switch (role) {
case Qt::DisplayRole:
return QVariant(mItems.
at(index.
row())->title
());
case ItemRoles::Image:
return QVariant(mItems.
at(index.
row())->image
());
default:
}
}
int MatchesListModel
::rowCount(const QModelIndex &parent
) const {
Q_UNUSED(parent);
return mItems.count();
}
#include "matcheslistmodel.h"
#include "roles.h"
MatchesListModel::MatchesListModel(QObject *parent) :
QAbstractListModel(parent)
{
// Adding new roles
QHash<int, QByteArray> roles;
roles.insert(ItemRoles::Title, "title");
roles.insert(ItemRoles::Image, "image");
setRoleNames(roles);
}
MatchesListModel::~MatchesListModel()
{
}
void MatchesListModel::setElements(QList<Item *> items)
{
mItems = items;
}
QVariant MatchesListModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (index.row() >= mItems.size())
return QVariant();
switch (role) {
case Qt::DisplayRole:
return QVariant(mItems.at(index.row())->title());
case ItemRoles::Image:
return QVariant(mItems.at(index.row())->image());
default:
return QVariant();
}
}
int MatchesListModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return mItems.count();
}
To copy to clipboard, switch view to plain text mode
As you can see, I'm not using setData().
Bookmarks