/***************************************************************************
-* 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 *
#ifndef ABSTRACTMESSAGEPROCESSOR_H_
#define ABSTRACTMESSAGEPROCESSOR_H_
+#include "client.h"
#include "message.h"
+#include "networkmodel.h"
class AbstractMessageProcessor : public QObject {
Q_OBJECT
- public:
- AbstractMessageProcessor(QObject *parent);
- virtual void reset() = 0;
+public:
+ AbstractMessageProcessor(QObject *parent);
+ virtual void reset() = 0;
- public slots:
- virtual void process(Message &msg) = 0;
- virtual void process(QList<Message> &msgs) = 0;
-
- signals:
-
- protected:
- void postProcess(Message &msg);
+public slots:
+ virtual void process(Message &msg) = 0;
+ virtual void process(QList<Message> &msgs) = 0;
+protected:
+ // updateBufferActivity also sets the Message::Redirected flag which is later used
+ // to determine where a message should be displayed. therefore it's crucial that it
+ // is called before inserting the message into the model
+ inline void preProcess(Message &msg) { Client::networkModel()->updateBufferActivity(msg); }
};
#endif