X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatview.cpp;h=866ad4e6e7b5bcca0705d6371198299aa62e491c;hp=eac76a201264be7adf0d446c48393ede359aa281;hb=f2fec057b3fa59cdf918fc6598ce208d4f8e8555;hpb=68cd9a2621c71005cda0ed4fb796bbf5fcbe007e diff --git a/src/qtui/chatview.cpp b/src/qtui/chatview.cpp index eac76a20..866ad4e6 100644 --- a/src/qtui/chatview.cpp +++ b/src/qtui/chatview.cpp @@ -54,7 +54,7 @@ ChatView::ChatView(MessageFilter *filter, QWidget *parent) void ChatView::init(MessageFilter *filter) { setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setAlignment(Qt::AlignBottom); + setAlignment(Qt::AlignBottom|Qt::AlignLeft); setInteractive(true); //setOptimizationFlags(QGraphicsView::DontClipPainter | QGraphicsView::DontAdjustForAntialiasing); // setOptimizationFlags(QGraphicsView::DontAdjustForAntialiasing); @@ -66,6 +66,10 @@ void ChatView::init(MessageFilter *filter) { _scrollTimer.setSingleShot(true); connect(&_scrollTimer, SIGNAL(timeout()), SLOT(scrollTimerTimeout())); + _resizeTimer.setInterval(100); + _resizeTimer.setSingleShot(true); + connect(&_resizeTimer, SIGNAL(timeout()), SLOT(resizeTimerTimeout())); + _scene = new ChatScene(filter, filter->idString(), viewport()->width() - 4, this); // see below: resizeEvent() connect(_scene, SIGNAL(sceneRectChanged(const QRectF &)), this, SLOT(sceneRectChanged(const QRectF &))); connect(_scene, SIGNAL(lastLineChanged(QGraphicsItem *, qreal)), this, SLOT(lastLineChanged(QGraphicsItem *, qreal))); @@ -105,6 +109,10 @@ bool ChatView::event(QEvent *event) { void ChatView::resizeEvent(QResizeEvent *event) { QGraphicsView::resizeEvent(event); + _resizeTimer.start(); +} + +void ChatView::resizeTimerTimeout() { // we can reduce viewport updates if we scroll to the bottom allready at the beginning verticalScrollBar()->setValue(verticalScrollBar()->maximum()); @@ -174,6 +182,8 @@ void ChatView::verticalScrollbarChanged(int newPos) { void ChatView::styleChanged() { invalidateScene(); + if(scene()) + scene()->update(); } MsgId ChatView::lastMsgId() const {