From 3e11e30a32fe320156763bbdc78f4861727c8099 Mon Sep 17 00:00:00 2001 From: Aurindam Jana <aurindam.jana@nokia.com> Date: Mon, 27 Feb 2012 11:25:30 +0100 Subject: [PATCH] ScriptConsole: Scrolling behaviour Keep scrolling when new items are added only if the scrollbar is at the bottom. Change-Id: Id520585fed0ecc63be8bf1850b72af7df8a2d491 Reviewed-by: Kai Koehne <kai.koehne@nokia.com> --- src/plugins/debugger/qtmessagelogview.cpp | 8 ++++++++ src/plugins/debugger/qtmessagelogview.h | 3 +++ src/plugins/debugger/qtmessagelogwindow.cpp | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/qtmessagelogview.cpp b/src/plugins/debugger/qtmessagelogview.cpp index 0029235ea3d..718fc327cf1 100644 --- a/src/plugins/debugger/qtmessagelogview.cpp +++ b/src/plugins/debugger/qtmessagelogview.cpp @@ -47,6 +47,7 @@ #include <QAbstractProxyModel> #include <QFileInfo> #include <QUrl> +#include <QScrollBar> namespace Debugger { namespace Internal { @@ -115,6 +116,13 @@ QtMessageLogView::QtMessageLogView(QWidget *parent) : SLOT(onRowActivated(QModelIndex))); } +void QtMessageLogView::onScrollToBottom() +{ + //Keep scrolling to bottom if scroll bar is at maximum() + if (verticalScrollBar()->value() == verticalScrollBar()->maximum()) + scrollToBottom(); +} + void QtMessageLogView::mousePressEvent(QMouseEvent *event) { QPoint pos = event->pos(); diff --git a/src/plugins/debugger/qtmessagelogview.h b/src/plugins/debugger/qtmessagelogview.h index 103d6ff19df..9b0afc285d8 100644 --- a/src/plugins/debugger/qtmessagelogview.h +++ b/src/plugins/debugger/qtmessagelogview.h @@ -44,6 +44,9 @@ class QtMessageLogView : public QTreeView public: explicit QtMessageLogView(QWidget *parent = 0); +public slots: + void onScrollToBottom(); + protected: void mousePressEvent(QMouseEvent *event); void keyPressEvent(QKeyEvent *e); diff --git a/src/plugins/debugger/qtmessagelogwindow.cpp b/src/plugins/debugger/qtmessagelogwindow.cpp index e54ccae8ab2..58da0805114 100644 --- a/src/plugins/debugger/qtmessagelogwindow.cpp +++ b/src/plugins/debugger/qtmessagelogwindow.cpp @@ -159,7 +159,7 @@ QtMessageLogWindow::QtMessageLogWindow(QWidget *parent) connect(m_proxyModel, SIGNAL(scrollToBottom()), m_treeView, - SLOT(scrollToBottom())); + SLOT(onScrollToBottom())); m_itemDelegate = new QtMessageLogItemDelegate(this); connect(m_treeView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), -- GitLab