summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QImageReader: check allocation limit for minimum 32 bppEirik Aavitsland2021-11-232-2/+13
| | | | | | | | | | | | | | | | | | Also, as a driveby, add an environment variable so the limit can be changed at runtime. [ChangeLog][QtGui][QImageReader] When checking allocation limit during image reading, the memory requirements are now calculated for a minimum of 32 bits per pixel, since Qt will typically convert an image to that depth when it is used in GUI. This means that the effective allocation limit is significantly smaller when reading 1 bpp and 8 bpp images. Change-Id: If1b204d413973b0975eea531e29c260fdcec931d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 8ce36938569841020daf9dc23e41438b06e0ee53) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Fix QSlider's knob positioning on MontereyVolker Hilsheimer2021-11-201-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QMacStyle has a single NSSlider that is used to render any QSlider. For each QStyle API operating on a slider, the style sets the slider up with respecive properties. On macOS 12, the NSSlider maintains some states that make QSlider instances influence each other's knob position when rendering, resulting in uncontrollable jumping of the slider. This can be fixed by not using startTrackingAt/stopTracking APIs, which are however the only way we have to make the slider knob get rendered pressed - there is no property in NSSlider(Cell), and none of the NSCell attributes have any effect. So we need to use startTrackingAt, and work around the side effect by reinitializing the NSSlider by calling initWithFrame. This fixes the positioning error, but also causes flickering of the knob when dragging. To fix the flickering, we have to always call startTrackingAt for a slider that is pressed, even for calls to setupSlider that are made in QStyle APIs that are not drawing anything. Also tried with no complete success (either positiong bug or flicker): * call prepareForReuse on the NSView * always call stopTracking on the NSSlider Fixes: QTBUG-98093 Change-Id: I3423b9f7cb125a59831c6722509ab3b74742b6ae Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 4bee9cdc0ac4bbee7f061e8f6050d704032f6d0f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Clean up line clipping code in rasterizerEirik Aavitsland2021-11-201-36/+59
| | | | | | | | | | | | | | | Replace old code with the line clipper from qcosmeticstroker. Also avoids tripping some issue with the current clang 13 that would cause paint errors on macOS. Fixes: QTBUG-98403 Fixes: QTBUG-98388 Change-Id: I257eeec6f71153ec51b4176df3be8c443938484c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 4f69a1e1d2ae8f475bbd7e1d3c1ca92487c6ea90) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Reject truncated and corrupt ascii pnm imagesEirik Aavitsland2021-11-171-22/+27
| | | | | | | | | | In contrast to the binary decoder code, the ascii decoder would not abort and fail on premature end of file. Change-Id: If27bce0afa8d1de6c4dbeb2bc0e623c1dcc2f1e0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 997c052db9e2bef47cf8217c1537a99c2f086858) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Clear NSOpenGLContext drawable when QNSView is about to go awayTor Arne Vestbø2021-11-173-0/+20
| | | | | | | | | | | | | | | Calling doneCurrent() on a QCocoaGLContext only clears the current context, but doesns't reset the drawable (view) of the context. In most cases this is fine, but it has been observed to cause issues when using the software GL renderer on Big Sur and above. To be a good citizen we clear the drawable of any of our contexts that are tied to the NSView this about to be go away. Change-Id: I8c845727c50871f30fbebc2ed62a7d0485651ecf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 99bb78f6c2a748070d1354f9e13951b1e3344b19) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Test result of qobject_cast before dereferencingLi Xi2021-11-161-6/+7
| | | | | | | | | | | | | | Since QMainWindow::setMenuWidget accepts a QWidget (allowing users to implement their own menu widget), we need to use qobject_cast on the stored widget to see if it is a QMenuBar before calling QMenuBar APIs. This qobject_cast may return nullptr. Fixes: QTBUG-98247 Change-Id: Iff1dbd24fa7ca09098fe49c179770356c966251d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a0e7fbd4d54ddbea5c2b155b0f828df3ce3c98fb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: check if objectClass() is not null in registerNativeMethods()Assam Boudjelthia2021-11-151-3/+4
| | | | | | | | | | | | | In case the class doens't have a default constructor, checking for object.isValid() will give false because the object won't be created, however, the class could still be loaded and we could have a valid jclass. Fixes: QTBUG-96069 Change-Id: I8d59e26d9d7c0e8e363ce443937091a374a24473 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit dfb4b7856a82a72934211d9a1a44626777570d30) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Build PostgreSQL driver as universal binary on macOSTor Arne Vestbø2021-11-151-2/+0
| | | | | | | | Task-number: QTBUG-93204 Change-Id: I3e7c76411a7bebee9105a9d97b6ca2c4128a8ddc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit e6364f9c9c827573c02893adf71c17c6f1a538d6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update documentation of QFuture continuationsSona Kurazyan2021-11-151-19/+44
| | | | | | | | | | | | | Mention that the futures returned by continuations will stay uninitialized, until the corresponding continuation/handler starts executing and do some general improvments to make the docs more readable. Task-number: QTBUG-97582 Change-Id: I141ff1630b22ec7a856a457a41a69efec980d44b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 76a551588c6756bfa9675d128c8a6e5a7cd50cb2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: make the slider knob big enough for BigSur and MontereyVolker Hilsheimer2021-11-151-0/+4
| | | | | | | | | | | | The slider is very touch friendly from macOS 11 on, and the knob is quite large. Give it some extra pixels, and adjust the test accordingly. Task-number: QTBUG-98093 Change-Id: Iedf6db1081cdd4013ca29ce760aea1e0361b1123 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 6ff07ec23b562d78f7fa19b5c6ada72724dc81a1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disable some tools and plugins if regularexpression feature is disabledMitch Curtis2021-11-122-2/+2
| | | | | | | | | There are still more failures, but these are low-hanging fruit. Change-Id: I3d3a1dc9e754bd4865c850cc1549b0b6fd6fa2f8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 0d6438f8080dbcd2658494efda36b430a9b45800) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix QMultiHash::operator== crashAndreas Buhr2021-11-111-3/+3
| | | | | | | | | | | QMultiHash::operator== crashes when comparing two unequal objects. This patch fixes it. Fixes: QTBUG-98265 Change-Id: Ibf9fef3372a2b4581843be5f25e65cc9a55ef64d Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 838edd9c48284b97dfc22cf3644bb082035a9a93) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: add clear()Thiago Macieira2021-11-111-0/+5
| | | | | | | | | I'll need it in QFactoryLoader. Change-Id: Ice04365c72984d07a64dfffd16b47f68d25252b4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 090c7e3262dce93df83c73a4a822761e5d9b4650) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QFileDialog: Fix adding default suffix when file path contains dotAlexander Volkov2021-11-111-3/+8
| | | | | | | | | | | Check that a file name, not the full path, contains a dot. Fixes: QTBUG-59401 Change-Id: I193b2ae457a3ac6a460524dbf200786eb3461cef Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit d36249e9759364a7025b531d1dfe89a891e65a4e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: Set SWP_NOCOPYBITS during resize to avoid jitterYuhang Zhao2021-11-111-1/+6
| | | | | | | | | | | | | | Allowing Windows to re-use parts of the client area when resizing might result in jitter. See discussion in: https://stackoverflow.com/questions/53000291/how-to-smooth-ugly-jitter-flicker-jumping-when-resizing-windows-especially-drag Fixes: QTBUG-97774 Change-Id: Idc8f0d1953dd0a8b329312d8a9fd0509cc24d81f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 000f1ee3604048f693f2a9425948a37ec45b4301) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QSlider: Always set the sunken state and the active controlVolker Hilsheimer2021-11-111-6/+7
| | | | | | | | | | | | initStyleOption should initialize the state based on which controls are pressed or hovered, not only when painting but also when calling other style APIs. Task-number: QTBUG-98093 Change-Id: I482793b7de38657aa36a20d0abab8845155ad0e9 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit c7e8133a95220e0ce96171024e34de8c53975b9c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix not respected qt.conf settingsMichal Klocek2021-11-111-6/+13
| | | | | | | | | | | | | | | | | Change 6fb569af951 introduces reloadOnQAppAvailable for QLibrarySettings, however it is missing a reload check for hasPaths, this breaks essentially reading custom qt.conf Add missing check. Fixes: QTBUG-97382 Fixes: QTBUG-97383 Fixes: QTBUG-97947 Change-Id: I28379d9dd38357c290edd44b93d3bea489b9cefe Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit e6db4206b81f3fcea13646461f56a5207d9608c2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* rhi: Expose the maximum uniform buffer range limitLaszlo Agocs2021-11-118-1/+62
| | | | | | | | | Task-number: QTBUG-97715 Change-Id: I7f0a52c410b9b77f735fb3b7fd33141674bb0cda Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit a8be40bd64b9258334d6936b1775bc6631fd158d) Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add missing qt namespace in qthreadstorage.hAlexey Edelev2021-11-111-0/+4
| | | | | | | | | | | | Wrap 'else QT_CONFIG(thread)' block in qthreadstorage.h with qt namespace Fixes: QTBUG-98085 Change-Id: Ica1817fa6beeaf9e4883edaa8738f042b29f0c5e Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit f6d210a0d32ce9e81a160bfb893342cb0a521f54) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Bump WINVER, _WIN32_WINNT and _WIN32_IE to _WIN32_WINNT_WIN10 (0x0A00)Yuhang Zhao2021-11-118-52/+23
| | | | | | | | | | | And bump NTDDI_VERSION to 0x0A00000B (NTDDI_WIN10_CO) at the same time, to unblock the developers from accessing the latest Windows APIs. Change-Id: Ifbc28c8f8b073866871685c020301f5f20dc9591 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6652bf2353d807f724f398a15cb22c188830f57c)
* Initialize QStyleOptionProgressBar with QStyle::State_HorizontalZhang Hao2021-11-111-0/+1
| | | | | | | | | | | | | | | In Qt 5, QStyleOptionProgressBar::orientation was Qt::Horizontal by default. In Qt 6, we need to init state with QStyle::State_Horizontal so that code setting up a style option doesn't need to do so explicitly. Amends add8262f72befc4c6a25403a21269030111054d1 Fixes: QTBUG-93412 Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io> Change-Id: Iaa311cf0f4bab72c0bacbd8e698ba24660bca6b8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit c0bc4c7638d8b7d46f8cb3175ddde2a59ca63983) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Q{XcbGl,EglFSDevice}IntegrationFactory: remove unused extra plugin pathThiago Macieira2021-11-104-51/+6
| | | | | | | | | | | Cargo-cult copied this from somewhere, unnecessarily. This just made the code bigger for no reason. Task-number: QTBUG-97950 Change-Id: Ice04365c72984d07a64dfffd16b48520d42c7043 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 3ba1a196aaac8f480c0fcb4fc005c1f4e7d7f88b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QGuiApplication: properly decode path command-line argumentsThiago Macieira2021-11-101-2/+2
| | | | | | | | | | Using QFile::decodeName, not QString::fromLocal8Bit. Change-Id: Ice04365c72984d07a64dfffd16b47dcbfee23341 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit b0dc6abfb214667e6359a0b55006fb31baf709a7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update CLDR-derived data to newly-released v40Ievgenii Meshcheriakov2021-11-106-4805/+4835
| | | | | | | | | | | | | | Update tst_qlocale to take into account "narrow" day representation change for Russian locales. This version of CLDR changes narrow forms to one letter. Previously those forms were identical to short forms (two letter). The new representation is consistent with other languages and so does not appear to be a bug. Fixes: QTBUG-94358 Change-Id: I9724c281a250685da8232e5c05c9c375a8c79253 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 96a03533f95425217c23e3e2fe6574984545d3a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* locale_database: Add entry for 'South Sudan Standard Time'Ievgenii Meshcheriakov2021-11-101-172/+174
| | | | | | | | | | | | This timezone is new in CLDR 40, Olson database calls it Africa/Juba. The offset is UTC+2. Reference: https://techcommunity.microsoft.com/t5/daylight-saving-time-time-zone/2021-time-zone-updates-for-republic-of-south-sudan-now-available/ba-p/2234981 Task-number: QTBUG-94358 Change-Id: Ib70dbd9b472eb9cf8cb62a0eb5e241199148c077 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (adapted from commit 2c505eea01d5c20ad1487d8009d2f3badcbc5201)
* QDomDocument::setContent: Open device if necessaryFabian Kosmale2021-11-091-0/+16
| | | | | | | | | | | | | This restores the Qt 5 behavior in Qt 6, but prepares for disabling it in Qt 7. We want to deprecate the current behavior, as it makes it unclear who is responsible for calling close. Fixes: QTBUG-97747 Change-Id: I2c99eb96667e784576d8850085068ca334d75b16 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit a4ce85f356b78401fe727a07b908a1e7b5a25198) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Add QCALayerBackingStore::preserveFromFrontBuffer helper functionTor Arne Vestbø2021-11-092-10/+22
| | | | | | | Change-Id: Iadd4791907564b8b82437643c54696ffa778d882 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit ecfbc918d7f3042ecff5490a103a06cc1b195977) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Don't quit application if we're not in execTor Arne Vestbø2021-11-091-0/+3
| | | | | | | | | | | | | | | | | The documentation states that the function will not have any effect before control enters the main event loop. Prior to 0c02f133f3daee1 this was incidentally true due to QCoreApplication::exit just setting quitNow to true and exiting all the event loops (which before exec were none), and exec() setting quitNow to false explicitly. But now that we plumb the quit down to the platform we can't rely on this incidental behavior, and need to check explicitly. Fixes: QTBUG-98088 Change-Id: I54cece3630e39e4456abc3b372839c0b5c4c4713 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 851ed6f0b1014e5acabdc1f977979841d16ecc31) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Remove broken homepage link for Vera fonts attributionLuca Di Sera2021-11-091-1/+0
| | | | | | | | | | | | | | | | | The attribution for the Vera Fonts project declares a page on the gnome domain as the homepage of the fonts. The page is not maintained anymore and was removed from the gnome domain. Hence, we remove the "Homepage" key from the Vera Fonts attribution as no homepage seems to exists at the moment. Task-number: QTBUG-96127 Change-Id: If4801eb96ce5568c4c18ecea7807ad87e165ca2a Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit ae0733c99b8452ea1c69bc3a487d8c72c5637cb0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Move Q_OBJECT_COMPUTED_PROPERTY to QObjectComputedPropertyLuca Di Sera2021-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `Q_OBJECT_COMPUTED_PROPERTY` is a macro that is used to declare a `QObjectComputedProperty`. The documentation for the macro was related to the `QObjectCompatProperty` documentation, which is internal. A link to `Q_OBJECT_COMPUTED_PROPERTY` appears in `QObjectComputedProperty`'s page, but fails to resolve as the required documentation page is internal. Furthermore, `QObjectCompatProperty` has a macro that is equivalent to `Q_OBJECT_COMPUTED_PROPERTY`, `Q_OBJECT_COMPAT_PROPERTY`, whose documentation is declared related to `QObjectCompatProperty`. It is hence assumed that relating the documentation for `Q_OBJECT_COMPUTED_PROPERTY` to `QObjectCompatProperty` was a typo, such that the documentation for the macro is now moved to be related to `QObjectComputedProperty`, resolving the linking issue in the process. Task-number: QTBUG-96127 Change-Id: I2c1bfd6ba64f13e186c65701593047b64bf0c199 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> (cherry picked from commit 09a68dfa94e9d5eb8c59d7008a4169cf0e33b306) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Avoid painting outside boundaries when printing QGraphicsProxyWidgetEirik Aavitsland2021-11-091-0/+4
| | | | | | | | | | | | Implement clipping to widget geometry when rendering to other paintdevices. Fixes: QTBUG-98026 Change-Id: I5652bdb8cc052ae34f05ea7963943d2b5b28e220 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 1a984b3d2dde484d105d19265bc516ba18da2894) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qoperatingsystemversion_win: fix thread raceMårten Nordheim2021-11-081-3/+4
| | | | | | | | | | | | | If two threads call the function at the same time before the static is initialized one of them may end up with a half-written object. Amends 3fe89eec61e2c819bb54a5d3dfe4bc29dba49ff3 Change-Id: Ie08970f9ee283fd75292a8b44a1fca89de4b04eb Reviewed-by: Yuhang Zhao <2546789017@qq.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit ac7e94090fdd0444cd56d46c0fed051481dada02) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Draw QTableView grid lines centered between table cellsTor Arne Vestbø2021-11-081-3/+5
| | | | | | | | | | | | | | | | | We were reserving space between table cells corresponding to one logical pixel, which on retina screen results in two device pixels. By drawing the grid line with a cosmetic pen, we were only filling one of these pixels, leaving space for leftover pixel dust from earlier blits. By drawing with a non-cosmetic pen of size 1, and ensuring that the grid line is drawn at the center of the grid, we end up filling the entire grid line, without overdrawing the table cells. Change-Id: I7f4d2b27380e5a3d221e265a25f7531fdc4a02b3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 2010df52d4c805557255b90da4aaae8c54c443ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Rename QCALayerBackingStore::prepareForFlush()Tor Arne Vestbø2021-11-082-39/+50
| | | | | | | | | The need to finalize the back buffer isn't limited to flushing. Change-Id: I98b04ab49ec27ea536e99462deab8d48a8e40e82 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 4ffdf2270a1341a703b591eb79f40dcc6033a3f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Track painted area of backingstore buffer via its dirty regionTor Arne Vestbø2021-11-082-17/+28
| | | | | | | | | | When introducing support for scrolling the backingstore it doesn't make sense to track the painted region explicitly. Change-Id: I370932f02490ac526fb049908f99af678884e807 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 5190e77d87d743a75362ecf933adb466199e8958) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Don't defer back/front-buffer swap in CALayer backingstoreTor Arne Vestbø2021-11-081-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | CoreAnimation doesn't immediately mark a surface as in use the moment we assign it to a layer, but defers it until the surface has bee picked up by the window server. In theory this would allow us to defer the swap until the next beginPaint(), which would allow painting to the back buffer again before Core Animation has time to flush the transaction and persist the layer changes to the window server, and would also automatically deal with requests to flush without painting anything. But, since a client may do several rounds of beginPaint/endPaint before flushing, we might end up in a situation where we detect that a surface is in use in the middle of several paint rounds, and end up swapping in a new back buffer without copying over the previously painted content, like we do in prepareForFlush. To be on the safe side we swap the back and front buffer straight away. We also need to mark the surface in use, to prevent the same problem from appearing when the window server doesn't pick up the surface in between two rounds of flushes. Change-Id: Ib418852424773c399df710da33a388e8d2c2e92c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io> (cherry picked from commit 38130406ca806799ba812af1dbc849f57af1f64c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix EntryPointMinGW32Target.cmake to be found in top-level buildJoerg Bornemann2021-11-081-1/+3
| | | | | | | | | | | | | | | This amends commit 67dadc7e3428169778102a6dfab47e2e48c8d17e. We need to copy EntryPointMinGW32Target.cmake to the build dir. The variable config_install_dir contains path relative to the install prefix, and the copy command needs one relative to the build dir (or an absolute one). Fixes: QTBUG-97919 Change-Id: I4e3d735edfb69e27c248191b892422cef572258e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 2c070b6f4d24c56a37d5de71e40d435030254be9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make sure that all plugin targets are built before deploying to AndroidAlexey Edelev2021-11-082-2/+18
| | | | | | | | | | | | | | | | | | | We need to make sure that all plugin targets are built and present on the file system before running androiddeployqt. This especially important when building executables that depend on qml modules that are built in the project tree. This adds meta target that collects all the plugin targets as dependencies and adds this meta target as the dependency for the custom target that executes androiddeployqt. TODO: We should also take into account MODULE libraries that were added using the CMake add_library call, but since qt6_finalize_project is not a part of 6.2 API, this will be added in follow up commit. Task-number: QTBUG-94714 Task-number: QTBUG-88841 Change-Id: I4b4596eb8ed364dbe80e2cfb0ce31cec32e7c03f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 067a23f2c6f93784ffd699eedd476c82d83c430e)
* wasm: fix size of QDialogsLorn Potter2021-11-061-1/+6
| | | | | | | | | | We can simply propagate the minimum window size. Fixes: QTBUG-83503 Change-Id: Ia9f67c92ca37fd0f4e89f08e5153e12c1385f6f8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 7f8fd38931a86288bcf8dac7f4a249db259fd33e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* wasm: fix network reply status attributeLorn Potter2021-11-061-6/+11
| | | | | | | | | | | We were emitting the finished signal before the status code attributes were being set. Fixes: QTBUG-97984 Change-Id: Ib179898dee2b9667d482348ad12180e8bdef74db Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 663a17589301225a40d8e56cb1e90886afcb00c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QCoreApplication: document the app's bindir is in libraryPaths()Thiago Macieira2021-11-061-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The QCoreApplicationPrivate::appendApplicationPathToLibraryPaths() function has been there since at least Qt 4.5.1, so the documentation for appendLibraryPaths() hasn't matched behavior for a minimum of 13 years. The documentation for libraryPaths() has mentioned this fact, though. Searching the application's bin dir is normal on Windows, as many application packages are a flat install with the .exe and all .dlls in one dir. I find it questionable to do so on Unix, though: any and all applications expecting to be installed by a Linux distribution would not install plugins to /usr/bin, whereas on macOS bundles have their own organization anyway. But I'm not prepared to change the behavior without more justification. I can think only of broken configurations (such what is described in QTBUG-97950 where a combination of bad decisions led to scanning all of /usr/bin) and running an executable that is stored in a world-writable directory. Task-number: QTBUG-97950 Change-Id: Ice04365c72984d07a64dfffd16b440868373d7a5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 4fe71db2ee0db2eab3d1927a1904635a3d26970f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAIV: Reset double-click flag in mousePressEventVolker Hilsheimer2021-11-051-0/+1
| | | | | | | | | | | | | | | | Amends 17c1ebf8bfd254ff75cc55e335d1c1fb01da547f, which introduced logic that recognizes double clicks to avoid duplicate clicked() emits. If a slot connected to doubleClicked opens a dialog, then the release-event will not be seen by the item view, leaving the flag incorrectly set and preventing the next clicked signal. Fixes: QTBUG-97853 Change-Id: Iced83e8c66a763672f522265435dc52a745227e4 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit e5ebc28764979f00f1ce3aeb8b2d44b5cadb93c5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Tidy up QPixmapCache to prevent potential segfaultVolker Hilsheimer2021-11-051-23/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following reports of segfaults in long-running programs leading to QPixmapCache corruption, clean up some code smells: * check pointers before dereferencing We did this in some places, and a default constructed or moved-from key could have a nullptr KeyData, so check everywhere. * don't trunctate qsizetype to int Still plenty of int APIs left, but no need for ints in internal code. * don't underflow maxCost to -1 if totalCost was 0 * use ranged-for to iterate over list of keys * guard any public function that might create the cache with the thread- test This avoids that the cache ends up living in the wrong thread. * don't use reinterpret_cast when static_cast is enough (which is always from void*) Since the crash is not reproducible so far, and the reports indicate that it can only be observed when the program has run for a long time, there is no test case included. However, this removes some code smells that might be responsible for data corruption. Task-number: QTBUG-97903 Task-number: QTBUG-91445 Task-number: QTCREATORBUG-26473 Change-Id: Ibdd8963d7dd44caab1468ecc6f81ace761719c69 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit c04b5e0c8c6669b2c4879911e096492df3387911) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Extract Header qbindingstorage.hMarc Mutz2021-11-053-62/+120
| | | | | | | | | | | | | | | | QBindingStorage doesn't depend in-size on much else in qproperty.h, but is used in-size in qobject.h, thus requiring qobject.h to include qproperty.h. As a first step, move the class and the bits it actually depends on, to a separate header file, qbindingstorage.h, and, for now, just include that from qproperty.h. The end goal here is to make qobject.h independent of qproperty.h. Change-Id: I44245a5e57473067e3106d1fd70bf2d744ce0a5f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit b4c7d6b8d4b33bb1f496b288f7d199037326cd18) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QByteArrayList: fix narrowing in join() implementations [1/2]Marc Mutz2021-11-052-8/+13
| | | | | | | | | | | | | | | | | | | We forgot to adjust the interface and implementation of join() to the int → qsizetype change in Qt 6. This part of the two-part patch fixes things in a forwards-BC way, to allow picking into released versions. The forwards-BC break is in the second patch of the series. [ChangeLog][QtCore][QByteArrayList] Fixed a bug when calling join() on lists with more than INTMAX elements. Change-Id: I26976864e77169ff0db7c672d1d42d88dbfcc437 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit c1c15abc8d0d4f0804dba49e95ffdde5f8591413) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Include qproperty.h where neededMarc Mutz2021-11-051-0/+1
| | | | | | | | | Don't rely on transitive include from qobject.h, which will go away. Change-Id: I99dd97ff4fb1d0632d040daab0bffa2d7b85d3ae Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0b768e3c43887fe35c2df4ca4263f54ebb7fec9d) Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Prevent recursive calls to QWindow::closeTor Arne Vestbø2021-11-041-0/+2
| | | | | | | | | | QWidget will call close() in its destructor, which we might end up in if a user deletes the widget in the closeEvent. Change-Id: I39684aec0ca130033dad60f2bbf823364a5edcec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit acb86da793c603991da63ba6ab7c6684518d0cd2) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Suppress rc.exe default outputKai Köhne2021-11-041-2/+10
| | | | | | | | | | | | | | | Hide output like Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved. when building the auto-generated .rc files. Fixes: QTBUG-97729 Change-Id: Id0c32c8015ec2ac0b47b3add52d5c0f8a7a1c203 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 879e42cba8fe201f46f1234473ce6d0057875e8f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: QByteArrayMatcher: add note that the pattern must remain on scopeThiago Macieira2021-11-041-4/+6
| | | | | | | | This issue bit me. The API is surprising and very un-Qt-like... Change-Id: I2bbf422288924c198645fffd16aa1c58d921bd7e Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 7362b321e5cf2053234bb711340cc1603e1ce812)
* Correct qcollator_posix.cpp's check against system localeEdward Welbourne2021-11-041-3/+6
| | | | | | | | | | | | | | | The check was made against the default locale but the code calls the system functions (wcscoll, wcsxfrm, wcscmp) for locale-specific collation, so should be comparing to the system locale's collation locale (i.e. LC_COLLATE). Also correct the Android-only check in tst_QCollator::compare() which duplicated the check but neglected the C locale, which is also supported (via QString::compare). Change-Id: I48c3237dd6825e2070272ab88d95bdb8cbb9fc37 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 25d807f6292e9918ccdbe06cf7f590f60ecae457) Reviewed-by: Lars Knoll <lars.knoll@qt.io>