Download raw (1.3 KB)
#include "literalmodel.h"
#include "command.h"
LiteralModel::LiteralModel(Command * c, QObject *parent) :
QAbstractTableModel(parent),
command(c)
{
}
int LiteralModel::rowCount(const QModelIndex &parent) const
{
if(parent.isValid())
return 0;
return command->getAliases().count();
}
QVariant LiteralModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
return QVariant();
QList<QString> keys(command->getAliases().keys());
QList<QString> values(command->getAliases().values());
if(role == Qt::DisplayRole || role == Qt::EditRole)
{
if(index.column() == 0)
return keys.at(index.row());
else
return values.at(index.row());
}
return QVariant();
}
bool LiteralModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
if(!index.isValid())
return false;
QList<QString> keys(command->getAliases().keys());
QString k(keys.at(index.row()));
// QList<QString> values(command->getAliases().values());
// QString v(values.at(index.row()));
command->setAlias(k, value.toString());
return true;
}
Qt::ItemFlags LiteralModel::flags(const QModelIndex &index) const
{
if(!index.isValid())
return Qt::NoItemFlags;
if(index.column() == 1)
return Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled;
return Qt::ItemIsEnabled;
}