102 lines
2.2 KiB
C++
102 lines
2.2 KiB
C++
/*
|
||
* © 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();
|
||
|
||
}
|
||
|