diff options
Diffstat (limited to 'examples/multimedia/player/videowidget.cpp')
-rw-r--r-- | examples/multimedia/player/videowidget.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/multimedia/player/videowidget.cpp b/examples/multimedia/player/videowidget.cpp new file mode 100644 index 000000000..c09d90f37 --- /dev/null +++ b/examples/multimedia/player/videowidget.cpp @@ -0,0 +1,46 @@ +// Copyright (C) 2017 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "videowidget.h" + +#include <QKeyEvent> +#include <QMouseEvent> + +VideoWidget::VideoWidget(QWidget *parent) : QVideoWidget(parent) +{ + setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); + + QPalette p = palette(); + p.setColor(QPalette::Window, Qt::black); + setPalette(p); + +#ifndef Q_OS_ANDROID // QTBUG-95723 + setAttribute(Qt::WA_OpaquePaintEvent); +#endif +} + +void VideoWidget::keyPressEvent(QKeyEvent *event) +{ + if ((event->key() == Qt::Key_Escape || event->key() == Qt::Key_Back) && isFullScreen()) { + setFullScreen(false); + event->accept(); + } else if (event->key() == Qt::Key_Enter && event->modifiers() & Qt::Key_Alt) { + setFullScreen(!isFullScreen()); + event->accept(); + } else { + QVideoWidget::keyPressEvent(event); + } +} + +void VideoWidget::mouseDoubleClickEvent(QMouseEvent *event) +{ + setFullScreen(!isFullScreen()); + event->accept(); +} + +void VideoWidget::mousePressEvent(QMouseEvent *event) +{ + QVideoWidget::mousePressEvent(event); +} + +#include "moc_videowidget.cpp" |