#pragma once #include "extended.h" #include #include class QSacnUniverse; // forward declare using QSacnDiscoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse; Q_DECLARE_METATYPE(QSacnDiscoveredUniverse*) /** * @brief The MultiverseItem class */ class MultiverseItem { public: explicit MultiverseItem(MultiverseItem* parentItem = nullptr, QSacnUniverse* universe = nullptr, QSacnDiscoveredUniverse* discovery = nullptr); virtual ~MultiverseItem(); void appendChild(MultiverseItem* child); void removeChild(MultiverseItem* child); void removeChildren(); void setOverrideData(QVariant data); void createChildren(); MultiverseItem * child(int row) const; 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() const; private: QVector childItems_; QSacnUniverse* universe_; QSacnDiscoveredUniverse* discovery_; MultiverseItem* parentItem_; QVariant override_data_; };