#pragma once #include "extended.h" #include #include class QSacnUniverse; // forward declare using discoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse; Q_DECLARE_METATYPE(discoveredUniverse*) /** * @brief The MultiverseItem class */ class MultiverseItem { public: explicit MultiverseItem(MultiverseItem* parentItem = nullptr, QSacnUniverse* universe = nullptr, discoveredUniverse* discovery = nullptr); virtual ~MultiverseItem(); void appendChild(MultiverseItem* child); void removeChild(MultiverseItem* child); void removeChildren(); void setOverrideData(QVariant data); void createChildren(); MultiverseItem * child(int row); int childCount() const; int childRow(int column, const QVariant &data) const; QVariant data(int column, int role = Qt::DisplayRole) const; bool setData(int column, const QVariant &value, int role = Qt::EditRole); Qt::ItemFlags flags(int column, Qt::ItemFlags base) const; int row() const; MultiverseItem * parentItem(); private: QVector childItems_; QSacnUniverse* universe_; discoveredUniverse* discovery_; MultiverseItem* parentItem_; QVariant override_data_; };