X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbuffer.h;h=8a20f5293e4b229ddeebaf10c0759604408418ca;hp=3cd6f6a7f6f2c1b10c30ecb06dabe995b08ff789;hb=df0846fca1b6a8427498a125b32f4da6d236a7fc;hpb=8699dd758516d0ded076811e8ea656adc95e69d0 diff --git a/src/client/buffer.h b/src/client/buffer.h index 3cd6f6a7..8a20f529 100644 --- a/src/client/buffer.h +++ b/src/client/buffer.h @@ -21,6 +21,8 @@ #ifndef _BUFFER_H_ #define _BUFFER_H_ +#include + class AbstractUiMsg; class IrcChannel; class NickModel; @@ -30,24 +32,13 @@ 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, @@ -56,74 +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); - - BufferId uid() const; - NetworkId networkId() const; - - QString networkName() const; - QString name() const; - - QList contents() const; - - QVariantMap nickList() const; - QString topic() const; - QString ownNick() const; - - //! Returns a pointer to the associated IrcChannel object for the buffer. - /** A buffer has an IrcChannel object only if it is a channel buffer - * (i.e. bufferType() == ChannelType), and if it is active at the moment. - * \returns A pointer to the associated IrcChannel object, if the buffer is a channel and online; 0 else. - */ - IrcChannel *ircChannel() const; - NickModel *nickModel() 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(); - void setIrcChannel(IrcChannel *chan = 0); - - // 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; - QPointer _ircChannel; - QPointer _nickModel; + bool _isVisible; + MsgId _lastSeenMsg; + ActivityLevel _activityLevel; - QList layoutQueue; + QLinkedList layoutQueue; QList layoutedMsgs; }; + Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel) #endif