X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8216a67d58af0fd709bb3bfb8d0b6073b11cdfed..58c48052c38e5bb4f6cf8047dc71e40cfbf04403:/src/panels/information/mediawidget.cpp diff --git a/src/panels/information/mediawidget.cpp b/src/panels/information/mediawidget.cpp index 345cb0201..3ef046909 100644 --- a/src/panels/information/mediawidget.cpp +++ b/src/panels/information/mediawidget.cpp @@ -18,6 +18,8 @@ #include #include #include +#include +#include class EmbeddedVideoPlayer : public QVideoWidget { @@ -108,6 +110,32 @@ protected: QSlider::mousePressEvent(event); } } + + void keyPressEvent(QKeyEvent *event) override + { + int newPosition = -1; + if (event->key() == Qt::Key_Right) { + // slide right 1% + newPosition = std::min(maximum(), sliderPosition() + maximum() / 100); + } else if (event->key() == Qt::Key_Left) { + // slide left 1% + newPosition = std::max(0, sliderPosition() - maximum() / 100); + } + + if (newPosition != -1) { + event->accept(); + + if (newPosition != sliderPosition()) { + setSliderPosition(newPosition); + triggerAction(SliderMove); + setRepeatAction(SliderNoAction); + + Q_EMIT sliderMoved(newPosition); + } + } else { + QSlider::keyPressEvent(event); + } + } }; MediaWidget::MediaWidget(QWidget *parent) @@ -231,11 +259,6 @@ void MediaWidget::showEvent(QShowEvent *event) m_pauseButton->setAutoRaise(true); m_pauseButton->hide(); connect(m_pauseButton, &QToolButton::clicked, this, &MediaWidget::togglePlayback); - - // Creating an audio player or video player instance might take up to - // 2 seconds when doing it the first time. To prevent that the user - // interface gets noticeable blocked, the creation is delayed until - // the play button has been pressed (see PhononWidget::play()). } }