/* * © Copyright 2014 – Urheberrechtshinweis * Alle Rechte vorbehalten / All Rights Reserved * * Programmcode ist urheberrechtlich geschuetzt. * Das Urheberrecht liegt, soweit nicht ausdruecklich anders gekennzeichnet, bei Frank Ebner. * Keine Verwendung ohne explizite Genehmigung. * (vgl. § 106 ff UrhG / § 97 UrhG) */ #include "../fixC11.h" #include "MetaEditModel.h" MetaEditModel::MetaEditModel(QObject* parent) : QAbstractTableModel(parent) { setHeaderData(0, Qt::Horizontal, QObject::tr("ID")); setHeaderData(1, Qt::Horizontal, QObject::tr("Name")); } void MetaEditModel::setSource(Floorplan::Meta* meta) { beginResetModel(); this->meta = meta; endResetModel(); } int MetaEditModel::rowCount(const QModelIndex& parent) const { (void) parent; return (meta) ? (meta->size()) : (0); } int MetaEditModel::columnCount(const QModelIndex& parent) const { (void) parent; return 2; } QVariant MetaEditModel::data(const QModelIndex &index, int role) const { if (role == Qt::DisplayRole) { switch(index.column()) { case 0: return meta->getKey(index.row()).c_str(); case 1: return meta->getVal(index.row()).c_str(); } } return QVariant(); } bool MetaEditModel::setData(const QModelIndex & index, const QVariant &value, int role) { if (role == Qt::EditRole) { switch(index.column()) { case 0: meta->setKey(index.row(), value.toString().toStdString()); return true; case 1: meta->setVal(index.row(), value.toString().toStdString()); return true; } } return false; } void MetaEditModel::deleteEntry(const int idx) { beginResetModel(); meta->deleteEntry(idx); endResetModel(); } void MetaEditModel::addEntry() { beginResetModel(); meta->add("key", "val"); endResetModel(); } Qt::ItemFlags MetaEditModel::flags(const QModelIndex &index) const { if (!index.isValid()) {return Qt::ItemIsEnabled;} return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable; } QVariant MetaEditModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role == Qt::DisplayRole) { if(orientation == Qt::Horizontal) { if (section == 0) {return "key";} if (section == 1) {return "value";} } else { return QString::number(section); } } return QVariant(); }