remove unnecessary signals/slots
This commit is contained in:
parent
18e14b99d8
commit
fe53e57a6d
|
@ -14,7 +14,7 @@
|
|||
*/
|
||||
MultiverseItem::MultiverseItem(MultiverseItem* parent,
|
||||
QSacnUniverse* universe,
|
||||
discoveredUniverse *discovery)
|
||||
QSacnDiscoveredUniverse *discovery)
|
||||
: universe_(universe)
|
||||
, discovery_(discovery)
|
||||
, parentItem_(parent)
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
class QSacnUniverse; // forward declare
|
||||
|
||||
using discoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse;
|
||||
Q_DECLARE_METATYPE(discoveredUniverse*)
|
||||
using QSacnDiscoveredUniverse = sACN::EXTENDED::DISCOVERY::discoveredUniverse;
|
||||
Q_DECLARE_METATYPE(QSacnDiscoveredUniverse*)
|
||||
|
||||
/**
|
||||
* @brief The MultiverseItem class
|
||||
|
@ -18,7 +18,7 @@ class MultiverseItem
|
|||
public:
|
||||
explicit MultiverseItem(MultiverseItem* parentItem = nullptr,
|
||||
QSacnUniverse* universe = nullptr,
|
||||
discoveredUniverse* discovery = nullptr);
|
||||
QSacnDiscoveredUniverse* discovery = nullptr);
|
||||
virtual ~MultiverseItem();
|
||||
|
||||
void appendChild(MultiverseItem* child);
|
||||
|
@ -39,7 +39,7 @@ public:
|
|||
private:
|
||||
QVector<MultiverseItem*> childItems_;
|
||||
QSacnUniverse* universe_;
|
||||
discoveredUniverse* discovery_;
|
||||
QSacnDiscoveredUniverse* discovery_;
|
||||
MultiverseItem* parentItem_;
|
||||
QVariant override_data_;
|
||||
};
|
||||
|
|
|
@ -14,26 +14,35 @@ MultiverseModel::MultiverseModel(QObject *parent, QSacnNode *node)
|
|||
, node_(node)
|
||||
, rootItem_(new MultiverseItem())
|
||||
{
|
||||
QMetaEnum e = QMetaEnum::fromType<MultiverseModel::Catagory>();
|
||||
for (int k = 0; k < e.keyCount(); k++)
|
||||
// create items for the category headers
|
||||
QMetaEnum categories = QMetaEnum::fromType<Catagory>();
|
||||
for (int itr = 0; itr < categories.keyCount(); itr++)
|
||||
{
|
||||
auto item = new MultiverseItem(rootItem_);
|
||||
item->setOverrideData(QString(e.key(k)));
|
||||
auto idx = MultiverseModel::index(k, 0, QModelIndex());
|
||||
categoryIndexes.insert(static_cast<MultiverseModel::Catagory>
|
||||
(e.value(k)), idx);
|
||||
auto header = new MultiverseItem(rootItem_);
|
||||
header->setOverrideData(QString(categories.key(itr)));
|
||||
auto idx = MultiverseModel::index(itr, 0, QModelIndex());
|
||||
categoryIndexes.insert(static_cast<Catagory>(categories.value(itr)), idx);
|
||||
}
|
||||
|
||||
// connect node changes
|
||||
connect(node, &QSacnNode::discoveryUpdates,
|
||||
this, &MultiverseModel::doDiscovery);
|
||||
connect(node, &QSacnNode::subscribing,
|
||||
this, &MultiverseModel::doSubscription);
|
||||
this, [this](QSacnUniverse *universe){
|
||||
insert_(categoryIndexes.value(Receiver), universe);
|
||||
});
|
||||
connect(node, &QSacnNode::unsubscribing,
|
||||
this, &MultiverseModel::doUnsubscribe);
|
||||
this, [this](QSacnUniverse *universe){
|
||||
remove_(categoryIndexes.value(Receiver), universe);
|
||||
});
|
||||
connect(node, &QSacnNode::creating,
|
||||
this, &MultiverseModel::doCreation);
|
||||
this, [this](QSacnUniverse *universe){
|
||||
insert_(categoryIndexes.value(Source), universe);
|
||||
});
|
||||
connect(node, &QSacnNode::terminating,
|
||||
this, &MultiverseModel::doTerminate);
|
||||
this, [this](QSacnUniverse *universe){
|
||||
remove_(categoryIndexes.value(Source), universe);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,16 +55,6 @@ MultiverseModel::~MultiverseModel()
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::root
|
||||
* @return
|
||||
*/
|
||||
MultiverseItem * MultiverseModel::root()
|
||||
{
|
||||
return rootItem_;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::getItem
|
||||
* @param index
|
||||
|
@ -232,9 +231,9 @@ Qt::ItemFlags MultiverseModel::flags(const QModelIndex &index) const
|
|||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
void MultiverseModel::insert(const QModelIndex &parent,
|
||||
QSacnUniverse* universe,
|
||||
discoveredUniverse *discovery)
|
||||
void MultiverseModel::insert_(const QModelIndex &parent,
|
||||
QSacnUniverse* universe,
|
||||
QSacnDiscoveredUniverse *discovery)
|
||||
{
|
||||
auto item = getItem(parent);
|
||||
beginInsertRows(parent, item->childCount(), item->childCount());
|
||||
|
@ -290,10 +289,11 @@ void MultiverseModel::insert(const QModelIndex &parent,
|
|||
* @param parent
|
||||
* @param data
|
||||
*/
|
||||
void MultiverseModel::remove(const QModelIndex &parent, const QVariant &data)
|
||||
void MultiverseModel::remove_(const QModelIndex &parent,
|
||||
const QSacnUniverse *universe)
|
||||
{
|
||||
auto item = static_cast<MultiverseItem*>(parent.internalPointer());
|
||||
auto row = item->childRow(Column::Universe, data);
|
||||
auto row = item->childRow(Column::Universe, QVariant::fromValue(universe));
|
||||
if (row < 0)
|
||||
return;
|
||||
auto child = item->child(row);
|
||||
|
@ -319,47 +319,3 @@ void MultiverseModel::doDiscovery()
|
|||
new MultiverseItem(parent, nullptr, discovery.get());
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::doSubscription
|
||||
* @param universe
|
||||
*/
|
||||
void MultiverseModel::doSubscription(QSacnUniverse* universe)
|
||||
{
|
||||
auto parentIndex = categoryIndexes.value(MultiverseModel::Receiver);
|
||||
insert(parentIndex, universe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::doUnsubscribe
|
||||
* @param universe
|
||||
*/
|
||||
void MultiverseModel::doUnsubscribe(QSacnUniverse* universe)
|
||||
{
|
||||
auto parentIndex = categoryIndexes.value(MultiverseModel::Receiver);
|
||||
remove(parentIndex, QVariant::fromValue(universe));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::doCreation
|
||||
* @param universe
|
||||
*/
|
||||
void MultiverseModel::doCreation(QSacnUniverse* universe)
|
||||
{
|
||||
auto parentIndex = categoryIndexes.value(MultiverseModel::Source);
|
||||
insert(parentIndex, universe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief MultiverseModel::doTerminate
|
||||
* @param universe
|
||||
*/
|
||||
void MultiverseModel::doTerminate(QSacnUniverse *universe)
|
||||
{
|
||||
auto parentIndex = categoryIndexes.value(MultiverseModel::Source);
|
||||
remove(parentIndex, QVariant::fromValue(universe));
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
#include <QAbstractItemModel>
|
||||
#include "qsacnuniverse.h"
|
||||
#include "multiverseitem.h"
|
||||
#include "qsacnuniverse.h"
|
||||
|
||||
class QSacnNode; // forward declare node class
|
||||
|
||||
|
@ -12,68 +12,56 @@ class QSacnNode; // forward declare node class
|
|||
class MultiverseModel
|
||||
: public QAbstractItemModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MultiverseModel(QObject *parent = nullptr,
|
||||
QSacnNode *node = nullptr);
|
||||
virtual ~MultiverseModel();
|
||||
|
||||
public:
|
||||
/// @brief The Catagory enum
|
||||
enum Catagory {
|
||||
Discovery,
|
||||
Receiver,
|
||||
Source
|
||||
};
|
||||
Q_ENUM(Catagory)
|
||||
// QAbstractItemModel overrides:
|
||||
QVariant headerData(int section, Qt::Orientation orientation,
|
||||
int role = Qt::DisplayRole) const override;
|
||||
QModelIndex index(int row, int column,
|
||||
const QModelIndex &parent = QModelIndex()) const override;
|
||||
QModelIndex parent(const QModelIndex &index) const override;
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index,
|
||||
int role = Qt::DisplayRole) const override;
|
||||
bool setData(const QModelIndex &index, const QVariant &value,
|
||||
int role = Qt::EditRole) override;
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
||||
|
||||
/// @brief The Column enum
|
||||
enum Column {
|
||||
Universe,
|
||||
Status,
|
||||
Priority,
|
||||
Channels,
|
||||
SourceName
|
||||
};
|
||||
Q_ENUM(Column)
|
||||
/// @brief The Catagory enum
|
||||
enum Catagory {
|
||||
Discovery,
|
||||
Receiver,
|
||||
Source
|
||||
};
|
||||
Q_ENUM(Catagory)
|
||||
|
||||
explicit MultiverseModel(QObject *parent = nullptr,
|
||||
QSacnNode *node = nullptr);
|
||||
virtual ~MultiverseModel();
|
||||
/// @brief The Column enum
|
||||
enum Column {
|
||||
Universe,
|
||||
Status,
|
||||
Priority,
|
||||
Channels,
|
||||
SourceName
|
||||
};
|
||||
Q_ENUM(Column)
|
||||
|
||||
// Model overrides:
|
||||
QVariant headerData(int section, Qt::Orientation orientation,
|
||||
int role = Qt::DisplayRole) const override;
|
||||
QModelIndex index(int row, int column,
|
||||
const QModelIndex &parent = QModelIndex()) const override;
|
||||
QModelIndex parent(const QModelIndex &index) const override;
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index,
|
||||
int role = Qt::DisplayRole) const override;
|
||||
bool setData(const QModelIndex &index, const QVariant &value,
|
||||
int role = Qt::EditRole) override;
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
||||
private slots:
|
||||
void doDiscovery();
|
||||
|
||||
// non-standard model operations
|
||||
MultiverseItem * root();
|
||||
void insert(const QModelIndex &parent,
|
||||
QSacnUniverse *universe = nullptr,
|
||||
discoveredUniverse *discovery = nullptr);
|
||||
void remove(const QModelIndex &parent,
|
||||
const QVariant &data);
|
||||
private:
|
||||
MultiverseItem * getItem(const QModelIndex &index) const;
|
||||
QMap<MultiverseModel::Catagory, QModelIndex> categoryIndexes;
|
||||
|
||||
QMap<MultiverseModel::Catagory, QModelIndex> categoryIndexes;
|
||||
|
||||
public slots:
|
||||
void doDiscovery();
|
||||
void doSubscription(QSacnUniverse*);
|
||||
void doUnsubscribe(QSacnUniverse*);
|
||||
void doCreation(QSacnUniverse*);
|
||||
void doTerminate(QSacnUniverse*);
|
||||
|
||||
private:
|
||||
MultiverseItem * getItem(const QModelIndex &index) const;
|
||||
|
||||
QSacnNode * node_;
|
||||
MultiverseItem * rootItem_;
|
||||
QSacnNode *node_;
|
||||
MultiverseItem *rootItem_;
|
||||
void insert_(const QModelIndex &parent,
|
||||
QSacnUniverse *universe = nullptr,
|
||||
QSacnDiscoveredUniverse *discovery = nullptr);
|
||||
void remove_(const QModelIndex &parent,
|
||||
const QSacnUniverse *universe);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue