fix object_ref lookup in case when object_ref node didn't specify class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@18023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -407,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
|
||||
if ( node->GetType() == wxXML_ELEMENT_NODE &&
|
||||
(node->GetName() == wxT("object") ||
|
||||
node->GetName() == wxT("object_ref")) &&
|
||||
(!classname ||
|
||||
node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
|
||||
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
||||
return node;
|
||||
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
||||
{
|
||||
wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
|
||||
if (!classname || cls == classname)
|
||||
return node;
|
||||
// object_ref may not have 'class' property:
|
||||
if (cls.empty() && node->GetName() == wxT("object_ref"))
|
||||
{
|
||||
wxString refName = node->GetPropVal(wxT("ref"), wxEmptyString);
|
||||
if (refName.empty())
|
||||
continue;
|
||||
wxXmlNode* refNode = FindResource(refName, wxEmptyString, TRUE);
|
||||
if (refNode &&
|
||||
refNode->GetPropVal(wxT("class"), wxEmptyString) == classname)
|
||||
{
|
||||
return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( recursive )
|
||||
|
Reference in New Issue
Block a user