1
0
Fork 0
OpenLCP/platform/qt/sacn/multiverseitem.h

47 lines
1.3 KiB
C++

#pragma once
#include "extended.h"
#include <QVariant>
#include <QVector>
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<MultiverseItem*> childItems_;
QSacnUniverse* universe_;
QSacnDiscoveredUniverse* discovery_;
MultiverseItem* parentItem_;
QVariant override_data_;
QWidget *mIndicator;
};