vlc | branch: master | Erwan Tulou <[email protected]> | Thu Jul 17 10:58:42 2014 +0200| [2ba05d1ff03661caa55e943d32fcb492b395ecf2] | committer: Erwan Tulou
Qt: fix regression about popupmenu Always rely on the Dialog Provider to manage the popupmenu. This fixes a regression brought by 01f2d198c11044816c1782bdfc3fe35c0ae813e2 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2ba05d1ff03661caa55e943d32fcb492b395ecf2 --- modules/gui/qt4/components/interface_widgets.cpp | 2 +- modules/gui/qt4/components/playlist/standardpanel.cpp | 2 +- modules/gui/qt4/dialogs_provider.cpp | 12 ++++++++++++ modules/gui/qt4/dialogs_provider.hpp | 2 ++ modules/gui/qt4/main_interface.cpp | 14 ++------------ modules/gui/qt4/main_interface.hpp | 2 -- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/modules/gui/qt4/components/interface_widgets.cpp b/modules/gui/qt4/components/interface_widgets.cpp index 84babdb..6d27876 100644 --- a/modules/gui/qt4/components/interface_widgets.cpp +++ b/modules/gui/qt4/components/interface_widgets.cpp @@ -287,7 +287,7 @@ void BackgroundWidget::paintEvent( QPaintEvent *e ) void BackgroundWidget::contextMenuEvent( QContextMenuEvent *event ) { - VLCMenuBar::PopupMenu( p_intf, true ); + THEDP->setPopupMenu(); event->accept(); } diff --git a/modules/gui/qt4/components/playlist/standardpanel.cpp b/modules/gui/qt4/components/playlist/standardpanel.cpp index 19c67dc..38de867 100644 --- a/modules/gui/qt4/components/playlist/standardpanel.cpp +++ b/modules/gui/qt4/components/playlist/standardpanel.cpp @@ -157,7 +157,7 @@ void StandardPLPanel::popupPlView( const QPoint &point ) currentView->selectionModel()->select( index, QItemSelectionModel::Select ); } - if( !popup( globalPoint ) ) VLCMenuBar::PopupMenu( p_intf, true ); + if( !popup( globalPoint ) ) THEDP->setPopupMenu(); } /*********** Popup *********/ diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp index bd4dd9e..7c3cf16 100644 --- a/modules/gui/qt4/dialogs_provider.cpp +++ b/modules/gui/qt4/dialogs_provider.cpp @@ -316,6 +316,18 @@ void DialogsProvider::epgDialog() EpgDialog::getInstance( p_intf )->toggleVisible(); } +void DialogsProvider::setPopupMenu() +{ + delete popupMenu; + popupMenu = VLCMenuBar::PopupMenu( p_intf, true ); +} + +void DialogsProvider::destroyPopupMenu() +{ + delete popupMenu; + popupMenu = NULL; +} + /* Generic open file */ void DialogsProvider::openFileGenericDialog( intf_dialog_args_t *p_arg ) { diff --git a/modules/gui/qt4/dialogs_provider.hpp b/modules/gui/qt4/dialogs_provider.hpp index a475b19..4327fcd 100644 --- a/modules/gui/qt4/dialogs_provider.hpp +++ b/modules/gui/qt4/dialogs_provider.hpp @@ -140,6 +140,8 @@ public slots: void toolbarDialog(); void pluginDialog(); void epgDialog(); + void setPopupMenu(); + void destroyPopupMenu(); void openFileGenericDialog( intf_dialog_args_t * ); diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index 43e5dcc..466e089 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -159,7 +159,7 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) ************/ VLCMenuBar::createMenuBar( this, p_intf ); CONNECT( THEMIM->getIM(), voutListChanged( vout_thread_t **, int ), - this, destroyPopupMenu() ); + THEDP, destroyPopupMenu() ); createMainWidget( settings ); @@ -429,7 +429,7 @@ void MainInterface::createMainWidget( QSettings *creationSettings ) /* Enable the popup menu in the MI */ main->setContextMenuPolicy( Qt::CustomContextMenu ); CONNECT( main, customContextMenuRequested( const QPoint& ), - this, popupMenu( const QPoint& ) ); + THEDP, setPopupMenu() ); if ( depth() > 8 ) /* 8bit depth has too many issues with opacity */ /* Create the FULLSCREEN CONTROLS Widget */ @@ -611,16 +611,6 @@ inline void MainInterface::showTab( QWidget *widget ) } } -void MainInterface::destroyPopupMenu() -{ - VLCMenuBar::PopupMenu( p_intf, false ); -} - -void MainInterface::popupMenu( const QPoint & ) -{ - VLCMenuBar::PopupMenu( p_intf, true ); -} - void MainInterface::toggleFSC() { if( !fullscreenControls ) return; diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp index 8a69193..f19ab0b 100644 --- a/modules/gui/qt4/main_interface.hpp +++ b/modules/gui/qt4/main_interface.hpp @@ -199,7 +199,6 @@ public slots: void setStatusBarVisibility(bool b_visible); void setPlaylistVisibility(bool b_visible); - void popupMenu( const QPoint& ); #ifdef _WIN32 void changeThumbbarButtons( int ); #endif @@ -217,7 +216,6 @@ public slots: private slots: void debug(); - void destroyPopupMenu(); void recreateToolbars(); void setName( const QString& ); void setVLCWindowsTitle( const QString& title = "" ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
