summaryrefslogtreecommitdiff
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Plumb QMessageBox::setCheckBox() through QPlatformMessageDialogHelperTor Arne Vestbø2023-03-092-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | Without this plumbing we have no way of knowing if the QMessageBox has a checkbox set, and can't decide to skip the native dialog, leaving the user without the expected checkbox. As the suppression checkbox on macOS can be customized, we can use this plumbing to actually provide native dialog support for generic check boxes. This mechanism can also be used by QErrorMessage, which now matches behavior between native and non-native dialogs in terms of the label of the checkbox and its initial state. We might want to tweak this in the future, since user's might expect the suppression label and state to match the system default, but that's something we can expose from the platform theme if so, and should apply equally to the non-native dialog. Fixes: QTBUG-111803 Change-Id: Ied9fc34383fe79fbd8437592ad1c1993b9396178 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a0313c85a9b8ab6ba0ec273f0c8638e2f7b8cc18) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Doc fix in QIntValidator::validate() and comment on a testEdward Welbourne2023-03-051-6/+6
| | | | | | | | | | | | | | The doc said positive values for a negative range were intermediate but the code actually rejects them if the value has an overt plus sign, so make clear that intermediate is only for the case without a sign. Incidentally comment on a test where it might not have been obvious to the reader that a space is the locale's digit-grouping chracter. Change-Id: I3edab74fe8c2cbe8448c0e523676f1fd0d0d8a9f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 58f5ec35f108bca01489124e74e96018fd937ed4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: we no longer provide a list of common mnemonicsVolker Hilsheimer2023-03-011-5/+0
| | | | | | | | | | | | Remove the claim from the QKeySequence documentation, fixing the respective qdoc warning. Amends f10ae4b887f6652dcad95516ded43f2e2994e88f. Change-Id: If234cfb0a6b7dc20fb10e623cc3ee2ec167f22c9 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 1e50420354fc717b665cb8398658e97b89a7f953) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add API in QWindowsPrivate to provide window paletteSanthosh Kumar2023-02-281-1/+3
| | | | | | | | | | | | | | | | | The window uses default palette (QPalette()) to determine frame color (either light or dark). This doesn't work for quickcontrols as they depend quicktheme palettes and they don't overwrite default palettes. This patch add API in QWindowPrivate to provide palette for window and this can be overridden by quickcontrol windows to provide their corresponding palette. Fixes: QTBUG-111491 Change-Id: I39eea20ee7c61ecf0279143c9784da35be15edd3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 170fadadd67fa97621a7782ea845c314bd9ee09d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Use single precision for mouseMove detectionVolker Hilsheimer2023-02-281-0/+22
| | | | | | | | | | | | | | | | | | | | QGuiApplication::lastCursorPosition is a QPointF, and (at least on macOS) compares always different from the QPointF stored in the event. This might be due to the translation from system coordinates to QPointF introducing noise. The result is that even a simple button press causes mouseMove events to be delivered. To prevent this event noise, overload equality operators for the special QLastCursorPosition type when comparing with QPointF to explicitly use single precision comparison. Fixes: QTBUG-111170 Change-Id: I82ea23ac9f4fa80c55c9c5c742527dd7ee74fd99 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 519e3963fad0761bac5629b1f6eabc58060265c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add special thread pool for Qt GuiAllan Sandfeld Jensen2023-02-266-20/+26
| | | | | | | | | | To avoid gui slowdowns due to global pool being blocked. Fixes: QTBUG-109511 Change-Id: I4e8d91e8fb0bd2e395072a082e992a3c5d3464ad Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 93047c71e8e6dd4ac28e1e59dcb561df11c759eb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Warn that computational time follows length of text inputAllan Sandfeld Jensen2023-02-241-2/+4
| | | | | | | | | | | We have no reliable way of cutting the text shorter without side- effects, so leave that to the users. Task-number: QTBUG-109838 Change-Id: I280d2dec9d6e0cd6b4d57edac231ae99420d8569 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit bea15cdfa4de5fb9fa1614ef93b54df7139423fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Text: fix Soft hyphen rendering in QTextLayout::glyphRuns()Vladimir Belyavsky2023-02-221-8/+14
| | | | | | | | | | | | | | | | | | | | | | | When calculating the position offset of QGlyphRuns, either when fetching substrings or when applying fallback fonts, we would include the advances of non-printable glyphs, such as the soft hyphen. This was an oversight, and the other code which calculates the advance (like in QFontEngine::getGlyphPositions()) does this correctly. We apply the same logic as there and only include the advance if the dontPrint flag is unset. [ChangeLog][QtGui][Text] Fixed an issue where spaces would sometimes be shown in soft hyphen positions in a string. Fixes: QTBUG-46990 Fixes: QTBUG-62620 Fixes: QTBUG-67038 Fixes: QTBUG-102483 Change-Id: I4e583fb74f7a51424f14917d7cc0894beefec48b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 0fe6f818d23495f07100f82c12e4232b8e56daf4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix build with -no-feature-eglTasuku Suzuki2023-02-201-1/+1
| | | | | | | | | | | qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h:12:10: fatal error: QtGui/private/qt_egl_p.h: No such file or directory 12 | #include <QtGui/private/qt_egl_p.h> Change-Id: Ie243fc05e165524afebb10ec979b5f72de8681ce Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit c9df9f3976d969dc1f829a596016a377f1e619f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Revert to existing QPointingDevice::grabChanged signature until Qt 7Shawn Rutledge2023-02-201-4/+5
| | | | | | | | | | | There is concern about string-based connect() source compatibility in the case that a signal argument has a different type name. Amends bc857f466d297e5656fadad4987f218900d6b1a6 Change-Id: I2618b8c5f62b39717e4f7043d07168e808390b1d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a3b90360884dd11d896c43c74d64ff8d8f047052) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Trace: Use includes instead of forward declarationsAntti Määttä2023-02-201-3/+1
| | | | | | | | | | | Some platforms do not work with forward declarations, mainly android. Change-Id: Ie34a30ecb8554d77c1bea4b65a752d63ba819af9 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit e3fdd9715fa220d909689def10e9b72c14083e09) Reviewed-by: Antti Määttä <antti.maatta@qt.io>
* Add some exclusions for CMake Unity (Jumbo) buildsFriedemann Kleint2023-02-161-0/+7
| | | | | | | | | | | | | | Add exclusions for issues that are likely not fixable (3rd party code, X11 define clashes, etc) in 3rd party, tools and plugins. Task-number: QTBUG-109394 Done-with: Amir Masoud Abdol <amir.abdol@qt.io> Change-Id: I698c004201a76a48389271c130e44fba20f5adf7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 64dc6fe87d05aaad3ce516747ad6dbd048f388cb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename Qt::Appearance to Qt::ColorSchemeTor Arne Vestbø2023-02-159-70/+48
| | | | | | | | | | | | Based on discussions in the 6.5 API review, where we concluded that 'appearance' is too general. Instead, we follow the CSS standard and use the term 'color scheme'. Change-Id: I8ceaf4138ecadff5ccd962480e8e5beb39b556ec Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Jonas Kvinge <jonas@jkvinge.net> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 32749c913b32e89e2027227233794f2296166cc6)
* rhi: d3d11: Do not ignore storage buffer offset in the UAVLaszlo Agocs2023-02-142-12/+14
| | | | | | | Change-Id: If6ef0345903b71adfc7b5633f1abcead9ca07c72 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit bf6cc9a4e2825ecc1b64955dd6341a8ec758dacc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* rhi: gl: Skip the vertex-fragment interface check with more stagesLaszlo Agocs2023-02-141-1/+5
| | | | | | | | | | | | Once tessellation and geometry shader support is added, the check makes no sense when there are additional stages between the vertex and fragment stages. Change-Id: I3d3c0a5b338f5fe191c072a13a8699924f7a6a1b Reviewed-by: Kristoffer Skau <kristoffer.skau@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 5476973325288e399f99af004e53184e41892282) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QStyleHints: code tidiesYuhang Zhao2023-02-142-6/+9
| | | | | | | | | | | | 1. Use Q_D and Q_Q instead of d_func() and q_func(). 2. Use early return. 3. Remove unnecessary semicon. 4. Add one new line to separate two unrelated functions. Change-Id: Ie6171c857f00ca171e97723a0d517d2295bbbbd1 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 528f28f380e3f0c55b9a305f6b208dc1a2db73d6)
* Accept full-width parentheses in removeMnemonics()Edward Welbourne2023-02-131-5/+15
| | | | | | | | | | | | | | | | | | | | QPlatformTheme::removeMnemonics() removes any match to /\s*\(&[^&]\)/ from the text it is given (a menu entry). It transpires that translators are apt to use the full-width parentheses (compatible with some far-eastern scripts) instead of the plain ASCII ones. This leads to their translated mnemonics don't match the same pattern unless we treat the full-width parentheses as a match for the ASCII ones; consequently, they don't get removed, which this function exists to do. So teach it to recognize the full-width versions, too. In the process, break out the pattern-matching (aside from the leading space) to a lambda to make it easier to read and document. Fixes: QTBUG-110829 Change-Id: I7335d0bd8dbba66e1fe58fc3eec93caaaf6ec140 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 86b930f073b6b75790a6af8d021f4daa00f80aae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: map Qt::Key_Return to NSCarriageReturnCharacter in menusVolker Hilsheimer2023-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | On macOS, key combinations with the Return key do not get delivered through NSView::keyDown, but they are seen by the QCocoaNSMenu::menuHasKeyEquivalent override. We already use that override to check whether any menu item uses a matching shortcut, and give Qt's focus object a chance to override the shortcut. The key mapper used the NSNewlineCharacter '\n' for Qt::Key_Return. However, the character we get from macOS for the return key is the NSCarriageReturnCharacter character, '\r'. This makes the lookup fail, and shortcut overrides are not delivered for shortcuts using Qt::Key_Return. To fix this, map Qt::Key_Return to NSCarriageReturnCharacter. The inverse mapping maps both NSCarriageReturnCharacter and NSNewlineCharacter to Qt::Key_Return, and there are no other users of this function in Qt. Fixes: QTBUG-107526 Change-Id: I716190adf3cd94697e2b3ad1afc25b95d8ebde25 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 0835537c3c3a8b7991b7a6e4a877a13f165a66e7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix Qt 6 performance regression when painting outside deviceEirik Aavitsland2023-02-113-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | Painting wide lines and filling would be clipped to cliprect (by default, the device rect) only if the bounding rect coordinates exceeded QT_RASTER_COORD_LIMIT. In Qt 6, that limit was raised from 2^15 to 2^23, so a lot of time could be spent on rasterizing elements that would anyway be outside the rendering area. Fix by instead clipping whenever the path to be painted overshoots the cliprect by a significant margin. At this point, the path is already flattened to straight lines, so clipping is quick and precise. Testing indicates that this solution improves performance a lot when large portions of the elements to be painted fall outside the cliprect, while not causing significant performance hits otherwise. As a side effect, it is then no longer necessary to test the bounding rect explicitly against QT_RASTER_COORD_LIMIT, since we already make sure that the clip rect we check against is within that limit. Fixes: QTBUG-110595 Change-Id: Iaf1afbb481c2d7059405f334278796ad46f5bcb6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit ce7b4c734b78d24b75ecb389cf799ce85d0cc3bf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtMiscUtils: add some more character helpersAhmad Samir2023-02-102-12/+13
| | | | | | | | | | | | | | | isHexDigit, isOctalDigit, isAsciiDigit, isAsciiLower, isAsciiUpper, isAsciiLetterOrNumber. This de-duplicates some code through out. Rename two local lambdas that were called "isAsciiLetterOrNumber" to not conflict with the method in QtMiscUtils. Change-Id: I5b631f95b9f109136d19515f7e20b8e2fbca3d43 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 498f3452285aa44580e1d03baeec126d475f8401) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Trace: Autogenerate metadata in qtgui moduleAntti Määttä2023-02-101-45/+2
| | | | | | | | | Change-Id: I300ecb9d25f0ecb7208c643704adf66bdf0a4b56 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit c6ba34c7f82653fffbc43bc9b4a93442c75359ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* trace: Remove unused tracepoint filesAntti Määttä2023-02-101-41/+0
| | | | | | | | | | | These can be removed now that the modules use tracepointgen tool. Change-Id: I265e019f99e1ccc557a284ff53b110073066e530 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> (cherry picked from commit 48f0d458a941574ebb6b1ca6fd2ef5c8676726ec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't do font merging for PUA charactersEskil Abrahamsen Blomfeldt2023-02-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | The "Private Use Area" are subsets of Unicode which are not considered regular characters, but reserved for fonts to provide custom glyphs. If these were used and the main font did not have support for them, we would look them up in other fonts and sometimes display an arbitrary selection of glyphs, based on whatever existed on the platform. This is unexpected and different from how native apps work on Windows, for instance. [ChangeLog][QtGui][Text] Font merging (automatic assignment of alternative fonts) is no longer applied for characters in the Private Use Areas of Unicode. Fixes: QTBUG-110502 Change-Id: Id2c63786aafda59bf170e0d7263eb78a391fe46d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit fc33fea999365c36ed446eee0db0d59d94be306b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Prepare for replacing Qt::Appearance with Qt::ColorSchemeTor Arne Vestbø2023-02-096-0/+21
| | | | | | | | | | | | | | | Based on discussions in the 6.5 API review, where we concluded that 'appearance' is too general. Instead, we follow the CSS standard and use the term 'color scheme'. This patch is a first step, only introducing the new API, so that submodules can port over. The next step will be to remove the old API and transition the docs and platform themes. Change-Id: I43cdb6bb1ccb49c535c06b1897821467fd83ca60 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 92f5836fe8611d6f7a70efcc3b0dd5db262ba175) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Mark new QShortcutEvent constructor with \sinceKai Köhne2023-02-091-0/+1
| | | | | | | Change-Id: I32580a29e3d5bbeca2832c421e07cec094e9576d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 8fef0f04008f36694262499de748ff5163f9715d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Turn elidedlabel example into a code snippetVolker Hilsheimer2023-02-092-1/+43
| | | | | | | | | | | | | The example is 90% boiler plate for subclassing QFrame and providing a bit of GUI to change the size of the label using sliders. The interesting bit is a block of 25 lines of code, so turn those into a snippet and add that to the QTextLayout overview documentation. Fixes: QTBUG-111011 Change-Id: I6e97b2ea47b553c8d998ad185cfac006721ef7ee Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 55f2b448b0aec4e9a8fd3896b2a40f37e939ecb3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Clean up QUtiMimeConverter APIVolker Hilsheimer2023-02-093-14/+20
| | | | | | | | | | | | | | Based on header review comments, make the internal constructor private and declare classes that need it as friends. QFlag-ify the HandlerScope enum, as it is a list of flags, and adjust code accordingly. Change-Id: I1d8843265e49e696d463e9eea8306f4dbae75c78 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 1dc5e20c16353476ee4b449343a8fbe78a9ac7d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Avoid glDrawBuffers on ES 2.0 / WebGL 1Laszlo Agocs2023-02-082-4/+14
| | | | | | | | Fixes: QTBUG-111007 Change-Id: If1d84df56ad47ac89ea43ad5091392416fe9fc5f Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 8f1d8139c40d8b050ac606c3d62eee7f1f37410f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Add a header declaring the Windows image conversion functionsFriedemann Kleint2023-02-083-9/+48
| | | | | | | | | | | The declarations with default parameters cause conflicts in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Change-Id: Icf48193498d70dfacadf1b2499cb3359169f72c0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 65cda1f06aa24d9b75e81b37a5c23dcedbc53b92) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Fix some macro clashesAmir Masoud Abdol2023-02-072-0/+4
| | | | | | | | | | | Macro Q_FIXED_POINT_SCALE in qpathssimplifier.cpp clashes with the macro with similar name in qtriangulator Task-number: QTBUG-109394 Change-Id: I02732ae62238e8b7fae0630764fdd33b6203afe3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 34519d44ffd0327a676f6af41f63191912b583e6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove "Analog Clock Window Example"Jan Arve Sæther2023-02-072-15/+22
| | | | | | | | | | | | | This is almost exactly the same as the "Analog Clock" (widget) example. "Analog Clock Window Example" demonstrates: * How to render to a QWindow (covered by RasterWindow example) * QPainter and transformations (covered by Analog Clock example) * How to use QTimer (covered by Analog Clock example) Change-Id: I7f20a29798830ed6345eca250e4139cb314cab84 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit f7db1cfa92896135534f6ab140d1470e56a5d677) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Remove double default definitionAmir Masoud Abdol2023-02-071-4/+4
| | | | | | | | | | | In all the cases below, the parameters are defined in the qtestsupport_gui.h as well. Task-number: QTBUG-109394 Change-Id: I3311d6c23b3a811dbe20286bd4534ca1ed7cd7f3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit edc62595f27ad820b2edfe2d6158925676131590) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Avoid multiple transformation of the clip pathSanthosh Kumar2023-02-071-1/+0
| | | | | | | | | | | | | | | | | | | The painter saves existing paint engine state in the stack and restore back to the previous state after performing required paint operation. The clip path stored as part of paint engine state is getting translated more than once during save and restore operation. This multiple transformation of the same clip path causes incorrect translation within the plane. To fix this issue, during restore, remove translation of clip path with redirection matrix. Fixes: QTBUG-109518 Change-Id: I1509bc7fa4965f2802bce62c1ed27cdb90da617a Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 4e4d37f0472c58ff6c98e9852691b1ccda8beffb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Disambiguate static variablesFriedemann Kleint2023-02-039-42/+42
| | | | | | | | | | | | | They cause clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Change-Id: I3c51fb41d29e5c649537b999dced7e2d413b26a7 Done-with: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> (cherry picked from commit 438096371c32ea6fdcd31d6d4ad2b6d3f29fab71) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Only list qt core classes in qt core io groupAndreas Eliasson2023-02-023-3/+0
| | | | | | | | | | | | The group page for Qt core classes related to I/O include classes from other modules. Remove these classes from the group; it may confuse the reader. Fixes: QTBUG-110020 Change-Id: If7df85523ce6b3aa09605bd89d9899ce308d2671 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> (cherry picked from commit 76ecff6aebb35f4e39439aab8d18d828c3c8a1fd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Modernize the VK_EXT_debug_utils callbackLaszlo Agocs2023-02-022-16/+19
| | | | | | | | | | | | | | | | | | | | | | ...as suggested by review comments. Switching to std::function implies that we cannot easily do the install-remove pattern anymore as there is no way to compare an std::function to something other than null. Instead of making it more complicated by returning a key or something like that, change the remove function to a clear (that now clears both the legacy VK_EXT_debug_report and the new VK_EXT_debug_utils callback lists). Also add a missing call that registers the new-style callbacks that are installed before create(). Change-Id: I66c1dd8e8dcc8eee0f5eb9671f94c2c80319dcaf Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kristoffer Skau <kristoffer.skau@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 0b20f243f7efbd612d41bab8c2000e6c9fcb13e9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPaintEngineRaster: port from QSharedPointer to std::shared_ptrMarc Mutz2023-02-022-12/+8
| | | | | | | | | | | | | | | Compared to std::shared_ptr, QSharedPointer requires 2x the atomic operations per copy, and does not support QSharedPointer<void>. Port to std::shared_ptr, and drop the Pinnable kludge. Add an optimistic std::move() when we insert into QMultiHash. Change-Id: I2ab004b7e8fa36d9e777cd787ffded4076d2880f Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 5ba25903882222a556a3e7558e6455e2a203569d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* rhi: Remove manual release of autoreleased NSStringTor Arne Vestbø2023-02-021-4/+1
| | | | | | | | | | | The [NSString stringWithUTF8String:] function returns an autoreleased object, so we don't need to manually release it. Doing so results in a crash when the surrounding autorelease pool is drained. Change-Id: I3dca01e2771d4010e582c2bf770f3d2281343dc3 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 780813d9b6bfc58aa45571c367071c3a44fb2b44) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* API review: disable copy for new mime converters classesVolker Hilsheimer2023-02-012-0/+2
| | | | | | | | | These classes are polymorphic, so shouldn't be copyable. Change-Id: I80b6b3de5f5594e00c4011f64846841e3344c152 Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 80cb1426aa325a440993741ba48dd3275f90b2e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Remove define Q_TEST_QPIXMAPCACHEFriedemann Kleint2023-02-012-8/+2
| | | | | | | | | | | | It causes clashes in CMake Unity (Jumbo) builds. Change the function to be Q_AUTOTEST_EXPORT'ed helpers. Task-number: QTBUG-109394 Initial-patch-by: Amir Masoud Abdol <amir.abdol@qt.io> Change-Id: I2e4032e07e1c39432cae1eb2dfff94be33846c09 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 1fad7aa73ef371bb15bf929c161e542aac687101) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QUtiMimeConverter: document as public and fix \sinceVolker Hilsheimer2023-01-312-8/+7
| | | | | | | | | | | | It's a new public API, so don't document it as internal. Fix the \since to 6.5 - it's an old class under a new name, and make a small language improvement in related documentation. Change-Id: I57bfa868f19aa293c01d6a1f8bbbff1bebe7541a Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io> (cherry picked from commit b36f126668f5d7c0ac58f2d058861680df176ca2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Avoid unneccessarily long text scansAllan Sandfeld Jensen2023-01-311-14/+20
| | | | | | | | | | | Limit the scans to the processed length. Fixes: QTBUG-109838 Change-Id: If4b19bf6f97d788d0a227af3a80962bef26016fd Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 7c84550f3bfdf93cb8a071e6bb23d54d57109e84) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Disambiguate static variables in markdown codeFriedemann Kleint2023-01-312-69/+73
| | | | | | | | | | | | It causes clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Initial-patch-by: Amir Masoud Abdol <amir.abdol@qt.io> Change-Id: I7d8c7a15dd8d3b7198b5ac1924a0f2bcf4415e06 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 960430556c7814b003e7c1f03a78d6221dde4f98) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtGui: Remove superfluous macro qreal_to_fixed_26_6()Friedemann Kleint2023-01-311-1/+0
| | | | | | | | | | | | | It appears to be unused in qpaintengine_raster.cpp and causes clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Initial-patch-by: Amir Masoud Abdol <amir.abdol@qt.io> Change-Id: I51585153ff99812b6539b6268e337e410f2ecc76 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 6c5939b1677a896a5abecd80bbecd2f70051d9e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QOpenGLContext: Handle versionFunctions like other dataLaszlo Agocs2023-01-241-4/+3
| | | | | | | | | | | | | | | | | | | | | | | While probably not common, it is not unthinkable that one does a destroy() - create() on a QOpenGLContext while relying on the versioned function wrappers. This is likely broken at the moment since the internal data is not released on destroy(), only when the QOpenGLContext is deleted. This differs from any other similar data (the portable function resolvers, QOpenGLTexture backing data, etc.) which are all dropped and nulled out in destroy(). Also remove the bizarre comment in the dtor which must be something from Qt 4 / QGLWidget times. Note that this does not fix the associated problem since that only relies on the standard mechanism that leads to fully destroying and then recreating the QOpenGLContext when the window changes. Task-number: QTBUG-109171 Change-Id: Id265a1d208ffae3792a0608c29324e840ce690dc Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 3bad6d597071186be51d537d2cda786caf879a6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Sanitize the order of things in QOpenGLContext destroy()Laszlo Agocs2023-01-241-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | Amends e08fe78b2335046934abae970e59fe0156178b95 (in a way). While touching this function in the other patch, it becomes obvious that the order in which things are cleaned up and invalidated is somewhat odd: the native context is in fact gone _before_ invoking helper callbacks or tearing down the OpenGL API wrappers. This only works because likely nothing relies on the context still being usable when destroying those objects and when the texture/vao helper callbacks run. Reorder this to: 1. emit the about-to signal 2. invoke callbacks and null out helpers 3. destroy the function resolvers 4. only then start tearing down the platform (and so the underlying native) context objects. Change-Id: I9067463b8f6ce1f656129594c347c1428439ca5e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit f045ef4ab6f72b2024119d15da8476a26e3b2242) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix assert when resizing text table with percentage widthsEskil Abrahamsen Blomfeldt2023-01-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Qt 6.3.x, qBound() has started asserting that max > min. This caused a crash in the QTextDocumentLayout code for assigning widths to table columns that were sized using percentages, which depended on previous qBound() behavior of just snapping to the minimum size if max < min. There are some specific conditions for this to happen: First of all, the available width in the table must be too small to fit all minimum widths (which is calculated based on content). In addition, the requested widths have to be given as percentages of the table width, and these have to add to something lower than 100%. With these conditions, you may get a case where the calculated percentage width of a column is larger than the minimum width, but lower than the remaining width in the table, causing the assert in qBound(). We simply accept the minimum width as the rule in these cases, which matches behavior without the assert and which looks correct when resizing the window to be smaller than the table. Fixes: QTBUG-108183 Change-Id: I16d18dd9b2e7a77fe86d1a353b426075b5050b8e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 84a68ef75ce8a8e5b90d799c90905cc998c7c2f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Respect custom QWSI event handler when delivering synchronous eventsTor Arne Vestbø2023-01-181-1/+6
| | | | | | | | Fixes: QTBUG-110268 Change-Id: I25195904cfc18d593db1be713b6e899e55eb922f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 2813e2814e185bf8d2426c5eb3d6b2c243ee72c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove redundant scope for glyphRuns() default parameterEskil Abrahamsen Blomfeldt2023-01-171-2/+2
| | | | | | | | | Noted in API review: Improves formatting and readability. Change-Id: I3a8f769899031410d00397a885f115adcca82f3b Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 02effb2c37c8439baf2aaabe24fa635326fb6399) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Explicit type for new enum typeEskil Abrahamsen Blomfeldt2023-01-171-1/+1
| | | | | | | | | Noted in API review. Change-Id: I98ec47f4c934156990d67363b69ccd33617661de Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 6975dd38c14a2473d7997dd65c3789b843078409) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>