bool Config_WidgetAPI::toChildWidget()
{
if (myCurrentNode && hasChild(myCurrentNode)) {
- myCurrentNode = myCurrentNode->children;
- while (!isElementNode(myCurrentNode)) {
- myCurrentNode = myCurrentNode->next;
+ xmlNodePtr aChildNode = myCurrentNode->children;
+ // it is possible that among child nodes, there is no an element node, so
+ // we should not change the current node until not-zero node is found
+ // otherwise, it may happens that the current node is null and the node tree information
+ // is lost
+ while (aChildNode && !isElementNode(aChildNode)) {
+ aChildNode = aChildNode->next;
+ }
+ if (aChildNode != NULL) {
+ myCurrentNode = aChildNode;
+ return true;
}
- return true;
}
return false;
}
return result;
}
-bool Config_WidgetAPI::isContainerWidget() const
+bool Config_WidgetAPI::isGroupBoxWidget() const
{
return isNode(myCurrentNode, WDG_GROUP, WDG_CHECK_GROUP,
- NULL);
+ NULL);
}
bool Config_WidgetAPI::isPagedWidget() const
{
return isNode(myCurrentNode, WDG_TOOLBOX, WDG_SWITCH,
- NULL);
+ NULL);
}
std::string Config_WidgetAPI::getProperty(const char* thePropName) const