Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.3
-
None
Description
Qt WebEngine requires the ability to run newer versions even with older (LTS) releases of Qt (to be able to update frequently to get security fixes, for one reason); therefore no private API from other Qt modules is in use (to avoid actual BC issues, and also because of the artificial qFatal "incompatible version" error).
QtPdf lives in the qtwebengine repository. It can be argued that similar security concerns exist: people download PDF files from the web, email them to each other, and so on; so if a vulnerability were found, Google would update the PDFium code to fix it, and we'd want to make a timely release of the fix in all supported versions of Qt. So most likely the QtPdf releases will follow the cadence of webengine releases.
It's anyway a good practice to avoid depending on private API between modules.
Unfortunately this means when we subclass any QObject, and wish to have a PIMPL, the private class cannot inherit QObjectPrivate; so the public class needs another d-pointer. It's a little wasteful; but this is the same issue every Qt user faces in the same situation.
Some classes in QtPdf were already designed that way, but others aren't. This task is "done" when we can verify that no #include <Qt*/private/something.h> exist and when we have removed LIBRARIES Qt::CorePrivate and Qt::QuickPrivate from CMakeLists.txt.
Attachments
Issue Links
- is required for
-
QTBUG-77503 Prepare for a supported release of QtPDF with more features
- Closed
-
QTBUG-88614 Migrate Qt PDF to Qt 6
- Closed
- replaces
-
QTBUG-98889 QPdfPageNavigation/QPdfPageRenderer/QPdfView should re-use QObject's d-ptr
- Closed
Gerrit Reviews
For Gerrit Dashboard: QTBUG-102156 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
403419,1 | WIP QQuickPdfPageImagePrivate: stop inheriting QQuickImagePrivate | dev | qt/qtwebengine | Status: NEW | -2 | 0 |