Lots of additions again. Working on implementing commands and prettifying the output.
[quassel.git] / gui / guiproxy.h
index f3b48c0..a068b6d 100644 (file)
 #define _GUIPROXY_H_
 
 #include "proxy_common.h"
 #define _GUIPROXY_H_
 
 #include "proxy_common.h"
+#include "message.h"
+#include "global.h"
 
 #include <QObject>
 #include <QVariant>
 
 #include <QObject>
 #include <QVariant>
+#include <QTcpSocket>
+#include <QStringList>
 
 /** This class is the GUI side of the proxy. The GUI connects its signals and slots to it,
  *  and the calls are marshalled and sent to (or received and unmarshalled from) the CoreProxy.
 
 /** This class is the GUI side of the proxy. The GUI connects its signals and slots to it,
  *  and the calls are marshalled and sent to (or received and unmarshalled from) the CoreProxy.
 class GUIProxy : public QObject {
   Q_OBJECT
 
 class GUIProxy : public QObject {
   Q_OBJECT
 
-  private:
-    void send(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
-    void recv(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
-
   public:
     GUIProxy();
 
   public slots:
   public:
     GUIProxy();
 
   public slots:
-    void gsUserInput(QString);
-    void gsRequestConnect(QString, quint16);
+    inline void gsUserInput(QString net, QString buf, QString msg)    { send(GS_USER_INPUT, net, buf, msg); }
+    inline void gsRequestConnect(QStringList networks)                { send(GS_REQUEST_CONNECT, networks); }
 
 
+    void connectToCore(QString host, quint16 port);
+    void disconnectFromCore();
 
   signals:
 
   signals:
-    void csCoreMessage(QString);
+    void csCoreState(QVariant);
+    void csDisplayMsg(QString, QString, Message);
+    void csDisplayStatusMsg(QString, QString);
+    void csUpdateGlobalData(QString key, QVariant data);
+    void csGlobalDataChanged(QString key);
+    void csModeSet(QString, QString, QString);
+    void csTopicSet(QString, QString, QString);
+    void csSetNicks(QString, QString, QStringList);
+    void csNickAdded(QString, QString, VarMap);
+    void csNickRemoved(QString, QString);
+    void csNickUpdated(QString, QString, VarMap);
+    void csOwnNickSet(QString, QString);
+
+    void coreConnected();
+    void coreDisconnected();
+    void coreConnectionError(QString errorMsg);
+
+    void recvPartialItem(quint32 avail, quint32 size);
+
+  public:
+    void send(GUISignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+    void recv(CoreSignal, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant());
+
+  private slots:
+    void updateCoreData(QString);
+
+    void serverError(QAbstractSocket::SocketError);
+    void serverHasData();
+
+  private:
+    QTcpSocket socket;
+    quint32 blockSize;
 
   friend class CoreProxy;
 
 
   friend class CoreProxy;