From 6eb31e1ae810d9be2c70a0eb265117806c9db882 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Sun, 10 Feb 2008 10:46:02 +0000 Subject: [PATCH] Qt4 - Destroy correctly the qt4 interface when used in DP. --- modules/gui/qt4/qt4.cpp | 13 +++++++++---- modules/gui/qt4/qt4.hpp | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index fb25aa4334..be83b289c4 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -248,8 +248,11 @@ static void Close( vlc_object_t *p_this ) p_intf->b_dead = VLC_TRUE; vlc_mutex_unlock( &p_intf->object_lock ); - if( p_intf->pf_show_dialog ) + if( p_intf->p_sys->b_isDialogProvider ) { + DialogEvent *event = new DialogEvent( INTF_DIALOG_EXIT, 0, NULL ); + QApplication::postEvent( THEDP, static_cast(event) ); + vlc_thread_join( p_intf ); } @@ -309,10 +312,12 @@ static void Init( intf_thread_t *p_intf ) p_intf->p_sys->p_mi = p_mi; /* We don't show it because it is done in the MainInterface constructor p_mi->show(); */ + p_intf->p_sys->b_isDialogProvider = false; } else { vlc_thread_ready( p_intf ); + p_intf->p_sys->b_isDialogProvider = true; } @@ -342,7 +347,7 @@ static void Init( intf_thread_t *p_intf ) } /* Explain to the core how to show a dialog :D */ - //p_intf->pf_show_dialog = ShowDialog; + p_intf->pf_show_dialog = ShowDialog; /* Last settings */ app->setQuitOnLastWindowClosed( false ); @@ -357,7 +362,8 @@ static void Init( intf_thread_t *p_intf ) { int interval = config_GetInt( p_intf, "qt-updates-days" ); QSettings settings( "vlc", "vlc-qt-interface" ); - if( QDate::currentDate() > settings.value( "updatedate" ).toDate().addDays( interval ) ) + if( QDate::currentDate() > + settings.value( "updatedate" ).toDate().addDays( interval ) ) { msg_Dbg( p_intf, "Someone said I need to check updates" ); /* The constructor of the update Dialog will do the 1st request */ @@ -387,7 +393,6 @@ static void Init( intf_thread_t *p_intf ) config_PutPsz( p_intf, "qt-filedialog-path", p_intf->p_sys->psz_filepath ); free( psz_path ); - } /***************************************************************************** diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 346b4c5af5..dc0fe959cd 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -56,6 +56,8 @@ struct intf_sys_t QApplication *p_app; MainInterface *p_mi; + bool b_isDialogProvider; + playlist_t *p_playlist; msg_subscription_t *p_sub; ///< Subscription to the message bank -- 2.39.2