CONNECT( SDMapper, mapped (QString), this, SDMenuAction( QString ) );
new DialogHandler (p_intf, this );
-
- /* a root widget intended to be the ancestor of all
- menus/actions created by the dialog_provider methods.
- At destruction time, deleting this fake widget ensures
- all child menus/actions are also deleted
- */
- root = new QWidget();
}
DialogsProvider::~DialogsProvider()
delete menusUpdateMapper;
delete SDMapper;
- delete root;
+ QVLCMenu::PopupMenu( p_intf, false );
+ QVLCMenu::AudioPopupMenu( p_intf, false );
+ QVLCMenu::VideoPopupMenu( p_intf, false );
+ QVLCMenu::MiscPopupMenu( p_intf, false );
}
void DialogsProvider::quit()
vlmDialog(); break;
#endif
case INTF_DIALOG_POPUPMENU:
- QVLCMenu::PopupMenu( p_intf, (de->i_arg != 0), root ); break;
+ QVLCMenu::PopupMenu( p_intf, (de->i_arg != 0) ); break;
case INTF_DIALOG_AUDIOPOPUPMENU:
- QVLCMenu::AudioPopupMenu( p_intf, root ); break;
+ QVLCMenu::AudioPopupMenu( p_intf, (de->i_arg != 0) ); break;
case INTF_DIALOG_VIDEOPOPUPMENU:
- QVLCMenu::VideoPopupMenu( p_intf, root ); break;
+ QVLCMenu::VideoPopupMenu( p_intf, (de->i_arg != 0) ); break;
case INTF_DIALOG_MISCPOPUPMENU:
- QVLCMenu::MiscPopupMenu( p_intf, root ); break;
+ QVLCMenu::MiscPopupMenu( p_intf, (de->i_arg != 0) ); break;
case INTF_DIALOG_WIZARD:
case INTF_DIALOG_STREAMWIZARD:
openAndStreamingDialogs(); break;
* Popup menus - Right Click menus *
*****************************************************************************/
#define POPUP_BOILERPLATE \
+ static QMenu* menu = NULL; \
+ delete menu; menu = NULL; \
+ if( !show ) \
+ return; \
unsigned int i_last_separator = 0; \
vector<vlc_object_t *> objects; \
vector<const char *> varnames; \
input_thread_t *p_input = THEMIM->getInput();
#define CREATE_POPUP \
+ menu = new QMenu(); \
Populate( p_intf, menu, varnames, objects ); \
- p_intf->p_sys->p_popup_menu = menu; \
menu->popup( QCursor::pos() ); \
- p_intf->p_sys->p_popup_menu = NULL; \
i_last_separator = 0;
void QVLCMenu::PopupPlayEntries( QMenu *menu,
}
/* Video Tracks and Subtitles tracks */
-void QVLCMenu::VideoPopupMenu( intf_thread_t *p_intf, QWidget *parent )
+void QVLCMenu::VideoPopupMenu( intf_thread_t *p_intf, bool show )
{
- POPUP_BOILERPLATE;
+ POPUP_BOILERPLATE
if( p_input )
{
vout_thread_t *p_vout = THEMIM->getVout();
vlc_object_release( p_vout );
}
}
- QMenu *menu = new QMenu( parent );
- CREATE_POPUP;
+ CREATE_POPUP
}
/* Audio Tracks */
-void QVLCMenu::AudioPopupMenu( intf_thread_t *p_intf, QWidget *parent )
+void QVLCMenu::AudioPopupMenu( intf_thread_t *p_intf, bool show )
{
- POPUP_BOILERPLATE;
+ POPUP_BOILERPLATE
if( p_input )
{
aout_instance_t *p_aout = THEMIM->getAout();
if( p_aout )
vlc_object_release( p_aout );
}
- QMenu *menu = new QMenu( parent );
- CREATE_POPUP;
+ CREATE_POPUP
}
/* Navigation stuff, and general menus ( open ), used only for skins */
-void QVLCMenu::MiscPopupMenu( intf_thread_t *p_intf, QWidget *parent )
+void QVLCMenu::MiscPopupMenu( intf_thread_t *p_intf, bool show )
{
- POPUP_BOILERPLATE;
+ POPUP_BOILERPLATE
if( p_input )
{
PUSH_SEPARATOR;
}
- QMenu *menu = new QMenu( parent );
+ menu = new QMenu();
Populate( p_intf, menu, varnames, objects );
menu->addSeparator();
menu->addSeparator();
PopupMenuStaticEntries( menu );
- p_intf->p_sys->p_popup_menu = menu;
menu->popup( QCursor::pos() );
- p_intf->p_sys->p_popup_menu = NULL;
}
/* Main Menu that sticks everything together */
-void QVLCMenu::PopupMenu( intf_thread_t *p_intf, bool show, QWidget *parent )
+void QVLCMenu::PopupMenu( intf_thread_t *p_intf, bool show )
{
- /* Delete old popup if there is one */
- delete p_intf->p_sys->p_popup_menu;
-
- if( !show )
- {
- p_intf->p_sys->p_popup_menu = NULL;
- return;
- }
+ POPUP_BOILERPLATE
/* */
- QMenu *menu = new QMenu( parent );
+ menu = new QMenu( );
QAction *action;
bool b_isFullscreen = false;
MainInterface *mi = p_intf->p_sys->p_mi;
- POPUP_BOILERPLATE;
-
PopupPlayEntries( menu, p_intf, p_input );
PopupMenuPlaylistControlEntries( menu, p_intf );
menu->addSeparator();
/* Static entries for ending, like open */
PopupMenuStaticEntries( menu );
- p_intf->p_sys->p_popup_menu = menu;
- p_intf->p_sys->p_popup_menu->popup( QCursor::pos() );
+ menu->popup( QCursor::pos() );
}
#undef ACT_ADD
#undef ACT_ADDMENU
#undef ACT_ADDCHECK
+#undef CREATE_POPUP
+#undef POPUP_BOILERPLATE
+
#ifndef HAVE_MAEMO
/************************************************************************
* Systray Menu *
intf_thread_t *p_intf,
bool b_force_visible )
{
- POPUP_BOILERPLATE;
+ unsigned int i_last_separator = 0;
+ vector<vlc_object_t *> objects;
+ vector<const char *> varnames;
+ input_thread_t *p_input = THEMIM->getInput();
/* Get the systray menu and clean it */
QMenu *sysMenu = mi->getSysTrayMenu();
}
#endif
-#undef CREATE_POPUP
-#undef POPUP_BOILERPLATE
#undef PUSH_VAR
#undef PUSH_SEPARATOR
static void createMenuBar( MainInterface *mi, intf_thread_t * );
/* Popups Menus */
- static void PopupMenu( intf_thread_t *, bool, QWidget * );
- static void AudioPopupMenu( intf_thread_t *, QWidget * );
- static void VideoPopupMenu( intf_thread_t *, QWidget * );
- static void MiscPopupMenu( intf_thread_t *, QWidget * );
+ static void PopupMenu( intf_thread_t *, bool );
+ static void AudioPopupMenu( intf_thread_t *, bool );
+ static void VideoPopupMenu( intf_thread_t *, bool );
+ static void MiscPopupMenu( intf_thread_t *, bool );
/* Systray */
static void updateSystrayMenu( MainInterface *, intf_thread_t *,