summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* Add QWebEngineFrame::isMainFrame()Moss Heim2024-06-032-0/+15
| | | | | | Pick-to: 6.8 Change-Id: I5360ebc88aeff2189071c971e4f24a69e765686d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Implement API for listing existing permissions in a profileKaloyan Chehlarski2024-06-033-51/+145
| | | | | | | | | | | QWebEngineProfile and QQuickWebEngineProfile now have methods for either getting one specific permission object, or for getting a list of all the permissions currently stored. The methods for listing also have overloads for filtering based on origin or Feature type. Pick-to: 6.8 Change-Id: I07241bcb3ff171fa8b82547c2b5f094071bebe44 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add QWebEnginePermission and rewrite permissions APIKaloyan Chehlarski2024-06-039-149/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the addition of permission persistence, it's now important for us to have an API for querying previously granted/denied permissions, so that they can be revoked at a later point. This change does the bulk of the work to get us there, by introducing a new type representing a single permission for a given URL/Feature pair. This type holds no information about the permission's state; it is simply an accessor object which allows its user to query the current status of the permission, grant/deny it, or reset it back to its initial state (so, delete it from storage). This provides application developers an easy way to store/modify lists of permissions without having to define their own custom types. A subsequent change will expand the API to provide a list of all permissions for a given profile. The current API (in QWebEnginePage and QQuickWebEngineView) has been marked as deprecated, but has not been disabled to ensure a smooth transition for developers. [ChangeLog][QtWebEngineCore][QWebEnginePage] Deprecated old permissions API [ChangeLog][QtWebEngineQuick][WebEngineView] Deprecated old permissions API [ChangeLog][QtWebEngineCore] Added new API for querying and modifying website permissions. [ChangeLog][QtWebEngineQuick] Added new API for querying and modifying website permissions. Pick-to: 6.8 Change-Id: I8661cdc26bbd6dcde6403d29cc083bcea1a49ccc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add QWebEngineFrame::printToPdfMoss Heim2024-06-035-0/+138
| | | | | | | | | Provide API calls to (1) save to file (QString) and (2) get the bytes in a callback. Pick-to: 6.8 Change-Id: I0ff44a25328b99080491b8c3b36a7b632c065131 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Implement optional website permission persistenceKaloyan Chehlarski2024-06-016-3/+95
| | | | | | | | | | | | | | | | | | | | | | | | | This change introduces a new API allowing application developers to choose whether they want to retain the granted/denied status of permissions between different pages or browsing sessions. The previous behavior of asking for permission every time is still optionally available, but the default behavior is to persist permissions inbetween sessions (except for off-the-record profiles, where the permissions get destroyed alongside the profile). Storage is handled via a PrefService, which writes to a permissions.json file stored inside the profile folder. This is different to Chromium's implementation, which is massively overengineered and would require enabling a ton of code we will never need to use. [ChangeLog][QtWebEngineCore][QWebEngineProfile] Added new API to control permission persistence. [ChangeLog][QtWebEngineQuick] Added new API to control permission persistence. Fixes: QTBUG-55108 Change-Id: Ib3057feda3bfbbf2a17a86356feca35a67180806 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add QWebEnginePage::printRequestedByFrame signalMoss Heim2024-05-312-0/+20
| | | | | | | | | Emitted whenever a frame excluding the main frame calls JS print() function. `printRequested` is now only emitted when the main frame requests printing, instead of any frame. Change-Id: I4b65e5a164b513cc9a9692c1285470847b7a26e3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Allow succeeding URLRequestJobs without actual content loadingSzabolcs David2024-05-302-0/+57
| | | | | | | | | | | | | | | There is no way to signal LoadSucceeded without doing content load. Calling QWebEngineUrlRequestJob::reply() with an invalid QIODevice could be an alternative for this. Calling QWebEngineUrlRequestJob::fail() with NoError does nothing, but it was documented as "The request was successful." Deprecate this. [ChangeLog][WebEngineCore] QWebEngineUrlRequestJob::NoError is deprecated Task-number: QTBUG-114360 Change-Id: I09d38bdd622413362ae14f8aa6ac7c447946fafb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Teach QQuickPdfPageImage to use double-bufferingShawn Rutledge2024-05-221-0/+6
| | | | | | | | | | | | | | This was urgent due to the error: no member named 'pix' in 'QQuickPdfPageImagePrivate'. But we actually need the double-buffering feature that was added in qtdeclarative change e0e0f722b86db7b99185ccd669dd5456623e7e69. Now a single-page viewer will not show a blank page while "flipping" to another page in a PDF file. Fixes: QTBUG-125415 Task-number: QTBUG-66713 Change-Id: Ia37682acf0818cfa55acecf668551467780fb0ae Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Add QWebEngineFrame::runJavaScriptMoss Heim2024-05-222-0/+18
| | | | | | | | | | | | | Run JavaScript code on a specific frame, optionally executing a callback when done. Uses the enclosing page's callback system. There are two sets of overloads, matching the API of QQuickWebEngineView and QWebEnginePage. Also adds QQuickWebEngineFrame::runJavaScript() Change-Id: I48746bd83d0f19644157548483a94637fc70c20f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Allow checking whether certificate error comes from a page resourceKaloyan Chehlarski2024-05-172-0/+17
| | | | | | | | | | | | | | | | | | | | | | Currently, all certificate errors are handled the same way, regardless of whether they come from the main frame or from an outside resource. On the user side, this means that all certificate errors for resources trigger a pop-up claiming the page is unsafe. Other browsers do not do this, and instead automatically reject bad certificates for resources. This change extends the QWebEngineCertificateError API to allow querying for whether the error comes from the main frame, or from a resource. This information is already supplied by Chromium, but we previously just ignored it. With this, application developers may now choose to auto-reject resource errors just as Chrome does. The simple and quick nano browser examples have been updated to reject certificate errors coming from a page resource. Task-number: QTBUG-92009 Change-Id: Id38b21f569318d7a83332d4ba69cb27d14b53430 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Avoid flakiness of clearDataFromCache on WindowsAllan Sandfeld Jensen2024-05-131-0/+4
| | | | | | | | We seem to sometimes get the lower data usage a bit late. Task-number: QTBUG-122469 Change-Id: I3824f86afcdcdda29300da531de23f3985dc4d64 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Add QML support for QWebEngineFrameMoss Heim2024-05-071-0/+9
| | | | | | Change-Id: I1f5843b1abba9edb3c106718abac5cd92ee961cd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Instrument clearDataFromCacheAllan Sandfeld Jensen2024-05-071-1/+3
| | | | | | | | Should help narrow down flakiness Task-number: QTBUG-122469 Change-Id: If8b0d7441af10c8aad876098c6744777696b3358 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Add QWebEngineFrame and basic APIMoss Heim2024-05-036-0/+247
| | | | | | | | | | | | This object represents a frame on a web page, e.g. a <frame> or <iframe> element. Frames can be found through QWebEnginePage::mainFrame() and findFrameByName(). Also provides some basic getters on QWebEngineFrame and tests. Change-Id: If3905c6ecd14cf6c3508c65edc98f49415739489 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Speculative fix for flaky DOH testMartin Negyokru2024-04-302-4/+14
| | | | | | | | Verify network access before running the test. Task-number: QTBUG-124558 Change-Id: Ida7825854074b9c29d5f0b6db6613d4997e450f8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add hasPostData to QWebEngineNavigationRequestAllan Sandfeld Jensen2024-04-262-1/+29
| | | | | | | | | | [ChangeLog][QtWebEngineCore][QWebEngineNavigationRequest] hasFormData has been added to indicate navigations request (re)posting form data. Fixes: QTBUG-67613 Change-Id: I0275513a12d4591a53040c62bfce636e99926ab7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Anu Aliyas <anu.aliyas@qt.io>
* Fix -no-opengl buildPeter Varga2024-04-181-1/+3
| | | | | | Pick-to: 6.7 Change-Id: Ibb6cb75a25f9b6d69ec03bc2c6734a869ab21899 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Minor. Add missing target checksMichal Klocek2024-04-122-4/+12
| | | | | | | | | | | | We need to always add target checks as qt-camke can call configure on tests even if webengine is not built. Otherwise it prints more errors than it should. Pick-to: 6.7 6.6 Task-number: QTBUG-120247 Change-Id: I7e9c1ab9640b91addb8ad1b35889771fb3dd9569 Reviewed-by: Moss Heim <moss.heim@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix failing autotest in tst_qwebenginepageKaloyan Chehlarski2024-04-123-11/+19
| | | | | | | | | | The localFontAccessPermission test was occasionally failing to acquire transient user activation, and thus failing. This change uses an event hander for when a button is pressed, ensuring the activation is acquired. Change-Id: Iddafa92b7a7e8ea415a73dff8685691b6b39fef4 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Correct license for examples filesLucie Gérard2024-04-095-5/+5
| | | | | | | | | | | | | Example takes precedence over build system file type. According to QUIP-18 [1], all examples file should be LicenseRef-Qt-Commercial OR BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I558c6f409a480835d335101577ae633194b0559d Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Correct license for build system filesLucie Gérard2024-04-094-4/+4
| | | | | | | | | | | | According to QUIP-18 [1], all build system files should be BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I2f13ceaa8eb68b7745cffc66651f892c1fbeeff2 Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Handle empty uri-list in dropped MIME dataMoss Heim2024-04-021-0/+23
| | | | | | | | | | | Previously WebContentsAdapter assumed that drag-n-drop MIME data with hasUrls() == true would also have a nonempty url list. This is not always the case. Instead, check directly if urls() is nonempty. Pick-to: 6.7 Fixes: QTBUG-123765 Change-Id: I9e2189e3f0223f98bdd8be273adb96cf063f4be3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Get tst_QPdfSearchModel working; check search results in rotated textShawn Rutledge2024-03-235-4/+246
| | | | | | | | | | | | | API has changed since b6dd845ec4a6bfb6b620686681e20d38a2f24101, and this test wasn't included in CMakeLists so we haven't been running it. Now it checks search result rectangle bounds. The new test PDFs are from the pdfium repository https://pdfium.googlesource.com/pdfium and include different kinds of transforms (the Tm command apparently). Pick-to: 6.7 Task-number: QTBUG-120764 Change-Id: I25cf5944dd227dd4d2c70cbbac470d1d0fcc181a Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Add test pdfs for tst_QPdfDocumentShawn Rutledge2024-03-221-0/+2
| | | | | Change-Id: I39bba6769b39e4685fbef10e19f0b1956b62208f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Convert "page" <-> "view" coordinates for PdfSelection and LinkModelShawn Rutledge2024-03-224-1/+291
| | | | | | | | | | | | | | | Use FPDF_PageToDevice() rather than subtracting from page height, in all the remaining places where we were doing that. Also use FPDF_DeviceToPage() to convert coordinates coming from the view, for hit-testing links and for selecting ranges of text. Mark the private utility functions that we're modifying const while we're at it. Pick-to: 6.5 6.6 6.7 Task-number: QTBUG-100630 Fixes: QTBUG-106565 Change-Id: Ide4f73b80888a0e08381c6e4995f69ebeaa2d12f Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Add local fonts permission support to QuickWebEngineViewKaloyan Chehlarski2024-03-221-0/+1
| | | | | | | | | This change hooks up QuickWebEngineView to the newly-enabled local font access API. Task-number: QTBUG-121320 Change-Id: Ib7e093904ea8d834a2282cd265086e501cb392ff Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix compiler warnings in testsMoss Heim2024-03-192-4/+3
| | | | | | | Unused parameters Change-Id: I1c300daefc5461aa692f8624d6af7c5f9ce80464 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add support for local font access notificationsKaloyan Chehlarski2024-03-151-0/+63
| | | | | | | | | | | | Accessing local fonts on the user's machine has been available in Chromium since v103, via a (draft) API descrived here: https://developer.chrome.com/docs/capabilities/web-apis/local-fonts This change adds support for the relevant notification types, effectively exposing the API to WebEngine applications. Task-number: QTBUG-121320 Change-Id: I42c5261dc689c3d7bb4aa3c58c6300421220a36a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add granular permission for clipboard-read/writeMoss Heim2024-03-113-6/+154
| | | | | | | | | | | | | | | Previously, permissions for clipboard access could only be managed through the JavascriptCanAccessClipboard and JavascriptCanPaste settings. This change allows copy/paste to be handled the same way as notification and geolocation permissions. If both JavascriptCanAccessClipboard and JavascriptCanPaste are enabled, permissions will be granted unconditionally without a feature request being made. Fixes: QTBUG-77450 Change-Id: I383e27e244ced3d6b7988644e38d2307c6267f76 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add setting method to set image animation policyAnu Aliyas2024-03-071-0/+5
| | | | | | | | - added a method to set image animation policy in QWebEngineSettings Fixes: QTBUG-86154 Change-Id: I8b3ab6067f9cff4219b0da90bb8601406cb98e24 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix flaky horizontalScrollbarTestMartin Negyokru2024-03-071-0/+94
| | | | | | | | | | Mouse events will miss the hittesting if they are sent before the page is drawn. Introduce new test page that listens for first paint events. Pick-to: 6.7 6.6 Change-Id: I4846ec1bde3805f5dd0098d490cb85c72cb0884f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove extra semi-colonsTasuku Suzuki2024-02-061-1/+1
| | | | | Change-Id: I0cc532c63f900b3bd56268a4d8a7132d3caea4f7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add scroll animator to QML APIAllan Sandfeld Jensen2024-02-011-0/+2
| | | | | | | | | | Was missing from the QML settings. Change-Id: I585fd7906b6831d9cf1c560427be18b1d76fd8ca Fixes: QTBUG-85473 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Anu Aliyas <anu.aliyas@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Don't crash when setting invalid cookieMoss Heim2024-01-301-0/+32
| | | | | | | | | | | | | | QWebEngineCookieStore::setCookie was incorrectly validating cookies after an API change in chromium; this would lead to cookies being considered always valid which could crash if validation failed. This commit updates the API call and adds a test to check that invalid cookies are no longer added. Pick-to: 6.7 6.6 Change-Id: I6fc4268a483c9495c19843f3a7b16b4f234633b4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Stabiliize tst_MultiPageView::pinchDragPinchShawn Rutledge2024-01-261-0/+1
| | | | | | | | | | | | | Many Qt Quick tests choreograph event delivery with QQuickTouchUtils::flush(&window); but that uses private API. To avoid linking Qt Quick Private, disable touch compression completely, so that QTouchEventSequence::commit() causes the touch event to be fully delivered immediately. Amends 25fd2017f82bf25991feec2e5cceb21ceda4da15 Fixes: QTBUG-121564 Change-Id: I1802b56fba7b4e3be6948fa96e1c53ba0fba8739 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add CMake autotestJoerg Bornemann2024-01-262-8/+20
| | | | | | Task-number: QTBUG-84884 Change-Id: I2796ba53dc512aa27ab64911154237d89e1f5271 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Delay PdfMultiPageView.goTo[Page|Location] if called too earlyShawn Rutledge2024-01-252-0/+30
| | | | | | | | | | | | | | | | PdfMultiPageView does not expose a property alias to TableView.rows; we could call it pageCount, but we don't want to mislead users into thinking that the view is the "source of truth" for how many pages it's going to show. The document's pageCount is populated earlier, and that's a problem only in such a case when it's too early to ask the view to go to a particular page. So we work around it in the view by treating these goTo functions as requests to be satisfied as soon as it becomes possible. Fixes: QTBUG-119416 Pick-to: 6.5 6.6 6.7 Change-Id: Ie2377fe6f2983b72e871b1be2afe4d0878f60841 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Avoid crash by waiting for rendering to be doneShawn Rutledge2024-01-251-0/+6
| | | | | | | Pick-to: 6.5 6.6 6.7 Task-number: QTBUG-120245 Change-Id: I4d3478a6243e9fb0c6ccc872f471c7d09dc7eb3e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix discontinuity with successive pinch-zoom in PdfMultiPageViewShawn Rutledge2024-01-251-0/+68
| | | | | | | | | | | | | pinch.persistentScale is settable since 6.5 (qtdeclarative a432970b258edb9ff041d221b2155df30cad4799): we need that to tell PinchHandler to start over from 1 after we have also set the rendered scale back to 1, because PinchHandler does not read the scale property for itself. Fixes: QTBUG-115502 Pick-to: 6.5 6.6 6.7 Change-Id: I21951c447bf33e5942b6a1635488d5474ec8f293 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Correct PrintedPageSizeId to match QPageSize::PageSizeIdMichael Brüning2024-01-241-4/+2
| | | | | | | | | | With Qt 6, QPageSize::PageSizeId enum was cleaned up and some values were reordered, but the WebEngineQuick part was not changed accordingly. Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-120218 Change-Id: I7e4c419750d30a64193e68b0b217ebbccce07d87 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Update QWebEngineDesktopMediaRequest based on API reviewMartin Negyokru2024-01-221-3/+3
| | | | | | | | | | | | | - Port the request's d-pointer to std::unique_ptr - Disable copy of the request - Remove QWebEngineMediaSourceModel from the header - Remove the NameRole definition - Update tests and documentation according to changes - Use forward declaration in qwebenginepage Pick-to: 6.7 Change-Id: I972b3104a0bca5367a4bb63ac183a60d00a71776 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* doc: Add docs for the pdfviewer exampleShawn Rutledge2024-01-192-19/+19
| | | | | | | | | | | This example exists to show a simpler viewer using PdfScrollablePageView rather than PdfMultiPageView. Most users will probably prefer the latter, so we don't highlight this one. Pick-to: 6.7 Task-number: QTBUG-81560 Change-Id: Ia601b8c8ec0cb9002aa118917720a37b4f8095a5 Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Fix compilation if no qhttpserverMichal Klocek2024-01-181-1/+3
| | | | | | | | | | This amends 8bedcaac01cd0a08031f42acfd7ebcc15f541964 Pick-to: 6.7 Task-number: QTBUG-112142 Change-Id: I49891681a483f6e57354cfa51f045df8a12ca20a Reviewed-by: Martin Negyokru <negyokru@inf.u-szeged.hu> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Update QWebEngineWebAuthUxRequest based on 6.7 API review commentAnu Aliyas2024-01-171-47/+47
| | | | | | | | | | | - Modified WebAuthUXState as enum class - Renamed QWebEngineWebAuthUXRequest as QWebEngineWebAuthUxRequest - Renamed QWebEngineWebAuthPINRequest as QWebEngineWebAuthPinRequest - Replaced all occurrence of UX and PIN with Ux and Pin respectively Fixes: 6.7 Change-Id: Iaf0b4c93e0dfa3508a604f7d6562c4401ff800af Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add test for Hangout services extensionMartin Negyokru2024-01-151-0/+47
| | | | | | | | | Test chooseDesktopMedia extension API. Pick-to: 6.7 Task-number: QTBUG-85731 Change-Id: I2479297b2ccd45bd28bdbe6e9157ad67d0a15739 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add manual test for screen capturingMartin Negyokru2024-01-106-0/+346
| | | | | | | | | | Add test for getUserMedia, chooseDesktopMedia and QWebEnginePage::desktopMediaRequested. Pick-to: 6.7 Task-number: QTBUG-112142 Change-Id: Ie91838d0da05281cde8b316596ee74589af5581c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix cursor position during compositionAnu Aliyas2024-01-092-10/+59
| | | | | | | | | | | | | During input composition, the cursor is set to the starting position of the string being edited and refrain from updating it throughout the composition process. Once the string is committed, it is set to the last position of the committed string. The modified code is designed to exhibit the same behavior as the widget and quickwidget. Fixes: QTBUG-118746 Pick-to: 6.5 6.6 6.7 Change-Id: I9adb7a9bea9493457a1d9d4b32338cdba30920a1 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Add WebEngineDriverPeter Varga2024-01-067-0/+715
| | | | | | | | | | | | | WebEngineDriver is a modified ChromeDriver and provides the same functionality. [ChangeLog][WebEngineCore] Added WebEngineDriver Fixes: QTBUG-82046 Task-number: QTBUG-86869 Change-Id: Ib8a40e1f6ca883efa6776c647a5b57d2930593ae Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 613be810df6b6e83d64ceb015aaabf28e41d34da)
* QQuickPdfPageImage::load(): fall back to base class impl to avoid crashShawn Rutledge2024-01-055-0/+495
| | | | | | | | | | | | | | | | | | | | | | Plain Image is ok for loading one PDF page at a time, except that the pdf plugin has to create its own PDF document object if it cannot reuse an instance that is already open. So PdfPageImage was created just as an optimization, with the expectation that the document will be given to the document property. But in case someone doesn't understand and tries to set only the inherited Image.source property instead, fall back to QQuickImageBase::load() to avoid crashing. Amends 7b8832ca2b84d549c9d374550c3c46b3d4d42a38 If both the document and source properties are set, prefer the document (for the sake of performance). Add test coverage of other combinations of properties, while we're at it. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-104767 Task-number: QTBUG-77506 Change-Id: I1ee0d0bb2a6c5f399234ddddd969be02e7a6c020 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Add missing cmake includeMichal Klocek2024-01-051-0/+1
| | | | | | | | | | | | | Without the include module build with BUILD_TESTS=ON is broken as cmake function call for dictionary setup is not found. This commit amends 73d58b489e8f4f900042f0ab6c1104e6431752e1. Pick-to: 6.5 6.6 6.7 Change-Id: I2c02317b92e1b5726963d120bf97dff1a12c7375 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>