summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* QSpan: add as_(writable_)bytesMarc Mutz2024-05-232-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | For std::span, these are free functions in namespace std and therefore work for anything implicitly convertible to std::span, incl. QSpan. But they're C++20, QSpan needs something for C++17 builds. By adding them as hidden friends for QSpan, we allow unqualifid calls to transparently resolve to the respective overload, ensuring source-compatibility between std:: and QSpan, and, eventually, a transition back to std::as_*_bytes. I considered the alternative to add these functions in the q20 namespace, but q20::as_bytes() would have to take QSpan, and QSpan is convertible from more types than std::span, so we wouldn't be able to guarantee that std::as_bytes(t) works for all T t for which q20::as_bytes(t) works, the fundamental guarantee for namespace qNN. [ChangeLog][QtCore][QSpan] Added std::span-style as_bytes() and as_writable_bytes() functions. Fixes: QTBUG-125489 Change-Id: Ia9a7560c7843e182892608178433be7349c825ba Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Document function argumentAndreas Eliasson2024-05-231-1/+1
| | | | | | | | | | The current docs describes the function name, when, in fact, it should refer to the argument. Fixes: QTBUG-123838 Pick-to: 6.7 Change-Id: I36e3bdff66712b8f35ac19859acb65e6fdcdf355 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Network: add MTU implementation when getifaddrs is definedAssam Boudjelthia2024-05-231-8/+18
| | | | | | Task-number: QTBUG-125023 Change-Id: I288df0d766f23dc569cedba52523fadedbff6491 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: bump min supported SDK to 28 (Android 9)Assam Boudjelthia2024-05-234-6/+6
| | | | | | | | | | | Bump the minimum supported Android API from 23 to 28 i.e. Android Oreo 9. This is done to focus more and more on recent versions. Fixes: QTBUG-125023 Task-number: QTBUG-124890 Change-Id: I4d510b771f413e5711dd44de454211e019c63db6 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
* wasm: add autorepeat for QKeyEventLorn Potter2024-05-233-2/+3
| | | | | | | | | We weren't handling it at all, emscripten already supports it. Fixes: QTBUG-125222 Pick-to: 6.7 Change-Id: I761eed2c8c034604cd02ba436db68cec4fdeb784 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QString: replace homebrew toString() with the Real Deal™Marc Mutz2024-05-231-4/+1
| | | | | | | | | | | QLatin1StringView has had a toString() since Qt 6.0. Remove the wrapper. Pick-to: 6.7 6.5 Task-number: QTBUG-124365 Change-Id: I91e1cc9a2be2d01f309d681b5abcaf417fa584da Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QUuid, GUID: use new comparison helper macrosTatiana Borisova2024-05-223-55/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | Replace public friend operators operator==(), operator!=(), operator<(), etc of QUuid and GUID with friend methods comparesEqual() / compareThreeWay(). Use Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE, because the (in)equality operators are constexpr. And then we use helper macros, because the other relational operators are not constexpr. Cannot make relational operators constexpr, because it requires to make variant() and isNull() methods constexpr and QT_CORE_INLINE_SINCE. But the experiments show that it does not work with adding constexpr to QT_CORE_INLINE_SINCE. Put relational operators under !QT_CORE_REMOVED_SINCE(6, 8) to prevent an ambiguity. On Windows the metatype for QUuid is created in removed_api.cpp. That leads to an ambiguity, and as a result the compiler fails to create the equals methods of QMetaTypeInterface. This, in turn, leads to the failed comparisons. The usage of !QT_CORE_REMOVED_SINCE(6, 8) solves the problem. Task-number: QTBUG-120304 Change-Id: I640bdeb8f1f7306ba06b9e4193d008cf2bb6dbfb Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* a11y uia: Bridge QAccessibleAttributesInterface to UIAMichael Weghorn2024-05-233-0/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bridges the 2 currently existing attribute types for the newly added QAccessibleAttributesInterface to UIA. As described in the AT-SPI bridge implementation already, QAccessible::Attribute::Level semantically matches the "aria-level" ARIA attribute, and is mapped to a "level" property for the UIA_AriaPropertiesPropertyId as described in the Core Accessibility API Mappings specification for both, headings [1] and non-headings [2]. Map all attributes set in QAccessible::Attribute::Custom to that property as well, keeping key and value as they are. As described in the UIA Element Properties Identifiers doc [3] for UIA_AriaPropertiesPropertyId: > AriaProperties is a collection of Name/Value pairs with > delimiters of = (equals) and ; (semicolon), for example, > "checked=true;disabled=false". In addition, if the level attribute is set for an object of role heading, report the corresponding StyleId_Heading for UIA_StyleIdAttributeId, as also described in the Core Accessibility API Mappings spec [1]. For MingW, add UIA_StyleIdAttributeId and StyleId_Heading<NUMBER> defines to qwindowsuiautomation.h, as the MingW headers apparently don't have them yet (see log of failed MingW builds without those defines: [4] [5]). [1] https://www.w3.org/TR/core-aam-1.2/#ariaLevelHeading [2] https://www.w3.org/TR/core-aam-1.2/#ariaLevel [3] https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-automation-element-propids [4] https://testresults.qt.io/logs/qt/qtbase/95edcdf493fedcc1ea8f8e824952bdb7c3a34ade/WindowsWindows_11_23H2x86_64WindowsWindows_11_23H2x86_64Clangqtci-windows-11_23H2-x86_64-52-70a4f4Sccache_UseConfigure/051e46739b880c22b4046471996739d0ea38dfd2/build_1716364832/log.txt.gz [5] https://testresults.qt.io/logs/qt/qtbase/c62cb39d9177e0ea724751e6346717855c91b2c7/WindowsWindows_10_22H2x86_64WindowsWindows_10_22H2x86_64Mingwqtci-windows-10_22H2-x86_64-51-30b063Sccache_UseConfigure_WarningsAreErrors/b8e624167842d77c2f66d5bb28543b39336b4b80/build_1716370445/log.txt.gz Fixes: QTBUG-119057 Change-Id: I00b15e95c35c0f31ba34161bc061a3085fc28682 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Widgets focus abstraction: Fix re-parentingAxel Spoerl2024-05-231-26/+54
| | | | | | | | | | | | | | | | | | | | | | | | | Focus abstraction in 58d5d4b7c2faaeaa2c2ccdabb3da6d37f9db880a was supposed to be behavior-neutral. QWidgetPrivate::reparentFocusChildren used QObject::findChildren() to find children inside and outside the current focus chain. If the re-parented widget had only direct children and the focus chain was equal to creation-order, the result was identical to previous behavior. When the re-parented widget had grandchildren, the behavior differred. While not being detected by existing tests, it caused a regression. Re-implement the previous logic: Iterate through the focus chain, instead of relying on QObject::findChildren() returning a complete and well-ordered list. Modify tst_QWidget::focusChainOnReparent() in order to cover the regression. This amends 58d5d4b7c2faaeaa2c2ccdabb3da6d37f9db880a. Fixes: QTBUG-125257 Change-Id: Iff4f1d0d9b6117c50c8980dfb6eebfc6f6d4a710 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows: only consider actual palette when selecting frame appearanceVolker Hilsheimer2024-05-222-7/+0
| | | | | | | | | | | | Even if dark mode has been requested by the application explicitly, a style, like the Vista style, might polish the palette to be light. In that case, the frame should be light as well. Amends 95d4e6bababfeb36fa8a355a8487b64eb3ffb587. Task-number: QTBUG-124490 Change-Id: I7ddb0a80a5f043e98cf184537bffe75e917c3d38 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QT_DISABLE_DEPRECATED_UP_TO and QT_WARN_DEPRECATED_UP_TO to headerAlexey Edelev2024-05-224-22/+66
| | | | | | | | | | | | | | The new approach allows to imply the macro definitions for every Qt submodule and user project without the need of setting it explicitly from CMake. This also prevent users from introducing the incompatibility between Qt modules due to defining the QT_DISABLE_DEPRECATED_UP_TO version lower than qtbase was built with. Task-number: QTBUG-124765 Change-Id: I7ba481f62cb9073ae0343c400ffc26f239f080f1 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QMessageAuthenticationCodePrivate: mark ctor explicit and noexceptMarc Mutz2024-05-221-1/+1
| | | | | | | | | Both members, QCryptographicHashPrivate and QSmallByteArray, are nothrow-constructible. Pick-to: 6.7 Change-Id: I59fa93db15906002f230eb12b8639a595ef559cf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* syncqt: Fix the symbol detection regexAlexey Edelev2024-05-221-11/+4
| | | | | | | | | | | | Add the support for multiple prescending macros like QT_TECH_PREVIEW_API, Q_<MODULENAME>_EXPORT. This also fixes couple issues caused by previous regex version. Task-number: QTBUG-125395 Change-Id: I8781b52cb57dd14b427df226deb281619e7fc5d2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* a11y atspi: Bridge QAccessibleAttributesInterface to AT-SPIMichael Weghorn2024-05-223-4/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bridges the 2 currently existing attribute types for the newly added QAccessibleAttributesInterface to AT-SPI2 by using the corresponding object attributes. QAccessible::Attribute::Level semantically matches the "aria-level" ARIA attribute, and is mapped to the "level" AT-SPI object attribute as described in the Core Accessibility API Mappings specification for both, headings [1] and non-headings [2]. All of the key-value pairs set in the QAccessible::Attribute::Custom attribute are bridged to the AT-SPI level as object attributes using the same names and values. Together with a corresponding demo change [3] for LibreOffice implementing support for the QAccessible::Attribute::Level attribute in the qt6-based LibreOffice variant, this makes the specific use-case for reporting the heading level mentioned in QTBUG-119057 work with the Orca screen reader. Also tweak the QAccessibleAttributesInterface::attributeValue documentation to clarify the type to be returned in the QVariant. (The newly added AT-SPI implementation has corresponding asserts.) [1] https://www.w3.org/TR/core-aam-1.2/#ariaLevelHeading [2] https://www.w3.org/TR/core-aam-1.2/#ariaLevel [3] https://gerrit.libreoffice.org/c/core/+/159309 Task-number: QTBUG-119057 Change-Id: I7ccdbbcd601c176319ca547d4bdf50b8f93bd7d8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QLibraryInfo: Refactor in preparation of multiple entries [2/2]Fabian Kosmale2024-05-221-16/+25
| | | | | | | | Move the extraction of the QVariant from QSettings into a helper function. Change-Id: I3b6be9939e138a244626dd81dbc3535e75770bb9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLibraryInfo: Refactor in preparation of multiple entries (1/2)Fabian Kosmale2024-05-221-27/+30
| | | | | | | | | | | | | Extract the path normalization into a helper function, and use qScopeGuard for leaving QSetting's group. Moreover, slightly modernize the code by using sliced instead of mid, and by using the more appropriate qEnvironmentVariable over getenv (our target is a QString, and the variable contains user text). Change-Id: I08e600782864684f10ff03451c789e59cdb8febf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* QtQuickView: Separate loading of Qt libs from View creationTinja Paavoseppä2024-05-221-19/+31
| | | | | | | | | | Add a new constructor that takes just the parent Context. This constructor will not load the Qt libraries or start the Qt app straight away - the new method loadQtLibraries() will need to be called for that. Change-Id: I4e94928d23cb9a495400413d0306961e521303d4 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* a11y: Notify of name change when setting window title used as a11y nameMichael Weghorn2024-05-221-0/+14
| | | | | | | | | | | | | | | | | | | When no explicit accessible name is set for a window, QAccessibleWidget::text uses the window title instead for a non-minimized window. Send a QAccessible::NameChanged event when changing the window title results in a change of the accessible name, to ensure that the AT-SPI cache on Linux gets updated. Extend tst_QAccessibility::mainWindowTest() to cover the scenario as well. Note: The entire test function is skipped on platforms not supporting window activation, e.g. Wayland. Fixes: QTBUG-124192 Change-Id: I0fa7f683fb5969d6ba9878f6a506c4f192069799 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* a11y: Make AnnouncementPriority a Q_ENUMAleix Pol2024-05-221-0/+1
| | | | | | | | It makes it possible to have it used from QML. Change-Id: Ie4a1ef432f2a06e1d4bbe106bd41b5843e24d8bb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
* QVariant: do reset is_null after setValue()Thiago Macieira2024-05-211-0/+1
| | | | | | | | | | | | | | | | | Issue introduced by a68e4f3b96a82a93898f381e8ddc7f50f9c89d40 ("Use the new QMetaType API in QVariant") in 6.0, which removed the d.is_null reset at the same time as it replaced the std::destroy_at / std::construct_at pair with an assignment operation. [ChangeLog][QtCore][QVariant] Fixed a bug that would allow the class to keep returning isNull() = true even after calling setValue(). Fixes: QTBUG-125472 Pick-to: 6.5 6.7 Change-Id: If05cb740b64f42eba21efffd17d13f6b1e8113c2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: remove \c format from manifest table row titlesAssam Boudjelthia2024-05-221-2/+2
| | | | | | | | | to keep the same format because \c is only used with two tags which is unconsistent. Pick-to: 6.7 Change-Id: Ie49f6c22a0f0813d49ea69865a80133ad81011c5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* QWindows11Style: Initialize colorSchemeIndex/highContrastTheme in ctorWladimir Leuschner2024-05-211-0/+4
| | | | | | | | | | | When creating a QWindows11Style with QStyleFactory::create() the current colorSchemeIndex and highContrastTheme usage is not set. Those values are now queried and set also in the Constructor of QWindows11Style. Fixes: QTBUG-124524 Pick-to: 6.7 Change-Id: I42a3aa5bafb0ff4193b8644ac1895a78b8c82120 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QIcon: Adjust documentation of QIcon::pixmap()Christian Ehrlicher2024-05-211-1/+3
| | | | | | | | | | | | The documentation of QIcon::pixmap() taking a devicePixelRatio could be read in the way that a QPixmap of the requested size and devicePixelRatio is generated which is not true. The generation part is only valid for the given mode and state. Pick-to: 6.7 6.5 Change-Id: I5374cd7be17c32cd87d7b35552e60a4c07ebe6b2 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* QKdeTheme: update color scheme with unknown desktop themeAxel Spoerl2024-05-211-4/+1
| | | | | | | | | | | | | | | | | | When a KDE theme name doesn't contain the keywords "dark" or "light", QKdeThemePrivate::updateColorScheme() falls back to heuristics. It compares text and base color. It sets the color scheme to dark, if text is lighter than base and otherwise to light. When the theme name can't be read from KDE settings, because it is stored on a different location or not yet set, the heuristics fallback doesn't happen. The color scheme always becomes "Unknown". Remove this limitation to the benefit of currently unsupported Linuxes. Fixes: QTBUG-125285 Pick-to: 6.7 Change-Id: I120dd23eee71b14ea8ce3735c3f53bda2caa403e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QCommonStyle: fix drawing artifacts for some standard iconsChristian Ehrlicher2024-05-2110-0/+0
| | | | | | | | | | | | | Some standard button icons do not have the correct quadratic extent which leads to rendering artifacts. Even though the real fix might be to actually let QIcon::actualSize() return the correct pixmap size instead the size given by the construction of the QIcon via QIcon::addFile() this fix does not hurt anyone. Pick-to: 6.7 6.5 Fixes: QTBUG-73655 Change-Id: I43edb38b0146e7d0a698f7a6239da5dbfbc65aa4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Q_APPLICATION_STATIC: provide QApplicationStatic headerThiago Macieira2024-05-211-0/+4
| | | | | | Task-number: QTBUG-125097 Change-Id: Ic5b1273bb0204c31afd8fffd17ccf717f8abb726 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Fix build with -no-feature-mdiareaVolker Hilsheimer2024-05-211-2/+12
| | | | | | | | | | | Amends 96fcb4ef84bb7486221f04e53be8ee7218385178. Fixes: QTBUG-125506 Pick-to: 6.7 Change-Id: I8d7b4396623f4420f6901c44146a0cfd2cda4e5c Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de> Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Use CLDR alias data to find canonical IANA IDsEdward Welbourne2024-05-214-5/+385
| | | | | | | | | | | | | There are various legacy IANA IDs that we should recognize as aliases for their contemporary equivalents. Later work shall also take these into account in the Windows IDs. Scan CLDR's data about these aliases and use it when constructing QTimeZone. This adds aliasMappingTable and aliasIdData arrays to QTZP_data_p.h and an AliasData type to its QtTimeZoneCldr namespace. Change-Id: I1bbfce62959a7e1b7a0bc4a320c32f5a174a2ff2 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add Copyright and licensing information in fileLucie Gérard2024-05-211-0/+5
| | | | | | Task-number: QTBUG-124453 Change-Id: I380ea0ad99b187c736e6f80fa8825ee9866f54c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add copyright and licensing to build system files missing itLucie Gérard2024-05-213-0/+6
| | | | | | | Task-number: QTBUG-124453 Change-Id: Ibb6a0ab839a16ceef3c68861bac2f508ddb3d1ae Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: Remove unused qtActivityDelegate() APIPetri Virkkunen2024-05-212-24/+0
| | | | | | | | | Since the new functionality interface feature has removed all calls to qtActivityDelegate, this is no longer needed. Task-number: QTBUG-118874 Change-Id: Ibf65f953be8c4694b543610b405b65b91f3ec9ee Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Remove unused context menu functions from QtActivityDelegateBasePetri Virkkunen2024-05-211-25/+0
| | | | | | | | | | | | These are unused functions. They're only called through JNI and those calls are now through the interface system, so through the interface, which is the QtActivityDelegate object. These functions are also already overridden and, in the case of openContextMenu, only implemented by QtActivityDelegate anyways. Task-number: QTBUG-118874 Change-Id: I69f41752626ac9892ecef8e40187dfe4663ab08a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Enable QML embedding in servicesPetri Virkkunen2024-05-217-41/+39
| | | | | | | | | | | | | | | Need a convenient way to access QtServiceEmbeddedDelegate from native and create via QtView, so extend embedded delegate factory to handle creating them. QtView now initializes a QtEmbeddedViewInterface via QtEmbeddedViewInterfaceFactory, which now has a generic create() API that takes a Context object, and creates/returns a proper Service or Activity delegate. Task-number: QTBUG-118874 Change-Id: I8b04b280b9234f3ac3ab818b2d333430d1ac4e41 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Implement input backend interfacePetri Virkkunen2024-05-2112-176/+205
| | | | | | | | | | | | | | | | | | | Interface for input-related actions, based off of QtInputDelegate. Implements all the QtInputDelegate functions called from native code plus an extra function that allows the native side to get a QtInputConnectionListener object for QtWindow creation. Removed some unused functions and unmarked @UsedFromNativeCode in some that are no longer called from native, but still used from java. Added QtInputConnectionListener null checks in QtInputConnection, due to the possibility of a non-existent InputInterface returning a null QtInputConnectionListener for the QtInputConnection constructor. Task-number: QTBUG-118874 Change-Id: I8d4cde3e0c735471d0fa30d16db20eb13542cdaa Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* Android: Implement QtLayout backend interfacePetri Virkkunen2024-05-216-8/+22
| | | | | | | | | | Small interface, just for QtLayout. This is used in QtAndroid::qtLayout(), which is called by functions handling the virtual keyboard and the keyboard handles. Task-number: QTBUG-118874 Change-Id: Ib9b2830136d05dfd70c9c6ca86ac29be36cc5c30 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Implement context menu backend interfacePetri Virkkunen2024-05-215-20/+80
| | | | | | | | | Implements interface for context menu in QtActivityDelegate and QtEmbeddedDelegate. Task-number: QTBUG-118874 Change-Id: I799ad1aca4beb789b87830b720abf0963ca09274 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* Android: Implement accessibility backend interfacePetri Virkkunen2024-05-2110-88/+94
| | | | | | | | | | | | | | | | | | | | | | | | This will provide the JNI API used by QtAndroidAccessibility namespace via QtAndroid namespace. Removed unnecessary functions like createAccessibilityDelegate from QtEmbeddedDelegate, moved the interface extension to where it is actually supported: QtActivityDelegate. Until now, QtActivityDelegateBase has called the QtEmbeddedDelegate implementation on createAccessibilityDelegate() in order to create a QtAccessibilityDelegate - which has not actually created the delegate - and then done a null check before trying to call the - always null - QtAccessibilityDelegate member. The embedding and service-embedding usecases are now dealt with via the interface validity checks on the C++ side, until an actual implementation for those is completed. Task-number: QTBUG-118874 Change-Id: Iea3db0e17ae80c0443e9027bdfe36bba311eed2b Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Implement interface for window-related backendPetri Virkkunen2024-05-218-20/+75
| | | | | | | | | | | | Add QtWindowInterface interface, to access native functionality related to windows. QtActivityBase now follows QtNative.onAppStateDetailsChanged in order to register and unregister functionalities of QtActivityDelegate. Task-number: QTBUG-118874 Change-Id: Ifad33bd7aac7683081f026f0591ef496909be095 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Implement backend register classPetri Virkkunen2024-05-217-2/+143
| | | | | | | | | | | | | | | | | | This class will be used by java delegates to register their supported functionalities to the Qt/C++ side. It registers two native functions: register- and unregisterBackend, which will be used by the aforementioned delegates. It will be used by C++ classes which currently use QtAndroid::qtActivityDelegate() to access a JNI object which implements all these features in one big class. Task-number: QTBUG-118874 Change-Id: I23a7e433104c20b96c08b682a96cfaec98ecb4a9 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* a11y atspi: Bridge help text to AT-SPIMichael Weghorn2024-05-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | at-spi2-core commit [1] commit 8f1c70155b4132de2c567b3034e4f242e0450df5 Author: Mike Gorse <mgorse@suse.com> Date: Wed Jan 3 16:52:31 2024 -0600 Add HelpText property and corresponding functions in atk and libatspi. Closes #146 added a HelpText property to AT-SPI2. Qt already has a corresponding QAccessible::Help, so report that as the HelpText property in the AT-SPI adaptor. [1] https://gitlab.gnome.org/GNOME/at-spi2-core/-/commit/8f1c70155b4132de2c567b3034e4f242e0450df5 Fixes: QTBUG-124197 Change-Id: I01489c1fdac953658d379951207f91784f3d1dfe Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: add QT_ANDROID_PACKAGE_NAME to android docs groupAssam Boudjelthia2024-05-211-0/+1
| | | | | | | Amends fbb35cdb0b2c302e5963900bf59bc91a7c21765a. Change-Id: I9fd8b2b4eb4d75e3b75be268db926a11eb0f4ada Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix qt_attribution file for libjpegEirik Aavitsland2024-05-211-1/+1
| | | | | | | | | | | | In the version update to 3.0.3, the LicenseId and LicenseFiles items were updated, but not the License item. Amends c9a1e8d306d588c161461f8b22b76b701d10bce0. Pick-to: 6.7 6.5 6.2 5.15 Change-Id: I21870c78a247740ea8d67487a18511169607daba Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Support application fallbacks for common scriptEskil Abrahamsen Blomfeldt2024-05-211-3/+28
| | | | | | | | | | | | | | | | | | | | | | While common script typically adapts the surrounding script, it is possible for strings of only punctuation (for instance) to remain undetermined. In addition, Qt considers Latin and Common the same in font matching, so in order to get merging for latin, we need to conflate them in the application fallback API as well. This also adds a couple of missing clears of caches (clearing the font cache itself when adding a new fallback, since the fallbacks are kept as part of the cached font engine + clearing the fallback cache when adding a new application font, since the new application font may be a fallback candidate). Note: This also adds some missing removeApplicationFont() calls from other tests, since these were causing issues with the new test. Task-number: QTBUG-124914 Change-Id: Idbfa0f6b492a9194eca67b57101e674f7b8a4ec4 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QKdeThemePrivate: refactor reading of KDE settingsAxel Spoerl2024-05-201-36/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | KDE settings locations and keys were hardcoded in QKdeThemePrivate. readKdeSetting() was implemented as a static method, because it was called from the static readKdeSystemPalette(). It expects a QStringList argument with the KDE settings directories, an int representing the KDE version, as well as a QHash with settings passed as a reference. Class members exist for settings directories and version. They have to be passed for each call. The hash containing settings objects will be created on the stack of each function making calles to readKdeSetting(). The settings key, including subsections, was passed as a QString. Implement enumerations for all KDE setting types and settings. Derive subsection from the settings type. Change the signature of readKdeSetting() from a string to the new enumeration. Implement a non static override of readKdeSetting, to avoid passing data memebers on each call. Implement a mutable has for KDE settings, to enable caching across functions in the future. This patch does not change any behavior. Task-number: QTBUG-125285 Pick-to: 6.7 Change-Id: Ic0320853e08e82dd83bdba1e7765a1e5c6ffb384 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* Fix documentation of QKdeThemePrivate::updateColorScheme()Axel Spoerl2024-05-201-5/+5
| | | | | | | | | | The method's documentation mentions appearance, instead of color scheme. Update it. Task-number: QTBUG-125285 Pick-to: 6.7 6.5 Change-Id: Iceb2b7d0a51d0ba34f98dd942d7988feb685a4f6 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* Add -Wweak-vtables to headerscleanJesus Fernandez2024-05-1911-11/+48
| | | | | | | | | | | | | | | | | | | This requires some fixes in several classes that are also included in this patch. The QTestEvent hierarchy is all-inline and changes layout depending on QT_GUI_LIB and QT_WIDGETS_LIB, so we can't just export it. Suppress the warning in that header for now. Created QTBUG-104486 to track a fix for the real issue. The QFutureInterface hierarchy is also all-inline, but templates, so doesn't trigger, except the <void> specialization. Created QTBUG-125115 to track a fix for the real issue. Done-with: Marc Mutz <marc.mutz@qt.io> Task-number: QTBUG-45582 Change-Id: I96b3e109aa989b70e0d4809b90bd53a369e50d55 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* [docs] QSpan: enable 2nd subspan() overload docsMarc Mutz2024-05-191-2/+0
| | | | | | | | | | | | | They didn't work due to qdoc bug QTBUG-118080, which has since been marked as fixed (for 6.7FF). Remove the protection. Task-number: QTBUG-115022 Task-number: QTBUG-118080 Pick-to: 6.7 Change-Id: I1b792676754074dd85611e647d4e2c372de3a647 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QByteArray/QString: use qregisteruint for storing the moving hashThiago Macieira2024-05-193-14/+14
| | | | | | | | | There are some architectures where sizeof(qregisteruint) > sizeof(size_t) so this could be a minor performance improvement. Change-Id: If05cb740b64f42eba21efffd17cf30c3ae5bd88f Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QByteArray: inline the REHASH macro into the codeThiago Macieira2024-05-182-18/+6
| | | | | | | | | | | It was used in a single place, in each of these files, now that the forward indexOf is moved to qbytearraymatcher.cpp. There's another copy in qstring.cpp. Task-number: QTBUG-125283 Change-Id: If05cb740b64f42eba21efffd17cf30607317877a Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QByteArrayView: move up the call to 1-char findByteArray()Thiago Macieira2024-05-181-3/+3
| | | | | | | | | | The public, inline QtPrivate::findByteArray() function duplicates some of the entry conditions that this does (including the negative from), so help the compilers. Task-number: QTBUG-125283 Change-Id: If05cb740b64f42eba21efffd17cf3034ce9ab9b8 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>