Skip to content

Commit 8d44229

Browse files
committed
Fix for non-ShowField modules
1 parent 942bbcd commit 8d44229

File tree

2 files changed

+35
-23
lines changed

2 files changed

+35
-23
lines changed

src/Interface/Modules/Render/ViewSceneControlsDock.cc

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -363,16 +363,19 @@ std::vector<QString> VisibleItemManager::synchronize(const std::vector<GeometryB
363363

364364
for (const auto& name : displayNames)
365365
{
366-
auto stateIter = showFieldStates.find(name.toStdString());
367-
auto state = stateIter != showFieldStates.end() ? stateIter->second : boost::make_shared<Engine::State::NullModuleState>();
368-
369366
if (!containsItem(name))
370367
addRenderItem(name);
371368

372-
updateCheckStates(name, {
373-
state->getValue(ShowField::ShowNodes).toBool(),
374-
state->getValue(ShowField::ShowEdges).toBool(),
375-
state->getValue(ShowField::ShowFaces).toBool()});
369+
auto stateIter = showFieldStates.find(name.toStdString());
370+
if (stateIter != showFieldStates.end())
371+
{
372+
auto state = stateIter->second;
373+
374+
updateCheckStates(name, {
375+
state->getValue(ShowField::ShowNodes).toBool(),
376+
state->getValue(ShowField::ShowEdges).toBool(),
377+
state->getValue(ShowField::ShowFaces).toBool() });
378+
}
376379
}
377380
itemList_->sortItems(0, Qt::AscendingOrder);
378381
return displayNames;
@@ -391,9 +394,12 @@ void VisibleItemManager::addRenderItem(const QString& name)
391394

392395
itemList_->addTopLevelItem(item);
393396
item->setCheckState(0, Qt::Checked);
394-
new QTreeWidgetItem(item, QStringList("Nodes"));
395-
new QTreeWidgetItem(item, QStringList("Edges"));
396-
new QTreeWidgetItem(item, QStringList("Faces"));
397+
if (name.startsWith("ShowField:"))
398+
{
399+
new QTreeWidgetItem(item, QStringList("Nodes"));
400+
new QTreeWidgetItem(item, QStringList("Edges"));
401+
new QTreeWidgetItem(item, QStringList("Faces"));
402+
}
397403
}
398404

399405
void VisibleItemManager::updateCheckStates(const QString& name, std::vector<bool> checked)
@@ -404,17 +410,20 @@ void VisibleItemManager::updateCheckStates(const QString& name, std::vector<bool
404410
return;
405411
}
406412
auto item = items[0];
407-
auto nodes = item->child(2); //TODO: brittle sort order
408-
auto edges = item->child(0);
409-
auto faces = item->child(1);
410-
std::vector<QTreeWidgetItem*> stuff{ nodes, edges, faces };
411-
412-
for (auto&& itemChecked : zip(stuff, checked))
413+
if (name.startsWith("ShowField:"))
413414
{
414-
QTreeWidgetItem* i;
415-
bool isChecked;
416-
boost::tie(i, isChecked) = itemChecked;
417-
i->setCheckState(0, isChecked ? Qt::Checked : Qt::Unchecked);
415+
auto nodes = item->child(2); //TODO: brittle sort order
416+
auto edges = item->child(0);
417+
auto faces = item->child(1);
418+
std::vector<QTreeWidgetItem*> stuff{ nodes, edges, faces };
419+
420+
for (auto&& itemChecked : zip(stuff, checked))
421+
{
422+
QTreeWidgetItem* i;
423+
bool isChecked;
424+
boost::tie(i, isChecked) = itemChecked;
425+
i->setCheckState(0, isChecked ? Qt::Checked : Qt::Unchecked);
426+
}
418427
}
419428
}
420429

src/Modules/Render/ViewScene.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,12 @@ void ViewScene::asyncExecute(const PortId& pid, DatatypeHandle data)
191191

192192
void ViewScene::syncMeshComponentFlags(const std::string& connectedModuleId, ModuleStateHandle state)
193193
{
194-
auto map = transient_value_cast<ShowFieldStatesMap>(get_state()->getTransientValue(Parameters::ShowFieldStates));
195-
map[connectedModuleId] = state;
196-
get_state()->setTransientValue(Parameters::ShowFieldStates, map, false);
194+
if (connectedModuleId.find("ShowField:") != std::string::npos)
195+
{
196+
auto map = transient_value_cast<ShowFieldStatesMap>(get_state()->getTransientValue(Parameters::ShowFieldStates));
197+
map[connectedModuleId] = state;
198+
get_state()->setTransientValue(Parameters::ShowFieldStates, map, false);
199+
}
197200
}
198201

199202
void ViewScene::execute()

0 commit comments

Comments
 (0)