-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Supporting Qt 6 #5395
Copy link
Copy link
Closed
Labels
qt: 6Issues related to Qt 6.Issues related to Qt 6.
Milestone
Description
Continued in #7202, most of the information below is purely historical.
The next Qt release after 5.15 will be Qt 6. The initial schedule plans for a release 2020-12-01, with feature freeze on 2020-08-31.
QtWebEngine is coming back with Qt 6.2. Release schedule:
- Feature freeze 2021-06-07
- Alpha 2021-06-23
- Beta 1 2021-07-6
- Beta 2 2021-07-27
- Beta 3 2021-08-17
- Beta 4 2021-08-31
- RC 2021-09-14
- Final 2021-09-30
Links:
- Interesting JIRA issues
- Interesting codereview changes: dev, 6.2
API changes
Probably going to be a bunch, but rather small changes... The plan for qutebrowser is to stay compatible with Qt 5 for a while, while gaining compatibility with Qt 6.
- Rename QWebEngineDownloadItem -> QWebEngineDownloadRequest
- Remove obsolete, deprecated api from qwebenginedownloaditem
- Unify certificate error handling
- Move QMenu handling from page to view
- Merge all webenginecontextmenudata wrappers into one class
- Improve QWebEngineCertificateError api
- Remove default qwebenginesettings getter
- Move qwebenginesettings to core
- Move QWebEngineFullScreenRequest to core
- Move to qwebenginescript to core
- Move qtwebenginescriptcollection class to core
- Cleanup qwebenginescript and qwebenginescriptcollection api
- Drop dependency on default notification presenter in profile
- Drop dependency on page in profile (internal only?)
- Move profile from widgets to core
- Remove deprecated url interoceptor setter from profile
- Move client certificate selection to core
- Remove qwebengineview setter from qwebenginepage
- Move QWebEngineHistory to core
- Move QWebEnginePage to core
- Add Qt WebEngine version getter
- Make handling of certificate errors possible from a signal
- Add missing FileSelectionMode enum value
- Move createWindow to a signal (internal only?)
- Move QQuickWebEngineNavigationRequest to Core
- Merge WebEngineHistory's quick implementation into QWebEngineHistory
- QWebEnginePage: add new 'loading' property and expose QWebEngineLoadingInfo
- Move printing finished callback to signal
- Add API for favicon database
- Remove left-over deprecated API QWebEngineProfile::setRequestInterceptor()
- Add QPageRanges to PDF printing
- Make default profile off the record
- Remove deprecated useforglobalcertificateverification
API review follow ups
- Remove duplicated 'downloadProgress' in favor of separate signals (Ib825d63c) · Gerrit Code Review
- Update parameters to findText callback (I622ff55c) · Gerrit Code Review
- Add QWebEngineNewWindowRequest::openIn(QWebEnginePage *) (I15e72d52) · Gerrit Code Review
- Add QWebEnginePage::view() replacement (I552f0047) · Gerrit Code Review
- Return printToPdf to QWebEnginePage (I0e14563c) · Gerrit Code Review
Interesting non-API changes
- Fix inconsistent number of load signals and their order (not an API change, but relevant for us)
- Implement dialogs of File System Access API (no API change, just potentially interesting)
- Add basic USB device logging (same)
- Suppress error pages also for http errors if they are disabled (no API change, but interesting)
- Disable kAllowContentInitiatedDataUrlNavigations (I9398f54b) · Gerrit Code Review
- Widgets (like the command text box) now insert test into the primary selection (if available) (ignore the fix version, it only made it into 6.0 but didn't get a new ticket)
Planned changes in PyQt
PyQt5->PyQt6rename (see Add wrapper modules for PyQt #995)- Enums won't be accessible unscoped, only scoped - scoped access is possible since Qt 5.11 I believe, so if we want to access enum members without some unwieldy
enum_value(QWebEnginePage, 'FindFlag', 'FindBackward')wrapper, we'll need to drop older versions at that point (Dropping support for Qt < 5.12 (affects Debian Stretch/Buster, Ubuntu 18.04) #3839) - split off to Rewrite enum access for scoped PyQt enums #5904.
More from the website:
PyQt6 introduces the following incompatibilities over PyQt5:
- The
Qtmodule has been removed.QtWidgets.qApphas been removed.- The
QtCore.PYQT_CONFIGURATIONdict has been removed.pyrcchas been removed.- Scoped enums are now implemented as
enum.Enum(PyQt5 usedenum.IntEnum). Named enums are now implemented asenum.IntEnum(PyQt5 used a custom type). PyQt5 allowed an int whenever an enum was expected. PyQt6 requires the correct type (ie. it will not accept an int instead of an enum).- All
exec_()methods have been removed.- All
print_()methods have been removed.- Python v3.6 or later is required.
Changes which probably didn't make it
- Add QWebEngineurlRequestBody (Ia0e4b5a5) · Gerrit Code Review
- Add a new signal "launchExternalProtocol" when launching external url (I744b6ca9) · Gerrit Code Review
- Clear the cache in time range (If80bba20) · Gerrit Code Review
- Add QWebEngineurlRequestBody (Ia0e4b5a5) · Gerrit Code Review
- Add QWebEnginePage::httpStatusCode() (I350c003e) · Gerrit Code Review
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
qt: 6Issues related to Qt 6.Issues related to Qt 6.