#include #include #include #include #include "ObjectView.h" ObjectView::ObjectView(QWidget *parent, QSqlDatabase *dbh, int id, QString name, int type, int num) { this->parent = parent; this->dbh = dbh; this->ObjId = id; this->ObjName = name; this->setObjectName(name + " view"); this->ObjType = type; this->ObjNum = num; if(this->ObjType == -1) setTitle("Nothing Selected."); else setTitle(name); } void ObjectView::DBLoad() { // We do not load fields for which a default value has not yet been defined // This is because we don't know by default how to display it. QSqlQuery query(*this->dbh); query.prepare("SELECT prop_id, prop_val FROM property WHERE object = :id"); query.bindValue(":id", this->ObjId); query.exec(); while(query.next()) { int id = query.value(0).toInt(); if(fields.find(id) != fields.end()) fields[id]->SetValue(query.value(1)); } } void ObjectView::DBSave() { std::map::iterator fi; dbh->transaction(); for(fi = fields.begin(); fi != fields.end(); ++fi) (*fi).second->SaveToDB(dbh); dbh->commit(); }