X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbuffer.h;h=8a20f5293e4b229ddeebaf10c0759604408418ca;hp=b67a0f4a0520375249df268dea07bbacc1032319;hb=df0846fca1b6a8427498a125b32f4da6d236a7fc;hpb=748f25bbae0e0ca8df58ec69df8d19c84ae77252 diff --git a/src/client/buffer.h b/src/client/buffer.h index b67a0f4a..8a20f529 100644 --- a/src/client/buffer.h +++ b/src/client/buffer.h @@ -1,11 +1,11 @@ /*************************************************************************** - * 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 * @@ -21,31 +21,24 @@ #ifndef _BUFFER_H_ #define _BUFFER_H_ +#include + class AbstractUiMsg; +class IrcChannel; +class NickModel; struct BufferState; #include "message.h" #include "bufferinfo.h" -#include - -//!\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); - virtual ~Buffer(); - - enum Type { - StatusType, - ChannelType, - QueryType - }; - enum Activity { NoActivity = 0x00, OtherActivity = 0x01, @@ -54,63 +47,39 @@ public: }; 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 contents() const; - - QVariantMap nickList() const; - QString topic() const; - QString ownNick() const; + const QList &contents() 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 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); + void updateActivityLevel(const Message &msg); private: BufferInfo _bufferInfo; - bool _active; - Type _type; - BufferState *state; + bool _isVisible; + MsgId _lastSeenMsg; + ActivityLevel _activityLevel; - QList layoutQueue; + QLinkedList layoutQueue; QList layoutedMsgs; }; + Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel) #endif