summaryrefslogtreecommitdiffstats
path: root/src/pdfquick/qquickpdfpageimage.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Do not add magic header web_engine_logging.hMichal Klocek2024-10-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Importing headers with relative paths going out of source component is evil. Remove web_engine_logging.h header as it is referred from the code base, but build system has no clue about it as it is specified as include with relative path. Moreover, it introduces weird implicit dependency of components like qtpdf on qtwebenginecore. Add required macro to private globals. Note for qtpdf it is unnecessary as we do not support compiling qtpdf against latest lts, however our release infra requires it. This commit amends d11709f18d692f4a3431999e90dddf0d7cdf15df. Task-number: QTBUG-127975 Change-Id: I89163a29db4e601cfb607928f796343ba522037b Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix static logging category deprecation warningsKaloyan Chehlarski2024-08-271-1/+2
| | | | | | | | | | | | | | | | | | | | | This is a second attempt at getting rid of the deprecation warnings caused by the new logging category macros in 6.9. These cause build failures on warnings-as-errors configurations, and need to be fixed properly without affecting backwards compatibility. The change introduces a new Q_WEBENGINE_LOGGING_CATEGORY macro, intended to be used across the WebEngine sources. The macro is not exported to users, so the QtPdf example that declares its own logging category uses an #ifdef instead. The new macro is placed in its own header inside src/core/, and is intended to be removed whenever the next LTS release allows us to break compatibility with 6.8, and just directly use Q_STATIC_LOGGING_CATEGORY everywhere. Fixes: QTBUG-127975 Change-Id: I9174dab21bd597c862e569e170161782cc108ece Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Replace \instantiates with \nativetypePaul Wicking2024-08-201-1/+1
| | | | | | | | | | | Since the implementation of the `\nativetype`-command in QDoc, the `\instantiates`-command is deprecated. Replace the use of the deprecated command in favor of its replacement. Pick-to: 6.8 Task-number: QTBUG-128216 Change-Id: I10cad9942e34301ded99c7014c1c70375e0698e1 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Revert "Use static logging categories everywhere"Kaloyan Chehlarski2024-07-251-1/+1
| | | | | | | | | | | | This reverts commit bd6e209152d042a08fc226a9e92ee1c04cf1954a. The change broke backwards compatibility with 6.8, because the relevant macros were introduced after the feature freeze, and are thus not part of the 6.8 release. This revert fixes the impeding backwards incompatibility whenever WebEngine 6.9 is released. Change-Id: I4626c4fe2647a5eb2a0729696cb80db6a47569a7 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use static logging categories everywhereKaloyan Chehlarski2024-07-021-1/+1
| | | | | | | | | | | | Following fa4bd30caa079a3b1e5eac1bb4f17365f456b8f9 all usage of the Q_LOGGING_CATEGORY macro triggers a deprecation warning, and may even block certain build configurations. This change replaces all usages of the macro with Q_STATIC_LOGGING_CATEGORY instead, since none of the logging categories in WebEngine are meant to be exported to users. Change-Id: Icdebb7a3a8c987db3f34945cd0311aee52667a88 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Teach QQuickPdfPageImage to use double-bufferingShawn Rutledge2024-05-221-7/+9
| | | | | | | | | | | | | | 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>
* QQuickPdfPageImage::load(): fall back to base class impl to avoid crashShawn Rutledge2024-01-051-1/+13
| | | | | | | | | | | | | | | | | | | | | | 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>
* Doc: Fix linking issues on Qt PDF documentationTopi Reinio2022-07-051-1/+1
| | | | | | | | | | | | | These warnings were not captured by the documentation testing in CI. Fix or remove links to properties from inherited QML types, and remove \sa entries that are already linked to in the documentation. Fix incorrect \inqmlmodule argument for PdfPageImage. Pick-to: 6.4 Change-Id: If2c14d468a6dc3cd464ca4de1f4e39ad48d4d326 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-221-38/+2
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I869ffda1080e283f231eb0dc4477b260f2054d99 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Include moc filesAllan Sandfeld Jensen2022-05-311-0/+2
| | | | | | | | Faster to build and gives smaller binaries Fixes: QTBUG-103291 Change-Id: Iab52995e03c13a4c5b185750028c449a19d98d93 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* doc: Add more docs to PdfPageImage and PdfSelectionShawn Rutledge2022-04-171-0/+8
| | | | | Change-Id: I939c6988436b2168b5df5a7b662eb09364832823 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* doc: fix QtPDF doc warnings and mistakesShawn Rutledge2022-04-081-1/+1
| | | | | Change-Id: Id2ce2bd8852c4051edd29bf474bac216ba14f2b5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Move QQuickPdfNavStack core into QPdfNavigationStack; use in QPdfViewShawn Rutledge2022-04-081-1/+0
| | | | | | | | | | | | | | | QQuickPdfNavigationStack was implemented independently until now, but users will need the same functionality in widget-based PDF viewers. QPdfPageNavigation on the other hand may have eventually had the same aspiration, but was just a glorified up/down counter thus far, with questionable API; so we get rid of it, and make the API for page navigation as much the same as possible between Quick and Widgets. We rename push() to jump() along with removing the emitJumped argument. Now jump() always emits (so we have to be more careful when to call it). Change-Id: Icb07158a351e29b81e58ec037cd323bc0f54a1a1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* doc: begin adding docs for MultiPageView component and exampleShawn Rutledge2022-04-071-1/+1
| | | | | | | Pick-to: 6.3 Task-number: QTBUG-81560 Change-Id: I062e022a97c146e9a746b6d6358868bfe0c0a7d7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Use QML_EXTENDED to "inherit" QPdfDocument props, enums and signalsShawn Rutledge2022-04-061-5/+6
| | | | | | | | | | | | | | | | | | | | | In QML we want to treat the status values like Error and Ready as if the enum were declared in QQuickPdfDocument, even though it's really from the non-QML type QPdfDocument. This is needed because QQuickPdfDocument doesn't inherit QPdfDocument (9968e2578f96081d2a242340620fcb2b96d9a1d3 could've done direct inheritance, but we sometimes value separation of QML API from C++ API). So we now de-duplicate other properties and signals too. It's as if from QML's perspective, PdfDocument inherits everything from QPdfDocument (including the properties pageCount, password and status), although in C++ it's not like that. Make all properties FINAL because we don't expect anybody to subclass QQuickPdfDocument. Fixes: QTBUG-100839 Change-Id: Idbb0d620443020d7168cba8f090d1f344a9b3296 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add QQuickPdfPageImage and use in the PDF viewer componentsShawn Rutledge2022-03-031-0/+155
Image works fine, except that if QPdfIOHandler is not given an already-allocated QPdfDocument instance, it needs to construct its own. So we now have QPdfFile: a subclass of QFile acting as a wrapper, to carry the document instance (that the user has most likely declared) down into QPdfIOHandler::load(QIODevice *). Thus, in nontrivial PDF-viewing use cases, there is now usually only one multi-purpose document instance. And this takes care of viewing password-protected PDFs in the multipage example, because we already prompt for it and set the document.password property. In trivial use cases, it's OK to continue using Image, and QPdfIOHandler will still construct its own QPdfDocument instance if the QIODevice cannot be cast to a QPdfFile. Task-number: QTBUG-77506 Task-number: QTBUG-83988 Task-number: QTBUG-96574 Change-Id: I3adfa54c30b0baa5dedebcf3bc759758f136b757 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>