1
0
Fork 0

inspect DMX data

This commit is contained in:
Kevin Matz 2023-04-16 14:57:28 -04:00
parent cbd362b341
commit 373e6dbda5
2 changed files with 35 additions and 0 deletions

View File

@ -44,6 +44,13 @@ DeviceWindow::DeviceWindow(QWidget *parent)
if (selected.isValid())
selected.data(Qt::EditRole).value<DmxWidget*>()->close();
});
connect(ui->actionDMX, &QAction::triggered,
this, [this]() {
auto selected = ui->widgetView->currentIndex();
if (!selected.isValid())
return;
openDmxWindow(selected);
});
connect(ui->actionParameter, &QAction::triggered,
this, [this]() {
auto selected = ui->widgetView->currentIndex();
@ -90,6 +97,7 @@ DeviceWindow::DeviceWindow(QWidget *parent)
DeviceWindow::~DeviceWindow()
{
qDeleteAll(inspectors_);
delete ui;
}
@ -121,3 +129,27 @@ void DeviceWindow::selectionChanged(const QModelIndex &current, const QModelInde
ui->actionFirmware->setEnabled(false);
}
/**
* @brief DeviceWindow::openDmxWindow
* @param index
*/
void DeviceWindow::openDmxWindow(const QModelIndex &index)
{
auto wdgt = index.data(Qt::EditRole).value<std::shared_ptr<DmxWidget>>();
auto univ = std::static_pointer_cast<DMX::Universe>(wdgt);
foreach (const auto & inspector, inspectors_)
if (inspector->universe() == univ)
return inspector->show();
auto view = new UniverseWindow(nullptr, univ);
inspectors_.insert(view);
connect(view, &QObject::destroyed, this, [this, view]() {
inspectors_.remove(view);
});
view->setWindowTitle(QString("%1 '%2'").arg(
wdgt->isEditable() ? tr("Editing") : tr("Viewing"),
wdgt->portName()));
view->setAttribute(Qt::WA_DeleteOnClose, true);
view->show();
}

View File

@ -2,6 +2,7 @@
#include <QMainWindow>
#include <QSortFilterProxyModel>
#include <universewindow.h>
#include <widgetmodel.h>
namespace Ui {
@ -18,10 +19,12 @@ public:
private slots:
void selectionChanged(const QModelIndex &current, const QModelIndex &previous);
void openDmxWindow(const QModelIndex &index);
private:
Ui::DeviceWindow *ui;
WidgetModel *model;
QSortFilterProxyModel *sortProxy;
QSet<UniverseWindow*> inspectors_;
};