Turn EntryAttributesModel into a QAbstractListModel.

This commit is contained in:
Felix Geyer 2012-04-28 16:50:17 +02:00
parent 6140a688d7
commit 7f67019f63
3 changed files with 15 additions and 30 deletions

View File

@ -21,7 +21,7 @@
#include "core/Tools.h"
EntryAttributesModel::EntryAttributesModel(QObject* parent)
: QAbstractTableModel(parent)
: QAbstractListModel(parent)
, m_entryAttributes(0)
{
}
@ -64,22 +64,18 @@ int EntryAttributesModel::columnCount(const QModelIndex& parent) const
{
Q_UNUSED(parent);
return 2;
return 1;
}
QVariant EntryAttributesModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if ((orientation == Qt::Horizontal) && (role == Qt::DisplayRole)) {
switch (section) {
case 0:
if ((orientation == Qt::Horizontal) && (role == Qt::DisplayRole) && (section == 0)) {
return tr("Name");
case 1:
return tr("Value");
}
}
else {
return QVariant();
}
}
QVariant EntryAttributesModel::data(const QModelIndex& index, int role) const
{
@ -87,14 +83,7 @@ QVariant EntryAttributesModel::data(const QModelIndex& index, int role) const
return QVariant();
}
QString key = m_attributes.at(index.row());
if (index.column() == 0) {
return key;
}
else {
return m_entryAttributes->value(key);
}
return m_attributes.at(index.row());
}
bool EntryAttributesModel::setData(const QModelIndex& index, const QVariant& value, int role)
@ -105,16 +94,13 @@ bool EntryAttributesModel::setData(const QModelIndex& index, const QVariant& val
}
QString oldKey = m_attributes.at(index.row());
QString newKey = value.toString();
if (index.column() == 0) {
if (EntryAttributes::isDefaultAttribute(value.toString())) {
if (EntryAttributes::isDefaultAttribute(newKey)
|| m_entryAttributes->keys().contains(newKey)) {
return false;
}
m_entryAttributes->rename(oldKey, value.toString());
}
else {
m_entryAttributes->set(oldKey, value.toString());
}
m_entryAttributes->rename(oldKey, newKey);
return true;
}

View File

@ -18,11 +18,11 @@
#ifndef KEEPASSX_ENTRYATTRIBUTESMODEL_H
#define KEEPASSX_ENTRYATTRIBUTESMODEL_H
#include <QtCore/QAbstractTableModel>
#include <QtCore/QAbstractListModel>
class EntryAttributes;
class EntryAttributesModel : public QAbstractTableModel
class EntryAttributesModel : public QAbstractListModel
{
Q_OBJECT

View File

@ -161,7 +161,6 @@ void TestEntryModel::testAttributesModel()
entryAttributes->set("2nd", "789");
QCOMPARE(model->data(model->index(0, 0)).toString(), QString("2nd"));
QCOMPARE(model->data(model->index(0, 1)).toString(), QString("789"));
entryAttributes->remove("first");