@@ -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
399405void 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
0 commit comments