void KnobGui::hide() { if (!_imp->customInteract) { _hide(); } else { _imp->customInteract->hide(); } //also hide the curve from the curve editor if there's any and the knob is not inside a group KnobPtr knob = getKnob(); if ( knob && knob->getHolder() && knob->getHolder()->getApp() ) { KnobPtr parent = getKnob()->getParentKnob(); bool isSecret = true; while (parent) { if ( !parent->getIsSecret() ) { isSecret = false; break; } parent = parent->getParentKnob(); } if (isSecret) { getGui()->getCurveEditor()->hideCurves( shared_from_this() ); } } ////In order to remove the row of the layout we have to make sure ALL the knobs on the row ////are hidden. bool shouldRemoveWidget = true; for (U32 i = 0; i < _imp->knobsOnSameLine.size(); ++i) { KnobGuiPtr sibling = _imp->container->getKnobGui( _imp->knobsOnSameLine[i].lock() ); if ( sibling && !sibling->isSecretRecursive() ) { shouldRemoveWidget = false; } } if (shouldRemoveWidget) { if (_imp->field) { _imp->field->hide(); } if (_imp->container) { _imp->container->refreshTabWidgetMaxHeight(); } } else { if ( _imp->field && !_imp->field->isVisible() ) { _imp->field->show(); } } if (_imp->labelContainer) { _imp->labelContainer->hide(); } else if (_imp->descriptionLabel) { _imp->descriptionLabel->hide(); } } // KnobGui::hide