Refactoring the GUI. Work in progress.
[quassel.git] / core / coreproxy.h
index 1bded17..071f651 100644 (file)
 #define _COREPROXY_H_
 
 #include "proxy_common.h"
+#include "message.h"
+#include "global.h"
 
 #include <QtCore>
 #include <QTcpSocket>
 #include <QTcpServer>
 
 /** This class is the Core side of the proxy. The Core connects its signals and slots to it,
- *  and the calls are marshalled and sent to (or received and unmarshalled from) the GUIProxy.
+ *  and the calls are marshalled and sent to (or received and unmarshalled from) the GuiProxy.
  *  The connection functions are defined in main/main_core.cpp or main/main_mono.cpp.
  */
 class CoreProxy : public QObject {
@@ -38,37 +40,52 @@ class CoreProxy : public QObject {
     CoreProxy();
 
   public slots:
-    inline void csCoreMessage(QString s)                           { send(CS_CORE_MESSAGE, s); }
-    inline void csUpdateGlobalData(QString key, QVariant data)     { send(CS_UPDATE_GLOBAL_DATA, key, data); }
+    inline void csUpdateGlobalData(QString key, QVariant data)          { send(CS_UPDATE_GLOBAL_DATA, key, data); }
+    inline void csServerConnected(QString net)                          { send(CS_SERVER_CONNECTED, net); }
+    inline void csServerDisconnected(QString net)                       { send(CS_SERVER_DISCONNECTED, net); }
+    inline void csServerState(QString net, VarMap data)                 { send(CS_SERVER_STATE, net, data); }
+    inline void csDisplayMsg(Message msg)                               { send(CS_DISPLAY_MSG, QVariant::fromValue(msg)); }
+    inline void csDisplayStatusMsg(QString net, QString msg)            { send(CS_DISPLAY_STATUS_MSG, net, msg); }
+    inline void csModeSet(QString net, QString target, QString mode)    { send(CS_MODE_SET, net, target, mode); }
+    inline void csTopicSet(QString net, QString buf, QString topic)     { send(CS_TOPIC_SET, net, buf, topic); }
+    inline void csNickAdded(QString net, QString nick, VarMap props)    { send(CS_NICK_ADDED, net, nick, props); }
+    inline void csNickRemoved(QString net, QString nick)                { send(CS_NICK_REMOVED, net, nick); }
+    inline void csNickRenamed(QString net, QString oldn, QString newn)  { send(CS_NICK_RENAMED, net, oldn, newn); }
+    inline void csNickUpdated(QString net, QString nick, VarMap props)  { send(CS_NICK_UPDATED, net, nick, props); }
+    inline void csOwnNickSet(QString net, QString nick)                 { send(CS_OWN_NICK_SET, net, nick); }
+    inline void csQueryRequested(QString net, QString nick)             { send(CS_QUERY_REQUESTED, net, nick); }
+    inline void csBacklogData(BufferId id, QList<QVariant> msg, bool done) { send(CS_BACKLOG_DATA, QVariant::fromValue(id), msg, done); }
+    inline void csUpdateBufferId(BufferId id)                           { send(CS_UPDATE_BUFFERID, QVariant::fromValue(id)); }
+
+    inline void csGeneric(CoreSignal sig, QVariant v1 = QVariant(), QVariant v2 = QVariant(), QVariant v3 = QVariant()) { send(sig, v1, v2, v3); }
 
   signals:
     void gsPutGlobalData(QString, QVariant);
-    void gsUserInput(QString);
-    void gsRequestConnect(QString, quint16);
+    void gsUserInput(BufferId, QString);
+    void gsRequestConnect(QStringList networks);
+    void gsImportBacklog();
+    void gsRequestBacklog(BufferId, QVariant, QVariant);
+
+    void gsGeneric(ClientSignal, QVariant, QVariant, QVariant);
+
+    void requestServerStates();
 
-  private:
     void send(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
-    void recv(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
-    void sendToGUI(CoreSignal, QVariant arg1, QVariant arg2, QVariant arg3);
 
-    void processClientInit(QTcpSocket *socket, const QVariant &v);
+  public:
+    //void send(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+    void recv(ClientSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+
+  private:
     void processClientUpdate(QTcpSocket *, QString key, QVariant data);
 
-  private slots:
-    void incomingConnection();
-    void clientHasData();
-    void clientDisconnected();
-    void updateGlobalData(QString key);
 
   private:
-    QTcpServer server;
-    QList<QTcpSocket *> clients;
-    QHash<QTcpSocket *, quint32> blockSizes;
 
-  friend class GUIProxy;
+  friend class GuiProxy;
 };
 
-extern CoreProxy *coreProxy;
+//extern CoreProxy *coreProxy;