Added data(FullNameRole) implementation and minor refactoring.
This commit is contained in:
@ -8,8 +8,21 @@
|
||||
ModelItem::ModelItem(const ModelItemValues 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 valueChanged = false;
|
||||
if (m_values.contains(role)) {
|
||||
@ -44,6 +57,10 @@ bool ModelItem::setItemData(const QMap<int, QVariant>& changedValues) {
|
||||
return valueChanged;
|
||||
}
|
||||
|
||||
QString ModelItem::fullName() const {
|
||||
return QString("%1 %2").arg(data(FirstNameRole).toString(), data(LastNameRole).toString());
|
||||
}
|
||||
|
||||
QString ModelItem::toString() const {
|
||||
QString result;
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ class ModelItem {
|
||||
// TODO change return value to list of changed roles
|
||||
bool setItemData(const QMap<int, QVariant>& changedValues);
|
||||
|
||||
QString fullName() const;
|
||||
QString toString() const;
|
||||
QJsonObject toJsonObject() const;
|
||||
|
||||
|
||||
@ -82,11 +82,14 @@ QVariant TableModel::data(const QModelIndex& index, int role) const {
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
int roleForColumn = GET_ROLE_FOR_COLUMN(column);
|
||||
const int roleForColumn = GET_ROLE_FOR_COLUMN(column);
|
||||
switch (role) {
|
||||
case Qt::DisplayRole:
|
||||
case Qt::EditRole:
|
||||
return m_items.at(row)->data(roleForColumn);
|
||||
case Qt::ToolTipRole:
|
||||
return m_items.at(index.row())->data(ToStringRole);
|
||||
break;
|
||||
case MembershipNumberRole:
|
||||
case LastNameRole:
|
||||
case FirstNameRole:
|
||||
@ -102,11 +105,9 @@ QVariant TableModel::data(const QModelIndex& index, int role) const {
|
||||
case BiddingTypeRole:
|
||||
case OnlineIdRole:
|
||||
case AccessCodeRole:
|
||||
return m_items.at(row)->data(role);
|
||||
case ToStringRole:
|
||||
return m_items.at(row)->toString();
|
||||
case JsonObjectRole:
|
||||
return m_items.at(row)->toJsonObject();
|
||||
return m_items.at(row)->data(role);
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
|
||||
Reference in New Issue
Block a user