File indexing completed on 2024-05-12 05:39:52
0001 #ifndef TREEITEM_H 0002 #define TREEITEM_H 0003 0004 #include <QJsonArray> 0005 #include <QJsonObject> 0006 #include <QObject> 0007 #include <QString> 0008 0009 #include "network_global.h" 0010 /** 0011 * @brief The TreeItem class 0012 */ 0013 class NETWORK_EXPORT TreeItem : public QObject 0014 { 0015 Q_OBJECT 0016 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) 0017 Q_PROPERTY(QString uuid READ uuid WRITE setUuid NOTIFY uuidChanged) 0018 public: 0019 TreeItem(QObject* parent= nullptr); 0020 0021 virtual void appendChild(); 0022 virtual bool isLeaf() const; 0023 virtual int childCount() const; 0024 virtual int addChild(TreeItem*); 0025 virtual TreeItem* getChildAt(int row); 0026 0027 TreeItem* getParentItem() const; 0028 void setParentItem(TreeItem* parent); 0029 0030 QString name() const; 0031 void setName(const QString& name); 0032 0033 virtual int indexOf(TreeItem*)= 0; 0034 int rowInParent(); 0035 0036 QString uuid() const; 0037 void setUuid(const QString& id); 0038 0039 virtual bool addChildInto(QString id, TreeItem* child); 0040 0041 virtual void clear(); 0042 0043 virtual void kick(const QString& str, bool isAdmin, const QString& senderId); 0044 0045 virtual TreeItem* getChildById(QString id); 0046 virtual bool removeChild(TreeItem*); 0047 0048 signals: 0049 void itemChanged(); 0050 void nameChanged(); 0051 void uuidChanged(); 0052 0053 protected: 0054 QString m_id; 0055 QString m_name; 0056 TreeItem* m_parentItem= nullptr; 0057 }; 0058 0059 #endif // TREEITEM_H