OpenLCP/example/sACN Explorer/multiverseview.cpp

64 lines
1.5 KiB
C++

#include "multiverseview.h"
#include "multiversemodel.h"
#include "ui_multiverseview.h"
#include "universeviewdelegate.h"
#include <QDebug>
/**
* @brief MultiverseView::MultiverseView
* @param parent
*/
MultiverseView::MultiverseView(QWidget *parent, QSacnNode *node)
: QMainWindow(parent)
, ui(new Ui::MultiverseView)
{
ui->setupUi(this);
ui->multiverseView->setModel(new MultiverseModel(this, node));
ui->multiverseView->setItemDelegate(new UniverseViewDelegate(this, node));
ui->multiverseView->expandAll();
connect(ui->multiverseView->selectionModel(),
&QItemSelectionModel::currentChanged,
this, &MultiverseView::selectionChanged);
}
/**
* @brief MultiverseView::~MultiverseView
*/
MultiverseView::~MultiverseView()
{
delete ui;
}
/**
* @brief MultiverseView::selectionChanged
* @param selected
* @param deselected
*/
void MultiverseView::selectionChanged(const QModelIndex &current,
const QModelIndex &previous)
{
Q_UNUSED(previous)
ui->actionTerminate->setEnabled(false);
ui->actionUnsubscribe->setEnabled(false);
auto item = static_cast<MultiverseItem*>(current.internalPointer());
auto data = item->data(0, Qt::EditRole);
if (!data.isValid())
return;
if (data.metaType().id() == qMetaTypeId<QSacnUniverse*>())
{
auto univ = data.value<QSacnUniverse*>();
if (univ->isEditable())
ui->actionTerminate->setEnabled(true);
else
ui->actionUnsubscribe->setEnabled(true);
return;
}
}