X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fbufferwidget.cpp;h=bfda813323a763644a6dbb95d05383a41e830429;hp=6bc304685269f8b0c77760e5bb6b35ca25e2f64d;hb=96ba1da0cfa2a22be6fe8cea8d32a7212dcfa86a;hpb=5a94027ffed6c97b839a6104e2d572a876a995d8 diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index 6bc30468..bfda8133 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,24 @@ 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)); + } default: return false; }