Commit 56f13b36 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Fix some quitting issues from skins2 when Qt in theDP.

parent 6e108358
...@@ -271,10 +271,12 @@ static void Close( vlc_object_t *p_this ) ...@@ -271,10 +271,12 @@ static void Close( vlc_object_t *p_this )
vlc_object_unlock( p_intf ); vlc_object_unlock( p_intf );
if( p_intf->p_sys->b_isDialogProvider ) if( p_intf->p_sys->b_isDialogProvider )
{
if( p_intf->p_sys->p_dp )
{ {
DialogEvent *event = new DialogEvent( INTF_DIALOG_EXIT, 0, NULL ); DialogEvent *event = new DialogEvent( INTF_DIALOG_EXIT, 0, NULL );
QApplication::postEvent( THEDP, static_cast<QEvent*>(event) ); QApplication::postEvent( THEDP, static_cast<QEvent*>(event) );
}
vlc_thread_join( p_intf ); vlc_thread_join( p_intf );
} }
...@@ -342,7 +344,7 @@ static void *Init( vlc_object_t *obj ) ...@@ -342,7 +344,7 @@ static void *Init( vlc_object_t *obj )
app->setWindowIcon( QIcon( QPixmap(vlc_xpm) ) ); app->setWindowIcon( QIcon( QPixmap(vlc_xpm) ) );
/* Initialize timers and the Dialog Provider */ /* Initialize timers and the Dialog Provider */
DialogsProvider::getInstance( p_intf ); p_intf->p_sys->p_dp = DialogsProvider::getInstance( p_intf );
QPointer<MainInterface> *miP = NULL; QPointer<MainInterface> *miP = NULL;
...@@ -424,6 +426,7 @@ static void *Init( vlc_object_t *obj ) ...@@ -424,6 +426,7 @@ static void *Init( vlc_object_t *obj )
app->exec(); app->exec();
/* And quit */ /* And quit */
msg_Dbg( p_intf, "Quitting the Qt4 Interface" );
if (miP) if (miP)
{ {
...@@ -442,16 +445,20 @@ static void *Init( vlc_object_t *obj ) ...@@ -442,16 +445,20 @@ static void *Init( vlc_object_t *obj )
in the MainInputManager */ in the MainInputManager */
delete p_intf->p_sys->p_mi; delete p_intf->p_sys->p_mi;
/* Destroy then other windows, because some are connected to some slots /* Destroy all remaining windows,
in the MainInputManager */ because some are connected to some slots
in the MainInputManager
Settings must be destroyed after that.
*/
DialogsProvider::killInstance(); DialogsProvider::killInstance();
p_intf->p_sys->p_dp = NULL;
/* Delete the configuration. Application has to be deleted after that. */
delete p_intf->p_sys->mainSettings;
/* Destroy the MainInputManager */ /* Destroy the MainInputManager */
MainInputManager::killInstance(); MainInputManager::killInstance();
/* Delete the configuration */
delete p_intf->p_sys->mainSettings;
/* Delete the application */ /* Delete the application */
delete app; delete app;
......
...@@ -52,6 +52,7 @@ struct intf_sys_t ...@@ -52,6 +52,7 @@ struct intf_sys_t
{ {
QApplication *p_app; QApplication *p_app;
MainInterface *p_mi; MainInterface *p_mi;
DialogsProvider *p_dp;
QSettings *mainSettings; QSettings *mainSettings;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment