本文整理汇总了C++中MythGenericTree::getSelectedChild方法的典型用法代码示例。如果您正苦于以下问题:C++ MythGenericTree::getSelectedChild方法的具体用法?C++ MythGenericTree::getSelectedChild怎么用?C++ MythGenericTree::getSelectedChild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MythGenericTree
的用法示例。
在下文中一共展示了MythGenericTree::getSelectedChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetTreeState
/*!
* \brief Update the widget following a change
*/
void MythUIButtonTree::SetTreeState(bool refreshAll)
{
if (!m_initialized)
Init();
if (!m_rootNode)
return;
if (!m_currentNode)
DoSetCurrentNode(m_rootNode->getSelectedChild());
QList<MythGenericTree *> route = m_currentNode->getRoute();
// Sanity Checks
if (m_depthOffset >= route.size())
m_depthOffset = 0;
if (((int)m_currentDepth + m_depthOffset) >= route.size())
m_currentDepth = 0;
MythGenericTree *node = route.at(m_currentDepth + m_depthOffset);
if (m_currentDepth != m_oldDepth)
refreshAll = true;
m_oldDepth = m_currentDepth;
m_visibleLists = 0;
uint listid = 0;
while (listid < m_buttonlists.count())
{
MythUIButtonList *list = m_buttonlists.at(listid);
list->SetVisible(false);
list->SetActive(false);
MythGenericTree *selectedNode = NULL;
if (node)
selectedNode = node->getSelectedChild(true);
if (refreshAll || m_activeListID < listid)
{
if (!UpdateList(list, node))
{
listid++;
continue;
}
}
if (m_active && (listid == m_activeListID))
{
m_activeList = list;
list->SetActive(true);
DoSetCurrentNode(selectedNode);
emit itemSelected(list->GetItemCurrent());
}
listid++;
list->SetVisible(true);
m_visibleLists++;
node = selectedNode;
}
}