summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Give QPdfPageNavigator::jump() a default value for zoomShawn Rutledge2022-06-042-3/+3
| | | | | | | | If the caller doesn't want to change it, it's easier to omit it rather than remembering that 0 is a special value. Change-Id: I851f678941e5144a9dea306fddba59fd15ed9939 Reviewed-by: Doris Verria <doris.verria@qt.io>
* Add QPdfDocument::pageLabel(int) and pageModel propertyShawn Rutledge2022-06-043-0/+119
| | | | | | | | | | | This API is available for both C++ and QML. The pageModel makes it easier to populate item-views with per-page information, such as thumbnails labeled with page labels. Fixes: QTBUG-102271 Change-Id: I70df481b378efed0327e7bb89a63c7669daecc70 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Emit fully-qualified enum in QPdfPageRenderer::renderModeChanged()Shawn Rutledge2022-06-021-1/+1
| | | | | | | This fixes a clazy warning. Change-Id: I2f6d4dc394fbf81d5acbd4b013e935fe50300e0e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Replace usage of currentPage with currentFrameShawn Rutledge2022-06-021-2/+2
| | | | | | | Amends 038b361c452feb41106867f20b2484c1f384b0d1 Change-Id: I417822f27d5a57749754bf043594aad8a220b63f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Rename QPdfDocument::pageSize() to QPdfDocument::pagePointSize()Shawn Rutledge2022-05-316-15/+10
| | | | | | | | It is in fact the size in points (1/72 of an inch), so we might as well be consistent about the naming between QML and C++ APIs. Change-Id: I8f8b05eeecc635a4d105558959834ae0e15add81 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Include moc filesAllan Sandfeld Jensen2022-05-3139-0/+74
| | | | | | | | Faster to build and gives smaller binaries Fixes: QTBUG-103291 Change-Id: Iab52995e03c13a4c5b185750028c449a19d98d93 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove PdfPageView.currentPage propertyShawn Rutledge2022-05-314-4/+3
| | | | | | | It was just an alias for currentFrame. Change-Id: Ib16f579b1905cf5fe43496553ebde054d474a7c7 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix PluginServiceFilterQt::IsPluginAvailable()Szabolcs David2022-05-304-21/+21
| | | | | | | Query PDF settings from view-level WebEngineSettings instead of profile. Change-Id: I4ee7c99d6757d5341b1a4d47251228c1c46f99b7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Rename QPdfNavigationStack to QPdfPageNavigator; QML type tooShawn Rutledge2022-05-2714-162/+162
| | | | | | | | | | | | | | | | | This might reduce some confusion about the fact that the back/forward "stack" isn't strictly a stack in the data structure sense: it's more like QUndoStack. It causes a QML source incompatibility relative to Qt 5, but keeps the C++ class name the same as it has been in QtPdf for a long time. Amends 3ad445f9f24a9d3f259ed1781460a63346a728e4 [ChangeLog][QtPDF] The PdfNavigationStack QML type has been renamed to PdfPageNavigator, matching the C++ type QPdfPageNavigator. These remember navigation history within a document, and are helpful to implement back/forward buttons similar to those on a web browser in both Qt Quick and widget-based viewer applications. Change-Id: Id8dc17aa416bb7064b1f0f300a47c07c83b7f47e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Implement File System Access permission APISzabolcs David2022-05-2625-0/+1855
| | | | | | | | | | | | Allow web pages to safely access the local file system by exposing a permission API. Permissions are stored in-memory. The built-in access rules are the same as the behavior of Chrome: JS can't request access to system libraries, sensitive directories and the application itself. Task-number: QTBUG-97829 Change-Id: Ic675422cafbad5a90243b4fa8f0749c46afa192c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix local->remote user navigationAllan Sandfeld Jensen2022-05-251-3/+16
| | | | | | | | | Specifically allow user initiated navigation of the mainframe. Pick-to: 6.3 6.2 Fixes: QTBUG-103778 Change-Id: I4e3d6b4fb606bd0c3cf66e090fba3c97c8c535b4 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Move QPdf namespace enums into QPdfDocumentRenderOptions enum classesShawn Rutledge2022-05-246-175/+70
| | | | | | | [ChangeLog][QtPDF] The QPdf namespace is removed. Change-Id: I9c760c9187760a3a8356e90113ca1ab3535bed95 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QPdfBookmarkModel: make DisplayRole distinct from Title roleShawn Rutledge2022-05-242-2/+4
| | | | | | | | They both return the same title string, but we don't make the enum values identical, because roleNames() needs to have unique mappings. Change-Id: I6d19ed2e5a3f2f5ea83d8b542b3042e91c37c497 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QPdfView: replace enums with enum classesShawn Rutledge2022-05-242-18/+18
| | | | | | | [ChangeLog][QtPDF] All enums are replaced with enum classes. Change-Id: I41063de084a23db657a24805ceaf22881f25c990 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Remove QPdfBookmarkModel::structureModeShawn Rutledge2022-05-242-37/+2
| | | | | | | | | | | Bookmarks are naturally a tree. It's unusual for a QAIM to have the internal ability to flatten a tree to a list, and we don't need it in any of our viewers or examples. This patch could be reverted if it turns out that anybody misses this feature; or else flattening could be done in a proxy model. Change-Id: I5cf60a39cb699932cc7c61e33a5129323d648344 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QPdfBookmarkModel: replace StructureMode enum with an enum classShawn Rutledge2022-05-242-6/+6
| | | | | Change-Id: I6335c1b13ef50dc04d50bd1ce66b3524e2615b3f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QPdfDocument: use enum classesShawn Rutledge2022-05-2410-110/+94
| | | | | Change-Id: Iad3f8da130abe86a464d63323920a2a39d6fa955 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc: Use find_package(Qt6 REQUIRED COMPONENTS ...) idiomKai Köhne2022-05-163-3/+3
| | | | | | | | | | | Using REQUIRED as a prefix instead of suffix works better with OPTIONAL_COMPONENTS, and is also the order in the CMake manual. Pick-to: 6.3 Task-number: QTBUG-98867 Change-Id: I57928fb56e2a154d91873dc869f6d314a7ea5fce Reviewed-by: Rui Oliveira Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Refactor custom handlersAllan Sandfeld Jensen2022-05-1512-14/+360
| | | | | | | | Reimplement the chrome specific classes, as we use very little of them, and move everything to a subdir. Change-Id: I93873399b1bea46c08ed171b7dc75ad252f20108 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Keep page's zoom level on loading new urlsKirill Burtsev2022-05-156-8/+30
| | | | | | | | | | | | Ammends d236c5a8a3. Zoom level was set as a temporal one, which is invalidated each time when a renderer process or widget are changed (on new navigation, for example), so it needs to be reapplied. Pick-to: 6.3 6.2 5.15 Fixes: QTBUG-101030 Change-Id: Iecff9686fbe2b79e99b46f67cab92f66127be085 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix software backend detectionAllan Sandfeld Jensen2022-05-141-1/+21
| | | | | | | | | | | QSG hasn't parsed and set the backend yet, so we do need to duplicate the logic it will use later to make a proper detection. Pick-to: 6.3 Fixes: QTBUG-103372 Change-Id: I542ef9f52dd2725d3ff6e17f9142786e43425ebd Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Add NavigateOnDrop settingsAllan Sandfeld Jensen2022-05-135-5/+37
| | | | | | | | | | Some applications want this to avoid users navigating away from their app content. [ChangeLog][Settings] NavigateOnDropEnabled added, enabled by default. Change-Id: I2cc370f60ef42c708042cbc2503207f8254cf932 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Fix touch input for widget's delegate for html popupKirill Burtsev2022-05-122-6/+20
| | | | | | | | | | | | | | | | | | | | | Earlier fix cf8bc1899a introduced the logic, where all system synthesized mouse events are ignored. But after c56169f7a1 this is undesired since for widget with Qt::Popup flag touch input is ignored by QWidgetWindow, and input is expected to be delivered to popup as synthesized mouse event (either synthesized by Qt or for capabable devices by system). So allow system synthesized mouse events to let through for popup. Synthesis by Qt is suppress automatically for accepted touch event, it's only system event are still delivered unconditionally, so still ignore them for widgets impl. Global ignore in core is not needed, since QQuickWidget ignores system synthesized events unconditionally. Fixes: QTBUG-79254 Pick-to: 5.15 6.2 6.3 Change-Id: Ie8f55eb8b9c2677d8a98381effb3cb31d9388ac7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Martin Negyokru <negyokru@inf.u-szeged.hu>
* Fix touch input for html's popup in quick implKirill Burtsev2022-05-121-6/+8
| | | | | | | | | | | | | | Ammends 292f573f4e. Now that touch events are forwarded to popup delegate also instead of synthesized mouse events, the bug with touch event being ignored became present. Also extend testing of touch events for html popups. Task-number: QTBUG-79254 Fixes: QTBUG-103217 Pick-to: 6.2 6.3 Change-Id: I097a6617493355c7603fef8eb41025e299a6e809 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Update ChromiumAllan Sandfeld Jensen2022-05-121-0/+0
| | | | | | | | | Submodule src/3rdparty 3443c0d61..72d76568f: > FIXUP: Disable alternate window station of Windows sandbox > Find fontconfig using pkg-config Change-Id: I85def9b7f22623d31072a9e2ee2bf9b4ebfc3044 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* QtWebEngine: replace qSwap with member-swap where possibleMarc Mutz2022-05-113-3/+3
| | | | | | | | | | | | | | | qSwap() is a monster that looks for ADL overloads of swap() and also detects the noexcept of the wrapped swap() function, so it should only be used when the argument type is unknown. In the vast majority of cases, the type is known to be efficiently std::swap()able or to have a member-swap. Call either of these. As a drive-by, unify all member-swap()s to be noexcept. Task-number: QTBUG-97601 Pick-to: 6.3 6.2 5.15 Change-Id: I9184cab0ed74a1b32d62cf7c83dc1f1b7814c784 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Update Platform NotesKai Köhne2022-05-111-4/+3
| | | | | | | | | Remove references to Qt 5, qmake (as build tool for Qt), and Visual Studio 2017 only. Pick-to: 6.2 6.3 Change-Id: Ied2de9de91693f167c5fb22f007c203bce18b543 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Cleanup custom touch handles implementationMichal Klocek2022-05-108-150/+62
| | | | | | | | Do not introduce extra class nor dummy QML element. Fix docs. Change-Id: I9848f6865cd585779d89fe387ad97c27e7450eb9 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Add QtQuick dependency to QtWebEngineMarco Bubke2022-05-091-0/+2
| | | | | | | | | | QQuickItem is referenced as prototype but there is no dependency declared to QtQuick where it is defined. Pick-to: 6.3 6.2 Change-Id: Ib024123b032fdadf3fe24a5a420b2c122d6594b7 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Use qualified imports to avoid prototype loopsMarco Bubke2022-05-093-7/+6
| | | | | | | | | | In the designer model we don't use import order to simplify the meta type system. There are only very few places where we get a prototype chain loop. In most cases qualified imports are used. Pick-to: 6.3 6.2 Change-Id: If4baac38cabb7773f58c0d326806fd6fd5612a99 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Add convenience constructors to QWebEngineViewAllan Sandfeld Jensen2022-05-092-0/+36
| | | | | | | | Make it easier to use alternative profiles without having to use QWebEnginePage directly. Change-Id: I8406c9ee3b453f7ff45e64bb05d0f5ad57e389c4 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix sandbox on framework buildsMichal Klocek2022-05-093-10/+22
| | | | | | | | | | | | On framework build we use bundle to get qt path. If build time bundle is picked than build path should be allowed file access. Moreover we really should be able only to access bundle path and not prefix path as resources and locales are in the webenginecore bundle. Pick-to: 6.3 6.2 Change-Id: Ic7d49ddf9c31dce52f59b38a75d558c875f15dae Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update ChromiumMichal Klocek2022-05-091-0/+0
| | | | | | | | | | | | | Pulls in following patches: * f0151b67cfa Fix mac toolchain python linker script call * 8c647adb6ad FIXUP: Fixes for building with MSVC * 599a6221a4b Minor. Use FilePath directly for qt sandbox path * 3443c0d6144 Minor. Add defined to checks Change-Id: I452e2bc801117bc261dd39c8fdf3cc7b7d5dfb06 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Find CUPS for printing on LinuxAllan Sandfeld Jensen2022-05-061-1/+2
| | | | | | | | | Just verify it is there. Pick-to: 6.3 6.2 Fixes: QTBUG-100300 Change-Id: If7d13afd788086cab13bab471a4dc415fa470ece Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Quick: Add support for replacing touch handles with delegatesBalazs Egedi2022-05-0421-81/+394
| | | | | | Task-number: QTBUG-85043 Change-Id: I1c87aff352e07eb309d5ba8747b9e50a191d478e Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Clean up documentationAllan Sandfeld Jensen2022-05-036-13/+14
| | | | | | | | Make naming consistent, and fix a few links Pick-to: 6.3 Change-Id: I5b42ba92f8747d6bd86b1e84f74f6b15c80f444c Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Fix leak if loader error is seen firstAllan Sandfeld Jensen2022-05-031-1/+6
| | | | | | | | | For some reason the proxied_loader_receiver can still be bound in this case. Pick-to: 6.3 6.2 5.15 Change-Id: If0bbe181eca5de41e82eebaced412361fe12fb40 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix read-after-free on EGL extensionsAllan Sandfeld Jensen2022-05-024-16/+16
| | | | | | | | | Cache the read extensions as an std::string, since the returned C string may be not be permanent. Pick-to: 6.3 6.2 5.15 Change-Id: I856b2b784ab4027da25996b2bf741b30cda10e05 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix missing dictionaries in case of user bundlesMichal Klocek2022-04-301-0/+7
| | | | | | | | | | | | If user creates bundle dictionaries should be copied to Resources in the bundle. Note our spellchecker unit test only covers non bundle case. Fixes: QTBUG-100799 Pick-to: 6.3 Change-Id: I5d4c0f7c1c21d35601a6e01dec1ecdb43202469f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Support cross-compilation on macOSMichal Klocek2022-04-305-6/+8
| | | | | | | | | | | | | | | | | | | | | | So far we only supported a cross-compiling with universal builds, however qmake also supports 'regular' cross compilation (by setting '-device-option'). This is semi-supported with qt-cmake as we need to provide additional configure defines like: * CMAKE_OSX_ARCHITECTURES=arm64 * CMAKE_SYSTEM_NAME=Darwin * CMAKE_OSX_DEPLOYMENT_TARGET=10.14 It might seem to be a far fetched issue, however in case of webengine doing the cross compilation for only one architecture allows to save compile times when testing only arm64 builds. Note we do not need to create gn toolchains for that case, however unlike universal builds it requires host qt build for tools. Pick-to: 6.3 6.2 Change-Id: Ica8470fdd4cad4866c1470e0403ffd019eaf39a6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* doc: Add docs for PdfScrollablePageView and PdfPageViewShawn Rutledge2022-04-292-2/+438
| | | | | | | | Pick-to: 6.3 Task-number: QTBUG-81560 Change-Id: Ib91da92942311f65e3a2a40eb08c5a7f053419b4 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix navigation to non-local URLsAllan Sandfeld Jensen2022-04-261-1/+8
| | | | | | | | | They are passed in another part of the DropItem object. Task-number: QTBUG-102192 Pick-to: 6.3 6.2 5.15 Change-Id: If52a88ce2688c25ea0edcc0d1e8f962f2cdd29dd Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* QPdfBookmarkModel: add location and zoom rolesShawn Rutledge2022-04-242-4/+56
| | | | | | | | | | | We need them for more accurate navigation. Switch to initializing BookmarkNode's variables where declared, while we're at it. Task-number: QTBUG-77510 Change-Id: Ia6762c9b6336c9148a85ad782e71e5b59feab754 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* doc: Add docs for QPdfViewShawn Rutledge2022-04-233-11/+98
| | | | | | | | Wrap some long lines in qpdfview.cpp, as a drive-by. Task-number: QTBUG-81560 Change-Id: Ia9865c42e48c81ac2c99b5cbe9d5a10beff40847 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Support setting page to nullptr to unsetAllan Sandfeld Jensen2022-04-221-0/+3
| | | | | | | | Worked in 5.15, and now crashed. This patch returns 5.15 behavior. Pick-to: 6.3 6.2 Change-Id: Ib50dca96d9e90312cd2ee55aaf3205f5b848dd15 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix documentation of getter functionsAllan Sandfeld Jensen2022-04-222-24/+66
| | | | | | | | | | Add documentation file in doc dir, and add a related header as a documented header file. Pick-to: 6.3 Fixes: QTBUG-102743 Change-Id: Ibcbc39affe1915b0606e879a9ec5a1189f2d5aea Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Turn QPdfBookmarkModel::Role into an enum classShawn Rutledge2022-04-222-18/+19
| | | | | | | | | - link, search and bookmark models have similar role names now - being an enum class allows the role name to be shorter - the Role enum name is the same as the name in roleNames(), lowercased Change-Id: I2e710d7acb8479995d82ef2d324807b6cd4e10e5 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* PdfMultiPageView: fix PdfNavigationStack.onJumped horizontal scrollingShawn Rutledge2022-04-221-3/+1
| | | | | | | | | | | | | | | xOffsetLimit should not be divided by 2: it's meant to be the farthest that we can scroll to the right without going beyond the page edge. Since we still have the tableView.rebuild() workaround function, remove some calls to forceLayout() that seem not to help with anything, but just caused a warning: Cannot do an immediate re-layout during an ongoing layout! Pick-to: 6.3 Fixes: QTBUG-102742 Change-Id: I57f419467e01fc92c12e5d74262d8fa878ce1c79 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* PdfMultiPageView: re-layout when size changesShawn Rutledge2022-04-221-0/+2
| | | | | | Fixes: QTBUG-102746 Change-Id: I75528f86a2c8b3d61f73929ea64a1ce2f5e54167 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QtPDF: Get styles working again; remove visible hyperlink adornmentsShawn Rutledge2022-04-206-37/+30
| | | | | | | | | | | | | | | | | | | | | | | Update to versionless imports. The color type comes from the QtQuick import now. Add the styles to CMakeLists.txt so they get installed. Use SystemPalette rather than instantiating a Control. We'd probably better just assume that the PDF has hyperlinks decorated however the author wanted, rather than risking redundant underlines. Declare linkUnderscoreStrokeWidth: -1 since the ShapePath.strokeWidth docs tell us "When set to a negative value, no stroking occurs." But the user can turn them back on using a custom style. Update the screenshot: avoid showing off how bad the underscores looked. PdfPageView doesn't depend on Controls and doesn't import styles: it simply loses the light-grey rectangles around links. The cursor change still informs the user when the mouse is hovering a link. Pick-to: 6.3 Fixes: QTBUG-102303 Change-Id: Ifa4f9982bfaaf0e2e46230e8dbe30a5db7c9f592 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>