const QString mimeType = m_item.mimetype();
const bool isAnimatedImage = m_preview->isAnimatedMimeType(mimeType);
m_isVideo = !isAnimatedImage && mimeType.startsWith(QLatin1String("video/"));
- bool usePhonon = m_isVideo || mimeType.startsWith(QLatin1String("audio/"));
+ bool useMedia = m_isVideo || mimeType.startsWith(QLatin1String("audio/"));
- if (usePhonon) {
+ if (useMedia) {
// change the cursor of the preview
m_preview->setCursor(Qt::PointingHandCursor);
m_preview->installEventFilter(m_mediaWidget);
m_mediaWidget->show();
// if the video is playing, has been paused or stopped
- // we don't need to update the preview/phonon widget states
+ // we don't need to update the preview/media widget states
// unless the previewed file has changed,
// or the setting previewshown has changed
if ((m_mediaWidget->state() != QMediaPlayer::PlayingState && m_mediaWidget->state() != QMediaPlayer::PausedState
if (isAnimatedImage) {
m_preview->setAnimatedImageFileName(itemUrl.toLocalFile());
}
- // When we don't need it, hide the phonon widget first to avoid flickering
+ // When we don't need it, hide the media widget first to avoid flickering
m_mediaWidget->hide();
m_preview->show();
m_preview->removeEventFilter(m_mediaWidget);
#include <QStyleOptionSlider>
#include <QToolButton>
#include <QVBoxLayout>
+#include <qnamespace.h>
+#include <qwidget.h>
class EmbeddedVideoPlayer : public QVideoWidget
{
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)
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()).
}
}