本文整理汇总了C++中NodeGuiPtr::onKnobExpressionChanged方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeGuiPtr::onKnobExpressionChanged方法的具体用法?C++ NodeGuiPtr::onKnobExpressionChanged怎么用?C++ NodeGuiPtr::onKnobExpressionChanged使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeGuiPtr
的用法示例。
在下文中一共展示了NodeGuiPtr::onKnobExpressionChanged方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: expressionChanged
void
KnobGui::onExprChanged(int dimension)
{
if (_imp->guiRemoved) {
return;
}
KnobPtr knob = getKnob();
std::string exp = knob->getExpression(dimension);
reflectExpressionState(dimension,!exp.empty());
if (exp.empty()) {
reflectAnimationLevel(dimension, knob->getAnimationLevel(dimension));
} else {
NodeSettingsPanel* isNodeSettings = dynamic_cast<NodeSettingsPanel*>(_imp->container);
if (isNodeSettings) {
NodeGuiPtr node = isNodeSettings->getNode();
if (node) {
node->onKnobExpressionChanged(this);
}
}
if (_imp->warningIndicator) {
bool invalid = false;
QString fullErrTooltip;
int dims = knob->getDimension();
for (int i = 0; i < dims; ++i) {
std::string err;
if (!knob->isExpressionValid(i, &err)) {
invalid = true;
}
if (dims > 1 && invalid) {
fullErrTooltip += QString::fromUtf8("<p><b>");
fullErrTooltip += QString::fromUtf8(knob->getDimensionName(i).c_str());
fullErrTooltip += QString::fromUtf8("</b></p>");
}
if (!err.empty()) {
fullErrTooltip += QString::fromUtf8(err.c_str());
}
}
if (invalid) {
QString toPrepend;
toPrepend += QString::fromUtf8("<p>");
toPrepend += QObject::tr("Invalid expression(s), value returned is the underlying curve:");
toPrepend += QString::fromUtf8("</p>");
fullErrTooltip.prepend(toPrepend);
setWarningValue(eKnobWarningExpressionInvalid, fullErrTooltip);
} else {
setWarningValue(eKnobWarningExpressionInvalid, QString());
}
}
onHelpChanged();
Q_EMIT expressionChanged();
}
updateGUI(dimension);
}