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 &&
|
if ( node->GetType() == wxXML_ELEMENT_NODE &&
|
||||||
(node->GetName() == wxT("object") ||
|
(node->GetName() == wxT("object") ||
|
||||||
node->GetName() == wxT("object_ref")) &&
|
node->GetName() == wxT("object_ref")) &&
|
||||||
(!classname ||
|
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
||||||
node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
|
{
|
||||||
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
|
||||||
return node;
|
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 )
|
if ( recursive )
|
||||||
|
@@ -407,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
|
|||||||
if ( node->GetType() == wxXML_ELEMENT_NODE &&
|
if ( node->GetType() == wxXML_ELEMENT_NODE &&
|
||||||
(node->GetName() == wxT("object") ||
|
(node->GetName() == wxT("object") ||
|
||||||
node->GetName() == wxT("object_ref")) &&
|
node->GetName() == wxT("object_ref")) &&
|
||||||
(!classname ||
|
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
||||||
node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
|
{
|
||||||
node->GetPropVal(wxT("name"), &dummy) && dummy == name )
|
wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
|
||||||
return node;
|
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 )
|
if ( recursive )
|
||||||
|
Reference in New Issue
Block a user