summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* WindowsVistaStyle/SpinBox: fix geometry for SC_SpinBoxUpChristian Ehrlicher6 days1-1/+1
| | | | | | | | | | The width of SC_SpinBoxUp was 1px more in contrast to SC_SpinBoxDown for unknown reaons (predates git history) which lead to drawing errors, esp. visible when the button was pressed. Pick-to: 6.10 6.8 Change-Id: Ibea0d741950e5754be771edad6bd3185b5a43a87 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QStyleSheetStyle: properly handle up/down stylesChristian Ehrlicher6 days1-6/+3
| | | | | | | | | | | Even when there is no rule for the complete QSpinBox, the handles could have a rule which should be honored. Pick-to: 6.10 6.8 Fixes: QTBUG-141916 Task-number: QTBUG-133845 Change-Id: I9411238b6d6aeaab51432b02bf66c97ca3b3b6af Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Windows11Style: adjust sort indicatorChristian Ehrlicher6 days1-10/+11
| | | | | | | | | | | | | Adjust the sort indicators for itemviews: - paint them above/below the text instead right of the label - the 'up' indicator is for ascending, 'down' for descending order on windows Pick-to: 6.10 6.8 Task-number: QTBUG-126345 Fixes: QTBUG-141895 Change-Id: Id649b5b36e5d1b84d68a7b05aebf2f53eddf9861 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* QMultiHash: remove an unneeded std::move()Marc Mutz6 days1-1/+1
| | | | | | | | | | | | | | | | | | The old code use std::move() on the result of Node::takeValue(). Node::takeValue() currently returns a T&&, which already is an rvalue. Even if the return value gets changed to T-by-value at some point, it still will be an rvalue, so we can safely drop the std::move here, as the argument is already an rvalue. Amends d281f5cc35a974840441e8ed2587bbe74789e9ee. Safe to pick, since takeValue()'s signature hasn't changed since before Qt 6.0 (5b7c3e31b538376f2b4733bd868b5875b504cdb3, specifically). Pick-to: 6.10 6.8 6.5 Change-Id: I2be3241d735e3e2931ab2cc8f13720e0b4629181 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QTextHtmlParser: Support "del" tagKai Uwe Broulik6 days3-0/+6
| | | | | | | | | | | | | Indicates that text has been removed from a document and is rendered with strike-through like the "s" tag. It was supported by Qt Quick's style text parser but not QTextDocument. Change-Id: I7312dbba2b2066a74033b607688eef17cc380559 Reviewed-by: <carl@carlschwan.eu> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Sune Vuorela <sune@vuorela.dk>
* CMake: Fix rcc big resource feature in in-tree example buildsAlexandru Croitor7 days1-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | qt6_add_big_resources creates a helper object library using _qt_internal_add_rcc_pass2 and disables AUTOMOC and AUTOUIC for it. qt_examples_build_end collects all targets created in the examples subdirectory, an enables AUTOMOC and AUTOUIC for them, to avoid some top-level build issues. If an example uses qt6_add_big_resources, then during an in-tree example build, AUTOMOC is re-enabled for the helper object library. That causes build errors due to $<TARGET_OBJECTS:obj_lib> usage in _qt_internal_add_rcc_pass2 expanding also to a mocs_compilation.cpp file and passing a semicolon separated list to rcc --temp option. Set a _qt_internal_is_rcc_pass2_obj_lib property on the object library, and skip re-enabling AUTOMOC and AUTOUIC for it when querying for in qt_examples_build_end. This allows using qt6_add_big_resources in examples without causing build errors. Pick-to: 6.8 6.10 Change-Id: Ib22f77b683757f0981b3ab788edb63bb9e74f67a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update CLDR to v48Edward Welbourne7 days8-186017/+195651
| | | | | | | | | | | | | This is just the plain upgrade without adding new languages. It required two changes to expected data in tests. [ChangeLog][QtCore][Third-Party Code] QLocale now uses v48 of the Unicode Consortium's Common Locale Data Repository (CLDR). Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-141949 Change-Id: I8d3a299c602e6cd5ea76c6bc479028aeda8b8e50 Reviewed-by: Mate Barany <mate.barany@qt.io>
* QMenu: Trigger on button releases without seeing pressed buttons beforeDavid Redondo7 days1-3/+6
| | | | | | | | | | | | | | | | | | | | On Wayland we can't make any assumptions about button state when we don't have pointer focus. Crucially when opening a popup (menu in this case), a pointer leave (focus out) event for the parent window and a pointer enter (focus in) event for the new menu window will be sent, and accordingly the platform backend resets the button state. However, this means QMenu might never see a move event with pressed buttons; and upon release, no action is triggered. If we see a release without having seen any pressed buttons: if the release happens over an action, activate it; otherwise do nothing, as before (it's just release of the press that opened the menu). Fixes: QTBUG-124920 Pick-to: 6.10 Change-Id: Id86e81431621ce577101bf7cf45252dd1a02bfc4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove redundant Q_FLAGS usage from two private classesAhmad Samir8 days2-2/+0
| | | | | | | | | Both classes don't inherit from QObject, so the Q_FLAGS macro doesn't register anything with the meta-object system here. Task-number: QTBUG-99060 Change-Id: Id25f8b92cfe6eeade28059f5f7c661603f08e863 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QString: fix docs, QChar::unicode() returns char16_tAhmad Samir8 days1-2/+2
| | | | | | | | | | Pointed out by Marc in code review. Drive-by, use \c to markup ushort. Pick-to: 6.10 6.8 6.5 Change-Id: I81e9997bd07d3c8e4093f42b3a9c2068d8ba4e6e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix build with disable-deprecated 6.6: QList is forward-definedThiago Macieira8 days1-0/+2
| | | | | | | | | | | | qtbase\src\corelib\compat\removed_api.cpp(763): error C2027: use of undefined type 'QList<QString>' qtbase/src/corelib/tools/qcontainerfwd.h(40): note: see declaration of 'QList<QString>' qtbase\src\corelib\compat\removed_api.cpp(1307): error C2027: use of undefined type 'QDynamicMetaObjectData' qtbase/src/corelib/kernel/qobject.h(43): note: see declaration of 'QDynamicMetaObjectData' Pick-to: 6.10 6.8 Fixes: QTBUG-141994 Change-Id: I63324a2cc3b89c62d9ecfffd07b7b82e4ea72641 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* qcombobox_p.h: clean up includesMarc Mutz8 days2-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add: - <array> for the data member in QComboBoxPrivate, amending d8e110054876b1cbf186e95bac5561a237ee1c13 - <limit> for numerical_limits in ibid, amending f0443984b84dea782ccd06dbce59808d55b15dbe Replace with fwd decl, because the header uses in-name-only, add include to .cpp file, if not already present: - QLineEdit - QPainter - QStyleOption subclasses Remove, because after the recent moves of code from the header to the .cpp, these are no longer needed: - qapplication.h - qcompleter.h - qevent.h - qstandarditemmodel.h (moved to .cpp) In qcombobox.cpp, besides the additions implied by the changes to the _p.h, remove the qcombobox.h include and rely on the transitive include though the _p.h, thus checking the _p.h file includes for completeness. This reliance on transitive includes is ok, because they're all from the same component. Add includes in the recommended style (<>, QtModule/, grouped by module, groups ordered by generality, ascending, within groups alphabetically), staying away from the unordered pre-existing includes as much as possible. Just move the <array> includes into the right spot, amending 4a7c76d4a5365343178ea29c8a8e9b8d8acb89b5. Not picking back to not cause problems with users that rely on transitive includes, even though this is a private header. Change-Id: I3aa42daf15f51df02dda4d3ab5aad1c9fb4dfa84 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QComboBoxPrivateScroller: port timerEvent() to QTimerEvent::matches()Marc Mutz8 days1-1/+1
| | | | | | | | This API was added for 6.9; use it instead of comparing IDs manually. Pick-to: 6.10 Change-Id: I9f67295b10f32534c2888e0ffc357a2b824bc5fa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* De-inline QComboBoxDelegateMarc Mutz8 days2-33/+61
| | | | | | | | | | | | | | | | Virtual functions should not be implemented inline. In particular, all virtual functions were implemented inline (incl. the dtor), so this class caused -Wweak-vtable, incl. all the negative effects that entails. As a drive-by, mark the contructor explicit, use Qt::StringLiterals, and cache the "separator" QString that we store in the model. Picking to all active branches to avoid conflicts going forward. Pick-to: 6.10 6.8 6.5 Change-Id: If3e2e9c6744844fa19047d4cadb35008172cde3d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* De-inline QComboBoxPrivateScrollerMarc Mutz8 days2-64/+102
| | | | | | | | | | | | | | | | | | | Virtual functions should not be implemented inline. In particular, all virtual functions were implemented inline (incl. the dtor), so this class caused -Wweak-vtable, incl. all the negative effects that entails. This also makes qcombobox_p.h compatible with QT_NO_KEYWORDS (the `emit`s were breaking it, even though the rest of the header dilligently used the Q_ variants of the keywords). As a drive-by, mark the contructor explicit and use chrono literals. Picking to all active branches to avoid conflicts going forward. Pick-to: 6.10 6.8 6.5 Change-Id: I6aa18328640a7cdcc809a8f77fc8c73ca839b93c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* qtdeprecationmarkers.h: add a comment on why we #undefMarc Mutz9 days1-0/+1
| | | | | | | | | | Not understanding these #undefs blocked me for some time while trying to introduce QT_DEPRECATED_MACRO, so make sure the next reader gets a head-start. Pick-to: 6.10 6.8 6.5 Change-Id: I77afe04beee00c1a4db65e5c160d052946f89f0a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Enable support for QFile::moveToTrash() on iOSTor Arne Vestbø9 days1-11/+0
| | | | | | | | | | | | The platform nowadays has support for moving files to the trash. Doing so will make the file available under "Recently Deleted" in the Files app. Pick-to: 6.10 Task-number: QTBUG-120528 Change-Id: I38d1115d96eb6df8512f0165db93af5c1c8b595b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Use QUniqueHDCHandle in QWindowsContextPavel Dubsky9 days1-7/+6
| | | | | | Change-Id: Id8ed8239aedaa59e86beba79c2e10663f8ba1c06 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* wasm: simplify compose key handlingMorten Sørvig9 days3-44/+15
| | | | | | | | | | | | | | | | Use keyCode 229 to determine if the key event is a part of input method compose, as documented by MDN: developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event#keydown_events_with_ime This restores correct key event behavior where KeyPress events are sent for key events which are not part of an input method compose. Pick-to: 6.10 Task-number: QTBUG-141226 Change-Id: I681ec15cae70c00049c9be03f6ea98222498ba6a Reviewed-by: Lorn Potter <lorn.potter@qt.io>
* macdeployqt: Make sure the app binary is signed after any other binarieKai Köhne10 days1-0/+11
| | | | | | | | | | | | | | | This avoids a codesign verification error that may appear as "nested code is modified or invalid". This commit was originally created by https://github.com/tsteven4 https://github.com/qt/qtbase/pull/125 Pick-to: 6.5 6.8 6.10 Change-Id: Ifa0b4ed9da1d7b36cb54f9d2fa6aee48c1fe519c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Support assignment from empty bracesPavel Dubsky10 days1-1/+5
| | | | | | | | This makes resetting a handle more natural and idiomatic, matching modern C++ expectations without affecting existing semantics. Change-Id: I85e3c2e8b0d4c288d90b1739b83994d345a757ed Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* platform/unix: fix build with -no-feature-systemtrayiconNick Shaforostov10 days4-5/+9
| | | | | | | | | | | | make sure qdbustrayicon_p.h is included only once and only when systemtrayicon feature is enabled qdbuslistener: stop including unused qdbustrayicon_p.h this is a refactoring left-over Pick-to: 6.10 Change-Id: Ib848dae56e865dc05453f25c31a08fb2ec2e8305 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Doc: Fix "Building with CMake and CTest" section in testlib overviewJoerg Bornemann10 days1-5/+6
| | | | | | | | | An earlier attempt to fix links created a superfluous link to the section in the first sentence of the section. Fix the paragraph. Pick-to: 6.10 6.8 Change-Id: If11803340659127429142d36d7669b9f91f7c2ee Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QFileSystemEngine/Win: use qEnvironmentVariable instead of qgetenvMate Barany10 days1-5/+5
| | | | | | | | | It returns a QString immediately so there is no need for additional conversions. On Windows, it is also lossless. Pick-to: 6.10 Change-Id: I672d362116551a578c9eb111dd56785893de22be Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QThread/Unix: intercept exceptions only with GlibcVladimir Belyavsky10 days1-9/+11
| | | | | | | | | | | | | | | | | See 5677b70eee2e923eea8e5150500ac745d8d54974 for details why we need such specific exception handling for Glibc. In short, on Glibc, pthread_cancel and pthread_exit are implemented by throwing a special kind of exception that can be caught, but must always be rethrown. That exception is then used to activate the cancellation clean-up handlers. But for libc++ on Apple platforms we can simply wrap it as noexcept to guarantee that std::terminate() will be called in case of any unhandled exception. Task-number: QTBUG-141803 Pick-to: 6.10 6.8 Change-Id: Iaa88d3a8091425206ee2735e835ae74fd087e9e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QRM: report the number of properties as column count in trees of gadgetsVolker Hilsheimer10 days1-8/+11
| | | | | | | | | | | | | | | | | | Instead of hardcoding the column count to 1 for one-dimensional ranges, use the row traits's fixed_size attribute, which reports the number of properties for rows that are gadgets. This was already correctly done for tables. To remove duplication, move the structure-independent part of the logic into a reusable helper in the base class. Add basic test coverage. Fixes: QTBUG-141885 Pick-to: 6.10 Change-Id: Ic10a8a61998184485acb89ca9db0d9c9be822f2d Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* a11y: Add a11y implementation for QColorWellMichael Weghorn10 days6-1/+272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QColorWell widget is used to provide/present a set of predefined or custom colors in QColorDialog. So far, there was no accessibility implementation for this widget, meaning that the colors/items were completely inaccessible on the a11y layer. Introduce QAccessibleColorWell as new a11y implementation for QColorWell, and QAccessibleColorWellItem for all the color items it provides. As QColorWell arranges its items in columns (i.e. color indices 0 to QColorWell::numRows() - 1 are in first column, not 0 to QColorWell::numCols() -1 in the first row), also use the same order for the accessible children/child indices: Send a11y focus events when the focus moves between items in the QColorWell. This makes both, Orca on Linux and Narrator on Windows announce the currently focused item when navigating through the list using the keyboard. For now, use "RGB <red>, <green>, <blue>" for the accessible names of the color items (with <red>, <green and <blue> being the value for the color's RGB components), which is a form that the Orca screen reader could interpret in other contexts to speak the name of the closest known color, see [1], section "Speak colors as names". [1] https://help.gnome.org/users/orca/stable/preferences_speech.html.en Fixes: QTBUG-141571 Change-Id: I7ec64d87e6ae41070c5cb34341bbf527260cca3f Reviewed-by: MohammadHossein Qanbari <mohammad.qanbari@qt.io>
* De-inline QComboMenuDelegateMarc Mutz10 days2-13/+32
| | | | | | | | | | | | | | | | | | | | | | Virtual functions should not be implemented inline. In particular, polymorphic types ought to have an out-of-line dtor. In this case, not all virtual functions were implemented inline, so this class may not have suffered from -Wweak-vtable, and all the negative effects that entails, or at least not on all platforms. But move the implementation into the .cpp file, anyway, incl. the destructor, for consistency, and to reduce the number of includes in the _p.h file. As a drive-by, mark the contructor explicit, and the automatic QStyleOption* objects const. Picking to all active branches to avoid conflicts going forward. Pick-to: 6.10 6.8 6.5 Change-Id: I321cb482586766b323a64e3be17ccf1a4984eb64 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: Use setWindowInsetsAnimationCallback to detect keyboard animation endJani Korteniemi11 days1-17/+24
| | | | | | | | | | | | | | | Use setWindowInsetsAnimationCallback istead of controlWindowInsetsAnimation to update cursorposiion and check for the keyboard height at the end of the keyboard show animation. Remove controlWindowInsetsAnimation() as in the Android 16 IME visiblility was requested twice and it gets cancelled. Pick-to: 6.10 6.8 Fixes: QTBUG-140897 Change-Id: Ic62f5e0afa7ab8df4985e5a186035ff33af0ab66 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 44c02ece447f57779a4e53db10dc107de2d14479) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QComboxBox: replace className() comparison with qobject_castMarc Mutz11 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The old code checked for a variable's dynamic type by calling its metaObject()->className(), comparing it to a dynamically-allocated QByteArray. Instead of fixing just the allocation, let's use a compile-time checked construct: Unlike inherits() and className(), qobject_cast ensures that the type we cast to actually exist and is in-scope. We recently noticed that we still have checks for classes that were removed for Qt 5.0, showing the danger of these stringly-typed interfaces. This is not a 100% equivalent construct, since the old code failed when the checked-for types were in the middle of the dynamic type hierarchy, while the qobject_cast will succeed. Arguably, the new code is "correcter" in this regard, but it doesn't matter, since neither of the two types checked are user-settable. Amends abbdb4d98d13e78cf47cca3c1d6a049770c57750. Pick-to: 6.10 6.8 6.5 Change-Id: I9828d23f887ac55d29dd83062ac64b8683fa295f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove unused header time.h from qabstractsocket.cppMate Barany11 days1-2/+0
| | | | | | | | | QtCreator is warning about it and it indeed seems that it compiles just fine without it. Pick-to: 6.10 Change-Id: I85f84c3ebd8a786db9ddfc30e9e23b456093a909 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add OffscreenSurface capability to QPlatfromIntegrationArtem Dyomin11 days13-14/+40
| | | | | | | | | | | | | | | | | | The capability reflects whether the function QPlatfromIntegration::createPlatfromOffscreenSurface is available. See QOffscreenSurface::create for details how offscreen surface is handled. If no offscreen surface is created, it falls back to an invisible window, using of which in non-ui thread causes failures. In QtMultimedia, we want to know in advance whether offscreen surface can be created in non-ui thread, so we add the capability in the patch. Pick-to: 6.8 6.10 Task-number: QTBUG-131107 Change-Id: I15e6b1b66aaac18020abca661415aea5c8779192 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* De-inline QComboBoxListViewMarc Mutz11 days2-41/+55
| | | | | | | | | | | | | | | Virtual functions should not be implemented inline. In particular, all virtual functions were implemented inline (incl. the dtor), so this class caused -Wweak-vtable, incl. all the negative effects that entails. As a drive-by, mark the contructor explicit. Picking to all active branches to avoid conflicts going forward. Pick-to: 6.10 6.8 6.5 Change-Id: I53d87871d77b82442745f1b77383c209e5d7141d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QString::assign: mark the projection lambda noexceptMarc Mutz11 days1-1/+1
| | | | | | | | | | | | | | | | As mentioned in QTBUG-141899, we were not considering the projection itself can throw when designing exception safety in QArrayDataOps::assign(). The fix will be to inspect the projection for noexcept'ness, and, failing it, take a slower path. To prevent that from pessimizing QString::assign(), mark the projection lambda as noexcept. Amends f5ed163c19c4a165a61e6fbfdaf5ee39b5587a0c. Task-number: QTBUG-141899 Pick-to: 6.10 6.8 Change-Id: I14f798398cf0e59cfbb167994f66e802d6271e1a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add internal documentation for QtPrivate::CompactStoragePavel Dubsky11 days1-0/+58
| | | | | Change-Id: I6ba6c7090350282c87e618ff603586217adf4221 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QArrayDataOps::assign: improve for forward iterators (redux)Thiago Macieira11 days2-27/+66
| | | | | | | | | | | | | | | | | | | | | | | | | This differs from commit 37b37cddb67febd595cb06b54ac08f1e676ead4d in that it takes the prepend optimization into account in the new implementation, instead of leaving it up to the assign() caller. For the simple case of trivial types and identity projection, the fix was simple: just start copying from the beginning of the prepend optimization. For the non-identity projection or non-trivial types, there are now four possible regions (at most three of which can appear in any given condition) instead of three. And because there are two exit conditions for the prepend optimization and regular array, we must use iterators instead of a simple counter. This code is as exception-safe as the original: it isn't. If the copy constructors or copy assignment operators throw, the size of the container will not have been updated, so we'll either leak objects or access garbage ones when the container is destroyed. I don't care. Fixes: QTBUG-141366 Change-Id: Ibd7b16127e8a815b6725802029d082f1e39782b4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QArrayDataOps::assign: fix race condition in getting capacityThiago Macieira11 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends commit ae688468590dedc82cca900332a625c82e87471b. We need to get the currently-stored capacity (if any) before deref()'ing the d pointer, because after that another thread could deallocate it. Ideally, having already checked the allocated capacity a few lines above, the compiler already has the value somewhere and only needs to check the CapacityReserved flag. Which Clang 21 does: movq 8(%rax), %rbp # load d->alloc cmpq %rbp, %r13 # compare to the input range's size jle .LBB1_3 cmpq %rbp, %r13 # compare again cmovgq %r13, %rbp, %r12 # conditionally move the greater testb $1, 4(%rax) # check d->flags & CapacityReserved cmoveq %r13, %r12 # conditionally move if unset lock decl (%rax) But GCC 15 doesn't (yet): movq 8(%rax), %rdx # load d->alloc movl $1, %esi #, needCapacity cmpq %rdx, %r13 # compare to the input range's size jle .L18 #, testb $1, 4(%rax) # check d->flags & CapacityReserved je .L8 #, movq 8(%rax), %rcx # load d->alloc again cmpq %rcx, %r13 # compare to the input range's size (again) jge .L8 #, .L7: lock decl (%rax) #,* _12 Change-Id: I8cc7cb05d04fba763d41fffdf762c846c76d78a9 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Upgrade Harfbuzz to 12.2.0Eirik Aavitsland11 days20-69/+80
| | | | | | | | | [ChangeLog][Third-Party Code] Upgraded Harfbuzz to version 12.2.0. Fixes: QTBUG-141844 Pick-to: 6.10 6.8 6.5 5.15 Change-Id: Ib558b5cfc3c39ce6a3ff068eea23c333adbaebff Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QGraphicsView: remove duplicate Q_FLAGS(QPainter::RenderHints)Ahmad Samir11 days1-1/+1
| | | | | | | | | | | QPainter already has the RenderHints markup since the start of the public history. Found while looking for Q_FLAGS to port to Q_FLAG. Change-Id: I8687f3aaf441c537d3e9f9db52c6e0f047b6e8b3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* qtmetamacros.h: fix comment of two #endifAhmad Samir11 days1-2/+2
| | | | | | | It starts with `#ifndef QT_NO_META_MACROS`. Change-Id: Ibd065b7b3432d1b8e6ab81e913c09bdcddc5173f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qtmetamacros.h: remove redundant Q_PRIVATE_QPROPERTYAhmad Samir11 days1-4/+0
| | | | | | | | | It was removed in commit e6988d4d0bef2c3f474576250cb305a2f00a688b. Pick-to: 6.10 6.8 6.5 Change-Id: Ia376c11cb8ace52472260cbde6424b9d1c082c97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qtmetamacros.h: don't use Q_ENUMS/Q_FLAGS in {Q_ENUM,Q_FLAG}{,_NS}Ahmad Samir11 days1-4/+4
| | | | | | | | | | | | Q_ENUMS and Q_FLAGS have been deprecated since at least Qt 6.0. Since the behavior doesn't change at all, pick it to stable branches to reduce git merge conflicts for backports. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-99060 Change-Id: Ib4153897b3e178d810627ab2a54f72b202a6b06b Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QRandomGenerator: remove direct use of HW instructionsThiago Macieira11 days2-6/+2
| | | | | | | | | | | | | | | | | | | | | The HWRNG instructions are not necessarily faster than what we can get from the OS. Moreover, the OS is able to collect entropy from sources other than the CPU itself. More importantly, this removes the need for Qt to deal with broken HWRNG, passing the buck to the OS (which may disable the CPUID bit, causing the application to fail to load). [ChangeLog][QtCore][QRandomGenerator] This class no longer directly uses a hardware random number generator on x86 systems, even if one is available. Instead, it will always use a generator provided by the OS (so performance will be OS-specific), though there should be no meaningful difference in the quality of the samples generated. Task-number: QTBUG-69423 Task-number: QTBUG-129193 Pick-to: 6.10 6.8 6.5 Change-Id: I5121c5a34d684983fa1dfffdbabd22de51966650 Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QuasiVirtual: remove unnecessary limitation for static assert checkArtem Dyomin11 days1-6/+6
| | | | | | | Instead of mask, constexpr std::array<bool> can be used. Change-Id: I912b00e2ac82d67536fd6ce516d6c4a9d4d1b6c1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move QQuasiVirtual to a separate headerArtem Dyomin11 days3-213/+243
| | | | | | | No functional changes. Change-Id: Iacbae1e04d9a9edd35acce17fd7ecf268fbe9340 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QWindows11Style: Don't highlight disabled tabs on hoverWladimir Leuschner12 days1-1/+2
| | | | | | | | | Disabled tabs in a disabled QTabBar and QTabWidget should not be highlighted on hover. Pick-to: 6.10 Change-Id: Ie073479c914739d93dd09bb48d8787cfc031046b Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* QWindows11Style: Don't change disabled QSlider handle inner radiusWladimir Leuschner12 days1-4/+7
| | | | | | | | A deactivated QSlider does not change the inner circle radius on hover Pick-to: 6.10 Change-Id: Ic254402b854c04a741037f9d32bad1dfcdc826ef Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* QWindows11Style: Don't highlight disabled QSpinBoxesWladimir Leuschner12 days1-2/+3
| | | | | | | | Do not highlight disabled QSpinBoxes on hover. Pick-to: 6.10 Change-Id: I35fed09cccc85277e740ebd62deb7412713b300e Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* qmenu: Adjust geometry passed to waylandDavid Edmundson12 days1-3/+5
| | | | | | | | | | | | The current code uses the qwidget->geometry() which is the position relative to it's parent widget. The QPA code needs the position relative to the toplevel window. Amends 4eed22e67ed98ec2565be84a4838955af0faf8b0 Fixes: QTBUG-141553 Change-Id: I5139d3b1afec00743bd8c8bb9af48001df2da97e Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
* a11y: Simplify implementation of QAccessibleTableIngo Klöcker12 days2-77/+8
| | | | | | | | | | | Since QAccessibleTable does now derive from QAccessibleWidgetV2 we can remove duplicate implementations of isValid(), role(), state(), and rect(). And adding the role argument to the constructor allows us to remove the guessing of the role. The factory already instantiates the correct (sub)class (of) QAccessibleTable. Change-Id: I6e0bb0ec4e8e706efa20df9458cd88abd991212a Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>