[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdenetwork/kopete/kopete
From:       Pali Rohár <pali.rohar () gmail ! com>
Date:       2013-06-02 9:00:51
Message-ID: 20130602090051.EFFB4AC85D () svn ! kde ! org
[Download RAW message or body]

SVN commit 1356779 by pali:

Try to cleanly quit kopete (without crash) when proper shutdown was not called (e.g. \
quit from dbus)

Close all kopete windows, shutdown plugin manager and delete all kopete plugins until \
KopeteApplication is alive and main Qt loop is running (this is needed for more \
kopete plugins)


 M  +20 -0     kopeteapplication.cpp  


--- trunk/KDE/kdenetwork/kopete/kopete/kopeteapplication.cpp #1356778:1356779
@@ -104,6 +104,26 @@
 {
 	kDebug( 14000 ) ;
 
+	if ( ! m_isShuttingDown )
+	{
+		// destruct was called without proper shutdown, dbus quit maybe?
+		m_isShuttingDown = true;
+
+		// close all windows
+		QList<KMainWindow*> members = KMainWindow::memberList();
+		QList<KMainWindow*>::iterator it, itEnd = members.end();
+		for ( it = members.begin(); it != itEnd; ++it )
+			(*it)->close();
+
+		// shutdown plugin manager
+		Kopete::PluginManager::self()->shutdown();
+
+		// destroy all plugins until KopeteApplication is alive
+		Kopete::PluginList list = Kopete::PluginManager::self()->loadedPlugins();
+		foreach ( Kopete::Plugin *plugin, list )
+			delete plugin;
+	}
+
 	delete m_fileEngineHandler;
 	delete m_emoticonHandler;
 	//kDebug( 14000 ) << "Done";


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic