本文整理汇总了C++中kservice::Ptr::data方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::data方法的具体用法?C++ Ptr::data怎么用?C++ Ptr::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kservice::Ptr
的用法示例。
在下文中一共展示了Ptr::data方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: populate
void NavigatorAppItem::populate( bool recursive )
{
if ( mPopulated ) return;
KServiceGroup::Ptr root = KServiceGroup::group(mRelpath);
if ( !root ) {
kWarning() << "No Service groups\n";
return;
}
KServiceGroup::List list = root->entries();
for ( KServiceGroup::List::ConstIterator it = list.constBegin();
it != list.constEnd(); ++it )
{
const KSycocaEntry::Ptr e = *it;
NavigatorItem *item;
QString url;
switch ( e->sycocaType() ) {
case KST_KService:
{
const KService::Ptr s = KService::Ptr::staticCast(e);
url = documentationURL( s.data() );
if ( !url.isEmpty() ) {
DocEntry *entry = new DocEntry( s->name(), url, s->icon() );
item = new NavigatorItem( entry, this );
item->setAutoDeleteDocEntry( true );
}
break;
}
case KST_KServiceGroup:
{
KServiceGroup::Ptr g = KServiceGroup::Ptr::staticCast(e);
if ( ( g->childCount() == 0 ) || g->name().startsWith( '.' ) )
continue;
DocEntry *entry = new DocEntry( g->caption(), "", g->icon() );
NavigatorAppItem *appItem;
appItem = new NavigatorAppItem( entry, this, g->relPath() );
appItem->setAutoDeleteDocEntry( true );
if ( recursive ) appItem->populate( recursive );
break;
}
default:
break;
}
}
sortChildren( 0, Qt::AscendingOrder /* ascending */ );
mPopulated = true;
}