Don't invoke notifications for own messages, fixes #507
[quassel.git] / src / core / userinputhandler.h
index 66b0fea..5df2686 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -18,8 +18,8 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _USERINPUTHANDLER_H_
-#define _USERINPUTHANDLER_H_
+#ifndef USERINPUTHANDLER_H
+#define USERINPUTHANDLER_H
 
 #include "basichandler.h"
 
@@ -29,33 +29,63 @@ class UserInputHandler : public BasicHandler {
   Q_OBJECT
 
 public:
-  UserInputHandler(NetworkConnection *parent = 0);
+  UserInputHandler(CoreNetwork *parent = 0);
 
-  void handleUserInput(QString buffer, QString msg);
+  void handleUserInput(const BufferInfo &bufferInfo, const QString &text);
   
 public slots:
-  void handleAway(QString, QString);
-  void handleDeop(QString, QString);
-  void handleDevoice(QString, QString);
-  void handleInvite(QString, QString);
-  void handleJoin(QString, QString);
-  void handleKick(QString, QString);
-  void handleList(QString, QString);
-  void handleMode(QString, QString);
-  void handleMsg(QString, QString);
-  void handleNick(QString, QString);
-  void handleOp(QString, QString);
-  void handlePart(QString, QString);
-  void handleQuery(QString, QString);
-  void handleQuit(QString, QString);
-  void handleQuote(QString, QString);
-  void handleSay(QString, QString);
-  void handleTopic(QString, QString);
-  void handleVoice(QString, QString);
-  void handleMe(QString, QString);
-
-  void defaultHandler(QString cmd, QString buf, QString msg);
+  void handleAway(const BufferInfo &bufferInfo, const QString &text);
+  void handleBan(const BufferInfo &bufferInfo, const QString &text);
+  void handleUnban(const BufferInfo &bufferInfo, const QString &text);
+  void handleCtcp(const BufferInfo &bufferInfo, const QString &text);
+  void handleDeop(const BufferInfo &bufferInfo, const QString &text);
+  void handleDevoice(const BufferInfo &bufferInfo, const QString &text);
+  void handleInvite(const BufferInfo &bufferInfo, const QString &text);
+  void handleJoin(const BufferInfo &bufferInfo, const QString &text);
+  void handleKick(const BufferInfo &bufferInfo, const QString &text);
+  void handleKill(const BufferInfo &bufferInfo, const QString &text);
+  void handleList(const BufferInfo &bufferInfo, const QString &text);
+  void handleMe(const BufferInfo &bufferInfo, const QString &text);
+  void handleMode(const BufferInfo &bufferInfo, const QString &text);
+  void handleMsg(const BufferInfo &bufferInfo, const QString &text);
+  void handleNick(const BufferInfo &bufferInfo, const QString &text);
+  void handleNotice(const BufferInfo &bufferInfo, const QString &text);
+  void handleOper(const BufferInfo &bufferInfo, const QString &text);
+  void handleOp(const BufferInfo &bufferInfo, const QString &text);
+  void handlePart(const BufferInfo &bufferInfo, const QString &text);
+  void handlePing(const BufferInfo &bufferInfo, const QString &text);
+  void handleQuery(const BufferInfo &bufferInfo, const QString &text);
+  void handleQuit(const BufferInfo &bufferInfo, const QString &text);
+  void handleQuote(const BufferInfo &bufferInfo, const QString &text);
+  void handleSay(const BufferInfo &bufferInfo, const QString &text);
+  void handleTopic(const BufferInfo &bufferInfo, const QString &text);
+  void handleVoice(const BufferInfo &bufferInfo, const QString &text);
+  void handleWait(const BufferInfo &bufferInfo, const QString &text);
+  void handleWho(const BufferInfo &bufferInfo, const QString &text);
+  void handleWhois(const BufferInfo &bufferInfo, const QString &text);
+  void handleWhowas(const BufferInfo &bufferInfo, const QString &text);
 
+  void defaultHandler(QString cmd, const BufferInfo &bufferInfo, const QString &text);
+
+  void issueQuit(const QString &reason);
+
+protected:
+  void timerEvent(QTimerEvent *event);
+
+private:
+  void expand(const QString &alias, const BufferInfo &bufferInfo, const QString &msg);
+  void banOrUnban(const BufferInfo &bufferInfo, const QString &text, bool ban);
+  void putPrivmsg(const QByteArray &target, const QByteArray &message);
+  int lastParamOverrun(const QString &cmd, const QList<QByteArray> &params);
+
+  struct Command {
+    BufferInfo bufferInfo;
+    QString command;
+    Command(const BufferInfo &info, const QString &command) : bufferInfo(info), command(command) {}
+    Command() {}
+  };
+
+  QHash<int, Command> _delayedCommands;
 };