[qt/qt/qtbase]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtbase Pushed by mirror-service into branch 'dev'. Changed from ea78d5a4e582d44b17a7c303b22f65f18a3de157 to 78f595689378643dc39e29b340a24039769ed08c Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 876748257f0c6656435b1446e88068fd4d9ccfab by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: resolve owning ability for sub and float windows tryGetQAbilityPeerByQWindow only matches a QWindow against each QAbilityPeer's main-window reference, so sub and float windows never resolve to their owning ability (and tryGetQAbilityByQWindow, built on it, inherits the same limitation). Fall back to the JS window registry: when no peer's main window matches, look up the JsWindowRef by its owning QWindow and resolve the peer from the ability instance id it now carries. Main windows keep matching via the existing fast path, so their result is unchanged; sub and float windows now resolve to the same ability the window proxy records. No in-tree caller passes a non-main window yet, so behavior is unchanged for now; this unblocks resolving a dialog's owning ability from any QWindow on the JS thread. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I1811feed70932ae5227a3c3e4e4ca92670693c9f Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/876748257f0c6656435b1446e88068fd4d9ccfab Git commit 5d70c78154cf59866af2ffd149e0b7ea720b3a92 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: add QOhosJsState::tryGetJsWindowByQWindow() QOhosJsState can resolve a QWindow to its owning ability (tryGetQAbilityByQWindow) but not to its JS window.Window object. Add tryGetJsWindowByQWindow() alongside it: JsStateImpl looks the QWindow up via QOhosJsWindowRegistry::tryFindJsWindowByQWindowRef() and returns its JS window object, on the JS thread and by reference identity, for main, sub and float windows alike. This is for plugin-external code that wants to use the JS Window API but can identify a window only by its QWindow (it has no access to the plugin's JsWindowId or window registries). It has no in-tree caller yet. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I7437642b41ea524c597881f928a87c686128b7e1 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5d70c78154cf59866af2ffd149e0b7ea720b3a92 Git commit e1b72074df521149adfe4c522fca03f4ed2cebed by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: use QWindow ref for QOhosWindowManager dialogs The showFileDialog* helpers take a QtOhos::InternalWindowId and resolve it on the main thread through the plugin-internal QWindowProxyRegistry. Take a QtOhos::QObjectThreadSafeRef instead and resolve both the owning ability and the modal-parent window object on the JS thread via QOhosJsState. This decouples the helpers from plugin internals so one of them can later move out of the OHOS plugin; they share the same machinery, so decoupling one decouples all three. Behavior is preserved for registered windows and for the no-window case (default ability, no modal parent). One relaxation: an unrealized parent window currently aborts; it now degrades to the default ability (effectively unreachable, as a dialog's parent is shown). Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Ic4000df1f88a0efb56612248e333889906356171 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e1b72074df521149adfe4c522fca03f4ed2cebed Git commit 3f65f96e3251e831282e868aae299bfc06ea5b66 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: inline startOhosFilePicker into showFileDialogAuthorization showFileDialogAuthorization goes through the shared startOhosFilePicker helper, which the other two dialogs also use. Inline it here so this one function is self-contained, a step toward moving it out of the plugin without dragging the shared helper along. The inlined form drops the generic FilePickerResult indirection: the picker's selected index (unused for authorization) is no longer read, and the result is reduced directly to the authorized bool. Behavior is otherwise unchanged, and startOhosFilePicker stays for the open/save dialogs. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Ie7920f246739420d987ce6e26bd640087318b429 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/3f65f96e3251e831282e868aae299bfc06ea5b66 Git commit 609e5c382c33e3851874c44a04579fc4fd5c4ea4 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: inline makeDocumentViewPicker into showFileDialogAuthorization Continue making showFileDialogAuthorization self-contained ahead of moving it out of the plugin: inline makeDocumentViewPicker's body (JS window lookup, ability context, picker construction) into it. makeDocumentViewPicker stays for the open/save dialogs, which reach it through startOhosFilePicker. Behavior is unchanged. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Idb832f380f313bf097dcf45f7582cb7d9130d72b Reviewed-by: Arkadiusz Zarębski <[email protected]> Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/609e5c382c33e3851874c44a04579fc4fd5c4ea4 Git commit d55ea953f71fa9c0d2c51a9647defe13818660a8 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: drop needless URI mapping in showFileDialogAuthorization showFileDialogAuthorization only reports whether the user picked anything, so check the result array's length directly instead of extracting its OHOS file URIs and mapping them to paths and Qt URLs purely to test emptiness. Both mapping helpers stay for the open/save dialogs. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Ib42c16c0583af93855ec3119ba77d6e48b49d0e0 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> Reviewed-by: Arkadiusz Zarębski <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/d55ea953f71fa9c0d2c51a9647defe13818660a8 Git commit 34c2dd0df62f6869f2fa686b8a18c25051121391 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: resolve auth dialog ability via QOhosJsState showFileDialogAuthorization resolves the picker's ability context through the plugin peer API (getQAbilityPeerForQWindow, then QAbilityPeer::qAbility). Get the ability object straight from QOhosJsState instead - tryGetQAbilityByQWindow with a defaultQAbility fallback - so this path no longer touches the peer type, one less plugin dependency before the move. getQAbilityPeerForQWindow stays for the open/save dialogs. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I51aded8fc732b6780a208622ed958418b0039156 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/34c2dd0df62f6869f2fa686b8a18c25051121391 Git commit 08d9a2ba6014d9f14fc3b5733b0a654cd21f84a4 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: move file authorization to QtOhosAppKit The file-path authorization dialog lives inside the OHOS platform plugin: QOhosWindowManager::showFileDialogAuthorization() runs the DocumentViewPicker in authMode, and QOhosQpaFunctions exposes it to Qt via showFileDialogToAuthorizeFilePath(). Nothing outside the plugin can reach it, and the QPA hook has no in-tree caller. Introduce QtOhosAppKit::authorizeFilePath(), modelled on qt5's QtOhosExtras::authorizeFilePath(), which drives the picker directly through the corelib QOhosJsState JS-thread API. Move the dialog logic and the event-loop bridge into QtOhosAppKit, and drop the now-unused showFileDialogAuthorization() and QOhosQpaFunctions hook. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I20a691e7c792cf6857cf6da5f0f1b1f036e1c387 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/08d9a2ba6014d9f14fc3b5733b0a654cd21f84a4 Git commit 2666e4af2ed50023d7d76ef3c36c0d9c2151c591 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: add QtOhosAppKit::tryGetNativeWindowId() Add QtOhosAppKit::tryGetNativeWindowId(), modelled on qt5's QtOhosExtras::tryGetNativeWindowId(), to expose a window's native OpenHarmony id to plugin-external code. It delegates to a new internal QNativeInterface::Private::QOhosWindow::windowId(), implemented by QOhosPlatformWindow. Drop the now-unused QOhosQpaFunctions hook that previously provided the id. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Icfe20479d5bbdf387537abf4c35c24a269a008be Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/2666e4af2ed50023d7d76ef3c36c0d9c2151c591 Git commit ac6e2e3ca47021349e68ebbaf58ddf008dcc22b1 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: add QtOhosAppKit::tryGetScreenDisplayId() Add QtOhosAppKit::tryGetScreenDisplayId(), modelled on qt5's QtOhosExtras::tryGetScreenDisplayId(), to expose a screen's native OpenHarmony display id to plugin-external code. It delegates to a new internal QNativeInterface::Private::QOhosScreen::displayId(), implemented by QOhosPlatformScreen. Drop the now-unused QOhosQpaFunctions hook that previously provided the id. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I6c3dfbaa751e351be2d0d464b73903cc8aa6d4ca Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/ac6e2e3ca47021349e68ebbaf58ddf008dcc22b1 Git commit 5b253e1c08bfd29c50975476ea8003e86dbc92d9 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: add QOhosAppContext::isNoUiChildMode() Add QtOhosAppKit::QOhosAppContext::isNoUiChildMode(), modelled on qt5's QtOhosExtras::QOhosAppContext::isNoUiChildMode(), to expose to apps whether the current process was started as a "No UI" child process. It checks the default QAbility on the JS thread via QOhosJsThreadGateway and caches the result, since the mode is fixed for the process lifetime. Drop the now-unused QOhosQpaFunctions::readOhosNoUiChildMode() hook that the qt5 implementation relied on. That hook tested defaultQAbilityPeer()->instanceId().empty(); the new check !defaultQAbility() is equivalent, as both are true exactly when the default QAbility peer is the dummy peer, where the empty instance id and the empty ability always go together. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I7b65e292e47f26523de0e043a5c2efd7ea7dcc84 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5b253e1c08bfd29c50975476ea8003e86dbc92d9 Git commit 168ecaee88a4c891ac938694f51f3cad80748c55 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: add setMainWindowGeometryPersistenceHint() Add QtOhosAppKit::Window::setMainWindowGeometryPersistenceHint(), modelled on qt5's QtOhosExtras::setMainWindowGeometryPersistenceHint(), to let apps control whether the main window restores its last geometry on startup. It bridges to the plugin through a new private QOhosIntegration native interface method that takes a std::optional<bool> (true/false/unset = Enabled/Disabled/FollowSystemSetting), avoiding a bridge-level enum. Drop the now-unused QOhosQpaFunctions counterpart that the qt5 implementation relied on. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I19093078cfac41ae6c8d08629aab4ebc2441ff2b Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/168ecaee88a4c891ac938694f51f3cad80748c55 Git commit 28b2b2db5e8ffaa956b7acfa2ec7600c76851e2d by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: drop dead setInAppOnlyPasteboardShareOption() hook Remove QOhosQpaFunctions::setInAppOnlyPasteboardShareOption() and its QOhosQpaFunctionsImpl implementation. It is dead scaffolding: apps already reach this functionality through the existing QtOhosAppKit::QOhosPasteboard::setInAppOnlyPasteboardShareOption(), which doesn't use QOhosQpaFunctions implementation. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I5f46fb1280856f26033469feff58565657274d90 Reviewed-by: Arkadiusz Zarębski <[email protected]> Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/28b2b2db5e8ffaa956b7acfa2ec7600c76851e2d Git commit c359f4d6de1b629a7908a87af4a289df73e240fe by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: give appContext env callback typed method list registerAppContextEnvironmentCallback() takes the callback as a QNapi::Object, an opaque type that expresses nothing at compile time about the required shape (a set of named callback functions). Take the methods directly instead, as a std::vector<std::pair<std::string, QNapi::CallbackFuncWrapper>>, so the parameter's static type states exactly what it accepts, and the helper builds the JS EnvironmentCallback object itself. This also makes the registration reusable by callers that only want to supply handlers rather than assemble QNapi objects. Update registerAppConfigurationUpdateListener() to pass the method list. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I1f854ea31d860472876fb5faf6a6721b517aeda3 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/c359f4d6de1b629a7908a87af4a289df73e240fe Git commit f568d21d084a47a502d1bf547a88aa067100ec00 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: inline and drop registerAppConfigurationUpdateListener registerAppConfigurationUpdateListener() is a thin wrapper with a single caller, makeOhosConfigValueDataSource(). Now that registerAppContextEnvironmentCallback() takes the callback methods directly, the wrapper only forwards an onConfigurationUpdated handler. Inline it into makeOhosConfigValueDataSource() and remove it. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: Id0d2ceae3481e3e58361a86fbd82e7da4cc0ad87 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f568d21d084a47a502d1bf547a88aa067100ec00 Git commit 42b7fa6319d4817febb190939385d14435e74460 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: decouple appContext env callback from in-plugin APIs registerAppContextEnvironmentCallback() depends on plugin-internal APIs: it takes a QtOhos::JsState, reads the ability via defaultQAbilityPeer(), and unregisters via runInJsThreadAndWait(). These keep it bound to the platform plugin. Switch it to the corelib QOhosJsState interface: take QOhosJsState, read the ability via defaultQAbility(), and unregister via QOhosJsThreadGateway::runAndWait(). It now depends only on corelib APIs, so it can be reused (and later relocated) outside the plugin. defaultQAbility() yields no value when there is no default ability; in that case register nothing and return an empty handle, rather than evaluating on the dummy ability. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I4636a1db6874221c085139173f1761fde3cce276 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/42b7fa6319d4817febb190939385d14435e74460 Git commit 8aef367d21c52c27e892e240fff87164dada3ea9 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: mv appContext env callback registration to corelib We want to use registerAppContextEnvironmentCallback() outside the OHOS platform plugin. It now depends only on corelib APIs, so move it from the plugin (qohosjsutils) to corelib (qohosjstools) and export it as registerOhosAppContextEnvironmentCallback() (corelib symbols carry the Ohos prefix). Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I5e75b4a00947dc2f508c0cb2159e8b72ac759773 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/8aef367d21c52c27e892e240fff87164dada3ea9 Git commit 3cbcc6ac6b126172d0c8361b358d3cdc17cdbc72 by Zbigniew Chyla on 17/07/2026 at 07:54.. ohos: expose font size scale via QOhosAppContext Add fontSizeScale() and the fontSizeScaleChanged() signal to QtOhosAppKit::QOhosAppContext, modelled on qt5's QtOhosExtras::QOhosAppContext, so applications can read the current OHOS font size scale and react to changes. QOhosAppContextImpl backs them with a corelib data source (makeQOhosDataSource) seeded from the app configuration and updated via registerOhosAppContextEnvironmentCallback(); changes are delivered on the Qt thread and emitted as fontSizeScaleChanged(). Drop the now-unused QOhosQpaFunctions backend (makeOhosConfigFontSizeScaleDataSource), which existed only for qt5's QtOhosExtras. Task-number: QTBUG-147194 Pick-to: 6.12 Change-Id: I64f8dd9942436f93a3e12672a09313b3f79738c1 Reviewed-by: SanthoshKumar Selvaraj <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/3cbcc6ac6b126172d0c8361b358d3cdc17cdbc72 Git commit 0242bbdba2ccb8b31d482012af4c9ae757655be0 by Joerg Bornemann on 17/07/2026 at 09:34.. CMake: warn about unhandled .qrc files added as target sources A .qrc file listed as a source of a Qt target, e.g. qt_add_executable(app main.cpp app.qrc) is silently ignored unless AUTORCC is enabled or the file is passed to qt_add_resources(): rcc never runs on it and its resources are missing at runtime with no diagnostic. This is a common trap, made worse by qt_standard_project_setup() enabling AUTOMOC and AUTOUIC but deliberately not AUTORCC. At target finalization, scan the target's sources for such .qrc files and emit a warning. A .qrc is considered handled, and does not warn, when it was consumed by a Qt resource function (tracked via the new _qt_resource_file_handled source-file property), when it is marked HEADER_FILE_ONLY (listed only for IDE visibility, which also covers the .qrc that qt_add_resources(FILES ...) generates and exposes to IDEs), or when AUTORCC will run rcc on it. The warning can be silenced per file via the HEADER_FILE_ONLY source-file property, or for a whole scope via the QT_NO_UNHANDLED_QRC_SOURCE_WARNING variable. [ChangeLog][CMake] A .qrc file added directly as a target source without being processed by qt_add_resources() or AUTORCC now produces a warning at configure time instead of being silently ignored. Mark the file HEADER_FILE_ONLY or set QT_NO_UNHANDLED_QRC_SOURCE_WARNING to silence it. Fixes: QTBUG-139750 Change-Id: I6424250aff2f639629fed324bbc26598810052c0 Reviewed-by: Alexandru Croitor <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/0242bbdba2ccb8b31d482012af4c9ae757655be0 Git commit 78f595689378643dc39e29b340a24039769ed08c by Joerg Bornemann on 17/07/2026 at 09:34.. CMake: Fix QML deployment when configuring through a junction _qt_internal_get_deploy_impl_dir returned the raw ${CMAKE_BINARY_DIR}/.qt, but file(GENERATE) resolves junctions and writes the per-target QML deploy scripts under the real build directory. The stored __QT_DEPLOY_IMPL_DIR kept the junction path, so qt6_deploy_qml_imports could not find them. Resolve the deploy impl dir with REALPATH so generation and lookup agree. Fixes: QTBUG-148296 Pick-to: 6.12 Change-Id: I87ba814801d64e1d9627c12cc7c493739c3dcdf8 Reviewed-by: Alexandru Croitor <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/78f595689378643dc39e29b340a24039769ed08c