#include "adduniversedialog.h" #include "qsacnuniverse.h" #include "sacn/extended.h" #include "universeview.h" #include "universeviewdelegate.h" /** * @brief UniverseViewDelegate::UniverseViewDelegate * @param parent * @param node */ UniverseViewDelegate::UniverseViewDelegate(QObject * parent, QSacnNode * node) : QStyledItemDelegate(parent) , node_(node) { } /** * @brief UniverseViewDelegate::createEditor * @param parent * @param option * @param index * @return */ QWidget * UniverseViewDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { QVariant data = index.data(Qt::EditRole); if (data.metaType().id() == qMetaTypeId()) { auto univ = data.value(); auto universeView = new UniverseView(parent, univ); universeView->show(); return new QWidget(parent); } if (index.data().canConvert()) { auto disc = data.value(); auto subscribe = new AddUniverseDialog(parent, disc->universe, tr("Subscribe to Universe")); connect(subscribe, &AddUniverseDialog::additionRequested, node_, &QSacnNode::subscribe); return subscribe; } return QStyledItemDelegate::createEditor(parent, option, index); }