+ if( !module_IsCapable( p_parser, "services_discovery" ) )
+ continue;
+
+ QAction *a = new QAction( qfu( module_GetLongName( p_parser ) ), menu );
+ a->setCheckable( true );
+ /* hack to handle submodules properly */
+ int i = -1;
+ while( p_parser->pp_shortcuts[++i] != NULL );
+ i--;
+ if( playlist_IsServicesDiscoveryLoaded( THEPL,
+ i>=0?p_parser->pp_shortcuts[i]
+ : module_GetObjName( p_parser ) ) )
+ a->setChecked( true );
+ CONNECT( a , triggered(), THEDP->SDMapper, map() );
+ THEDP->SDMapper->setMapping( a, i>=0? p_parser->pp_shortcuts[i] :
+ module_GetObjName( p_parser ) );
+ menu->addAction( a );
+
+ if( !strcmp( p_parser->psz_object_name, "podcast" ) )