From f8898170a77593e314d3cd187f259223e9bff0f8 Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Thu, 29 Mar 2018 15:27:06 +0200 Subject: Remove hardcoded size from QWebEngineView::sizeHint() 800x600 takes more space than expected when building a layout which contains QWebEngineView. Now this function does exactly the same as QWidget::sizeHint(). Add an auto test and update examples which were depending on this hardcoded size. Change-Id: I3b34b7d37cc99a8d6a49100d6c4b66b5b6a1c999 Reviewed-by: Allan Sandfeld Jensen --- .../tst_qwebenginedownloads.cpp | 1 + .../widgets/qwebenginepage/tst_qwebenginepage.cpp | 3 ++ .../widgets/qwebengineview/tst_qwebengineview.cpp | 42 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) (limited to 'tests') diff --git a/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp b/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp index 4848038df..f932d50c3 100644 --- a/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp +++ b/tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp @@ -112,6 +112,7 @@ void tst_QWebEngineDownloads::initTestCase() m_page = new QWebEnginePage(m_profile); m_view = new QWebEngineView; m_view->setPage(m_page); + m_view->resize(640, 480); m_view->show(); } diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index d62ace045..ffc0b6989 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -3312,6 +3312,7 @@ protected: void tst_QWebEnginePage::evaluateWillCauseRepaint() { WebView view; + view.resize(640, 480); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); @@ -4052,6 +4053,7 @@ void tst_QWebEnginePage::mouseButtonTranslation()
\
\ ")); + view.resize(640, 480); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); QTRY_VERIFY(spy.count() == 1); @@ -4076,6 +4078,7 @@ void tst_QWebEnginePage::mouseMovementProperties() QWebEngineView view; ConsolePage page; view.setPage(&page); + view.resize(640, 480); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 24e581870..248d906ef 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -153,6 +153,7 @@ private Q_SLOTS: void focusOnNavigation_data(); void focusOnNavigation(); void focusInternalRenderWidgetHostViewQuickItem(); + void doNotBreakLayout(); void changeLocale(); void inputMethodsTextFormat_data(); @@ -345,6 +346,7 @@ void tst_QWebEngineView::crashTests() void tst_QWebEngineView::microFocusCoordinates() { QWebEngineView webView; + webView.resize(640, 480); webView.show(); QVERIFY(QTest::qWaitForWindowExposed(&webView)); @@ -379,6 +381,7 @@ void tst_QWebEngineView::focusInputTypes() bool imeHasHiddenTextCapability = context && context->hasCapability(QPlatformInputContext::HiddenTextCapability); QWebEngineView webView; + webView.resize(640, 480); webView.show(); QVERIFY(QTest::qWaitForWindowExposed(&webView)); @@ -482,6 +485,7 @@ void tst_QWebEngineView::unhandledKeyEventPropagation() { KeyEventRecordingWidget parentWidget; QWebEngineView webView(&parentWidget); + webView.resize(640, 480); parentWidget.show(); QVERIFY(QTest::qWaitForWindowExposed(&webView)); @@ -825,6 +829,7 @@ void tst_QWebEngineView::doNotSendMouseKeyboardEventsWhenDisabled() QFETCH(int, resultEventCount); KeyboardAndMouseEventRecordingWidget parentWidget; + parentWidget.resize(640, 480); QWebEngineView webView(&parentWidget); webView.setEnabled(viewEnabled); parentWidget.setLayout(new QStackedLayout); @@ -1030,6 +1035,31 @@ void tst_QWebEngineView::focusInternalRenderWidgetHostViewQuickItem() QTRY_COMPARE(renderWidgetHostViewQuickItem->hasFocus(), true); } +void tst_QWebEngineView::doNotBreakLayout() +{ + QScopedPointer containerWidget(new QWidget); + + QHBoxLayout *layout = new QHBoxLayout; + layout->addWidget(new QWidget); + layout->addWidget(new QWidget); + layout->addWidget(new QWidget); + layout->addWidget(new QWebEngineView); + + containerWidget->setLayout(layout); + containerWidget->setGeometry(50, 50, 800, 600); + containerWidget->show(); + QVERIFY(QTest::qWaitForWindowExposed(containerWidget.data())); + + QSize previousSize = static_cast(layout->itemAt(0))->widget()->size(); + for (int i = 1; i < layout->count(); i++) { + QSize actualSize = static_cast(layout->itemAt(i))->widget()->size(); + // There could be smaller differences on some platforms + QVERIFY(qAbs(previousSize.width() - actualSize.width()) <= 2); + QVERIFY(qAbs(previousSize.height() - actualSize.height()) <= 2); + previousSize = actualSize; + } +} + void tst_QWebEngineView::changeLocale() { QStringList errorLines; @@ -1593,6 +1623,7 @@ void tst_QWebEngineView::softwareInputPanel() { TestInputContext testContext; QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy loadFinishedSpy(&view, SIGNAL(loadFinished(bool))); @@ -1649,6 +1680,7 @@ void tst_QWebEngineView::softwareInputPanel() void tst_QWebEngineView::inputMethods() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -1745,6 +1777,7 @@ void tst_QWebEngineView::inputMethods() void tst_QWebEngineView::textSelectionInInputField() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -1826,6 +1859,7 @@ void tst_QWebEngineView::textSelectionInInputField() void tst_QWebEngineView::textSelectionOutOfInputField() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -1909,6 +1943,7 @@ void tst_QWebEngineView::textSelectionOutOfInputField() void tst_QWebEngineView::hiddenText() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy loadFinishedSpy(&view, SIGNAL(loadFinished(bool))); @@ -1934,6 +1969,7 @@ void tst_QWebEngineView::hiddenText() void tst_QWebEngineView::emptyInputMethodEvent() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -1980,6 +2016,7 @@ void tst_QWebEngineView::emptyInputMethodEvent() void tst_QWebEngineView::imeComposition() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -2154,6 +2191,7 @@ void tst_QWebEngineView::imeComposition() void tst_QWebEngineView::newlineInTextarea() { QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy loadFinishedSpy(&view, SIGNAL(loadFinished(bool))); @@ -2253,6 +2291,7 @@ void tst_QWebEngineView::newlineInTextarea() void tst_QWebEngineView::imeJSInputEvents() { QWebEngineView view; + view.resize(640, 480); view.settings()->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, true); view.show(); @@ -2396,6 +2435,7 @@ void tst_QWebEngineView::imeCompositionQueryEvent_data() void tst_QWebEngineView::imeCompositionQueryEvent() { QWebEngineView view; + view.resize(640, 480); view.settings()->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, true); view.show(); @@ -2477,6 +2517,7 @@ void tst_QWebEngineView::globalMouseSelection() QApplication::clipboard()->clear(QClipboard::Selection); QWebEngineView view; + view.resize(640, 480); view.show(); QSignalSpy selectionChangedSpy(&view, SIGNAL(selectionChanged())); @@ -2557,6 +2598,7 @@ void tst_QWebEngineView::contextMenu() } view.setContextMenuPolicy(contextMenuPolicy); + view.resize(640, 480); view.show(); QVERIFY(view.findChildren().isEmpty()); -- cgit v1.2.3