More small tweaks to fix scrollbar behavior. This really sucks.
[quassel.git] / network / server.h
index dff974b..f0f3a85 100644 (file)
@@ -18,6 +18,8 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
+#error "obsolete code"
+
 #ifndef _SERVER_H_
 #define _SERVER_H_
 
 
 #include "global.h"
 #include "buffer.h"
+#include "message.h"
 
 #define DEFAULT_PORT 6667
 
-/*! \file */
 
-/*! \class Server
+/*!
  * This is a server object, managing a single connection to an IRC server, handling the associated channels and so on.
  * We have this running in its own thread mainly to not block other server objects or the core if something goes wrong,
  * e.g. if some scripts starts running wild...
@@ -62,10 +64,20 @@ class Server : public QThread {
 
   signals:
     void recvRawServerMsg(QString);
-    void sendStatusMsg(QString);
-    void sendMessage(QString buffer, QString msg);
+    void displayStatusMsg(QString);
+    void displayMsg(Message msg);
     void disconnected();
 
+    void nickAdded(QString network, QString nick, VarMap props);
+    void nickRenamed(QString network, QString oldnick, QString newnick);
+    void nickRemoved(QString network, QString nick);
+    void nickUpdated(QString network, QString nick, VarMap props);
+    void modeSet(QString network, QString target, QString mode);
+    void topicSet(QString network, QString buffer, QString topic);
+    void setNicks(QString network, QString buffer, QStringList nicks);
+    void ownNickSet(QString network, QString newNick);
+
+
   private slots:
     void run();
     void socketHasData();
@@ -75,19 +87,62 @@ class Server : public QThread {
     void socketStateChanged(QAbstractSocket::SocketState);
 
     /* Message Handlers */
-    /* handleXxxxFromServer(QString prefix, QStringList params); */
-    void handleNoticeFromServer(QString, QStringList);
-    void handlePingFromServer(QString, QStringList);
 
-    void defaultHandlerForServer(QString cmd, QString prefix, QStringList params);
+    /* void handleUser(QString, QString); */
+    void handleUserAway(QString, QString);
+    void handleUserDeop(QString, QString);
+    void handleUserDevoice(QString, QString);
+    void handleUserInvite(QString, QString);
+    void handleUserJoin(QString, QString);
+    void handleUserKick(QString, QString);
+    void handleUserList(QString, QString);
+    void handleUserMode(QString, QString);
+    void handleUserMsg(QString, QString);
+    void handleUserNick(QString, QString);
+    void handleUserOp(QString, QString);
+    void handleUserPart(QString, QString);
+    void handleUserQuit(QString, QString);
+    void handleUserQuote(QString, QString);
+    void handleUserSay(QString, QString);
+    void handleUserVoice(QString, QString);
+
+    /* void handleServer(QString, QStringList); */
+    void handleServerJoin(QString, QStringList);
+    void handleServerKick(QString, QStringList);
+    void handleServerMode(QString, QStringList);
+    void handleServerNick(QString, QStringList);
+    void handleServerNotice(QString, QStringList);
+    void handleServerPart(QString, QStringList);
+    void handleServerPing(QString, QStringList);
+    void handleServerPrivmsg(QString, QStringList);
+    void handleServerQuit(QString, QStringList);
+
+    void handleServer001(QString, QStringList);   // RPL_WELCOME
+    void handleServer005(QString, QStringList);   // RPL_ISUPPORT
+    void handleServer331(QString, QStringList);   // RPL_NOTOPIC
+    void handleServer332(QString, QStringList);   // RPL_TOPIC
+    void handleServer333(QString, QStringList);   // Topic set by...
+    void handleServer353(QString, QStringList);   // RPL_NAMREPLY
+
+    void defaultServerHandler(QString cmd, QString prefix, QStringList params);
+    void defaultUserHandler(QString buf, QString cmd, QString msg);
 
   private:
     QString network;
     QTcpSocket socket;
-    QHash<QString, Buffer*> buffers;
+    //QHash<QString, Buffer*> buffers;
+
+    QString currentNick;
+    QString currentServer;
+    VarMap networkSettings;
+    VarMap identity;
+    VarMap nicks;  // stores all known nicks for the server
+    VarMap serverSupports;  // stores results from RPL_ISUPPORT
 
     void handleServerMsg(QString rawMsg);
-    void handleUserMsg(QString usrMsg);
+    void handleUserInput(QString buffer, QString usrMsg);
+
+    QString updateNickFromMask(QString mask);
 
     class ParseError : public Exception {
       public: