X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fbufferwidget.cpp;h=6fc0287dcd31acffdb2573ab1502500e42a86d75;hp=6bc304685269f8b0c77760e5bb6b35ca25e2f64d;hb=5cc01948319761863c121a74dc1e7b1c182beaa6;hpb=dcdc88676f6bf6c961c554e1ff0d160082ba0973 diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index 6bc30468..6fc0287d 100644 --- a/src/qtui/bufferwidget.cpp +++ b/src/qtui/bufferwidget.cpp @@ -31,6 +31,7 @@ #include #include +#include BufferWidget::BufferWidget(QWidget *parent) : AbstractBufferContainer(parent), @@ -147,11 +148,25 @@ bool BufferWidget::eventFilter(QObject *watched, QEvent *event) { return false; QKeyEvent *keyEvent = static_cast(event); + + int direction = 1; switch(keyEvent->key()) { case Qt::Key_PageUp: case Qt::Key_PageDown: // static cast to access public qobject::event return static_cast(ui.stackedWidget->currentWidget())->event(event); + + case Qt::Key_Up: + direction = -1; + case Qt::Key_Down: + if(keyEvent->modifiers() == Qt::ShiftModifier) { + QAbstractScrollArea *scrollArea = qobject_cast(ui.stackedWidget->currentWidget()); + if(!scrollArea) + return false; + int sliderPosition = scrollArea->verticalScrollBar()->value(); + scrollArea->verticalScrollBar()->setValue(sliderPosition + (direction * 12)); + return true; + } default: return false; }