X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbuffer.h;h=8e9bf6c0d9ea47f7e2a698b76bdc4aae084a44b0;hp=944b07cc07c7882a71f96d347eba5739d928a486;hb=f53a40aa9d3e0f2c1f15191b665780595d52348a;hpb=130ccf5033c21ca3ad0e0357a82953b5727bd0e9 diff --git a/src/client/buffer.h b/src/client/buffer.h index 944b07cc..8e9bf6c0 100644 --- a/src/client/buffer.h +++ b/src/client/buffer.h @@ -21,32 +21,21 @@ #ifndef _BUFFER_H_ #define _BUFFER_H_ -#include -#include - -#include "chatwidget.h" #include "global.h" -#include "message.h" -class ChatWidget; -class ChatLine; -class ChatWidgetContents; -class BufferWidget; +class AbstractUiMsg; +class Message; struct BufferState; //!\brief Encapsulates the contents of a single channel, query or server status context. -/** A Buffer maintains a list of existing nicks and their status. New messages can be appended using - * displayMsg(). A buffer displays its contents by way of a BufferWidget, which can be shown - * (and created on demand) by calling showWidget(). +/** A Buffer maintains a list of existing nicks and their status. */ class Buffer : public QObject { Q_OBJECT public: - //Buffer(QString network, QString buffer); Buffer(BufferId); ~Buffer(); - static void init(); enum Type { ServerBuffer, ChannelBuffer, QueryBuffer }; @@ -57,39 +46,37 @@ class Buffer : public QObject { Highlight = 0x40 }; Q_DECLARE_FLAGS(ActivityLevel, Activity) - - Type bufferType() { return type; } - bool isActive() { return active; } - - QString networkName() { return _networkName; } - QString bufferName() { return _bufferName; } - QString displayName(); - BufferId bufferId() { return id; } - QList contents() { return lines; } - VarMap nickList() { return nicks; } - QString topic() { return _topic; } - QString ownNick() { return _ownNick; } - bool isStatusBuffer() { return bufferType() == ServerBuffer; } + + Type bufferType() const; + bool isActive() const; + + QString networkName() const; + QString bufferName() const; + QString displayName() const; + BufferId bufferId() const; + QList contents() const; + VarMap nickList() const; + QString topic() const; + QString ownNick() const; + bool isStatusBuffer() const; signals: - void userInput(BufferId, QString); - //void msgDisplayed(Message); - void chatLineAppended(ChatLine *); - void chatLinePrepended(ChatLine *); + void userInput(const BufferId &, QString); void nickListChanged(VarMap 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 displayMsg(Message); - //void prependMessages(QList); // for backlog - void appendChatLine(ChatLine *); - void prependChatLine(ChatLine *); - //void prependChatLines(QList); - //void recvStatusMsg(QString msg); + void appendMsg(const Message &); + void prependMsg(const Message &); + bool layoutMsg(); void setTopic(QString); //void setNicks(QStringList); void addNick(QString nick, VarMap props); @@ -111,10 +98,10 @@ class Buffer : public QObject { QString _networkName, _bufferName; BufferState *state; - //QList _contents; - QList lines; + QList layoutQueue; + QList layoutedMsgs; }; -Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel) +Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel) #endif