OpenLCP/example/sACN Explorer/multiverseitem.h

46 lines
1.2 KiB
C
Raw Normal View History

2021-09-06 12:54:28 -04:00
#pragma once
2022-11-28 15:06:48 -05:00
#include "extended.h"
2021-09-06 12:54:28 -04:00
#include <QVariant>
#include <QVector>
class QSacnUniverse; // forward declare
using discoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse;
Q_DECLARE_METATYPE(discoveredUniverse*)
2021-09-06 12:54:28 -04:00
/**
* @brief The MultiverseItem class
*/
class MultiverseItem
{
public:
explicit MultiverseItem(MultiverseItem* parentItem = nullptr,
2021-09-10 11:47:48 -04:00
QSacnUniverse* universe = nullptr,
discoveredUniverse* discovery = nullptr);
2021-09-06 12:54:28 -04:00
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);
2021-09-10 12:00:50 -04:00
void createChildren();
2021-09-06 12:54:28 -04:00
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;
bool setData(int column, const QVariant &value, int role = Qt::EditRole);
2021-09-06 12:54:28 -04:00
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_;
};