#pragma once #include #include "dbmsgfieldbase.h" #include "messaginglib_global.h" template class DbMsgField : public DbMsgFieldBase { public: DbMsgField(); DbMsgField(const T &value); const T &getValue() const; void setValue(const T &value); void clear() override; QVariant toVariant() const override; void setVariant(const QVariant &variant) override; private: T m_value; }; template DbMsgField::DbMsgField() : DbMsgFieldBase() { } template DbMsgField::DbMsgField(const T &value) : DbMsgFieldBase(), m_value(value) { setHasValue(true); } template const T &DbMsgField::getValue() const { return m_value; } template void DbMsgField::setValue(const T &value) { m_value = value; setHasValue(true); setTouched(true); } template void DbMsgField::clear() { DbMsgFieldBase::clear(); m_value = T(); } template QVariant DbMsgField::toVariant() const { return getValue(); } template void DbMsgField::setVariant(const QVariant &variant) { Q_ASSERT(variant.type() == qMetaTypeId()); m_value = variant.value(); }