qtui: Fix quit sequence and lifetime issues
[quassel.git] / src / qtui / monoapplication.h
index 34363bb..6064312 100644 (file)
 
 #pragma once
 
-#include <memory>
+#include <QPointer>
+#include <QThread>
 
 #include "qtuiapplication.h"
 
 class Core;
+class InternalPeer;
 
 class MonolithicApplication : public QtUiApplication
 {
     Q_OBJECT
+
 public:
     MonolithicApplication(int &, char **);
-    ~MonolithicApplication() override;
 
-    bool init() override;
+    void init() override;
+
+protected:
+    Quassel::QuitHandler quitHandler() override;
+
+signals:
+    void connectInternalPeer(QPointer<InternalPeer> peer);
 
 private slots:
+    void onConnectionRequest(QPointer<InternalPeer> peer);
+    void onClientDestroyed();
+
+private:
     void startInternalCore();
 
 private:
-    std::unique_ptr<Core> _core;
+    QPointer<Core> _core;
+    QThread _coreThread;
 };