X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatwidget.h;h=4c01ff1f9e78c74c48c947942a972676eaa8e986;hp=305af68964db0e826851d79df089847358d6c3dd;hb=29821b25b3e605b0b6dc0f06d652777ca02195e2;hpb=e7696b65e76e50137b8bab0ec3e43ce66a94f190;ds=sidebyside diff --git a/src/qtui/chatwidget.h b/src/qtui/chatwidget.h index 305af689..4c01ff1f 100644 --- a/src/qtui/chatwidget.h +++ b/src/qtui/chatwidget.h @@ -23,9 +23,10 @@ #include +#include "abstractbuffercontainer.h" #include "types.h" -class ChatLine; +class ChatLineOld; class AbstractUiMsg; //!\brief Scroll area showing part of the chat messages for a given buffer. @@ -39,16 +40,16 @@ class AbstractUiMsg; * Because we use this as a custom widget in Qt Designer, we cannot use a constructor that takes custom * parameters. Instead, it is mandatory to call init() before using this widget. */ -class ChatWidget : public QAbstractScrollArea { +class ChatWidget : public QAbstractScrollArea, public AbstractChatView { Q_OBJECT public: - ChatWidget(QWidget *parent = 0); + ChatWidget(BufferId, QWidget *parent = 0); ~ChatWidget(); void init(BufferId id); virtual QSize minimumSizeHint() const; - // virtual QSize sizeHint() const; + virtual QSize sizeHint() const; public slots: void clear(); @@ -56,11 +57,11 @@ class ChatWidget : public QAbstractScrollArea { void prependMsg(AbstractUiMsg *); void appendMsg(AbstractUiMsg *); - void prependChatLine(ChatLine *); - void appendChatLine(ChatLine *); - void prependChatLines(QList); - void appendChatLines(QList); - void setContents(QList); + void prependChatLine(ChatLineOld *); + void appendChatLine(ChatLineOld *); + void prependChatLines(QList); + void appendChatLines(QList); + void setContents(const QList &); protected: virtual void resizeEvent(QResizeEvent *event); @@ -76,6 +77,7 @@ class ChatWidget : public QAbstractScrollArea { void scrollBarValChanged(int); void ensureVisible(int line); void handleScrollTimer(); + void viewportChanged(int newPos); private: BufferId bufferId; @@ -95,7 +97,7 @@ class ChatWidget : public QAbstractScrollArea { int bottomLine, bottomLineOffset; - QList lines; + QList lines; QList ycoords; QTimer *scrollTimer; QPoint pointerPosition; @@ -120,6 +122,8 @@ class ChatWidget : public QAbstractScrollArea { QString selectionToString(); void handleMouseMoveEvent(const QPoint &pos); + MsgId lastBacklogOffset; + int lastBacklogSize; }; #endif