Fix failing entry model test for attachment name and size

This commit is contained in:
frostasm 2017-12-16 23:26:51 +02:00
parent 0c200d360b
commit ed0bda98a6
2 changed files with 15 additions and 10 deletions

View File

@ -86,17 +86,20 @@ QVariant EntryAttachmentsModel::data(const QModelIndex& index, int role) const
return QVariant();
}
if (role == Qt::DisplayRole) {
QString key = keyByIndex(index);
switch (index.column()) {
case Columns::NameColumn:
if (role == Qt::DisplayRole || role == Qt::EditRole) {
const QString key = keyByIndex(index);
const int column = index.column();
if (column == Columns::NameColumn) {
return key;
case Columns::SizeColumn:
return Tools::humanReadableFileSize(m_entryAttachments->value(key).size());
default:
break;
} else if (column == SizeColumn) {
const int attachmentSize = m_entryAttachments->value(key).size();
if (role == Qt::DisplayRole) {
return Tools::humanReadableFileSize(attachmentSize);
}
return attachmentSize;
}
}
return QVariant();
}

View File

@ -122,9 +122,11 @@ void TestEntryModel::testAttachmentsModel()
entryAttachments->set("first", QByteArray("123"));
entryAttachments->set("2nd", QByteArray("456"));
entryAttachments->set("2nd", QByteArray("789"));
entryAttachments->set("2nd", QByteArray("7890"));
QCOMPARE(model->data(model->index(0, 0)).toString().left(4), QString("2nd "));
const int firstRow = 0;
QCOMPARE(model->data(model->index(firstRow, EntryAttachmentsModel::NameColumn)).toString(), QString("2nd"));
QCOMPARE(model->data(model->index(firstRow, EntryAttachmentsModel::SizeColumn), Qt::EditRole).toInt(), 4);
entryAttachments->remove("first");