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 ) ...@@ -394,6 +394,17 @@ VarBool *Interpreter::getVarBool( const string &rName, Theme *pTheme )
// Register this variable in the manager // Register this variable in the manager
pVarManager->registerVar( VariablePtr( pNewVar ) ); 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 ) else if( token.find( ".isVisible" ) != string::npos )
{ {
int leftPos = token.find( ".isVisible" ); int leftPos = token.find( ".isVisible" );
...@@ -427,16 +438,11 @@ VarBool *Interpreter::getVarBool( const string &rName, Theme *pTheme ) ...@@ -427,16 +438,11 @@ VarBool *Interpreter::getVarBool( const string &rName, Theme *pTheme )
} }
} }
else 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", msg_Err( getIntf(), "cannot resolve boolean variable: %s",
token.c_str()); token.c_str());
return NULL; return NULL;
} }
varStack.push_back( pVar );
} }
// Get the first token from the RPN stack // Get the first token from the RPN stack
token = evaluator.getToken(); 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