* $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
+ * Jean-Baptiste Kempf <jb@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
bool playlist, bool adv_controls_enabled,
bool visual_selector_enabled )
{
-#ifndef WIN32
+#ifndef WIN32
/* Ugly klugde
* Remove SIGCHLD from the ignored signal the time to initialise
* Qt because it call gconf to get the icon theme */
#ifndef WIN32
pthread_sigmask (SIG_BLOCK, &set, NULL);
#endif
- BAR_ADD( FileMenu(), qtr("Media") );
+ BAR_ADD( FileMenu(), qtr("&Media") );
if( playlist )
{
- BAR_ADD( PlaylistMenu( mi,p_intf ), qtr("Playlist" ) );
+ BAR_ADD( PlaylistMenu( mi,p_intf ), qtr("&Playlist" ) );
}
BAR_ADD( ToolsMenu( p_intf, mi, adv_controls_enabled,
- visual_selector_enabled ), qtr("Tools") );
- BAR_DADD( VideoMenu( p_intf, NULL ), qtr("Video"), 1 );
- BAR_DADD( AudioMenu( p_intf, NULL ), qtr("Audio"), 2 );
- BAR_DADD( NavigMenu( p_intf, NULL ), qtr("Navigation"), 3 );
+ visual_selector_enabled ), qtr("&Tools") );
+ BAR_DADD( VideoMenu( p_intf, NULL ), qtr("&Video"), 1 );
+ BAR_DADD( AudioMenu( p_intf, NULL ), qtr("&Audio"), 2 );
+ BAR_DADD( NavigMenu( p_intf, NULL ), qtr("&Navigation"), 3 );
- BAR_ADD( HelpMenu(), qtr("Help" ) );
+ BAR_ADD( HelpMenu(), qtr("&Help" ) );
}
QMenu *QVLCMenu::FileMenu()
{
QMenu *menu = new QMenu();
-/* DP_SADD( qtr("Quick &Open File...") , "", "", simpleOpenDialog() );*/
DP_SADD( qtr("Open &File..." ), "", "", openFileDialog(), "Ctrl+O" );
DP_SADD( qtr("Open &Disc..." ), "", "", openDiscDialog(), "Ctrl+D" );
DP_SADD( qtr("Open &Network..." ), "", "", openNetDialog(), "Ctrl+N" );
DP_SADD( qtr("Open &Capture Device..." ), "", "", openCaptureDialog(),
- "Ctrl+A" );
+ "Ctrl+C" );
menu->addSeparator();
- DP_SADD( qtr("&Streaming..."), "", "", streamingDialog(), "Ctrl+S" );
+ DP_SADD( qtr("&Streaming..."), "", "", openThenStreamingDialogs(),
+ "Ctrl+S" );
+ DP_SADD( qtr("Conve&rt / Save..."), "", "", openThenTranscodingDialogs(),
+ "Ctrl+R" );
menu->addSeparator();
DP_SADD( qtr("&Quit") , "", "", quit(), "Ctrl+Q");
return menu;
DP_SADD( qtr(I_MENU_MSG), "", "", messagesDialog(), "Ctrl+M" );
DP_SADD( qtr(I_MENU_INFO) , "", "", mediaInfoDialog(), "Ctrl+J" );
DP_SADD( qtr(I_MENU_CODECINFO) , "", "", mediaCodecDialog(), "Ctrl+I" );
- DP_SADD( qtr(I_MENU_EXT), "","",extendedDialog(), "Ctrl+G" );
+ menu->addSeparator();
if( mi )
{
- menu->addSeparator();
QAction *adv = menu->addAction( qtr("Advanced controls" ),
mi, SLOT( advanced() ) );
adv->setCheckable( true );
if( visual_selector_enabled ) adv->setChecked( true );
#endif
}
+ DP_SADD( qtr(I_MENU_EXT), "","",extendedDialog(), "Ctrl+E" );
DP_SADD( qtr(I_MENU_GOTOTIME), "","",gotoTimeDialog(), "Ctrl+T" );
menu->addSeparator();
DP_SADD( qtr("Preferences"), "", "", prefsDialog(), "Ctrl+P" );
if( !p_intf->pf_show_dialog )
{
menu->addSeparator();
- menu->addAction( qtr("Switch to skins"), THEDP, SLOT(switchToSkins()) );
+ menu->addAction( qtr("Switch to skins"), THEDP, SLOT(switchToSkins()),
+ qtr("Ctrl+Z") );
}
CONNECT( menu, aboutToShow(), THEDP->menusUpdateMapper, map() );
QMenu *menu = new QMenu();
DP_SADD( qtr("Help") , "", "", helpDialog(), "F1" );
menu->addSeparator();
- DP_SADD( qtr(I_MENU_ABOUT), "", "", aboutDialog(), "Ctrl+Shift+F1");
+ DP_SADD( qtr(I_MENU_ABOUT), "", "", aboutDialog(), "Ctrl+F1");
return menu;
}
#define POPUP_STATIC_ENTRIES \
vlc_value_t val; \
- MIM_SADD( qtr("Stop"), "", "", stop() ); \
- MIM_SADD( qtr("Previous"), "", "", prev() ); \
- MIM_SADD( qtr("Next"), "", "", next() ); \
if( p_input ) \
{ \
var_Get( p_input, "state", &val ); \
MIM_SADD( qtr("Pause"), "", "", togglePlayPause() ) \
} \
else if( THEPL->items.i_size && THEPL->i_enabled ) \
- MIM_SADD( qtr("Play"), "", "", togglePlayPause() ) \
+ MIM_SADD( qtr("Play"), "", "", togglePlayPause() );\
\
+ MIM_SADD( qtr("Stop"), "", "", stop() ); \
+ MIM_SADD( qtr("Previous"), "", "", prev() ); \
+ MIM_SADD( qtr("Next"), "", "", next() ); \
+ menu->addSeparator(); \
QMenu *intfmenu = InterfacesMenu( p_intf, NULL ); \
intfmenu->setTitle( qtr("Interfaces" ) ); \
menu->addMenu( intfmenu ); \
QMenu *toolsmenu = ToolsMenu( p_intf, NULL, false, false ); \
toolsmenu->setTitle( qtr("Tools" ) ); \
menu->addMenu( toolsmenu ); \
+ DP_SADD( qtr("Quit"), "", "", quit() , "Ctrl+Q" );
void QVLCMenu::VideoPopupMenu( intf_thread_t *p_intf )
{
p_intf->p_sys->p_popup_menu = NULL;
}
-void QVLCMenu::PopupMenu( intf_thread_t *p_intf )
+void QVLCMenu::PopupMenu( intf_thread_t *p_intf, bool show )
{
- POPUP_BOILERPLATE;
- if( p_input )
+ if( show )
{
- vlc_object_yield( p_input );
- InputAutoMenuBuilder( VLC_OBJECT(p_input), objects, varnames );
-
- /* Video menu */
- PUSH_SEPARATOR;
- varnames.push_back( "video-es" );
- objects.push_back( p_input->i_object_id );
- varnames.push_back( "spu-es" );
- objects.push_back( p_input->i_object_id );
- vlc_object_t *p_vout = (vlc_object_t *)vlc_object_find( p_input,
- VLC_OBJECT_VOUT, FIND_CHILD );
- if( p_vout )
- {
- VideoAutoMenuBuilder( p_vout, objects, varnames );
- vlc_object_release( p_vout );
- }
- /* Audio menu */
- PUSH_SEPARATOR
- varnames.push_back( "audio-es" );
- objects.push_back( p_input->i_object_id );
- vlc_object_t *p_aout = (vlc_object_t *)vlc_object_find( p_input,
- VLC_OBJECT_AOUT, FIND_ANYWHERE );
- if( p_aout )
- {
- AudioAutoMenuBuilder( p_aout, objects, varnames );
- vlc_object_release( p_aout );
- }
+ // create a popup if there is none
+ if( ! p_intf->p_sys->p_popup_menu )
+ {
+ POPUP_BOILERPLATE;
+ if( p_input )
+ {
+ vlc_object_yield( p_input );
+ InputAutoMenuBuilder( VLC_OBJECT(p_input), objects, varnames );
+
+ /* Video menu */
+ PUSH_SEPARATOR;
+ varnames.push_back( "video-es" );
+ objects.push_back( p_input->i_object_id );
+ varnames.push_back( "spu-es" );
+ objects.push_back( p_input->i_object_id );
+ vlc_object_t *p_vout = (vlc_object_t *)vlc_object_find( p_input,
+ VLC_OBJECT_VOUT, FIND_CHILD );
+ if( p_vout )
+ {
+ VideoAutoMenuBuilder( p_vout, objects, varnames );
+ vlc_object_release( p_vout );
+ }
+ /* Audio menu */
+ PUSH_SEPARATOR
+ varnames.push_back( "audio-es" );
+ objects.push_back( p_input->i_object_id );
+ vlc_object_t *p_aout = (vlc_object_t *)vlc_object_find( p_input,
+ VLC_OBJECT_AOUT, FIND_ANYWHERE );
+ if( p_aout )
+ {
+ AudioAutoMenuBuilder( p_aout, objects, varnames );
+ vlc_object_release( p_aout );
+ }
+ }
+
+ QMenu *menu = new QMenu();
+ Populate( p_intf, menu, varnames, objects );
+ menu->addSeparator();
+ POPUP_STATIC_ENTRIES;
+
+ p_intf->p_sys->p_popup_menu = menu;
+ }
+ p_intf->p_sys->p_popup_menu->popup( QCursor::pos() );
+ }
+ else
+ {
+ // destroy popup if there is one
+ delete p_intf->p_sys->p_popup_menu;
+ p_intf->p_sys->p_popup_menu = NULL;
}
-
- QMenu *menu = new QMenu();
- Populate( p_intf, menu, varnames, objects );
- menu->addSeparator();
- POPUP_STATIC_ENTRIES;
-
- p_intf->p_sys->p_popup_menu = menu;
- menu->popup( QCursor::pos() );
- p_intf->p_sys->p_popup_menu = NULL;
}
#undef PUSH_VAR
case VLC_VAR_BOOL:
var_Get( p_object, psz_var, &val );
+ val.b_bool = !val.b_bool;
CreateAndConnect( menu, psz_var, TEXT_OR_VAR, "", ITEM_CHECK,
- p_object->i_object_id, val, i_type, val.b_bool );
+ p_object->i_object_id, val, i_type, !val.b_bool );
break;
}
FREENULL( text.psz_string );