OpenLCP/example/sACN Explorer/multiverseitem.h

47 lines
1.1 KiB
C
Raw Normal View History

2021-09-06 12:54:28 -04:00
#pragma once
#include "sacn/extended.h"
#include <QVariant>
#include <QVector>
class QSacnUniverse; // forward declare
using discoveredUniverse = sACN::EXTENDED::DISCOVERY::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);
2021-09-07 11:18:49 -04:00
void removeChildren();
2021-09-06 12:54:28 -04:00
void setOverrideData(QVariant data);
MultiverseItem * child(int row);
int childCount() const;
int childRow(int column, const QVariant &data) const;
2021-09-06 12:54:28 -04:00
QVariant data(int column, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(int column, Qt::ItemFlags base) const;
int row() const;
MultiverseItem * parentItem();
private:
QVector<MultiverseItem*> childItems_;
QSacnUniverse* universe_;
discoveredUniverse* discovery_;
MultiverseItem* parentItem_;
QVariant override_data_;
};
Q_DECLARE_METATYPE(discoveredUniverse*)