X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fattributeitem.cpp;fp=src%2Fattributeitem.cpp;h=d4961d0af39ef00630e7d891d6adadaae4888bf6;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/attributeitem.cpp b/src/attributeitem.cpp new file mode 100644 index 0000000..d4961d0 --- /dev/null +++ b/src/attributeitem.cpp @@ -0,0 +1,132 @@ +#include "attributeitem.h" + +#include + +extern bool debug; + +AttributeItem::AttributeItem(TreeItem *parent) + : BranchItem(parent) +{ + //qDebug() << "Constr. AttrItem (parent)"; + TreeItem::setType(Attribute); + internal = false; + attrType = Undefined; +} + +AttributeItem::AttributeItem(const QString &k, const QString &v, TreeItem *parent) + : BranchItem(parent) +{ + //qDebug() << "Constr. AttrItem (k, v, parent)"; + TreeItem::setType(Attribute); + internal = false; + + set(k, v); +} + +AttributeItem::~AttributeItem() { + //qDebug() << "Destr. AttrItem"; +} + +void AttributeItem::copy(AttributeItem *other) +{ + key = other->key; + value = other->value; + attrType = other->attrType; +} + +void AttributeItem::set(const QString &k, const QString &v) +{ + key = k; + value = QVariant(v); + attrType = String; + createHeading(); +} + +void AttributeItem::get(QString &k, QString &v, Type &t) // FIXME-3 Better use return tuple + // https://stackoverflow.com/questions/321068/returning-multiple-values-from-a-c-function +{ + k = key; + v = value.toString(); + t = attrType; +} + +void AttributeItem::setKey(const QString &k) // FIXME-3 Check if key aready exists in branch? +{ + key = k; + createHeading(); +} + +QString AttributeItem::getKey() +{ + return key; +} + +void AttributeItem::setValue(const QString &v) +{ + value = v; + attrType = String; + createHeading(); +} + +void AttributeItem::setValue(const qlonglong &n) +{ + value = n; + attrType = Integer; + createHeading(); +} + +void AttributeItem::setValue(const QDateTime &dt) +{ + value = dt; + attrType = DateTime; + createHeading(); +} + +QVariant AttributeItem::getValue() +{ + return value; +} + +void AttributeItem::setAttributeType(const Type &t) +{ + attrType = t; +} + +AttributeItem::Type AttributeItem::getAttributeType() +{ + return attrType; +} + +QString AttributeItem::getAttributeTypeString() +{ + switch (attrType) { + case Integer: + return "Integer"; + case String: + return "String"; + case DateTime: + return "DateTime"; + default: + break; + } + return "Undefined"; +} + +void AttributeItem::setInternal(bool b) { internal = b; } + +bool AttributeItem::isInternal() { return internal; } + +QString AttributeItem::getDataXML() +{ + QString a; + a = attribut("key", getKey()); + a += attribut("value", getValue().toString()); + a += attribut("type", getAttributeTypeString()); + return singleElement("attribute", a); +} + +void AttributeItem::createHeading() // FIXME-3 Visible in TreeEditor, should not go to MapEditor +{ + setHeadingPlainText( + QString("[Attr] %1: %2").arg(key).arg(value.toString())); +}