90 lines
1.8 KiB
C++
90 lines
1.8 KiB
C++
#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 {
|
|
return (meta) ? (meta->size()) : (0);
|
|
}
|
|
|
|
int MetaEditModel::columnCount(const QModelIndex &parent) const {
|
|
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();
|
|
|
|
}
|
|
|