core: Allow clean shutdown of the core
[quassel.git] / src / qtui / monoapplication.cpp
index c9695cc..128ab97 100644 (file)
@@ -63,6 +63,18 @@ Quassel::QuitHandler MonolithicApplication::quitHandler()
 
 
 void MonolithicApplication::onClientDestroyed()
 
 
 void MonolithicApplication::onClientDestroyed()
+{
+    if (_core) {
+        connect(_core, SIGNAL(shutdownComplete()), this, SLOT(onCoreShutdown()));
+        _core->shutdown();
+    }
+    else {
+        QCoreApplication::quit();
+    }
+}
+
+
+void MonolithicApplication::onCoreShutdown()
 {
     if (_core) {
         connect(_core, SIGNAL(destroyed()), QCoreApplication::instance(), SLOT(quit()));
 {
     if (_core) {
         connect(_core, SIGNAL(destroyed()), QCoreApplication::instance(), SLOT(quit()));