*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Baptiste Kempf <jb@videolan.org>
+ * Jean-Philippe André <jpeg@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
SLOT( loadSubtitlesFile() ) );
action->setData( "_static_" );
- ACT_ADD( current, "fullscreen", qtr( "&Fullscreen" ) );
+ ACT_ADD( current, "fullscreen", qtr( "Toggle &Fullscreen" ) );
ACT_ADD( current, "zoom", qtr( "&Zoom" ) );
ACT_ADD( current, "deinterlace", qtr( "&Deinterlace" ) );
ACT_ADD( current, "aspect-ratio", qtr( "&Aspect Ratio" ) );
void QVLCMenu::PopupMenuStaticEntries( intf_thread_t *p_intf, QMenu *menu )
{
+#if 0
QMenu *toolsmenu = ToolsMenu( p_intf, menu, false, true );
toolsmenu->setTitle( qtr( "Tools" ) );
menu->addMenu( toolsmenu );
+#endif
QMenu *openmenu = new QMenu( qtr( "Open" ), menu );
openmenu->addAction( qtr( "Open &File..." ), THEDP,
menu->addMenu( openmenu );
menu->addSeparator();
+#if 0
QMenu *helpmenu = HelpMenu( menu );
helpmenu->setTitle( qtr( "Help" ) );
menu->addMenu( helpmenu );
+#endif
addDPStaticEntry( menu, qtr( "Quit" ), "", "", SLOT( quit() ) , "Ctrl+Q" );
}
/* Main Menu that sticks everything together */
void QVLCMenu::PopupMenu( intf_thread_t *p_intf, bool show )
{
+ MainInterface *mi = p_intf->p_sys->p_mi;
if( show )
{
- // create a popup if there is none
- if( ! p_intf->p_sys->p_popup_menu )
+ /* Delete and recreate a popup if there is one */
+ if( p_intf->p_sys->p_popup_menu )
+ delete p_intf->p_sys->p_popup_menu;
+
+ QMenu *menu = new QMenu();
+ QMenu *submenu;
+ QAction *action;
+
+ POPUP_BOILERPLATE;
+
+ PopupMenuControlEntries( menu, p_intf, p_input );
+ menu->addSeparator();
+ bool b_fullscreen;
+
+ if( p_input )
{
- POPUP_BOILERPLATE;
- if( p_input )
+ vlc_object_yield( p_input );
+ InputAutoMenuBuilder( VLC_OBJECT( p_input ), objects, varnames );
+
+ vlc_object_t *p_aout = ( vlc_object_t * )
+ vlc_object_find( p_input, VLC_OBJECT_AOUT, FIND_ANYWHERE );
+ vlc_object_t *p_vout = ( vlc_object_t * )
+ vlc_object_find( p_input, VLC_OBJECT_VOUT, FIND_CHILD );
+
+ /* Add a fullscreen switch button */
+ if( p_vout )
{
- vlc_object_yield( p_input );
- InputAutoMenuBuilder( VLC_OBJECT( p_input ), objects, varnames );
-
- /* Audio menu */
- PUSH_SEPARATOR;
- vlc_object_t *p_aout = ( vlc_object_t * )
- vlc_object_find( p_input, VLC_OBJECT_AOUT, FIND_ANYWHERE );
- AudioAutoMenuBuilder( p_aout, p_input, objects, varnames );
- if( p_aout )
- vlc_object_release( p_aout );
-
- /* Video menu */
- PUSH_SEPARATOR;
- vlc_object_t *p_vout = ( vlc_object_t * )
- vlc_object_find( p_input, VLC_OBJECT_VOUT, FIND_CHILD );
- VideoAutoMenuBuilder( p_vout, p_input, objects, varnames );
- if( p_vout )
- vlc_object_release( p_vout );
-
- vlc_object_release( p_input );
+ vlc_value_t val;
+ var_Get( p_vout, "fullscreen", &val );
+ val.b_bool = !val.b_bool;
+ CreateAndConnect( menu, "fullscreen", qtr( "Toggle fullscreen" ), "",
+ ITEM_CHECK, p_vout->i_object_id, val, VLC_VAR_BOOL,
+ !val.b_bool );
+ b_fullscreen = !val.b_bool;
}
- QMenu *menu = new QMenu();
- Populate( p_intf, menu, varnames, objects );
- menu->addSeparator();
- PopupMenuControlEntries( menu, p_intf, p_input );
- menu->addSeparator();
- PopupMenuStaticEntries( p_intf, menu );
+ /* Audio menu */
+ AudioAutoMenuBuilder( p_aout, p_input, objects, varnames );
+ if( p_aout )
+ vlc_object_release( p_aout );
+ submenu = Populate( p_intf, NULL, varnames, objects );
+ varnames.clear(); objects.clear();
+ action = menu->addMenu( submenu );
+ action->setText( qtr( "Audio" ) );
+ if( submenu->isEmpty() )
+ action->setEnabled( false );
+
+ /* Video menu */
+ VideoAutoMenuBuilder( p_vout, p_input, objects, varnames );
+ if( p_vout )
+ vlc_object_release( p_vout );
+ submenu = Populate( p_intf, NULL, varnames, objects );
+ varnames.clear(); objects.clear();
+ action = menu->addMenu( submenu );
+ action->setText( qtr( "Video" ) );
+ if( submenu->isEmpty() )
+ action->setEnabled( false );
- p_intf->p_sys->p_popup_menu = menu;
+ vlc_object_release( p_input );
}
+
+ menu->addSeparator();
+
+ /* Add some special entries for windowed mode */
+ if( !b_fullscreen )
+ {
+ submenu = new QMenu( qtr( "Interface" ), menu );
+ submenu->addAction( QIcon( ":/pixmaps/playlist_16px.png" ),
+ qtr( "Show Playlist" ), mi, SLOT( togglePlaylist() ) );
+ menu->addMenu( submenu );
+ }
+
+ PopupMenuStaticEntries( p_intf, menu );
+
+ p_intf->p_sys->p_popup_menu = menu;
p_intf->p_sys->p_popup_menu->popup( QCursor::pos() );
}
else