allow only one inspector per universe

This commit is contained in:
Kevin Matz 2022-12-03 11:04:00 -05:00
parent 3da5529b39
commit 0fb5db0574
2 changed files with 12 additions and 2 deletions

View File

@ -213,8 +213,15 @@ void MultiverseView::createEditor(const QModelIndex &index)
if (data.metaType().id() == qMetaTypeId<QSacnUniverse*>()) if (data.metaType().id() == qMetaTypeId<QSacnUniverse*>())
{ {
auto univ = data.value<QSacnUniverse*>(); auto univ = data.value<QSacnUniverse*>();
auto universeView = new UniverseView(this, univ); foreach (const auto & inspector, mInspectors)
universeView->show(); if (inspector->universe() == univ)
return;
auto view = new UniverseView(this, univ);
mInspectors.insert(view);
connect(view, &QObject::destroyed, this, [this, view](){mInspectors.remove(view);});
view->setAttribute(Qt::WA_DeleteOnClose, true);
view->show();
return;
} }
// Discovery universes: // Discovery universes:
@ -227,6 +234,7 @@ void MultiverseView::createEditor(const QModelIndex &index)
connect(subscribe, &AddUniverseDialog::additionRequested, connect(subscribe, &AddUniverseDialog::additionRequested,
node, &QSacnNode::subscribe); node, &QSacnNode::subscribe);
subscribe->exec(); subscribe->exec();
return;
} }
} }

View File

@ -25,6 +25,7 @@
#include "multiversemodel.h" #include "multiversemodel.h"
#include "qsacnnode.h" #include "qsacnnode.h"
#include "universeview.h"
#include <QMainWindow> #include <QMainWindow>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
@ -61,4 +62,5 @@ private:
QSacnNode * node; QSacnNode * node;
MultiverseModel * model; MultiverseModel * model;
QSortFilterProxyModel *sortProxy; QSortFilterProxyModel *sortProxy;
QSet<UniverseView*> mInspectors;
}; };