| 6448 | } |
| 6449 | |
| 6450 | bool |
| 6451 | Node::isSettingsPanelVisibleInternal(std::set<const Node*>& recursionList) const |
| 6452 | { |
| 6453 | NodeGuiIPtr gui = _imp->guiPointer.lock(); |
| 6454 | |
| 6455 | if (!gui) { |
| 6456 | return false; |
| 6457 | } |
| 6458 | NodePtr parent = _imp->multiInstanceParent.lock(); |
| 6459 | if (parent) { |
| 6460 | return parent->isSettingsPanelVisible(); |
| 6461 | } |
| 6462 | |
| 6463 | if ( recursionList.find(this) != recursionList.end() ) { |
| 6464 | return false; |
| 6465 | } |
| 6466 | recursionList.insert(this); |
| 6467 | |
| 6468 | { |
| 6469 | NodePtr master = getMasterNode(); |
| 6470 | if (master) { |
| 6471 | return master->isSettingsPanelVisible(); |
| 6472 | } |
| 6473 | for (KnobLinkList::iterator it = _imp->nodeLinks.begin(); it != _imp->nodeLinks.end(); ++it) { |
| 6474 | NodePtr masterNode = it->masterNode.lock(); |
| 6475 | if ( masterNode && (masterNode.get() != this) && masterNode->isSettingsPanelVisibleInternal(recursionList) ) { |
| 6476 | return true; |
| 6477 | } |
| 6478 | } |
| 6479 | } |
| 6480 | |
| 6481 | return gui->isSettingsPanelVisible(); |
| 6482 | } |
| 6483 | |
| 6484 | bool |
| 6485 | Node::isSettingsPanelVisible() const |