#endif
#include <vlc_intf_strings.h>
+#include <vlc_services_discovery.h>
#include "menus.hpp"
***************************************************************************/
void addDPStaticEntry( QMenu *menu,
const QString text,
- const char *help,
const char *icon,
const char *member,
const char *shortcut = NULL )
void addMIMStaticEntry( intf_thread_t *p_intf,
QMenu *menu,
const QString text,
- const char *help,
const char *icon,
const char *member )
{
objects.push_back( 0 ); varnames.push_back( "" ); \
i_last_separator = objects.size(); }
-static int InputAutoMenuBuilder( vlc_object_t *p_object,
+static int InputAutoMenuBuilder( input_thread_t *p_object,
vector<vlc_object_t *> &objects,
vector<const char *> &varnames )
{
return VLC_SUCCESS;
}
-static int VideoAutoMenuBuilder( vlc_object_t *p_object,
+static int VideoAutoMenuBuilder( vout_thread_t *p_object,
input_thread_t *p_input,
vector<vlc_object_t *> &objects,
vector<const char *> &varnames )
PUSH_VAR( "video-snapshot" );
/* Special case for postproc */
+ // FIXME
if( p_object )
{
/* p_object is the vout, so the decoder is our parent and the
FIND_CHILD );
if( p_pp )
{
- p_object = p_pp;
+ vlc_object_t *p_object = p_pp;
PUSH_VAR( "postproc-q" );
vlc_object_release( p_pp );
}
return VLC_SUCCESS;
}
-static int AudioAutoMenuBuilder( vlc_object_t *p_object,
+static int AudioAutoMenuBuilder( aout_instance_t *p_object,
input_thread_t *p_input,
vector<vlc_object_t *> &objects,
vector<const char *> &varnames )
void QVLCMenu::createMenuBar( MainInterface *mi,
intf_thread_t *p_intf,
bool visual_selector_enabled )
+/* FIXME remove this visual dependency */
{
/* QMainWindows->menuBar()
gives the QProcess::destroyed timeout issue on Cleanlooks style with
{
QMenu *menu = new QMenu();
- addDPStaticEntry( menu, qtr( "&Open File..." ), "",
+ addDPStaticEntry( menu, qtr( "&Open File..." ),
#ifdef WIN32
":/file-asym", SLOT( simpleOpenDialog() ), "Ctrl+O" );
- addDPStaticEntry( menu, qtr( "Advanced Open File..." ), "",
- ":/file-asym", SLOT( openFileDialog() ), "" );
+ addDPStaticEntry( menu, qtr( "Advanced Open File..." ),
+ ":/file-asym", SLOT( openFileDialog() ) );
#else
- ":/file-asym", SLOT( openFileDialog() ), "Ctrl+0" );
+ ":/file-asym", SLOT( openFileDialog() ), "Ctrl+O" );
#endif
- addDPStaticEntry( menu, qtr( I_OPEN_FOLDER ), "",
+ addDPStaticEntry( menu, qtr( "Open &URL" ),
+ NULL, SLOT( openUrlDialog() ), "Ctrl+V" );
+ addDPStaticEntry( menu, qtr( I_OPEN_FOLDER ),
":/folder-grey", SLOT( PLOpenDir() ), "Ctrl+F" );
- addDPStaticEntry( menu, qtr( "Open &Disc..." ), "",
+ addDPStaticEntry( menu, qtr( "Open &Disc..." ),
":/disc", SLOT( openDiscDialog() ), "Ctrl+D" );
- addDPStaticEntry( menu, qtr( "Open &Network..." ), "",
+ addDPStaticEntry( menu, qtr( "Open &Network..." ),
":/network", SLOT( openNetDialog() ), "Ctrl+N" );
- addDPStaticEntry( menu, qtr( "Open &Capture Device..." ), "",
+ addDPStaticEntry( menu, qtr( "Open &Capture Device..." ),
":/capture-card", SLOT( openCaptureDialog() ),
"Ctrl+C" );
menu->addSeparator();
+ addDPStaticEntry( menu, qtr( I_PL_LOAD ), "", SLOT( openAPlaylist() ),
+ "Ctrl+X" );
+ addDPStaticEntry( menu, qtr( I_PL_SAVE ), "", SLOT( saveAPlaylist() ),
+ "Ctrl+Y" );
+
+ menu->addSeparator();
+
recentsMenu = new QMenu( qtr( "Recently &Played" ), menu );
updateRecents( p_intf );
menu->addMenu( recentsMenu );
menu->addSeparator();
- addDPStaticEntry( menu, qtr( "Conve&rt / Save..." ), "", "",
+ addDPStaticEntry( menu, qtr( "Conve&rt / Save..." ), "",
SLOT( openAndTranscodingDialogs() ), "Ctrl+R" );
- addDPStaticEntry( menu, qtr( "&Streaming..." ), "",
+ addDPStaticEntry( menu, qtr( "&Streaming..." ),
":/stream", SLOT( openAndStreamingDialogs() ),
"Ctrl+S" );
menu->addSeparator();
- addDPStaticEntry( menu, qtr( "&Quit" ) , "",
+ addDPStaticEntry( menu, qtr( "&Quit" ) ,
":/quit", SLOT( quit() ), "Ctrl+Q" );
return menu;
}
/* Playlist/MediaLibrary Control */
QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf )
{
+ VLC_UNUSED( p_intf ); //TODO remove
QMenu *menu = new QMenu();
- addDPStaticEntry( menu, qtr( I_MENU_EXT ), "", ":/settings",
+ addDPStaticEntry( menu, qtr( I_MENU_EXT ), ":/settings",
SLOT( extendedDialog() ), "Ctrl+E" );
- addDPStaticEntry( menu, qtr( I_MENU_MSG ), "",
+ addDPStaticEntry( menu, qtr( I_MENU_MSG ),
":/messages", SLOT( messagesDialog() ),
"Ctrl+M" );
- addDPStaticEntry( menu, qtr( "Plugins and extensions" ), "",
- "", SLOT( pluginDialog() ),
- "" );
- addDPStaticEntry( menu, qtr( I_MENU_INFO ) , "", ":/info",
+ addDPStaticEntry( menu, qtr( I_MENU_INFO ) , ":/info",
SLOT( mediaInfoDialog() ), "Ctrl+I" );
- addDPStaticEntry( menu, qtr( I_MENU_CODECINFO ) , "",
+ addDPStaticEntry( menu, qtr( I_MENU_CODECINFO ) ,
":/info", SLOT( mediaCodecDialog() ), "Ctrl+J" );
- addDPStaticEntry( menu, qtr( I_MENU_BOOKMARK ), "","",
+ addDPStaticEntry( menu, qtr( I_MENU_BOOKMARK ),"",
SLOT( bookmarksDialog() ), "Ctrl+B" );
#ifdef ENABLE_VLM
- addDPStaticEntry( menu, qtr( I_MENU_VLM ), "", "", SLOT( vlmDialog() ),
+ addDPStaticEntry( menu, qtr( I_MENU_VLM ), "", SLOT( vlmDialog() ),
"Ctrl+W" );
#endif
+ addDPStaticEntry( menu, qtr( "Plu&gins and extensions" ),
+ "", SLOT( pluginDialog() ) );
menu->addSeparator();
- addDPStaticEntry( menu, qtr( "Customi&ze Interface..." ), "",
- ":/preferences", SLOT( toolbarDialog() ), "" );
- addDPStaticEntry( menu, qtr( "&Preferences..." ), "",
+ addDPStaticEntry( menu, qtr( "Customi&ze Interface..." ),
+ ":/preferences", SLOT( toolbarDialog() ) );
+ addDPStaticEntry( menu, qtr( "&Preferences..." ),
":/preferences", SLOT( prefsDialog() ), "Ctrl+P" );
return menu;
act->setData( "_static_" );
}
menu->addMenu( SDMenu( p_intf ) );
- menu->addSeparator();
-
- addDPStaticEntry( menu, qtr( I_PL_LOAD ), "", "", SLOT( openAPlaylist() ),
- "Ctrl+X" );
- addDPStaticEntry( menu, qtr( I_PL_SAVE ), "", "", SLOT( saveAPlaylist() ),
- "Ctrl+Y" );
/*menu->addSeparator();
menu->addAction( qtr( "Undock from Interface" ), mi,
SLOT( undockPlaylist() ), qtr( "Ctrl+U" ) );*/
{
vector<vlc_object_t *> objects;
vector<const char *> varnames;
- vlc_object_t *p_aout;
+ aout_instance_t *p_aout;
input_thread_t *p_input;
if( !current ) current = new QMenu();
p_input = THEMIM->getInput();
if( p_input )
vlc_object_hold( p_input );
- p_aout = ( vlc_object_t * ) vlc_object_find( p_intf,
- VLC_OBJECT_AOUT,
- FIND_ANYWHERE );
-
- AudioAutoMenuBuilder( p_aout, p_input, objects, varnames );
-
+ p_aout = THEMIM->getAout();
if( p_aout )
+ {
+ AudioAutoMenuBuilder( p_aout, p_input, objects, varnames );
vlc_object_release( p_aout );
+ }
if( p_input )
vlc_object_release( p_input );
**/
QMenu *QVLCMenu::VideoMenu( intf_thread_t *p_intf, QMenu *current )
{
- vlc_object_t *p_vout;
+ vout_thread_t *p_vout;
input_thread_t *p_input;
vector<vlc_object_t *> objects;
vector<const char *> varnames;
QMenu *submenu = new QMenu( qtr( "&Subtitles Track" ), current );
action = current->addMenu( submenu );
action->setData( "spu-es" );
- addDPStaticEntry( submenu, qtr( "Open File..." ), "", "",
+ addDPStaticEntry( submenu, qtr( "Open File..." ), "",
SLOT( loadSubtitlesFile() ) );
submenu->addSeparator();
p_input = THEMIM->getInput();
if( p_input )
vlc_object_hold( p_input );
- p_vout = ( vlc_object_t * )vlc_object_find( p_intf, VLC_OBJECT_VOUT,
- FIND_ANYWHERE );
-
- VideoAutoMenuBuilder( p_vout, p_input, objects, varnames );
+ p_vout = THEMIM->getVout();
if( p_vout )
+ {
+ VideoAutoMenuBuilder( p_vout, p_input, objects, varnames );
vlc_object_release( p_vout );
+ }
if( p_input )
vlc_object_release( p_input );
**/
QMenu *QVLCMenu::NavigMenu( intf_thread_t *p_intf, QMenu *menu )
{
- vlc_object_t *p_object;
- vector<vlc_object_t *> objects;
- vector<const char *> varnames;
-
if( !menu ) menu = new QMenu();
if( menu->isEmpty() )
{
- addDPStaticEntry( menu, qtr( I_MENU_GOTOTIME ), "","",
+ addDPStaticEntry( menu, qtr( I_MENU_GOTOTIME ),"",
SLOT( gotoTimeDialog() ), "Ctrl+T" );
menu->addSeparator();
ACT_ADD( menu, "navigation", qtr( "&Navigation" ) );
}
- p_object = ( vlc_object_t * )vlc_object_find( p_intf, VLC_OBJECT_INPUT,
- FIND_ANYWHERE );
- InputAutoMenuBuilder( p_object, objects, varnames );
+ input_thread_t *p_object;
+ vector<vlc_object_t *> objects;
+ vector<const char *> varnames;
+
+ p_object = THEMIM->getInput();
+ if( p_object )
+ vlc_object_hold( p_object );
+ InputAutoMenuBuilder( p_object, objects, varnames );
PUSH_VAR( "prev-title" );
PUSH_VAR( "next-title" );
PUSH_VAR( "prev-chapter" );
{
vlc_object_release( p_object );
}
- return Populate( p_intf, menu, varnames, objects, true );
+ return Populate( p_intf, menu, varnames, objects );
}
/**
QMenu *menu = new QMenu();
menu->setTitle( qtr( I_PL_SD ) );
char **ppsz_longnames;
- char **ppsz_names = services_discovery_GetServicesNames( p_intf,
- &ppsz_longnames );
+ char **ppsz_names = vlc_sd_GetNames( &ppsz_longnames );
if( !ppsz_names )
return menu;
QMenu *QVLCMenu::HelpMenu( QMenu *current )
{
QMenu *menu = new QMenu( current );
- addDPStaticEntry( menu, qtr( "&Help..." ) , "",
+ addDPStaticEntry( menu, qtr( "&Help..." ) ,
":/help", SLOT( helpDialog() ), "F1" );
#ifdef UPDATE_CHECK
- addDPStaticEntry( menu, qtr( "Check for &Updates..." ) , "", "",
- SLOT( updateDialog() ), "");
+ addDPStaticEntry( menu, qtr( "Check for &Updates..." ) , "",
+ SLOT( updateDialog() ) );
#endif
menu->addSeparator();
- addDPStaticEntry( menu, qtr( I_MENU_ABOUT ), "", ":/info",
+ addDPStaticEntry( menu, qtr( I_MENU_ABOUT ), ":/info",
SLOT( aboutDialog() ), "Shift+F1" );
return menu;
}
vlc_value_t val;
var_Get( p_input, "state", &val );
if( val.i_int == PLAYING_S )
- addMIMStaticEntry( p_intf, menu, qtr( "Pause" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Pause" ),
":/pause", SLOT( togglePlayPause() ) );
else
- addMIMStaticEntry( p_intf, menu, qtr( "Play" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Play" ),
":/play", SLOT( togglePlayPause() ) );
}
else if( THEPL->items.i_size )
- addMIMStaticEntry( p_intf, menu, qtr( "Play" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Play" ),
":/play", SLOT( togglePlayPause() ) );
else
- addDPStaticEntry( menu, qtr( "Play" ), "",
+ addDPStaticEntry( menu, qtr( "Play" ),
":/play", SLOT( openDialog() ) );
- addMIMStaticEntry( p_intf, menu, qtr( "Stop" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Stop" ),
":/stop", SLOT( stop() ) );
- addMIMStaticEntry( p_intf, menu, qtr( "Previous" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Previous" ),
":/previous", SLOT( prev() ) );
- addMIMStaticEntry( p_intf, menu, qtr( "Next" ), "",
+ addMIMStaticEntry( p_intf, menu, qtr( "Next" ),
":/next", SLOT( next() ) );
}
-void QVLCMenu::PopupMenuStaticEntries( intf_thread_t *p_intf, QMenu *menu )
+void QVLCMenu::PopupMenuStaticEntries( QMenu *menu )
{
#if 0
QMenu *toolsmenu = ToolsMenu( p_intf, menu, false, true );
#endif
QMenu *openmenu = new QMenu( qtr( "Open" ), menu );
- addDPStaticEntry( openmenu, qtr( "&Open File..." ), "",
+ addDPStaticEntry( openmenu, qtr( "&Open File..." ),
":/file-asym", SLOT( openFileDialog() ) );
- addDPStaticEntry( openmenu, qtr( I_OPEN_FOLDER ), "",
+ addDPStaticEntry( openmenu, qtr( I_OPEN_FOLDER ),
":/folder-grey", SLOT( PLOpenDir() ) );
- addDPStaticEntry( openmenu, qtr( "Open &Disc..." ), "",
+ addDPStaticEntry( openmenu, qtr( "Open &Disc..." ),
":/disc", SLOT( openDiscDialog() ) );
- addDPStaticEntry( openmenu, qtr( "Open &Network..." ), "",
+ addDPStaticEntry( openmenu, qtr( "Open &Network..." ),
":/network", SLOT( openNetDialog() ) );
- addDPStaticEntry( openmenu, qtr( "Open &Capture Device..." ), "",
+ addDPStaticEntry( openmenu, qtr( "Open &Capture Device..." ),
":/capture-card", SLOT( openCaptureDialog() ) );
menu->addMenu( openmenu );
menu->addMenu( helpmenu );
#endif
- addDPStaticEntry( menu, qtr( "Quit" ), "", ":/quit",
+ addDPStaticEntry( menu, qtr( "Quit" ), ":/quit",
SLOT( quit() ), "Ctrl+Q" );
}
if( p_input )
{
vlc_object_hold( p_input );
- vlc_object_t *p_vout = ( vlc_object_t * )vlc_object_find( p_input,
- VLC_OBJECT_VOUT, FIND_CHILD );
+ vout_thread_t *p_vout = THEMIM->getVout();
if( p_vout )
{
VideoAutoMenuBuilder( p_vout, p_input, objects, varnames );
if( p_input )
{
vlc_object_hold( p_input );
- vlc_object_t *p_aout = ( vlc_object_t * )vlc_object_find( p_input,
- VLC_OBJECT_AOUT, FIND_ANYWHERE );
+ aout_instance_t *p_aout = THEMIM->getAout();
AudioAutoMenuBuilder( p_aout, p_input, objects, varnames );
if( p_aout )
vlc_object_release( p_aout );
/* Navigation stuff, and general menus ( open ) */
void QVLCMenu::MiscPopupMenu( intf_thread_t *p_intf )
{
- vlc_value_t val;
POPUP_BOILERPLATE;
if( p_input )
{
vlc_object_hold( p_input );
varnames.push_back( "audio-es" );
- InputAutoMenuBuilder( VLC_OBJECT( p_input ), objects, varnames );
+ InputAutoMenuBuilder( p_input, objects, varnames );
PUSH_SEPARATOR;
}
PopupMenuControlEntries( menu, p_intf, p_input );
menu->addSeparator();
- PopupMenuStaticEntries( p_intf, menu );
+ PopupMenuStaticEntries( menu );
p_intf->p_sys->p_popup_menu = menu;
menu->popup( QCursor::pos() );
if( p_input )
{
- vlc_object_t *p_vout = (vlc_object_t *)
- vlc_object_find( p_input, VLC_OBJECT_VOUT, FIND_CHILD );
+ vout_thread_t *p_vout = THEMIM->getVout();
/* Add a fullscreen switch button */
if( p_vout )
menu->addSeparator();
vlc_object_hold( p_input );
- InputAutoMenuBuilder( VLC_OBJECT( p_input ), objects, varnames );
+ InputAutoMenuBuilder( p_input, objects, varnames );
vlc_object_release( p_input );
submenu = new QMenu( menu );
submenu->addAction( QIcon( ":/playlist" ),
qtr( "Show Playlist" ), mi, SLOT( togglePlaylist() ) );
}
- addDPStaticEntry( submenu, qtr( I_MENU_EXT ), "",
+ addDPStaticEntry( submenu, qtr( I_MENU_EXT ),
":/settings", SLOT( extendedDialog() ) );
- addDPStaticEntry( submenu, qtr( I_MENU_INFO ) , "", ":/info",
+ addDPStaticEntry( submenu, qtr( I_MENU_INFO ) , ":/info",
SLOT( mediaInfoDialog() ), "Ctrl+I" );
if( mi )
{
else /* We are using the skins interface.
If not, this entry will not show. */
{
- addDPStaticEntry( submenu, qtr( "&Preferences..." ), "",
+ addDPStaticEntry( submenu, qtr( "&Preferences..." ),
":/preferences", SLOT( prefsDialog() ), "Ctrl+P" );
submenu->addSeparator();
objects.clear();
varnames.clear();
vlc_object_t *p_object = ( vlc_object_t* )
- vlc_object_find( p_intf, VLC_OBJECT_INTF, FIND_PARENT );
+ vlc_object_find_name( p_intf, "skins2", FIND_PARENT );
if( p_object )
{
objects.push_back( p_object );
menu->addMenu( submenu );
}
- PopupMenuStaticEntries( p_intf, menu );
+ PopupMenuStaticEntries( menu );
p_intf->p_sys->p_popup_menu = menu;
p_intf->p_sys->p_popup_menu->popup( QCursor::pos() );
PopupMenuControlEntries( sysMenu, p_intf, p_input );
sysMenu->addSeparator();
- addDPStaticEntry( sysMenu, qtr( "&Open Media" ), "",
- ":/file-wide", SLOT( openFileDialog() ), "" );
- addDPStaticEntry( sysMenu, qtr( "&Quit" ) , "",
- ":/quit", SLOT( quit() ), "" );
+ addDPStaticEntry( sysMenu, qtr( "&Open Media" ),
+ ":/file-wide", SLOT( openFileDialog() ) );
+ addDPStaticEntry( sysMenu, qtr( "&Quit" ) ,
+ ":/quit", SLOT( quit() ) );
/* Set the menu */
mi->getSysTray()->setContextMenu( sysMenu );
QMenu * QVLCMenu::Populate( intf_thread_t *p_intf,
QMenu *current,
vector< const char *> & varnames,
- vector<vlc_object_t *> & objects,
- bool append )
+ vector<vlc_object_t *> & objects )
{
QMenu *menu = current;
if( !menu ) menu = new QMenu();
bool forceDisabled = false;
if( !strcmp( psz_var, "spu-es" ) )
{
- vlc_object_t *p_vout = ( vlc_object_t* )( vlc_object_find( p_intf,
- VLC_OBJECT_VOUT, FIND_ANYWHERE ) );
+ vout_thread_t *p_vout = THEMIM->getVout();
forceDisabled = ( p_vout == NULL );
if( p_vout )
vlc_object_release( p_vout );
menu->addAction( action );
}
-void QVLCMenu::DoAction( intf_thread_t *p_intf, QObject *data )
+void QVLCMenu::DoAction( QObject *data )
{
MenuItemData *itemData = qobject_cast<MenuItemData *>( data );
vlc_object_t *p_object = itemData->p_obj;
{
for( int i = 0; i < l.size(); ++i )
{
- action = recentsMenu->addAction( l.at( i ),
+ action = recentsMenu->addAction(
+ QString( "&%1: " ).arg( i + 1 ) + l.at( i ),
rmrl->signalMapper,
SLOT( map() ) );
rmrl->signalMapper->setMapping( action, l.at( i ) );
}
recentsMenu->addSeparator();
- recentsMenu->addAction( "Clear", rmrl, SLOT( clear() ) );
+ recentsMenu->addAction( "&Clear", rmrl, SLOT( clear() ) );
}
}
}