本文整理汇总了C++中dynamiccontext::Ptr::focusIterator方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::focusIterator方法的具体用法?C++ Ptr::focusIterator怎么用?C++ Ptr::focusIterator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dynamiccontext::Ptr
的用法示例。
在下文中一共展示了Ptr::focusIterator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: source
Item::Iterator::Ptr AxisStep::evaluateSequence(const DynamicContext::Ptr &context) const
{
/* If we don't have a focus, it's either a bug or our parent isn't a Path
* that have advanced the focus iterator. Hence, attempt to advance the focus on our own. */
if(!context->contextItem())
context->focusIterator()->next();
Q_ASSERT(context->contextItem());
const QXmlNodeModelIndex::Iterator::Ptr source(context->contextItem().asNode().iterate(m_axis));
return makeItemMappingIterator<Item>(ConstPtr(this), source, context);
}
示例2: evaluateSingleton
Item AxisStep::evaluateSingleton(const DynamicContext::Ptr &context) const
{
/* If we don't have a focus, it's either a bug or our parent isn't a Path
* that have advanced the focus iterator. Hence, attempt to advance the focus on our own. */
if(!context->contextItem())
context->focusIterator()->next();
Q_ASSERT(context->contextItem());
const QXmlNodeModelIndex::Iterator::Ptr it(context->contextItem().asNode().iterate(m_axis));
QXmlNodeModelIndex next(it->next());
while(!next.isNull())
{
const Item candidate(mapToItem(next, context));
if(candidate)
return candidate;
else
next = it->next();
};
return Item();
}