OpenLCP/platform/qt/sacn/multiverseitem.h

47 lines
1.3 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
2022-12-03 22:42:44 -05:00
using QSacnDiscoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse;
Q_DECLARE_METATYPE(QSacnDiscoveredUniverse*)
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,
2022-12-03 22:42:44 -05:00
QSacnDiscoveredUniverse* 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
2022-12-03 22:38:31 -05:00
MultiverseItem * child(int row) const;
2021-09-06 12:54:28 -04:00
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;
2022-12-03 22:38:31 -05:00
MultiverseItem * parentItem() const;
2021-09-06 12:54:28 -04:00
private:
QVector<MultiverseItem*> childItems_;
QSacnUniverse* universe_;
2022-12-03 22:42:44 -05:00
QSacnDiscoveredUniverse* discovery_;
2021-09-06 12:54:28 -04:00
MultiverseItem* parentItem_;
QVariant override_data_;
2022-12-06 00:16:00 -05:00
QWidget *mIndicator;
2021-09-06 12:54:28 -04:00
};