linkable.h
Go to the documentation of this file.
1 #ifndef DNAI_MODELS_GUI_LINK_H
2 #define DNAI_MODELS_GUI_LINK_H
3 
4 #include <QObject>
8 
9 namespace dnai
10 {
11  namespace models
12  {
13  namespace gui
14  {
15  class Linkable : public QObject, public interfaces::IModelData<data::Linkable>, public interfaces::ASerializable<data::Linkable>
16  {
17  Q_OBJECT
18  Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged)
19  Q_PROPERTY(QString linkedId READ linkedId WRITE setLinkedId NOTIFY idLinkedChanged)
20 
21  public:
22  QString id() const;
23  void setId(const QString &id);
24 
25  QString linkedId() const;
26  void setLinkedId(const QString &id);
27 
28  signals:
29  void idChanged(const QString &id);
30  void idLinkedChanged(const QString &linkedID);
31 
32  void serialize(QJsonObject& obj) const override;
33  protected:
34  void _deserialize(const QJsonObject& obj) override;
35  public:
36  const data::Linkable& data() const override;
37  bool setData(const data::Linkable& data) override;
38 
39  private:
41  };
42  }
43  }
44 }
45 
46 
47 #endif //DNAI_MODELS_GUI_LINK_H
Allow inherited class to serialize and deserialize itself.
Definition: iserializable.h:33
bool setData(const data::Linkable &data) override
Definition: linkable.cpp:53
Definition: linkable.h:15
const data::Linkable & data() const override
Return the data component.
Definition: linkable.cpp:48
void setLinkedId(const QString &id)
Definition: linkable.cpp:28
void _deserialize(const QJsonObject &obj) override
Implement this function in order to use deserialize(const QJsonObject &obj)
Definition: linkable.cpp:42
void setId(const QString &id)
Definition: linkable.cpp:15
Definition: imodeldata.h:9
void idLinkedChanged(const QString &linkedID)
Definition: api.h:13
void serialize(QJsonObject &obj) const override
Definition: linkable.cpp:36
void idChanged(const QString &id)
data::Linkable m_data
Definition: linkable.h:40
QString linkedId() const