Moved the model meta data for roles and columns into "model/metadata.h" to gather meta data like this in one central place.

This commit is contained in:
2025-12-29 10:30:12 +01:00
parent b2f01a7990
commit 0c3d711513
9 changed files with 78 additions and 77 deletions

View File

@ -4,19 +4,13 @@
#include "commands/edititemcommand.h"
#include "commands/insertrowscommand.h"
#include "commands/removerowscommand.h"
#include "metadata.h"
#include "modelitem.h"
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
QHash<int, QByteArray> TableModel::ROLE_NAMES = {{NameRole, "Name"},
{DescriptionRole, "Description"},
{InfoRole, "Info"},
{AmountRole, "Amount"},
{FactorRole, "Factor"}};
QList<QString> TableModel::intColumns = {"Amount", "Factor"};
QByteArray TableModel::generateExampleItems() {
QJsonDocument doc = QJsonDocument();
QJsonObject rootObject;
@ -26,14 +20,11 @@ QByteArray TableModel::generateExampleItems() {
QJsonObject itemObject;
// itemObject.insert("uuid", m_uuid.toString());
// itemObject.insert("entryDateUTC", m_entryDateUTC.toString(Qt::ISODate));
itemObject.insert(TableModel::ROLE_NAMES.value(TableModel::NameRole),
QString("Item %1").arg(row));
itemObject.insert(TableModel::ROLE_NAMES.value(TableModel::DescriptionRole),
QString("This is item %1").arg(row));
itemObject.insert(TableModel::ROLE_NAMES.value(TableModel::InfoRole),
QString("Info of item %1").arg(row));
itemObject.insert(TableModel::ROLE_NAMES.value(TableModel::AmountRole), row);
itemObject.insert(TableModel::ROLE_NAMES.value(TableModel::FactorRole), row * 1.1);
itemObject.insert(ROLE_NAMES.value(NameRole), QString("Item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(DescriptionRole), QString("This is item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(InfoRole), QString("Info of item %1").arg(row));
itemObject.insert(ROLE_NAMES.value(AmountRole), row);
itemObject.insert(ROLE_NAMES.value(FactorRole), row * 1.1);
array.append(itemObject);
}
@ -219,29 +210,6 @@ void TableModel::execEditItemData(const int row, const QMap<int, QVariant>& chan
}
}
int TableModel::getRoleForColumn(const int column) const {
switch (column) {
case 0:
return NameRole;
break;
case 1:
return DescriptionRole;
break;
case 2:
return InfoRole;
break;
case 3:
return AmountRole;
break;
case 4:
return FactorRole;
break;
default:
return NameRole;
break;
}
}
QMap<int, QVariant> TableModel::onlyChangedValues(const QModelIndex& index,
const QMap<int, QVariant>& roleValueMap) const {
QMap<int, QVariant> result;