/***************************************************************************
- * Copyright (C) 2005-07 by The Quassel Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * (at your option) version 3. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#ifndef _BUFFER_H_
#define _BUFFER_H_
+#include <QDateTime>
+
class AbstractUiMsg;
+class IrcChannel;
+class NickModel;
struct BufferState;
#include "message.h"
#include "bufferinfo.h"
-#include <QVariantMap>
-
-//!\brief Encapsulates the contents of a single channel, query or server status context.
-/** A Buffer maintains a list of existing nicks and their status.
+/// Encapsulates the contents of a single channel, query or server status context.
+/**
*/
class Buffer : public QObject {
Q_OBJECT
public:
- Buffer(BufferInfo, QObject *parent = 0);
- ~Buffer();
-
- enum Type {
- ServerBuffer,
- ChannelBuffer,
- QueryBuffer
- };
-
enum Activity {
NoActivity = 0x00,
OtherActivity = 0x01,
};
Q_DECLARE_FLAGS(ActivityLevel, Activity)
- bool isStatusBuffer() const;
- Type bufferType() const;
- bool isActive() const;
+ Buffer(BufferInfo, QObject *parent = 0);
BufferInfo bufferInfo() const;
- void updateBufferInfo(BufferInfo bufferid);
-
- uint networkId() const;
-
- QString networkName() const;
- QString bufferName() const;
- QString displayName() const;
-
QList<AbstractUiMsg *> contents() const;
-
- QVariantMap nickList() const;
- QString topic() const;
- QString ownNick() const;
+ inline bool isVisible() const { return _isVisible; }
+ inline MsgId lastSeenMsg() const { return _lastSeenMsg; }
+ inline ActivityLevel activityLevel() const { return _activityLevel; }
signals:
- void userInput(const BufferInfo &, QString);
- void nickListChanged(QVariantMap nicks);
- void topicSet(QString topic);
- void ownNickSet(QString ownNick);
- void bufferUpdated(Buffer *);
- void bufferDestroyed(Buffer *);
-
void msgAppended(AbstractUiMsg *);
void msgPrepended(AbstractUiMsg *);
void layoutQueueEmpty();
public slots:
- void setActive(bool active = true);
void appendMsg(const Message &);
void prependMsg(const Message &);
bool layoutMsg();
-
- // no longer needed
-// void setTopic(QString);
-// //void setNicks(QStringList);
-// void addNick(QString nick, QVariantMap props);
-// void renameNick(QString oldnick, QString newnick);
-// void removeNick(QString nick);
-// void updateNick(QString nick, QVariantMap props);
-// void setOwnNick(QString nick);
-
- void processUserInput(QString);
+ void setVisible(bool visible);
+ void setLastSeenMsg(const MsgId &msgId);
+ void setActivityLevel(ActivityLevel level);
private:
BufferInfo _bufferInfo;
- bool _active;
- Type _type;
- BufferState *state;
+ bool _isVisible;
+ MsgId _lastSeenMsg;
+ ActivityLevel _activityLevel;
QList<Message> layoutQueue;
QList<AbstractUiMsg *> layoutedMsgs;
+ void updateActivityLevel(const Message &msg);
};
+
Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel)
#endif