summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Avoid overflow in text layoutv6.1.2Eirik Aavitsland2021-06-171-1/+2
| | | | | | | | | | | Fixes oss-fuzz issue 34597. Fixes: QTBUG-94197 Change-Id: Icabcd5a87b809b6a5ae0f1a696ec3b5dd906886b Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit e473d96e65e7cf3190c6c16acace6359964d0bee) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix crash in concurrent disconnectLars Knoll2021-06-172-21/+42
| | | | | | | | | | | | | | | This does not fix all data races that we have in the system yet. One major issue is the virtual disconnectNotify(), that can be called from any thread and thus is inherently problematic, as it can collide with the object getting destroyed at the same time in another thread. Task-number: QTBUG-88248 Change-Id: I9d841eb363b7e4f0de1657aeb8f5340d0fd55190 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 71b4d4f150bc3c904a5aceec37513ddc3cd1c150) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* cleanOrphanedConnectionsImpl: Allow to skip lockingFabian Kosmale2021-06-172-6/+26
| | | | | | | | | | | | This function is/will be used in a few places where we already have a lock. Temporarily unlocking and relocking invites all kinds of troubles. By adding a flag we can instead tell the function that we already hold the lock. Change-Id: Ibca089de61133661d5cd75290f2a55c22c5d013c Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 556fc646cfac4dca43a34f5c4a4f7e6e3ef9104d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QOrderedMutexLocker: Disable copy and provide explicit dismiss functionFabian Kosmale2021-06-171-0/+37
| | | | | | | | | | | | | | | | Copying a QOrderedMutexLocker is questionable, and would currenly easily lead to UB. Therefore we delete the copy ctor and copy assignment operator, and implement well-behaving move operators. In addition, provide an explicit dismiss method for cases where we don't want the locker to unlock the mutexes, as they have been manually unlocked (this could have been implemented previoulsy by using the copy assignment operator). Change-Id: If2a888710e1c74277b28fd3e2939ab26fff0c7ae Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 7fefce73284de4204d64c7e4129f39004a13cdad) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix rendering of text checkboxes when text is selectedShawn Rutledge2021-06-161-4/+8
| | | | | | | | Fixes: QTBUG-94532 Change-Id: I4343558dcec6149dcdcc0f7ca32c49fdc67452af Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit bc30d5624d59d523c4c31473cb64621ee5c43f9d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows: Read page size and orientation from setup dialogVolker Hilsheimer2021-06-161-3/+28
| | | | | | | | | | | | | | | | | | | PAGESETUPDLG's hDevMode reports the page size and orientation selection of the user, so read that data to get accurate results. Otherwise, the page size of a landscape page wouldn't match any known page format, and we'd end up with a custom size that would not be valid for the preview, breaking the preview UI's orientation state. Reuse the helper from QPageSize to map Windows page size ID to our own enum. Fixes: QTBUG-93764 Change-Id: Ib9a848619e3ba8780264ad76ed43c4fffae6b07f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 6ce44c53c7aa802b817b72d49de88e4da0181488) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* iOS: cleanup connection when a screen disconnectsRichard Moe Gustavsen2021-06-161-1/+3
| | | | | | | | | | | | | | | | | The iOS port creates one QIOSViewController per connected screen. And each view controller listens for changes to the application state. The problem is that we never disconnect this connection again. So if a screen is removed, and the corresponing view controller is deallocated, the connection is still kept alive. This will cause crashes to occur when the signal emits, since the slot will then be accessing deleted memory. Fixes: QTBUG-76948 Change-Id: I758e51af9297cd62de193aae825f4475a2c7c3e5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit d829d54a42393d797c5f6ab3b80e88df35fad1e4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* md4c: Fix MSVC compiler level 3 warningsKai Köhne2021-06-152-4/+44
| | | | | | | | | | | | Fix various C4244 warnings with the MSVC compiler for 64 bit Proposed upstream fix: https://github.com/mity/md4c/pull/162 for an upstream fix, Change-Id: I2ac1c17febb4fb269ac7244458f4cd90ce8b8e49 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 1591a959876bc5a37aacc817e637400c72bf6623) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update md4c to 0.4.8Kai Köhne2021-06-152-28/+67
| | | | | | | Change-Id: Ib0e1ef259696aa380aba0819aa4e1d8a12b4a21d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 1759626cd61fbc765d21ce458cc5d472db087f3e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* H2 - make integer conversion explicit (signed->unsigned)Timur Pocheptsov2021-06-151-2/+2
| | | | | | | Change-Id: I47a3f8f7c39d4179a9a108e81a9c7f409acbc315 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 8a034c62b6c87ee8c15b9132392fb7dde01e2a65) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make dockwidget title bar buttons show againVolker Hilsheimer2021-06-151-4/+6
| | | | | | | | | | | Amends f61304fc77a622170ef3bbcbcb37c5a90c6f87ea, which renamed the files but didn't adjust the code. Task-number: QTBUG-38776 Change-Id: If54dd986975dd28f147a98628317b1369d0c690f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 22571c21c9be10d9ada756c598f519f74273579a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* H2: remove a rather useless limit on the number of streamsTimur Pocheptsov2021-06-142-10/+3
| | | | | | | | | | | | | | | | | SETTINGS for max concurrect number of streams is 'one direction' - this is how our peer conveys the possible number of streams _we_ can open, not _them_. If they choose to have it unlimited - let it be so. It's possible to send 0 as maximum number, also, it's possible to reduce the maximum compared to initial at some point - then I have to avoid integer overflows. Fixes: QTBUG-94470 Change-Id: Ia02247acbaedd70998a4cab02082ba10f45cf78c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 46940ca73791e87e2366b80ac2884b3bcce716ce) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update CLDR qt_attribution.jsonMårten Nordheim2021-06-141-1/+1
| | | | | | | | | | We updated to v39 in 6235893d54b8fbf5c8bd54e33cd82b55042555f1 Task-number: QTBUG-94410 Change-Id: I73d539d677c9066dc5ceb6b4fc65fb544f39ac7f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 20a31b1a39931e06d69e932d2e6890f7c375e20b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update public suffix listMårten Nordheim2021-06-142-14309/+14419
| | | | | | | | | Task-number: QTBUG-94410 Change-Id: I2ccf717dc7e0e70c4abd66956238ac3cca1d7a5d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit b5da494b3f3d5dd7d4a82eab761bdbbc4808c222) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Document that WA_TranslucentBackground will not have an effectLaszlo Agocs2021-06-141-3/+6
| | | | | | | | | | | | | ...if changed after the widget is shown. Just documents the current state of things. Task-number: QTBUG-60822 Task-number: QTBUG-59126 Change-Id: If8281dce4457707a1673aca7a50744d8b231b030 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit cf7df972c3015a160986bcd3f1cbd1f01297335d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix snippet for QRandomGenerator64 docsPaul Wicking2021-06-141-1/+1
| | | | | | | | Fixes: QTBUG-94347 Change-Id: Iaf007534214cffc83858833e80dad447df9b297a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit b43ec7e9f9d043ee3b82a5207ac124d77ce5afca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Mention that you cannot order QVariants anymoreKai Köhne2021-06-121-0/+4
| | | | | | | | Task-number: QTBUG-87263 Change-Id: I3d1332c43e4c06d47b249e4b9adb32685070f56a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 1f242e0ab0736c76515b95687858a0f0e9096a7d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix date parsing when local time lacks the start of the dayEdward Welbourne2021-06-111-13/+26
| | | | | | | | | | | | | | | | | | | | The case where a parsed date-time fell in a transition, but only because the default value for some field lead it there, only dealt with the case of parsing a date-time, which is the only time it should be relevant. However, since the date and time do get combined as a date-time (even when only one of them is relevant) the same problem could arise when parsing a date (on which the current time-zone happened to make a transition at the start of the day) or a time (if the default date happens to be one on which the current zone had a transition). So handle both of those cases, as well as the date-time case. Fixes: QTBUG-91120 Change-Id: I565d115eb85cd2ee69fa500fcd40b05bcf8f6fff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit f9469990d0fb1ae9444d415390ec8be483ec4ab3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix Qt tool apks not to be built as part of default all targetAlexandru Croitor2021-06-111-16/+35
| | | | | | | | | | | | | | | | | | | | | | | | | The code already checked for QT_BUILDING_QT to decide whether the 'apk' target should be part of the default 'all' target, but it only worked properly for qtbase. The 'apk' target was created before the value of QT_BUILDING_QT is set when building other repos like qttools. Postpone the decision on whether 'apk' should be part of 'all' to the first call of qt_add_executable -> qt_android_add_apk_target. At this point QT_BUILDING_QT will be defined. Achieve that by relying on an additional 'apk_all' target as an implementation detail. Amends 8b8679f73d6cfb513141cc0a9f4925a64ca19455 Fixes: QTBUG-94442 Task-number: QTBUG-94264 Change-Id: I92ff0a7eef2caad244340ab7835e77c9fb3377c0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 1d05dcb3ec677a301a5a626384b2bf8003af2663) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Hangul composition: use < base + count checks, not <= checksEdward Welbourne2021-06-111-2/+2
| | | | | | | | | | | | | | | | Before Unicode 4.1.0 there was an error in the example code for Hangul normalization that used <= on the ends of some ranges of values, where they should have used < tests. This was faithfully copied but the need for correction has only lately come to light. Thanks to Ma Lin for pointing this out and providing the fix and test-cases. Fixes: QTBUG-71894 Change-Id: I5c7fec1f9fac1f7a25b2d5e9c3109a90a7ff49e1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 182afbe335a8bd494a86defc5d32da3ae8ec7920) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Prevent overly deep build dir hierarchy on WindowsJoerg Bornemann2021-06-111-2/+6
| | | | | | | | | | | | | | | | On Windows, building Qt with Ninja Multi-Config failed in a reasonably named build dir. The reason for that is our deep build dir hierarchy, created with add_subdirectory, and long target names like QNetworkListManagerNetworkInformationBackend within that hierarchy. Rename said target to QNLMNIBackend, and set AUTOGEN_BUILD_DIR to a short string that does not repeat the target name. Fixes: QTBUG-94211 Change-Id: Iea6fee012fa46d9bfb01142b60e6cb5273893c50 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit d23613acf7bfe37c1c78eb9aadc489e888e34dfb) Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix misplacement of placeholder text in QLineEdit with RTL contentFan RuiJie2021-06-112-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | The placeholder text was rendered in the wrong position after clicking on the clear button in a QLineEdit with right-to-left content. The button was still taking up space while it was fading out, so the first paintEvent rendered the placeholder with space reserved for the clear button. Once the button gets hidden, no new update was issued, so garbage was left behind. Fix this by not giving a fading-out clear button any margin space. The result of this is that the placeholder text is visible underneath the fading-out clear button. This is preferable to the placeholder text being first rendered next to the fading-out clear button, and then popping to the edge when the clear button is hidden (which would have been the result of issuing a complete update for the line edit at the end of the fade-out animation). Fixes: QTBUG-93742 Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io> Change-Id: Id0429362a60bba6839aa02068b00edb15e3ab8ab Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit dc794f7622bc00f7ca50fab65d6965695d6d2972) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix unaligned specialData formatsAllan Sandfeld Jensen2021-06-111-4/+9
| | | | | | | | | | Handle the case were a format was applied that does not align with the fragments. Change-Id: I27593a50c587a5ec0290ff9d0a7a9767a3981cac Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> (cherry picked from commit d93fac3290bc0890a529886a4f991daa77fd6a6e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: close visible gap between tab bar base line and tabsVolker Hilsheimer2021-06-112-2/+2
| | | | | | | | | | | | | | | | | Dock widgets enable the QTabBar::drawBase property, but the clip region left a gap of 3 pixels on each side between the base line and the tabs. Correct the size of the hole cut into the clip region accordingly. Visually tested on macOS 10.15.7 and macOS 11.2.1 using the dockwidgets and tabdialog example. As a drive-by, fix a spelling mistake in related documentation. Fixes: QTBUG-86362 Change-Id: Iada027999467741d0590576ee4508e6f41fb056d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit f5d6f8dca0c45f311b19731128a495392884ec8c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Correctly support style sheet for toolbutton menus and arrowsVolker Hilsheimer2021-06-101-25/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | QToolButton can show an arrow instead of an icon, and that arrow can, as per the documentation, styled via the ::down/up/left/right-arrow pseudo element. This was not working at all, as the implementation confused the down-arrow with the menu arrow. Implement this correctly for all arrow types. A QToolButton can also have different ways to show a menu, either by using a separate section of the button that can be clicked; this section can be styled via ::menu-button and ::menu-arrow. Or by instant or delayed menu popup when clicking the button itself, in which case the button shows an indicator in the button itelf; that indicator can be styled via the ::menu-indicator pseudo element. The old implementation confused the various options, and the name of the PseudeoElement_ToolButonDownArrow didn't help with that. So rename that element to PseudoElement_ToolButtonMenuIndicator, and render it when there is no separate drop down. Fixes: QTBUG-27640 Change-Id: Ia142a5d7498fa717e70f4e5382305e305b29effa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 2b2e7b2ac50e5b4f6e1888e594f6e32338dd2a80) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Check scrollbar ScrollBarOverlap when computing QListView marginsZhang Hao2021-06-101-0/+1
| | | | | | | | | | | | | | | | | | When the listview setWordWrap is true and ScrollBarPolicy is ScrollBarAsNeeded, if QStyle::PM_ScrollView_ScrollBarOverlap returns true, the text displayed an empty line. Fix this by not reserving the width of the vertical scrollbar if the flow is TopToBottom and the vertical scrollbar, and QStyle returns true for PM_ScrollView_ScrollBarOverlap. Amends aeef92c3c33e4ebcb7e5d8dd955020f4f4600e84 Fixes: QTBUG-94248 Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io> Change-Id: I4d47c7e86bbb86474cb1a99bb26d8b67f0e8a7e2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 0242be90606b377864c6fd02d5a8e0afaf635acf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix QVariant documentationKai Köhne2021-06-102-61/+56
| | | | | | | | | | | Update documentation to not reference API that is obsolete in Qt 6. Also fix documentation for changed behavior (isNull()), and fix snippets. Change-Id: I526efeff63d907bbadd5e8a539ccf237cb992125 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 704f0354998937363162fdb9ed6984a7339bc370) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add disclaimer about QtPrintSupport not being available on iOSPaul Wicking2021-06-102-0/+3
| | | | | | | | Fixes: QTBUG-91025 Change-Id: I9f206509a3f3e74e01ae76ae36e275dc79743d11 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit fee0a63db9f2fdd6999610c3a72961fadcec01a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix inexplicably changed condition in GL backingstore compositionLaszlo Agocs2021-06-101-1/+2
| | | | | | | | | | | | | | | | In a13e8d6660913bec172d1374f78083498c539df0 which provided the move and decoupling of OpenGL code the !makeCurrent-succeeded && !context-is-valid condition got changed to !makeCurrent-succeeded && context-is-valid which makes no sense because what we test for is context lost situations, in which case makeCurrent fails and isValid() reports false. Restore the ! that went missing in the above mentioned patch. Change-Id: I94f84d2853bcbd2965f76ecd665d3614b1f0e746 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit c6c6e01e893b211f51511929b4258f789cdfd428) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix scrolling of tab bar when the visible tab is wider than the visible spaceVolker Hilsheimer2021-06-101-4/+9
| | | | | | | | | | | | | | | When finding the index we need to scroll to, use the one where both start and end of the tab rect are outside the currently visible section. Otherwise we wouldn't scroll when the left-most index ends outside the visible section. Add test, which requires that the scroll buttons have object names. Fixes: QTBUG-70498 Change-Id: Id153c77dd5fca146612375e0ff39bd1f3e0536b1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 06b1e404c936847038cc7a371720b05f31532b6a) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QTabBar: don't let tab shine through (semi-transparent) scroll buttonsVolker Hilsheimer2021-06-101-0/+14
| | | | | | | | | | | | | | | | On styles where the tab bar's scroll buttons are rendered semi- transparently, or where the buttons don't fill their entire rect (for example have rounded edges), the tab that's covered by the buttons should not shine through the gaps, or even shine through the button. Clip the painter so that the area of each button is not painted by the tabs. Fixes: QTBUG-50866 Change-Id: Ie81f6d260f36d5a17868822e683745844a6a6b2f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 0965cf0f1e49185097b0698e51ea9ad464eaa573) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QHttpSocketEngine: Fix memory leakMårten Nordheim2021-06-101-1/+1
| | | | | | | | | The reply needs to be parented or it's not guaranteed to be deleted Change-Id: I7cbc31682f80dbbd9fb240fff9e6781cb6ca7b36 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit d8077a0973f362376b69564a730c74e5c9366f8f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAbstractItemView: block autoScroll from interfering with QScrollerVolker Hilsheimer2021-06-091-0/+4
| | | | | | | | | | | | | | | | | When pressing an index in order to start a flick gesture, QAIV sets the current index. When QScroller changes state to Dragging, then QAIV restores the current index to what it was before the press, as the user is clearly scrolling the view. With autoScroll enabled, this will produce an ugly jump if the old current index is no longer in the viewport. To prevent this, disable autoScroll before restoring the currentIndex. Fixes: QTBUG-64543 Change-Id: I3e0a18a6a179d80b9d810fce5aa658f0cfff9a29 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit b1fdcc8c0fefe0660302494618032342b623e199) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* macOS: Keep NSWindow alive after handling windowShouldClose callbackTor Arne Vestbø2021-06-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | Option-clicking the close-button on a window in macOS is a request to batch-close all the windows. When this happens we get an event in through the window that was clicked, which in turn results in AppKit calling windowShouldClose: for each window. We respond to that by explicitly closing each window (instead of just responding YES or NO), which results in the window being released and deallocated. This causes a crash when AppKit then follows up by closing each window after we responded YES to windowShouldClose. We work around this by keeping the window alive in the closest auto release pool, which is typically at the level of the runloop. This ensures that the window is alive for the duration of the logic that AppKit has for batch-closing windows. Fixes: QTBUG-92232 Change-Id: I68b6138eb8325af0576b438ffa011137fec27926 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 8a4e274dcf836f58c7417c11737bdded50a84dbd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Unify behavior for long path or UNC prefix removalKarsten Heimrich2021-06-094-40/+34
| | | | | | | | | | | | | Split the code out of QDir::fromNativeSeparator into a separate reusable function to remove the above-mentioned prefixes. Fixes and unifies behavior if the prefix was given with slashes instead of backslashes. Add a couple more test cases. Fixes: QTBUG-93868 Change-Id: Ibd94ae283e2fb113f9c2db97475fbc7d89522bbf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 0564ebdb3641d7325f73dbbf2cbb04e6dca92d83)
* windows: gl: Print GetLastError() when makeCurrent failsLaszlo Agocs2021-06-091-1/+6
| | | | | | | | | | | | | | This matches the behavior of other implementations, such as QEGLPlatformContext: doing a qWarning with the relevant error from eglGetError() or equivalent is helpful when something goes wrong and should be common among QOpenGLPlatformContext implementations. Task-number: QTBUG-85714 Change-Id: Ifa5d22b83808c92ae92efcbcddc8d8c3d3ba34b1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 03650696a1fb727a337865d43f068ddc7723a893) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Correct examples for int validation in QValidator documentationVolker Hilsheimer2021-06-081-2/+2
| | | | | | | | | | | | | QIntValidator::validate documents correctly that any input with "at most as many digits as the top of the range" returns Intermediate. This is needed to avoid input deadlocks where one can't go from 9 to 15 if the range is 8 to 16. Fixes: QTBUG-94269 Change-Id: I6776e09fc231249fe78f9e6106492f8454b70a03 Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 4a23a1fbb5f2317f725fff9df2516335db1fac6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QListView: add assert for static analyzerVolker Hilsheimer2021-06-081-0/+2
| | | | | | | | | | | | | The loop that initializes the item should execute at least once, so the pointer should be pointing to something valid. The static analyzer doesn't see that, and warns about unguarded access to the item pointer in report with hash d008dbef4573afca54be0139e2971a4a. Add asserts for both the condition that makes the loop run at least once, and for the item pointer not being nullptr. Change-Id: I94b9f3db3b3ce3d82445cf66788c05854b441aaf Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit ddc886d670694df9e400ea6f04f76df19d0e1145) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix global 'apk' target to actually build all apksAlexandru Croitor2021-06-082-11/+30
| | | | | | | | | | | | | | | | | | | | | This means calling 'ninja apk' in a user project with multiple android applications will build all their respective apks. For user projects, make the 'apk' target part of the global 'ALL' target, so that a regular 'ninja' call implies the 'apk' target. We don't do it currently for Qt builds, because certain test executable apks fail to build. Add a QT_NO_GLOBAL_APK_TARGET_PART_OF_ALL variable to allow removing the global apk target from the 'all' target. Task-number: QTBUG-94264 Change-Id: I171b9da50eb7d670176704bd26dc1c492118b434 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 8b8679f73d6cfb513141cc0a9f4925a64ca19455) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Calculate space requirement of menu items based on widest elementsVolker Hilsheimer2021-06-081-4/+5
| | | | | | | | | | | | | | | | | | | Since icon, checkmark, text, and shortcut are each rendered aligned within their own column, we need to take the widest of each element into account when calculating the size requirement of each item. Otherwise an item with very long text but no icon will get enough space for the text, but no space for the icon, resulting in the text running over the shortcut or edge of the menu. Fortunately, QStyleOptionMenuItem provides us with the necessary information. Fixes: QTBUG-86754 Change-Id: I0cf0e9adfe480d1004106e7475e498e718bf027b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit c8cb2409477bdc3bc41d6bbdfc5055441cda084f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QIcc: Update test for invalid valuesRobert Löhning2021-06-081-1/+1
| | | | | | | | | | | | This should have happened when changing the code in f493d41722fc76a04f699ea26128fdf3d215d913 Fixes oss-fuzz issue 31633. Change-Id: I7945c3f90651f8fa04df20fbaf0b0c7f68619407 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 7661fdce0a1a502b1d2f6a89b0d89234b12aabb9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add a note about a limitation in QDockWidget on macOSAndy Shaw2021-06-081-0/+5
| | | | | | | Change-Id: I3599304d2dab9a6e64f110644b22e65494f3c0a8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit e5aada1ba7133dedc7ec00e67c5cca68186b738d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add proper dependencies to apk targetsJoerg Bornemann2021-06-082-35/+45
| | | | | | | | | | | | | | | | | | | | Before, building ${target}_make_apk always re-built the apk, instead of rebuilding the apk only when inputs changed. This patch fixes that by moving the creation code from a custom target to a custom command with proper dependencies. The androidtestrunner tool now does not check for the existence of an apk anymore and always runs the make command that is supposed to build the apk. The ${target}_prepare_apk_dir target is not needed anymore by the Qt build but is still used by Qt Creator's Android support. Add a clarifying comment. Fixes: QTBUG-93431 Change-Id: I00d65d616fef9511b03b65f879c4bc6cb92dfc30 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 76eefab088b64f9ba4e5f5c48612bfdd3552081d)
* Fix augmentation of UI language listEdward Welbourne2021-06-082-25/+3
| | | | | | | | | | | | | | | | | | | | Previously, the augmentation wasn't being applied to the system locale, due to a mistaken test claiming the locale's name didn't resemble the string from which it was constructed. The test dates from before various fixes to likely sub-tag processing that should make it redundant now. This makes QLocalePrivate::rawName() also redundant (and its conversion of QLatin1String to QByteArray relied on '\0' termination which wasn't actually present in the various codes). Expanded the test of systemLocale() to also test uiLanguages() turns a single entry into the list we expect; and add two new test-cases. (The test uses a mock system locale class, making this independent of the platform backend.) Fixes: QTBUG-92234 Change-Id: I0cdf6eae152a42dc377f4ea3e62c282ff4be1764 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit b2871765ced8059e571d17d4010e8d8ada4e9190)
* Clarify the QLineEdit document of editingFinished signalZhang Hao2021-06-081-1/+2
| | | | | | | | | | | | | QLineEdit gets focus and don't type any character when QLineEdit lost focus, document say QLineEdit will issue editingFinished signal. In fact,QLineEdit doesn't issue editingFinished signal. Fix this by clarify the document. Fixes: QTBUG-94057 Change-Id: I88eed2ec7a28823598dc46f1df26fd305eb99c1f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 8ee2186830d33cf2e0ebc7c9ab59166a27fe81a5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: allow Qt::AA_DontShowShortcutsInContextMenus overridesVolker Hilsheimer2021-06-075-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Following the discussion in QTBUG-69452, the resulting change in cc33dd079796437bafed8f42de7fbf8f17d19ec8, and the documentation of QAction::shortcutVisibleInContextMenu, the intention is that the attribute allows the overriding of the platform default. However, QAction did ask both the attribute and the platform integration, making the override impossible. Instead, ask only the attribute, but default the value of the attribute to what the platform integration provides. [ChangeLog][QtGui][QAction] The shortcutVisibleInContextMenu property defaults to the value of the Qt::AA_DontShowShortcutsInContextMenus attribute, which in turn defaults to the platform integration. To override the default, set the application attribute after instantiating QApplication, or override the default for each QAction instance. Task-number: QTBUG-73990 Change-Id: Iaba330913555d93d05efe1b3965a6aea39db5554 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 68297195759492594ac4143b7f208e17fe6f594b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QProperty: Fix source_location feature testingFabian Kosmale2021-06-071-2/+10
| | | | | | | | | | | | | | | | | | The presence of the source_location header does not guarantee the availablility of std::source_location. For instance, if using clang 11 with a modern libstdc++, the source_location header is available, but std::source_location is not available as it would require __builtin_source_location, which clang does not implement. Consequently, we need to explicitly check the feature test macro instead, and only use std::(experimental::)source_location when it is defined. Task-number: QTBUG-94194 Change-Id: If6fda9a1b98244b1f2944fff6fe1991def30fc0f Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 1924f78df68d69fa7c69c394c547307e25dfffe1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add missing prepositionPaul Wicking2021-06-071-2/+2
| | | | | | | | Fixes: QTBUG-93969 Change-Id: I60e08ab7f17459b6cff969767273228a8406cfc3 Reviewed-by: Johanna Vanhatapio <johanna.vanhatapio@qt.io> (cherry picked from commit 3bc80defdc0ebd77d7eafe32153693aa44c5f2fe) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix license information for libjpeg-turboKai Köhne2021-06-044-15/+65
| | | | | | | | | | | | | | Fix the license metadata in that libjpeg contains parts under three different bsd-like licenses. Also, do include the IJG, zlib license texts in the metadata. [ChangeLog][Third-Party Code] Clarified that libjpeg-turbo is actually covered by three licenses, not only IJG. Change-Id: I6c4e3e8577bdf83e7e73474b34b0553cbe1d9b6d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit 467b39d52c9ab59b1e7518330fbb51d5543ada50) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAbstractItemView: don't block dragging after double clickVolker Hilsheimer2021-06-043-3/+7
| | | | | | | | | | | | | | | | | | | | | | After d6551fe12520 it was no longer possible to start a drag with a double click (where the first click selects an item, and the second press+move starts the drag). Resetting the pressedItem variable to block the emission of the clicked() signal had this unwanted side effect. Instead, use an explicit boolean to store that the next release event will be the result of a double click, so that the clicked() signal is not emitted again (preventing the double-emission was the purpose of change d6551fe12520). Task-number: QTBUG-77771 Fixes: QTBUG-94087 Change-Id: I082c5169d89eb980dcd7985ef3d302b6ff060fb9 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Olivier BARTHELEMY <perso.olivier.barthelemy@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 17c1ebf8bfd254ff75cc55e335d1c1fb01da547f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>