Make the style engine fix a little less obscure by copying the string explicitely...
[quassel.git] / src / qtui / chatwidget.h
index 69b4b61..e7d1782 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005/06 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005/06 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -23,7 +23,9 @@
 
 #include <QtGui>
 
-class ChatLine;
+#include "types.h"
+
+class ChatLineOld;
 class AbstractUiMsg;
 
 //!\brief Scroll area showing part of the chat messages for a given buffer.
@@ -43,8 +45,9 @@ class ChatWidget : public QAbstractScrollArea {
   public:
     ChatWidget(QWidget *parent = 0);
     ~ChatWidget();
-    void init(QString net, QString buf);
+    void init(BufferId id);
 
+    virtual QSize minimumSizeHint() const;
     virtual QSize sizeHint() const;
 
   public slots:
@@ -53,11 +56,11 @@ class ChatWidget : public QAbstractScrollArea {
     void prependMsg(AbstractUiMsg *);
     void appendMsg(AbstractUiMsg *);
 
-    void prependChatLine(ChatLine *);
-    void appendChatLine(ChatLine *);
-    void prependChatLines(QList<ChatLine *>);
-    void appendChatLines(QList<ChatLine *>);
-    void setContents(QList<ChatLine *>);
+    void prependChatLine(ChatLineOld *);
+    void appendChatLine(ChatLineOld *);
+    void prependChatLines(QList<ChatLineOld *>);
+    void appendChatLines(QList<ChatLineOld *>);
+    void setContents(QList<ChatLineOld *>);
 
   protected:
     virtual void resizeEvent(QResizeEvent *event);
@@ -73,9 +76,10 @@ class ChatWidget : public QAbstractScrollArea {
     void scrollBarValChanged(int);
     void ensureVisible(int line);
     void handleScrollTimer();
+    void viewportChanged(int newPos);
 
   private:
-    QString networkName, bufferName;
+    BufferId bufferId;
     enum SelectionMode { NoSelection, TextSelected, LinesSelected };
     enum MouseMode { Normal, Pressed, DragTsSep, DragTextSep, MarkText, MarkLines };
     enum MousePos { None, OverTsSep, OverTextSep, OverUrl };
@@ -92,7 +96,7 @@ class ChatWidget : public QAbstractScrollArea {
 
     int bottomLine, bottomLineOffset;
 
-    QList<ChatLine *> lines;
+    QList<ChatLineOld *> lines;
     QList<qreal> ycoords;
     QTimer *scrollTimer;
     QPoint pointerPosition;
@@ -117,6 +121,8 @@ class ChatWidget : public QAbstractScrollArea {
     QString selectionToString();
     void handleMouseMoveEvent(const QPoint &pos);
 
+    MsgId lastBacklogOffset;
+    int lastBacklogSize;
 };
 
 #endif