Added data(FullNameRole) implementation and minor refactoring.

This commit is contained in:
2026-02-07 19:42:22 +01:00
parent c6d6b18ab3
commit 40a0815501
3 changed files with 25 additions and 6 deletions

View File

@ -8,8 +8,21 @@
ModelItem::ModelItem(const ModelItemValues values) ModelItem::ModelItem(const ModelItemValues values)
: m_values(values) {} : m_values(values) {}
QVariant ModelItem::data(int role) const { return m_values.value(role); } QVariant ModelItem::data(int role) const {
switch (role) {
case FullNameRole:
return fullName();
break;
case ToStringRole:
return toString();
break;
case JsonObjectRole:
return toJsonObject();
break;
default:
return m_values.value(role);
}
}
bool ModelItem::setData(const QVariant& value, int role) { bool ModelItem::setData(const QVariant& value, int role) {
bool valueChanged = false; bool valueChanged = false;
if (m_values.contains(role)) { if (m_values.contains(role)) {
@ -44,6 +57,10 @@ bool ModelItem::setItemData(const QMap<int, QVariant>& changedValues) {
return valueChanged; return valueChanged;
} }
QString ModelItem::fullName() const {
return QString("%1 %2").arg(data(FirstNameRole).toString(), data(LastNameRole).toString());
}
QString ModelItem::toString() const { QString ModelItem::toString() const {
QString result; QString result;

View File

@ -14,6 +14,7 @@ class ModelItem {
// TODO change return value to list of changed roles // TODO change return value to list of changed roles
bool setItemData(const QMap<int, QVariant>& changedValues); bool setItemData(const QMap<int, QVariant>& changedValues);
QString fullName() const;
QString toString() const; QString toString() const;
QJsonObject toJsonObject() const; QJsonObject toJsonObject() const;

View File

@ -82,11 +82,14 @@ QVariant TableModel::data(const QModelIndex& index, int role) const {
return QVariant(); return QVariant();
} }
int roleForColumn = GET_ROLE_FOR_COLUMN(column); const int roleForColumn = GET_ROLE_FOR_COLUMN(column);
switch (role) { switch (role) {
case Qt::DisplayRole: case Qt::DisplayRole:
case Qt::EditRole: case Qt::EditRole:
return m_items.at(row)->data(roleForColumn); return m_items.at(row)->data(roleForColumn);
case Qt::ToolTipRole:
return m_items.at(index.row())->data(ToStringRole);
break;
case MembershipNumberRole: case MembershipNumberRole:
case LastNameRole: case LastNameRole:
case FirstNameRole: case FirstNameRole:
@ -102,11 +105,9 @@ QVariant TableModel::data(const QModelIndex& index, int role) const {
case BiddingTypeRole: case BiddingTypeRole:
case OnlineIdRole: case OnlineIdRole:
case AccessCodeRole: case AccessCodeRole:
return m_items.at(row)->data(role);
case ToStringRole: case ToStringRole:
return m_items.at(row)->toString();
case JsonObjectRole: case JsonObjectRole:
return m_items.at(row)->toJsonObject(); return m_items.at(row)->data(role);
} }
return QVariant(); return QVariant();