Commit ef4685ad authored by Olivier Teulière's avatar Olivier Teulière

* skins2/parser/interpreter.cpp: Check the VarMAnager first before trying to...

 * skins2/parser/interpreter.cpp: Check the VarMAnager first before trying to parse the action. This fixes a bug with dvd.isActive and LayoutID.isActive
parent 206a6d2e
......@@ -394,6 +394,17 @@ VarBool *Interpreter::getVarBool( const string &rName, Theme *pTheme )
// Register this variable in the manager
pVarManager->registerVar( VariablePtr( pNewVar ) );
}
else
{
// Try first to get the variable from the variable manager
// Indeed, if the skin designer is stupid enough to call a layout
// "dvd", we want "dvd.isActive" to resolve as the built-in action
// and not as the "layoutId.isActive" one.
VarBool *pVar = (VarBool*)pVarManager->getVar( token, "bool" );
if( pVar )
{
varStack.push_back( pVar );
}
else if( token.find( ".isVisible" ) != string::npos )
{
int leftPos = token.find( ".isVisible" );
......@@ -427,16 +438,11 @@ VarBool *Interpreter::getVarBool( const string &rName, Theme *pTheme )
}
}
else
{
// Try to get the variable from the variable manager
VarBool *pVar = (VarBool*)pVarManager->getVar( token, "bool" );
if( !pVar )
{
msg_Err( getIntf(), "cannot resolve boolean variable: %s",
token.c_str());
return NULL;
}
varStack.push_back( pVar );
}
// Get the first token from the RPN stack
token = evaluator.getToken();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment