summaryrefslogtreecommitdiffstats
path: root/src/pdfquick/qquickpdfselection.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Ignore QInputMethodEvent::MimeDataKaloyan Chehlarski2025-05-221-0/+3
| | | | | | | | | Introduced with 2a9444920bcd2f5d1832971bd6275ebdc5515546 We need the version checks to support building on top of older Qt versions. Change-Id: Ifddf8a194a23233eeab61111380dc62ce407f6e7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* 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>
* Docs: fix the QML docs for the PdfSelection::text propertyAlexei Cazacov2024-06-191-3/+4
| | | | | | | | | | | | | The QML docs described the "string" property, but the actual property name is "text". Add a selectAll() shortcut to the withdoc.qml manual test while we're at it, for easier checking of behavior. Fixes: QTBUG-126138 Pick-to: 6.8 6.7 6.5 6.2 Change-Id: Ieab6188661d4e9b1c1f4dc4faaf355b94bdc3f4c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Port from container::count() and length() to size() - V4Marc Mutz2022-10-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); a.k.a qt-port-to-std-compatible-api V4 with config Scope: 'Container'. Change-Id: I3e6fef8eca212da0c4f0b464545ba96183b4476f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* PdfSelection: mark read-only for IM to avoid showing virtual keyboardShawn Rutledge2022-09-091-2/+1
| | | | | | | | | | | | | | | | | | | | | The Qt::ImReadOnly query enum is new in 6.2 (qtbase c80f262258b7846bf199887bcfdbb6dcfda6ad6f and aae4d52cbb79c61161271473ab5c3a1ba1086e01). It was added to the switch statement in 79d04aa9e3e9aa84d7378260519f9e9a6759dc41 but needs to return `true` to mark this Item as read-only, so that the keyboard will not open when it gets focus. The menu still gets populated with Select and Select All on long-press, and then Copy after a selection is made. That's all we need. The qt_im_readonly property was a sort of private API for Qt 5, and should no longer be needed (albeit the implementation is still in Qt 6 so far). Pick-to: 6.4 Task-number: QTBUG-83811 Fixes: QTBUG-106358 Change-Id: I677363be545d07884dffdfc10d6fdbd488cf2cf0 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* PdfSelection: check m_document before accessingShawn Rutledge2022-09-071-0/+12
| | | | | | | | | | The document is a property that the user needs to bind. If initializing it has been neglected or delayed somehow, we shouldn't crash. Pick-to: 6.4 6.4.0 Fixes: QTBUG-106355 Change-Id: I8e99b4bb84d868b694886058d56166fb3c4eabff Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@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>
* Rename QQuickPdfSelection fromPoint/toPoint properties to from and toShawn Rutledge2022-06-041-37/+37
| | | | | | | It was a suggestion during API review. Change-Id: I54425bbebb90b05a2cee1cb00d51c4d61edb8784 Reviewed-by: Doris Verria <doris.verria@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/+15
| | | | | Change-Id: I939c6988436b2168b5df5a7b662eb09364832823 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* doc: fix QtPDF doc warnings and mistakesShawn Rutledge2022-04-081-0/+1
| | | | | Change-Id: Id2ce2bd8852c4051edd29bf474bac216ba14f2b5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use QML_EXTENDED to "inherit" QPdfDocument props, enums and signalsShawn Rutledge2022-04-061-7/+7
| | | | | | | | | | | | | | | | | | | | | 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>
* QQuickPdfSelection: Fix division by zeroPeter Varga2022-02-081-0/+5
| | | | | | | | | | | | | | | | | | QQuickPdfSelection::m_renderScale is used for division in QQuickPdfSelection::updateResults(). Add warning message to setRenderScale() and ignore the new value if it is zero. Also avoid setting PdfSelection.renderScale to zero in PdfScrollablePageView. The division caused an assert: ASSERT: "divisor < 0 || divisor > 0" in file qtbase/src/corelib/tools/qpoint.h, line 299 It was reproducible with the pdfviewer quick example. Pick-to: 6.3 6.2 Change-Id: I31e08a9a28392fcc132470c8d94af1307447565a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Make dtors out-of-lineMarc Mutz2021-12-071-0/+5
| | | | | | | | | | | Pins vtable to a single TU, instead of duplicating it across all TUs that use the class, possibly causing invalid dynamic_cast<>s and other bugs. Fixes: QTBUG-98880 Task-number: QTBUG-45582 Change-Id: Ic296f4583097181ac4d824fac6dab4671ae14a50 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use up-to date LGPL license headerKai Köhne2021-12-021-11/+14
| | | | | | | | Remove usages of outdated LGPL3 header that references LICENSES.LGPLv3 instead of LICENSES.LGPL3. For the examples, use BSD. Change-Id: I1fae49110160c1183327ec54c9dc447c69588a65 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Fix qdoc warnings and enable zero warning limitVenugopal Shivashankar2021-11-151-4/+1
| | | | | Change-Id: Ifa2914e7bca9c224670a1891785d0ba8262cd61b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add QtPdf to cmake buildMichal Klocek2021-08-171-0/+543
Port QtPdf to Qt6: * QtPdf,QtPdfWidgets,QtPdfQuick libs * QtPdfQuickPlugin, QtPdfPlugin (imageformat) plugins * widget and quick examples * qtpdf tests To fit gn cmake integration and new repo layout code is a bit reshuffled. Compared to qmke build following features are not ported yet: * ios fat libs * qtbase 3rdparty static dependencies WebEngine build can be skipped with setting QT_FEATURE_qtwebengine_build=OFF Note this patch needs follow up for 6.2 branch to disable qtpdf builds by default, since this should not part of qt 6.2 release. Pick-to: 6.2 Task-number: QTBUG-95353 Change-Id: I4dd9f3934bdd478fb6d2fa686074a24d91f09953 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>