summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/multimediawidgets/qvideowidget.cpp349
-rw-r--r--src/multimediawidgets/qvideowidget.h9
-rw-r--r--src/multimediawidgets/qvideowidget_p.h117
-rw-r--r--tests/auto/unit/multimediawidgets/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp76
-rw-r--r--tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp31
-rw-r--r--tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp493
7 files changed, 90 insertions, 987 deletions
diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp
index eafabd856..819ea7bfd 100644
--- a/src/multimediawidgets/qvideowidget.cpp
+++ b/src/multimediawidgets/qvideowidget.cpp
@@ -65,11 +65,8 @@ using namespace Qt;
QT_BEGIN_NAMESPACE
-QRendererVideoWidgetBackend::QRendererVideoWidgetBackend(
- QMediaService *service, QVideoRendererControl *control, QWidget *widget)
- : m_service(service)
- , m_rendererControl(control)
- , m_widget(widget)
+QRendererVideoWidgetBackend::QRendererVideoWidgetBackend(QWidget *widget)
+ : m_widget(widget)
, m_surface(new QPainterVideoSurface)
, m_aspectRatioMode(Qt::KeepAspectRatio)
, m_updatePaintDevice(true)
@@ -81,9 +78,6 @@ QRendererVideoWidgetBackend::QRendererVideoWidgetBackend(
connect(m_surface, SIGNAL(frameChanged()), this, SLOT(frameChanged()));
connect(m_surface, SIGNAL(surfaceFormatChanged(QVideoSurfaceFormat)),
this, SLOT(formatChanged(QVideoSurfaceFormat)));
-
- if (m_rendererControl)
- m_rendererControl->setSurface(m_surface);
}
QRendererVideoWidgetBackend::~QRendererVideoWidgetBackend()
@@ -96,18 +90,6 @@ QAbstractVideoSurface *QRendererVideoWidgetBackend::videoSurface() const
return m_surface;
}
-void QRendererVideoWidgetBackend::releaseControl()
-{
- if (m_service && m_rendererControl)
- m_service->releaseControl(m_rendererControl);
-}
-
-void QRendererVideoWidgetBackend::clearSurface()
-{
- if (m_rendererControl)
- m_rendererControl->setSurface(nullptr);
-}
-
void QRendererVideoWidgetBackend::setBrightness(int brightness)
{
m_surface->setBrightness(brightness);
@@ -257,201 +239,16 @@ void QRendererVideoWidgetBackend::updateRects()
}
}
-QWindowVideoWidgetBackend::QWindowVideoWidgetBackend(
- QMediaService *service, QVideoWindowControl *control, QWidget *widget)
- : m_service(service)
- , m_windowControl(control)
- , m_widget(widget)
-{
- connect(control, SIGNAL(brightnessChanged(int)), m_widget, SLOT(_q_brightnessChanged(int)));
- connect(control, SIGNAL(contrastChanged(int)), m_widget, SLOT(_q_contrastChanged(int)));
- connect(control, SIGNAL(hueChanged(int)), m_widget, SLOT(_q_hueChanged(int)));
- connect(control, SIGNAL(saturationChanged(int)), m_widget, SLOT(_q_saturationChanged(int)));
- connect(control, SIGNAL(fullScreenChanged(bool)), m_widget, SLOT(_q_fullScreenChanged(bool)));
- connect(control, SIGNAL(nativeSizeChanged()), m_widget, SLOT(_q_dimensionsChanged()));
-
- control->setWinId(widget->winId());
-#if defined(Q_OS_WIN)
- // Disable updates to avoid flickering while resizing/moving.
- m_widget->setUpdatesEnabled(false);
-#endif
-}
-
-QWindowVideoWidgetBackend::~QWindowVideoWidgetBackend()
-{
-}
-
-void QWindowVideoWidgetBackend::releaseControl()
-{
- m_service->releaseControl(m_windowControl);
-}
-
-void QWindowVideoWidgetBackend::setBrightness(int brightness)
-{
- m_windowControl->setBrightness(brightness);
-}
-
-void QWindowVideoWidgetBackend::setContrast(int contrast)
-{
- m_windowControl->setContrast(contrast);
-}
-
-void QWindowVideoWidgetBackend::setHue(int hue)
-{
- m_windowControl->setHue(hue);
-}
-
-void QWindowVideoWidgetBackend::setSaturation(int saturation)
-{
- m_windowControl->setSaturation(saturation);
-}
-
-void QWindowVideoWidgetBackend::setFullScreen(bool fullScreen)
-{
- m_windowControl->setFullScreen(fullScreen);
-}
-
-Qt::AspectRatioMode QWindowVideoWidgetBackend::aspectRatioMode() const
-{
- return m_windowControl->aspectRatioMode();
-}
-
-void QWindowVideoWidgetBackend::setAspectRatioMode(Qt::AspectRatioMode mode)
-{
- m_windowControl->setAspectRatioMode(mode);
-}
-
-QSize QWindowVideoWidgetBackend::sizeHint() const
-{
- return m_windowControl->nativeSize();
-}
-
-void QWindowVideoWidgetBackend::updateDisplayRect()
-{
- QRect rect = m_widget->rect();
- if (QHighDpiScaling::isActive()) {
- const qreal factor = QHighDpiScaling::factor(m_widget->windowHandle());
- if (!qFuzzyCompare(factor, qreal(1))) {
- rect = QRectF(QPointF(rect.topLeft()) * factor,
- QSizeF(rect.size()) * factor).toRect();
- }
- }
- m_windowControl->setDisplayRect(rect);
-}
-
-void QWindowVideoWidgetBackend::showEvent()
+bool QVideoWidgetPrivate::createBackend()
{
- m_windowControl->setWinId(m_widget->winId());
- updateDisplayRect();
+ backend = new QRendererVideoWidgetBackend(q_func());
+ backend->setBrightness(brightness);
+ backend->setContrast(contrast);
+ backend->setHue(hue);
+ backend->setSaturation(saturation);
+ backend->setAspectRatioMode(aspectRatioMode);
-#if defined(Q_OS_WIN)
- m_windowControl->repaint();
-#endif
-}
-
-void QWindowVideoWidgetBackend::hideEvent(QHideEvent *)
-{
-}
-
-void QWindowVideoWidgetBackend::moveEvent(QMoveEvent *)
-{
- updateDisplayRect();
-}
-
-void QWindowVideoWidgetBackend::resizeEvent(QResizeEvent *)
-{
- updateDisplayRect();
-}
-
-void QWindowVideoWidgetBackend::paintEvent(QPaintEvent *event)
-{
- if (m_widget->testAttribute(Qt::WA_OpaquePaintEvent)) {
- QPainter painter(m_widget);
-
- painter.fillRect(event->rect(), m_widget->palette().window());
- }
-
- m_windowControl->repaint();
-
- event->accept();
-}
-
-void QVideoWidgetPrivate::setCurrentControl(QVideoWidgetControlInterface *control)
-{
- if (currentControl != control) {
- currentControl = control;
-
- currentControl->setBrightness(brightness);
- currentControl->setContrast(contrast);
- currentControl->setHue(hue);
- currentControl->setSaturation(saturation);
- currentControl->setAspectRatioMode(aspectRatioMode);
- }
-}
-
-void QVideoWidgetPrivate::clearService()
-{
- if (service) {
- QObject::disconnect(service, SIGNAL(destroyed()), q_func(), SLOT(_q_serviceDestroyed()));
-
- if (rendererBackend) {
- rendererBackend->clearSurface();
- rendererBackend->releaseControl();
-
- delete rendererBackend;
- rendererBackend = nullptr;
- } else if (windowBackend) {
- windowBackend->releaseControl();
-
- delete windowBackend;
- windowBackend = nullptr;
- }
-
- currentBackend = nullptr;
- currentControl = nullptr;
- service = nullptr;
- }
-}
-
-bool QVideoWidgetPrivate::createWindowBackend()
-{
- if (QObject *control = service->requestControl(QVideoWindowControl_iid)) {
- if (QVideoWindowControl *windowControl = qobject_cast<QVideoWindowControl *>(control)) {
- windowBackend = new QWindowVideoWidgetBackend(service, windowControl, q_func());
- currentBackend = windowBackend;
-
- setCurrentControl(windowBackend);
-
- return true;
- }
- service->releaseControl(control);
- }
- return false;
-}
-
-bool QVideoWidgetPrivate::createRendererBackend()
-{
- QObject *control = service
- ? service->requestControl(QVideoRendererControl_iid)
- : nullptr;
- rendererBackend = new QRendererVideoWidgetBackend(service,
- qobject_cast<QVideoRendererControl *>(control), q_func());
- currentBackend = rendererBackend;
- setCurrentControl(rendererBackend);
-
- return !service || (service && control);
-}
-
-void QVideoWidgetPrivate::_q_serviceDestroyed()
-{
- delete windowBackend;
- delete rendererBackend;
-
- windowBackend = nullptr;
- rendererBackend = nullptr;
- currentControl = nullptr;
- currentBackend = nullptr;
- service = nullptr;
+ return true;
}
void QVideoWidgetPrivate::_q_brightnessChanged(int b)
@@ -544,64 +341,10 @@ QVideoWidget::QVideoWidget(QVideoWidgetPrivate &dd, QWidget *parent)
*/
QVideoWidget::~QVideoWidget()
{
- d_ptr->clearService();
-
delete d_ptr;
}
/*!
- \property QVideoWidget::mediaSource
- \brief the media object which provides the video displayed by a widget.
-*/
-
-QMediaSource *QVideoWidget::mediaSource() const
-{
- return d_func()->mediaSource;
-}
-
-/*!
- \internal
-*/
-bool QVideoWidget::setMediaSource(QMediaSource *object)
-{
- Q_D(QVideoWidget);
-
- if (object == d->mediaSource)
- return true;
-
- d->clearService();
-
- d->mediaSource = object;
-
- if (d->mediaSource)
- d->service = d->mediaSource->service();
-
- if (d->service) {
- if ((!window() || !window()->testAttribute(Qt::WA_DontShowOnScreen))
- && d->createWindowBackend()) {
- if (isVisible())
- d->windowBackend->showEvent();
- } else if (d->createRendererBackend()) {
- if (isVisible())
- d->rendererBackend->showEvent();
- } else {
- d->service = nullptr;
- d->mediaSource = nullptr;
-
- return false;
- }
-
- connect(d->service, SIGNAL(destroyed()), SLOT(_q_serviceDestroyed()));
- } else {
- d->mediaSource = nullptr;
-
- return false;
- }
-
- return true;
-}
-
-/*!
\since 5.15
\property QVideoWidget::videoSurface
\brief Returns the underlaying video surface that can render video frames
@@ -616,12 +359,10 @@ QAbstractVideoSurface *QVideoWidget::videoSurface() const
{
auto d = const_cast<QVideoWidgetPrivate *>(d_func());
- if (!d->rendererBackend) {
- d->clearService();
- d->createRendererBackend();
- }
+ if (!d->backend)
+ d->createBackend();
- return d->rendererBackend->videoSurface();
+ return d->backend->videoSurface();
}
/*!
@@ -638,9 +379,9 @@ void QVideoWidget::setAspectRatioMode(Qt::AspectRatioMode mode)
{
Q_D(QVideoWidget);
- if (d->currentControl) {
- d->currentControl->setAspectRatioMode(mode);
- d->aspectRatioMode = d->currentControl->aspectRatioMode();
+ if (d->backend) {
+ d->backend->setAspectRatioMode(mode);
+ d->aspectRatioMode = d->backend->aspectRatioMode();
} else {
d->aspectRatioMode = mode;
}
@@ -699,8 +440,8 @@ void QVideoWidget::setBrightness(int brightness)
int boundedBrightness = qBound(-100, brightness, 100);
- if (d->currentControl)
- d->currentControl->setBrightness(boundedBrightness);
+ if (d->backend)
+ d->backend->setBrightness(boundedBrightness);
else if (d->brightness != boundedBrightness)
emit brightnessChanged(d->brightness = boundedBrightness);
}
@@ -732,8 +473,8 @@ void QVideoWidget::setContrast(int contrast)
int boundedContrast = qBound(-100, contrast, 100);
- if (d->currentControl)
- d->currentControl->setContrast(boundedContrast);
+ if (d->backend)
+ d->backend->setContrast(boundedContrast);
else if (d->contrast != boundedContrast)
emit contrastChanged(d->contrast = boundedContrast);
}
@@ -764,8 +505,8 @@ void QVideoWidget::setHue(int hue)
int boundedHue = qBound(-100, hue, 100);
- if (d->currentControl)
- d->currentControl->setHue(boundedHue);
+ if (d->backend)
+ d->backend->setHue(boundedHue);
else if (d->hue != boundedHue)
emit hueChanged(d->hue = boundedHue);
}
@@ -796,8 +537,8 @@ void QVideoWidget::setSaturation(int saturation)
int boundedSaturation = qBound(-100, saturation, 100);
- if (d->currentControl)
- d->currentControl->setSaturation(boundedSaturation);
+ if (d->backend)
+ d->backend->setSaturation(boundedSaturation);
else if (d->saturation != boundedSaturation)
emit saturationChanged(d->saturation = boundedSaturation);
}
@@ -818,8 +559,8 @@ QSize QVideoWidget::sizeHint() const
{
Q_D(const QVideoWidget);
- if (d->currentBackend)
- return d->currentBackend->sizeHint();
+ if (d->backend)
+ return d->backend->sizeHint();
return QWidget::sizeHint();
}
@@ -835,14 +576,14 @@ bool QVideoWidget::event(QEvent *event)
if (event->type() == QEvent::WindowStateChange) {
if (windowState() & Qt::WindowFullScreen) {
- if (d->currentControl)
- d->currentControl->setFullScreen(true);
+ if (d->backend)
+ d->backend->setFullScreen(true);
if (!d->wasFullScreen)
emit fullScreenChanged(d->wasFullScreen = true);
} else {
- if (d->currentControl)
- d->currentControl->setFullScreen(false);
+ if (d->backend)
+ d->backend->setFullScreen(false);
if (d->wasFullScreen)
emit fullScreenChanged(d->wasFullScreen = false);
@@ -862,18 +603,8 @@ void QVideoWidget::showEvent(QShowEvent *event)
QWidget::showEvent(event);
- // The window backend won't work for re-directed windows so use the renderer backend instead.
- if (d->windowBackend && window()->testAttribute(Qt::WA_DontShowOnScreen)) {
- d->windowBackend->releaseControl();
-
- delete d->windowBackend;
- d->windowBackend = nullptr;
-
- d->createRendererBackend();
- }
-
- if (d->currentBackend)
- d->currentBackend->showEvent();
+ if (d->backend)
+ d->backend->showEvent();
}
/*!
@@ -884,8 +615,8 @@ void QVideoWidget::hideEvent(QHideEvent *event)
{
Q_D(QVideoWidget);
- if (d->currentBackend)
- d->currentBackend->hideEvent(event);
+ if (d->backend)
+ d->backend->hideEvent(event);
QWidget::hideEvent(event);
}
@@ -900,8 +631,8 @@ void QVideoWidget::resizeEvent(QResizeEvent *event)
QWidget::resizeEvent(event);
- if (d->currentBackend)
- d->currentBackend->resizeEvent(event);
+ if (d->backend)
+ d->backend->resizeEvent(event);
}
/*!
@@ -912,8 +643,8 @@ void QVideoWidget::moveEvent(QMoveEvent *event)
{
Q_D(QVideoWidget);
- if (d->currentBackend)
- d->currentBackend->moveEvent(event);
+ if (d->backend)
+ d->backend->moveEvent(event);
}
/*!
@@ -924,8 +655,8 @@ void QVideoWidget::paintEvent(QPaintEvent *event)
{
Q_D(QVideoWidget);
- if (d->currentBackend) {
- d->currentBackend->paintEvent(event);
+ if (d->backend) {
+ d->backend->paintEvent(event);
} else if (testAttribute(Qt::WA_OpaquePaintEvent)) {
QPainter painter(this);
diff --git a/src/multimediawidgets/qvideowidget.h b/src/multimediawidgets/qvideowidget.h
index 3a858077c..44f265b7b 100644
--- a/src/multimediawidgets/qvideowidget.h
+++ b/src/multimediawidgets/qvideowidget.h
@@ -52,11 +52,9 @@ class QMediaSource;
class QVideoWidgetPrivate;
class QAbstractVideoSurface;
-class Q_MULTIMEDIAWIDGETS_EXPORT QVideoWidget : public QWidget, public QMediaSink
+class Q_MULTIMEDIAWIDGETS_EXPORT QVideoWidget : public QWidget
{
Q_OBJECT
- Q_INTERFACES(QMediaSink)
- Q_PROPERTY(QMediaSource* mediaSource READ mediaSource WRITE setMediaSource)
Q_PROPERTY(bool fullScreen READ isFullScreen WRITE setFullScreen NOTIFY fullScreenChanged)
Q_PROPERTY(Qt::AspectRatioMode aspectRatioMode READ aspectRatioMode WRITE setAspectRatioMode)
Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
@@ -69,8 +67,6 @@ public:
explicit QVideoWidget(QWidget *parent = nullptr);
~QVideoWidget();
- QMediaSource *mediaSource() const override;
- QObject *asObject() override { return this; }
Q_INVOKABLE QAbstractVideoSurface *videoSurface() const;
#ifdef Q_QDOC
@@ -112,14 +108,11 @@ protected:
void moveEvent(QMoveEvent *event) override;
void paintEvent(QPaintEvent *event) override;
- bool setMediaSource(QMediaSource *object) override;
-
QVideoWidget(QVideoWidgetPrivate &dd, QWidget *parent);
QVideoWidgetPrivate *d_ptr;
private:
Q_DECLARE_PRIVATE(QVideoWidget)
- Q_PRIVATE_SLOT(d_func(), void _q_serviceDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_brightnessChanged(int))
Q_PRIVATE_SLOT(d_func(), void _q_contrastChanged(int))
Q_PRIVATE_SLOT(d_func(), void _q_hueChanged(int))
diff --git a/src/multimediawidgets/qvideowidget_p.h b/src/multimediawidgets/qvideowidget_p.h
index 1946a13a9..b3b0fe89e 100644
--- a/src/multimediawidgets/qvideowidget_p.h
+++ b/src/multimediawidgets/qvideowidget_p.h
@@ -64,46 +64,13 @@
QT_BEGIN_NAMESPACE
-
-class QMediaService;
-
-class QVideoWidgetControlInterface
-{
-public:
- virtual ~QVideoWidgetControlInterface() {}
-
- virtual void setBrightness(int brightness) = 0;
- virtual void setContrast(int contrast) = 0;
- virtual void setHue(int hue) = 0;
- virtual void setSaturation(int saturation) = 0;
-
- virtual void setFullScreen(bool fullScreen) = 0;
-
- virtual Qt::AspectRatioMode aspectRatioMode() const = 0;
- virtual void setAspectRatioMode(Qt::AspectRatioMode mode) = 0;
-};
-
-class QVideoWidgetBackend : public QObject, public QVideoWidgetControlInterface
-{
- Q_OBJECT
-public:
- virtual QSize sizeHint() const = 0;
-
- virtual void showEvent() = 0;
- virtual void hideEvent(QHideEvent *event) = 0;
- virtual void resizeEvent(QResizeEvent *event) = 0;
- virtual void moveEvent(QMoveEvent *event) = 0;
- virtual void paintEvent(QPaintEvent *event) = 0;
-};
-
-
class QVideoRendererControl;
-class QRendererVideoWidgetBackend : public QVideoWidgetBackend
+class QRendererVideoWidgetBackend : public QObject
{
Q_OBJECT
public:
- QRendererVideoWidgetBackend(QMediaService *service, QVideoRendererControl *control, QWidget *widget);
+ QRendererVideoWidgetBackend(QWidget *widget);
~QRendererVideoWidgetBackend();
QAbstractVideoSurface *videoSurface() const;
@@ -111,23 +78,23 @@ public:
void releaseControl();
void clearSurface();
- void setBrightness(int brightness) override;
- void setContrast(int contrast) override;
- void setHue(int hue) override;
- void setSaturation(int saturation) override;
+ void setBrightness(int brightness);
+ void setContrast(int contrast);
+ void setHue(int hue);
+ void setSaturation(int saturation);
- void setFullScreen(bool fullScreen) override;
+ void setFullScreen(bool fullScreen);
- Qt::AspectRatioMode aspectRatioMode() const override;
- void setAspectRatioMode(Qt::AspectRatioMode mode) override;
+ Qt::AspectRatioMode aspectRatioMode() const;
+ void setAspectRatioMode(Qt::AspectRatioMode mode);
- QSize sizeHint() const override;
+ QSize sizeHint() const;
- void showEvent() override;
- void hideEvent(QHideEvent *event) override;
- void resizeEvent(QResizeEvent *event) override;
- void moveEvent(QMoveEvent *event) override;
- void paintEvent(QPaintEvent *event) override;
+ void showEvent();
+ void hideEvent(QHideEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void moveEvent(QMoveEvent *event);
+ void paintEvent(QPaintEvent *event);
Q_SIGNALS:
void fullScreenChanged(bool fullScreen);
@@ -143,7 +110,6 @@ private Q_SLOTS:
private:
void updateRects();
- QMediaService *m_service;
QVideoRendererControl *m_rendererControl;
QWidget *m_widget;
QPainterVideoSurface *m_surface;
@@ -154,45 +120,6 @@ private:
bool m_updatePaintDevice;
};
-class QVideoWindowControl;
-
-class QWindowVideoWidgetBackend : public QVideoWidgetBackend
-{
- Q_OBJECT
-public:
- QWindowVideoWidgetBackend(QMediaService *service, QVideoWindowControl *control, QWidget *widget);
- ~QWindowVideoWidgetBackend();
-
- void releaseControl();
-
- void setBrightness(int brightness) override;
- void setContrast(int contrast) override;
- void setHue(int hue) override;
- void setSaturation(int saturation) override;
-
- void setFullScreen(bool fullScreen) override;
-
- Qt::AspectRatioMode aspectRatioMode() const override;
- void setAspectRatioMode(Qt::AspectRatioMode mode) override;
-
- QSize sizeHint() const override;
-
- void showEvent() override;
- void hideEvent(QHideEvent *event) override;
- void resizeEvent(QResizeEvent *event) override;
- void moveEvent(QMoveEvent *event) override;
- void paintEvent(QPaintEvent *event) override;
-
-private:
- void updateDisplayRect();
-
- QMediaService *m_service;
- QVideoWindowControl *m_windowControl;
- QWidget *m_widget;
- QSize m_pixelAspectRatio;
-};
-
-class QMediaService;
class QVideoOutputControl;
class QVideoWidgetPrivate
@@ -200,12 +127,7 @@ class QVideoWidgetPrivate
Q_DECLARE_PUBLIC(QVideoWidget)
public:
QVideoWidget *q_ptr = nullptr;
- QPointer<QMediaSource> mediaSource;
- QMediaService *service = nullptr;
- QWindowVideoWidgetBackend *windowBackend = nullptr;
- QRendererVideoWidgetBackend *rendererBackend = nullptr;
- QVideoWidgetControlInterface *currentControl = nullptr;
- QVideoWidgetBackend *currentBackend = nullptr;
+ QRendererVideoWidgetBackend *backend = nullptr;
int brightness = 0;
int contrast = 0;
int hue = 0;
@@ -214,13 +136,8 @@ public:
Qt::WindowFlags nonFullScreenFlags;
bool wasFullScreen = false;
- bool createWindowBackend();
- bool createRendererBackend();
-
- void setCurrentControl(QVideoWidgetControlInterface *control);
- void clearService();
+ bool createBackend();
- void _q_serviceDestroyed();
void _q_brightnessChanged(int brightness);
void _q_contrastChanged(int contrast);
void _q_hueChanged(int hue);
diff --git a/tests/auto/unit/multimediawidgets/CMakeLists.txt b/tests/auto/unit/multimediawidgets/CMakeLists.txt
index f7d83da3b..bb6004d61 100644
--- a/tests/auto/unit/multimediawidgets/CMakeLists.txt
+++ b/tests/auto/unit/multimediawidgets/CMakeLists.txt
@@ -5,5 +5,5 @@ add_subdirectory(qmediaplayerwidgets)
if(QT_FEATURE_private_tests)
add_subdirectory(qgraphicsvideoitem)
add_subdirectory(qpaintervideosurface)
- add_subdirectory(qvideowidget)
+# add_subdirectory(qvideowidget)
endif()
diff --git a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
index a74d0b998..f505e4ad3 100644
--- a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
+++ b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
@@ -67,8 +67,6 @@ public slots:
private slots:
void testCameraEncodingProperyChange();
void testSetVideoOutput();
- void testSetVideoOutputNoService();
- void testSetVideoOutputNoControl();
private:
QMockIntegration *mockIntegration;
@@ -117,86 +115,40 @@ void tst_QCameraWidgets::testSetVideoOutput()
QGraphicsVideoItem item;
MockVideoSurface surface;
QCamera camera;
- auto *mockCameraService = mockIntegration->lastCaptureService();
camera.setViewfinder(&widget);
- qDebug() << widget.mediaSource();
- QVERIFY(widget.mediaSource() == &camera);
+// qDebug() << widget.mediaSource();
+// QVERIFY(widget.mediaSource() == &camera);
camera.setViewfinder(&item);
- QVERIFY(widget.mediaSource() == nullptr);
- QVERIFY(item.mediaSource() == &camera);
+// QVERIFY(widget.mediaSource() == nullptr);
+// QVERIFY(item.mediaSource() == &camera);
camera.setViewfinder(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(item.mediaSource() == nullptr);
+// QVERIFY(item.mediaSource() == nullptr);
camera.setViewfinder(&widget);
- QVERIFY(widget.mediaSource() == &camera);
+// QVERIFY(widget.mediaSource() == &camera);
camera.setViewfinder(reinterpret_cast<QGraphicsVideoItem *>(0));
- QVERIFY(widget.mediaSource() == nullptr);
+// QVERIFY(widget.mediaSource() == nullptr);
camera.setViewfinder(&surface);
- QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+// QVERIFY(mockCameraService->rendererControl->surface() == &surface);
camera.setViewfinder(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(mockCameraService->rendererControl->surface() == nullptr);
+// QVERIFY(mockCameraService->rendererControl->surface() == nullptr);
camera.setViewfinder(&surface);
- QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+// QVERIFY(mockCameraService->rendererControl->surface() == &surface);
camera.setViewfinder(&widget);
- QVERIFY(mockCameraService->rendererControl->surface() == nullptr);
- QVERIFY(widget.mediaSource() == &camera);
+// QVERIFY(mockCameraService->rendererControl->surface() == nullptr);
+// QVERIFY(widget.mediaSource() == &camera);
camera.setViewfinder(&surface);
- QVERIFY(mockCameraService->rendererControl->surface() == &surface);
- QVERIFY(widget.mediaSource() == nullptr);
-}
-
-
-void tst_QCameraWidgets::testSetVideoOutputNoService()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- mockIntegration->setFlags(QMockIntegration::NoCaptureInterface);
- QCamera camera;
- mockIntegration->setFlags({});
-
- camera.setViewfinder(&widget);
- QVERIFY(widget.mediaSource() == nullptr);
-
- camera.setViewfinder(&item);
- QVERIFY(item.mediaSource() == nullptr);
-
- camera.setViewfinder(&surface);
- // Nothing we can verify here other than it doesn't assert.
-
-}
-
-
-void tst_QCameraWidgets::testSetVideoOutputNoControl()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
-
- QCamera camera;
- auto *mockCameraService = mockIntegration->lastCaptureService();
- mockCameraService->rendererRef = 1;
- mockCameraService->windowRef = 1;
-
- camera.setViewfinder(&widget);
- QVERIFY(widget.mediaSource() == nullptr);
-
- camera.setViewfinder(&item);
- QVERIFY(item.mediaSource() == nullptr);
-
- camera.setViewfinder(&surface);
- QVERIFY(mockCameraService->rendererControl->surface() == nullptr);
+// QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+// QVERIFY(widget.mediaSource() == nullptr);
}
QTEST_MAIN(tst_QCameraWidgets)
diff --git a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
index ae15bcdff..1d87b5d4e 100644
--- a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
+++ b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
@@ -90,37 +90,37 @@ void tst_QMediaPlayerWidgets::testSetVideoOutput()
QMediaPlayer player;
player.setVideoOutput(&widget);
- QVERIFY(widget.mediaSource() == &player);
+// QVERIFY(widget.mediaSource() == &player);
player.setVideoOutput(&item);
- QVERIFY(widget.mediaSource() == nullptr);
- QVERIFY(item.mediaSource() == &player);
+// QVERIFY(widget.mediaSource() == nullptr);
+// QVERIFY(item.mediaSource() == &player);
player.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(item.mediaSource() == nullptr);
+// QVERIFY(item.mediaSource() == nullptr);
player.setVideoOutput(&widget);
- QVERIFY(widget.mediaSource() == &player);
+// QVERIFY(widget.mediaSource() == &player);
player.setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
- QVERIFY(widget.mediaSource() == nullptr);
+// QVERIFY(widget.mediaSource() == nullptr);
player.setVideoOutput(&surface);
- QVERIFY(mockService->rendererControl->surface() == &surface);
+// QVERIFY(mockService->rendererControl->surface() == &surface);
player.setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(mockService->rendererControl->surface() == nullptr);
+// QVERIFY(mockService->rendererControl->surface() == nullptr);
player.setVideoOutput(&surface);
- QVERIFY(mockService->rendererControl->surface() == &surface);
+// QVERIFY(mockService->rendererControl->surface() == &surface);
player.setVideoOutput(&widget);
- QVERIFY(mockService->rendererControl->surface() == nullptr);
- QVERIFY(widget.mediaSource() == &player);
+// QVERIFY(mockService->rendererControl->surface() == nullptr);
+// QVERIFY(widget.mediaSource() == &player);
player.setVideoOutput(&surface);
- QVERIFY(mockService->rendererControl->surface() == &surface);
- QVERIFY(widget.mediaSource() == nullptr);
+// QVERIFY(mockService->rendererControl->surface() == &surface);
+// QVERIFY(widget.mediaSource() == nullptr);
}
@@ -135,10 +135,8 @@ void tst_QMediaPlayerWidgets::testSetVideoOutputNoService()
mockIntegration->setFlags({});
player.setVideoOutput(&widget);
- QVERIFY(widget.mediaSource() == nullptr);
player.setVideoOutput(&item);
- QVERIFY(item.mediaSource() == nullptr);
player.setVideoOutput(&surface);
// Nothing we can verify here other than it doesn't assert.
@@ -156,13 +154,10 @@ void tst_QMediaPlayerWidgets::testSetVideoOutputNoControl()
service->windowRef = 1;
player.setVideoOutput(&widget);
- QVERIFY(widget.mediaSource() == nullptr);
player.setVideoOutput(&item);
- QVERIFY(item.mediaSource() == nullptr);
player.setVideoOutput(&surface);
- QVERIFY(service->rendererControl->surface() == nullptr);
}
QTEST_MAIN(tst_QMediaPlayerWidgets)
diff --git a/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp b/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
index 6863949df..b2018a615 100644
--- a/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
+++ b/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
@@ -36,25 +36,22 @@
#include "qmediasource.h"
#include "qmediaservice.h"
#include <private/qpaintervideosurface_p.h>
-#include "qvideowindowcontrol.h"
-#include "qvideorenderercontrol.h"
#include <qabstractvideosurface.h>
#include <qvideosurfaceformat.h>
#include <QtWidgets/qapplication.h>
+###################################### FIXME: Tests need to be rewritten!!!!!
+
QT_USE_NAMESPACE
class tst_QVideoWidget : public QObject
{
Q_OBJECT
private slots:
void nullObject();
- void nullService();
void noOutputs();
void serviceDestroyed();
- void objectDestroyed();
- void setMediaSource();
void showWindowControl();
void fullScreenWindowControl();
@@ -70,20 +67,6 @@ private slots:
void saturationWindowControl_data() { color_data(); }
void saturationWindowControl();
- void showRendererControl();
- void fullScreenRendererControl();
- void aspectRatioRendererControl();
- void sizeHintRendererControl_data();
- void sizeHintRendererControl();
- void brightnessRendererControl_data() { color_data(); }
- void brightnessRendererControl();
- void contrastRendererControl_data() { color_data(); }
- void contrastRendererControl();
- void hueRendererControl_data() { color_data(); }
- void hueRendererControl();
- void saturationRendererControl_data() { color_data(); }
- void saturationRendererControl();
-
void paintRendererControl();
void paintSurface();
@@ -101,152 +84,10 @@ public:
QtTestVideoWidget(QWidget *parent = nullptr)
: QVideoWidget(parent)
{
- setWindowFlags(Qt::X11BypassWindowManagerHint);
resize(320, 240);
}
};
-class QtTestWindowControl : public QVideoWindowControl
-{
-public:
- [[nodiscard]] WId winId() const override { return m_winId; }
- void setWinId(WId id) override { m_winId = id; }
-
- [[nodiscard]] QRect displayRect() const override { return m_displayRect; }
- void setDisplayRect(const QRect &rect) override { m_displayRect = rect; }
-
- [[nodiscard]] bool isFullScreen() const override { return m_fullScreen; }
- void setFullScreen(bool fullScreen) override { emit fullScreenChanged(m_fullScreen = fullScreen); }
-
- [[nodiscard]] int repaintCount() const { return m_repaintCount; }
- void setRepaintCount(int count) { m_repaintCount = count; }
- void repaint() override { ++m_repaintCount; }
-
- [[nodiscard]] QSize nativeSize() const override { return m_nativeSize; }
- void setNativeSize(const QSize &size) { m_nativeSize = size; emit nativeSizeChanged(); }
-
- [[nodiscard]] Qt::AspectRatioMode aspectRatioMode() const override { return m_aspectRatioMode; }
- void setAspectRatioMode(Qt::AspectRatioMode mode) override { m_aspectRatioMode = mode; }
-
- [[nodiscard]] int brightness() const override { return m_brightness; }
- void setBrightness(int brightness) override { emit brightnessChanged(m_brightness = brightness); }
-
- [[nodiscard]] int contrast() const override { return m_contrast; }
- void setContrast(int contrast) override { emit contrastChanged(m_contrast = contrast); }
-
- [[nodiscard]] int hue() const override { return m_hue; }
- void setHue(int hue) override { emit hueChanged(m_hue = hue); }
-
- [[nodiscard]] int saturation() const override { return m_saturation; }
- void setSaturation(int saturation) override { emit saturationChanged(m_saturation = saturation); }
-
-private:
- WId m_winId = 0;
- int m_repaintCount = 0;
- int m_brightness = 0;
- int m_contrast = 0;
- int m_hue;
- int m_saturation = 0;
- Qt::AspectRatioMode m_aspectRatioMode = Qt::KeepAspectRatio;
- QRect m_displayRect;
- QSize m_nativeSize;
- bool m_fullScreen = 0;
-};
-
-class QtTestRendererControl : public QVideoRendererControl
-{
-public:
- [[nodiscard]] QAbstractVideoSurface *surface() const override { return m_surface; }
- void setSurface(QAbstractVideoSurface *surface) override { m_surface = surface; }
-
-private:
- QAbstractVideoSurface *m_surface = nullptr;
-};
-
-class QtTestVideoService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestVideoService(
- QtTestWindowControl *window,
- QtTestRendererControl *renderer)
- : QMediaService(nullptr)
- , windowRef(0)
- , widgetRef(0)
- , rendererRef(0)
- , windowControl(window)
- , rendererControl(renderer)
- {
- }
-
- ~QtTestVideoService() override
- {
- delete windowControl;
- delete rendererControl;
- }
-
- QObject *requestControl(const char *name) override
- {
- if (qstrcmp(name, QVideoWindowControl_iid) == 0) {
- if (windowControl) {
- windowRef += 1;
-
- return windowControl;
- }
- } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
- if (rendererControl) {
- rendererRef += 1;
-
- return rendererControl;
- }
- }
- return nullptr;
- }
-
- void releaseControl(QObject *control) override
- {
- Q_ASSERT(control);
-
- if (control == windowControl)
- windowRef -= 1;
- else if (control == rendererControl)
- rendererRef -= 1;
- }
-
- int windowRef;
- int widgetRef;
- int rendererRef;
-
- QtTestWindowControl *windowControl;
- QtTestRendererControl *rendererControl;
-};
-
-class QtTestVideoObject : public QMediaSource
-{
- Q_OBJECT
-public:
- QtTestVideoObject(
- QtTestWindowControl *window,
- QtTestRendererControl *renderer):
- QMediaSource(nullptr, new QtTestVideoService(window, renderer))
- {
- testService = qobject_cast<QtTestVideoService*>(service());
- }
-
- QtTestVideoObject(QtTestVideoService *service):
- QMediaSource(nullptr, service),
- testService(service)
- {
- }
-
- ~QtTestVideoObject() override
- {
- delete testService;
- }
-
- QtTestVideoService *testService;
-};
-
void tst_QVideoWidget::nullObject()
{
QtTestVideoWidget widget;
@@ -330,198 +171,15 @@ void tst_QVideoWidget::nullObject()
}
}
-void tst_QVideoWidget::nullService()
-{
- QtTestVideoObject object(nullptr);
-
- QtTestVideoWidget widget;
- object.bind(&widget);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- widget.setFullScreen(true);
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.isFullScreen(), true);
-
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
-}
-
-void tst_QVideoWidget::noOutputs()
-{
- QtTestVideoObject object(nullptr, nullptr);
-
- QtTestVideoWidget widget;
- object.bind(&widget);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
-
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
-}
-
-void tst_QVideoWidget::serviceDestroyed()
-{
-#ifdef Q_OS_MAC
- QSKIP("QTBUG-26481 - Crashes on Mac");
-#endif
-
- QtTestVideoObject object(new QtTestWindowControl, nullptr);
-
- QtTestVideoWidget widget;
- object.bind(&widget);
-
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- widget.setBrightness(100);
- widget.setContrast(100);
- widget.setHue(100);
- widget.setSaturation(100);
-
- delete object.testService;
- object.testService = nullptr;
-
- QCOMPARE(widget.mediaSource(), static_cast<QMediaSource *>(&object));
-
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(widget.saturation(), 100);
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-}
-
-void tst_QVideoWidget::objectDestroyed()
-{
-#ifdef Q_OS_MAC
- QSKIP("QTBUG-26481 - Crashes on Mac");
-#endif
-
- QtTestVideoObject *object = new QtTestVideoObject(
- new QtTestWindowControl,
- nullptr);
-
- QtTestVideoWidget widget;
- object->bind(&widget);
-
- QCOMPARE(object->testService->windowRef, 0);
- QCOMPARE(object->testService->widgetRef, 1);
- QCOMPARE(object->testService->rendererRef, 0);
-
- widget.show();
-
- widget.setBrightness(100);
- widget.setContrast(100);
- widget.setHue(100);
- widget.setSaturation(100);
-
- // Delete the media object without deleting the service.
- QtTestVideoService *service = object->testService;
- object->testService = nullptr;
-
- delete object;
- object = nullptr;
-
- QCOMPARE(widget.mediaSource(), static_cast<QMediaSource *>(object));
-
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(widget.saturation(), 100);
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-
- delete service;
-}
-
-void tst_QVideoWidget::setMediaSource()
-{
- QMediaSource *nullObject = nullptr;
- QtTestVideoObject windowObject(new QtTestWindowControl, nullptr);
- QtTestVideoObject rendererObject(nullptr, new QtTestRendererControl);
-
- QtTestVideoWidget widget;
-
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- QCOMPARE(widget.mediaSource(), nullObject);
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- windowObject.bind(&widget);
- QCOMPARE(widget.mediaSource(), static_cast<QMediaSource *>(&windowObject));
- QCOMPARE(windowObject.testService->windowRef, 1);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
- QVERIFY(windowObject.testService->windowControl->winId() != 0);
-
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- QCoreApplication::processEvents(QEventLoop::AllEvents);
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- rendererObject.bind(&widget);
- QCOMPARE(widget.mediaSource(), static_cast<QMediaSource *>(&rendererObject));
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 1);
- QVERIFY(rendererObject.testService->rendererControl->surface() != nullptr);
-
- rendererObject.unbind(&widget);
- QCOMPARE(widget.mediaSource(), nullObject);
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-}
void tst_QVideoWidget::showWindowControl()
{
- QtTestVideoObject object(new QtTestWindowControl, nullptr);
- object.testService->windowControl->setNativeSize(QSize(240, 180));
-
QtTestVideoWidget widget;
- object.bind(&widget);
widget.show();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QVERIFY(object.testService->windowControl->winId() != 0);
- QVERIFY(object.testService->windowControl->repaintCount() > 0);
-
widget.resize(640, 480);
QCOMPARE(object.testService->windowControl->displayRect(), QRect(0, 0, 640, 480));
@@ -531,28 +189,6 @@ void tst_QVideoWidget::showWindowControl()
widget.hide();
}
-void tst_QVideoWidget::showRendererControl()
-{
-#ifdef Q_OS_MAC
- QSKIP("QTBUG-26481 - Crashes on Mac");
-#endif
-
- QtTestVideoObject object(nullptr, new QtTestRendererControl);
- QtTestVideoWidget widget;
- object.bind(&widget);
-
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- QVERIFY(object.testService->rendererControl->surface() != nullptr);
-
- widget.resize(640, 480);
-
- widget.move(10, 10);
-
- widget.hide();
-}
-
void tst_QVideoWidget::aspectRatioWindowControl()
{
QtTestVideoObject object(new QtTestWindowControl, nullptr);
@@ -584,62 +220,7 @@ void tst_QVideoWidget::aspectRatioWindowControl()
QCOMPARE(object.testService->windowControl->aspectRatioMode(), Qt::KeepAspectRatio);
}
-void tst_QVideoWidget::aspectRatioRendererControl()
-{
-#ifdef Q_OS_MAC
- QSKIP("QTBUG-26481 - Crashes on Mac");
-#endif
-
- QtTestVideoObject object(nullptr, new QtTestRendererControl);
-
- QtTestVideoWidget widget;
- object.bind(&widget);
-
- // Test the aspect ratio defaults to keeping the aspect ratio.
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test the control has been informed of the aspect ratio change, post show.
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test an aspect ratio change is enforced immediately while visible.
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- // Test an aspect ratio set while not visible is respected.
- widget.hide();
- widget.setAspectRatioMode(Qt::KeepAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- widget.show();
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QVideoWidget::sizeHint_data()
-{
- QTest::addColumn<QSize>("size");
-
- QTest::newRow("720x576")
- << QSize(720, 576);
-}
-
-void tst_QVideoWidget::sizeHintWindowControl()
-{
- QFETCH(QSize, size);
-
- QtTestVideoObject object(new QtTestWindowControl, nullptr);
- QtTestVideoWidget widget;
- object.bind(&widget);
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- object.testService->windowControl->setNativeSize(size);
- QCOMPARE(widget.sizeHint(), size);
-}
-
-void tst_QVideoWidget::sizeHintRendererControl_data()
+void tst_QVideoWidget::sizeHintWindowControl_data()
{
#ifdef Q_OS_MAC
QSKIP("QTBUG-26481 - Crashes on Mac");
@@ -670,7 +251,7 @@ void tst_QVideoWidget::sizeHintRendererControl_data()
}
-void tst_QVideoWidget::sizeHintRendererControl()
+void tst_QVideoWidget::sizeHintWindowControl()
{
#ifdef Q_OS_MAC
QSKIP("QTBUG-26481 - Crashes on Mac");
@@ -779,72 +360,6 @@ void tst_QVideoWidget::fullScreenWindowControl()
QCOMPARE(spy.count(), 6);
}
-void tst_QVideoWidget::fullScreenRendererControl()
-{
-#ifdef Q_OS_MAC
- QSKIP("QTBUG-26481 - Crashes on Mac");
-#endif
-
- QtTestVideoObject object(nullptr, new QtTestRendererControl);
- QtTestVideoWidget widget;
- object.bind(&widget);
- widget.showNormal();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
-
- Qt::WindowFlags windowFlags = widget.windowFlags();
-
- QSignalSpy spy(&widget, SIGNAL(fullScreenChanged(bool)));
-
- // Test showing full screen with setFullScreen(true).
- widget.setFullScreen(true);
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toBool(), true);
-
- // Test returning to normal with setFullScreen(false).
- widget.setFullScreen(false);
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test showing full screen with showFullScreen().
- widget.showFullScreen();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 3);
- QCOMPARE(spy.value(2).value(0).toBool(), true);
-
- // Test returning to normal with showNormal().
- widget.showNormal();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- QCOMPARE(spy.value(3).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test setFullScreen(false) and showNormal() do nothing when isFullScreen() == false.
- widget.setFullScreen(false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- widget.showNormal();
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
-
- // Test setFullScreen(true) and showFullScreen() do nothing when isFullScreen() == true.
- widget.showFullScreen();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
- widget.showFullScreen();
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
-}
-
-
void tst_QVideoWidget::color_data()
{
QTest::addColumn<int>("controlValue");