diff --git a/example/sACN Explorer/multiverseview.cpp b/example/sACN Explorer/multiverseview.cpp index 5f7ba51..3161605 100644 --- a/example/sACN Explorer/multiverseview.cpp +++ b/example/sACN Explorer/multiverseview.cpp @@ -213,8 +213,15 @@ void MultiverseView::createEditor(const QModelIndex &index) if (data.metaType().id() == qMetaTypeId()) { auto univ = data.value(); - auto universeView = new UniverseView(this, univ); - universeView->show(); + foreach (const auto & inspector, mInspectors) + 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: @@ -227,6 +234,7 @@ void MultiverseView::createEditor(const QModelIndex &index) connect(subscribe, &AddUniverseDialog::additionRequested, node, &QSacnNode::subscribe); subscribe->exec(); + return; } } diff --git a/example/sACN Explorer/multiverseview.h b/example/sACN Explorer/multiverseview.h index 3bdcf83..08415e1 100644 --- a/example/sACN Explorer/multiverseview.h +++ b/example/sACN Explorer/multiverseview.h @@ -25,6 +25,7 @@ #include "multiversemodel.h" #include "qsacnnode.h" +#include "universeview.h" #include #include @@ -61,4 +62,5 @@ private: QSacnNode * node; MultiverseModel * model; QSortFilterProxyModel *sortProxy; + QSet mInspectors; };