summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Q_GLOBAL_STATIC - deal with static code analysersTimur Pocheptsov2021-01-271-0/+4
| | | | | | | | | | | | At least some of them don't like the fact we have classes with non-trivial destructors but trivial move/copy constructors - disable them explicitly, hopefully those analysers are smart enough to stop complaining. Change-Id: I285711a2d21bff89661af928ba326ecd5b69823f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QVariant: Do not destroy trivial typesFabian Kosmale2021-01-272-3/+8
| | | | | | | | | | | | | | | | | | perf indicates that we spend quite some time in ~QVariant in the referenced task's benchmark. With this patch, we significantly reduce the amount of work we do in the destructor for trivial types: Instead of calling an out-of-line function, which does a few checks and then does an indirect call through a function pointer to a do-nothing dtor before freeing the memory, we now simply free the memory. We achieve this by changing QMetaTypeInterface to leave the dtor function pointer null if the type is trivially destructible. Then, in QVariant we use the QMetaTypeInterface directly instead of going through QMetaType. Task-number: QTBUG-90560 Change-Id: Iaf87036710e1680323842e1ba703a5d3d0e5027a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QJsonObject::take: add missing detach() callThiago Macieira2021-01-271-0/+1
| | | | | | | | | | We were modifying shared objects. Pick-to: 6.0 5.15 Fixes: QTBUG-89625 Change-Id: Id6bc735b79cf4beb9454fffd165c56476a5dec04 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* Fix that the placeholdertext of QCombobox is not drawnChunLin Wang2021-01-271-2/+4
| | | | | | | | | If the current index is invalid,a placeholdertext will be displayed. Fixes: QTBUG-90595 Pick-to: 6.0 5.15.2 Change-Id: Id4c6b9c959242b96ee0944b8fc3131a9a2fdcccc Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* evdevtouch: Fix normalizedPositionValery Volgutov2021-01-271-0/+6
| | | | | | | | | | Set the available virtual screen geometry. This geometry is needed for QEventPoint::normalizedPosition calculation. Pick-to: 6.0 Change-Id: I7e25488d62a5099c14b5c15fa2b4040ea32b9ecd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
* Port QStandardItemModel to the new property systemSona Kurazyan2021-01-263-5/+10
| | | | | | | | Task-number: QTBUG-85520 Task-number: QTBUG-85521 Change-Id: I2f9bbe8bc06838fcbadd446e111fb697120f550c Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTimer: port to new property systemIvan Solovev2021-01-262-8/+43
| | | | | | | | Task-number: QTBUG-85520 Change-Id: I1f92b86619f2ca186c505251b21463f396af0ac6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
* Port QPauseAnimation to the new property systemSona Kurazyan2021-01-262-2/+13
| | | | | | | Task-number: QTBUG-85520 Change-Id: I8c0ee86598f4c0f093f64b2891ee835a43964b84 Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* ibase: Fix the compilation and include it again so it can be detectedAndy Shaw2021-01-264-19/+36
| | | | | Change-Id: I38721155f090173862da8beab8cb04b2e015dcff Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* QRegularExpression: add move constructorIvan Solovev2021-01-262-6/+75
| | | | | | | | | | | | - Add move constructors to QRegularExpression, QRegularExpressionMatch and QRegularExpressionMatchIterator. - Update the documentation to explicitly state that only destructor and assignment operators can be called for a moved-from object Task-number: QTBUG-86634 Change-Id: I06b4f54e300541033a9a18339c97338717a06da0 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QIcon: Use the @nx pixmaps in the paint methodBastien Bouclet2021-01-261-1/+1
| | | | | | | | | | | Make use of the device pixel ratio in the QIcon paint method so the @nx hi-dpi pixmaps are selected when appropriate when painting to a QPainter. Pick-to: 6.0 Fixes: QTBUG-90042 Change-Id: I53995a2285ef879e3c4fddb9f8da702e256a260f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add upstream version of FindPostgreSQL.cmakeAlexey Edelev2021-01-261-3/+0
| | | | | | | | | | | | Add CMake upstream(3.20.0) version of FindPostgreSQL.cmake, to avoid server-related headers lookup. Avoid using the Qt version of the PostgreSQL module, if it's older than the CMake's one. Fixes: QTBUG-89639 Change-Id: I71a0c3508000901969933aea8a08d1ad431db711 Reviewed-by: Craig Scott <craig.scott@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Workaround MinGW not handling error suppression macro correctlyFabian Kosmale2021-01-261-0/+6
| | | | | | | | Fixes: QTBUG-90353 Change-Id: I9270f4107f3f7083d28228f2426b34bc1e198112 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix populating selection clipboard with keyboardVolodymyr Samokhatko2021-01-265-6/+23
| | | | | | | Task-number: QTBUG-59879 Pick-to: 6.0 5.15 Change-Id: I6948919fc90995c60a34b5bd6b4a225c1a59fd9b Reviewed-by: Liang Qi <liang.qi@qt.io>
* Android: Fix deprecated QVariant usageAndy Nichols2021-01-261-1/+1
| | | | | Change-Id: Ib14bbba726d1da352933ed418931d69443720946 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Don't forward-declare non-Qt things with QT_FORWARD_DECLARE_*Mårten Nordheim2021-01-261-1/+1
| | | | | | | As it breaks in namespace builds Change-Id: I1a278330eeea6b2b89c8a57c0df828dff94ebf7a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Clean up QCocoaFileDialogHelperTor Arne Vestbø2021-01-262-338/+262
| | | | | | | | | | | | | | | | | | | - Remove indirections via helper functions that did nothing but redirect. - Remove unneeded checks of !m_helper in delegate. The helper is always valid for a delegate. - Use m_ prefix for member variables, as in the rest of Qt. - Implement init: as per modern Objective-C recommendations. - Remove respondsToSelector checks that were not needed. - Use modern Objective-C property syntax. - Fix code style issues/formatting. - Remove unused functions. - Reorder and remove unused includes. - Class-initialize member variables. Change-Id: Iedc084b67bb496b2ef13001a0e6aa46d4574eb57 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: Don't restrict non-modal file dialogs to open-dialogs onlyTor Arne Vestbø2021-01-261-16/+14
| | | | | | | | None of the APIs used for non-modal operation require NSOpenPanel. Pick-to: 6.0 5.15 Change-Id: I7ea49a8dad6e724a8a0d4321ea443d4cdcc5a6b1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* macOS: Show system tray icon on mouse button press, not releaseTor Arne Vestbø2021-01-261-1/+1
| | | | | | | | | | | | | | | This was a regression from 395e2d9bc48941d6. The system behavior is to show the menu on press, so we follow that. This is also documented at: https://doc.qt.io/qt-5/qsystemtrayicon.html#ActivationReason-enum Fixes: QTBUG-86518 Pick-to: 6.0 5.15 Change-Id: Ia4dc5356bf0377a9d55f238caf5bf1becd95648d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QVariant: avoid superfluous QMetaType lookupFabian Kosmale2021-01-261-38/+38
| | | | | | | | | | | | | | | | | | Constructing a QMetaType from an id requires a lookup which isn't free, even for builtin types. When constructing a QVariant from an integer, this leads to a noticeable performance loss. In the mirco-benchmark of the linked bug, we improve from 100000000 965 to 100000000 789 on Linux, Intel i5-4690, clang 11.01 with a CMake release build. This however still does not recover the performance we had in Qt 5. Task-number: QTBUG-90560 Change-Id: I26440bdc04ef131ce91d3698957f0df43a4c4017 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Partially revert 813a928c7c3cf98670b6043149880ed5c955efb9Ulf Hermann2021-01-261-0/+3
| | | | | | | | Otherwise ASAN complains about mismatched new/delete. Change-Id: I76ddcc388309e20055c93c68b9b6fa8a11b884e1 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Update QMutexLocker documentationLars Knoll2021-01-263-2/+11
| | | | | | | | | And add an entry about the API changes to qt6-changed.qdoc. Pick-to: 6.0 Task-number: QTBUG-89429 Change-Id: I146574acd3e4aa5ed6f1629fc68888f009472f19 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Extend alignment of QArrayData to std::max_align_t in allocationAndrei Golubev2021-01-261-7/+16
| | | | | | | | | | | | | | | | | | | | Make stricter alignment requirements for the allocated header This strict alignment allows reallocateUnaligned() to property account for the padding occurring in cases when alignof(QArrayData) < alignof(T) <= alignof(std::max_align_t), which happens to be the case on e.g. 32-bit platforms with specific alignment requirements. This adds 4 bytes (the difference between alignof(std::max_align_t) and sizeof(QArrayData)) of overhead for QString, QByteArray and certain QLists on 32-bit systems. Task-number: QTBUG-90359 Pick-to: 6.0 Change-Id: I8176a4cc79f100ee772b09425e88fe8ff3ae226a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Use system PCRE2 for Bootstrap libraryAlexey Edelev2021-01-251-33/+44
| | | | | | | | | By default, use system PCRE2 for Bootstrap library, if not cross-compiling. Fixes: QTBUG-90556 Change-Id: I7291927565484073cadacec9a381b54b44ebeaec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QMimeDatabase/xml: support both 'xmlstarlet' and 'xml' for minifying XMLKai Köhne2021-01-251-0/+4
| | | | | | | | | | | | | Commit 370324f6e2f3 changed the call to 'xml' to 'xmlstarlet' because some Linux distributions do not provide a binary called xml. Anyhow, the official Windows packages of xmlstarlet only provide 'xml.exe'. Therefore just check for both. Pick-to: 5.15 6.0 Change-Id: I4381b256850e4101b760df21f2b0baffb4414620 Reviewed-by: Eric Lemanissier <eric.lemanissier@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Bump copyright year to 2021Kai Köhne2021-01-253-6/+6
| | | | | | Change-Id: I18a9c2de391ca51655148b2e3cc9abdfbb8ddbcf Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QLocale: Allow direct conversion from language, country, and script codesKai Köhne2021-01-253-7/+51
| | | | | | | | | | | | | | | This complements patch a148c7b5d71d244, where languageToCode(), countryToCode() scriptToCode() methods were introduced, with matching codeToLanguage(), codeToCountry(), and codeToScript() methods. This allows us to remove the use of private Qt Core API in Qt Linguist. [ChangeLog][QtCore][QLocale] Added static codeToLanguage(), codeToCountry(), codeToScript() methods that convert ISO code strings to the respective enum values. Change-Id: If5c0843a718c006ade086a6f74ceb86ac6e0fce4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* macOS: Don't exec file dialogs via runModal unless they are app modalTor Arne Vestbø2021-01-252-20/+40
| | | | | | | | | | | | | | | | | | | | | | Non-modal or window modal dialogs are shown at show(), via AppKit APIs that are non-blocking. If we want to block execution at this point, we need to spin our own event loop. The runModal API of NSSavePanel is not meant to be used for blocking execution for already shown dialogs, but is reserved for application modal dialogs. This means we no longer trip over AppKit's understanding of what state the dialog is in, which would result in the dialog not reporting back any files. It also allows us to remove the guard for closing dialogs twice. We now also correctly close and end the application modal session if the dialog is closed programmatically using Qt APIs. Task-number: QTBUG-89959 Fixes: QTBUG-85547 Pick-to: 6.0 5.15 Change-Id: Ida3dc404417789d4823822ecfbf0935591c23878 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Make QCalendar's backend registration reentrant-safeEdward Welbourne2021-01-251-32/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, different threads instantiating the same back-end could collide in the register, with various unwelcome results. Give Registry an atomic status flag to track whether it has been populated or is being destroyed; and protect it with a mutex to ensure distinct threads do not collide during registration or attempt to register while the registry is being destroyed. Document the correct way to instantiate custom backends, and that no code other than the QCalendar implementation should instantiate the built-in ones. Instantiators that follow these rules should be safe from failed registrations, provided they don't pick a name that conflicts with some other backend. They can also use the recent change to semantics of registerAlias() to verify that registration *has* succeeded. Done-with: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Pick-to: 6.0 5.15 Task-number: QTBUG-88815 Task-number: QTBUG-85692 Fixes: QTBUG-84575 Change-Id: Ie78e700e71d610454152c05cafb38f6f713649ad Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add QPlatformScreen::colorSpace()Allan Sandfeld Jensen2021-01-259-1/+142
| | | | | | | | Added for macOS and X11 screens Task-number: QTBUG-90535 Change-Id: Ifafe7a07ee2abc3c42cd12785db2d7329878375b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QSql/PostgreSQL: allow blobs with more than 2^30 bytesChristian Ehrlicher2021-01-251-2/+2
| | | | | | | | | | | | Due to limitations of QByteArray it was not possible to store more than 2^31 bytes. This was fixed in Qt6 so throw away the casts to int in the postgres plugin Fixes: QTBUG-79059 Change-Id: I8ae7276a04d4936bcf5ba6c413e3412f6c342ff5 Pick-to: 6.0 Reviewed-by: Robert Szefner <robertsz27@interia.pl> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Implement vertical subpixel positioning where availableEskil Abrahamsen Blomfeldt2021-01-2523-152/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some use cases, vertical subpixel positioning may be useful, as it allows you to vertically align text with other painting primitives. This does impose an overhead, so we make it opt-int with a render hint on the painter. Note that this is only supported on Freetype currently. It might be possible to support on older macOS versions, prior to Mojave (which has disabled subpixel positioning entirely), but since it would have limited usefulness and Freetype is cross-platform anyway, I skipped that. Note: This drive-by-fixes an issue with subpixel positioning where glyphs would always be offset by 1/64, because we added the aliasing offset *after* we had determined the closest subpixel position. The idea of this, as far as I can understand, is rather to snap to nearest subpixel position upwards, not to add an offset to all glyphs, so it should be added before finding the correct position. It had a subtle visual effect when animating the position. It might be that we could get rid of it entirely, as I haven't been able to reproduce any issues with that, but I have moved it instead, to match what I believe the intention was. [ChangeLog][QtGui][Text] Added render hint flag QPainter::VerticalSubpixelPositioning which will position text at subpixel positions vertically whenever supported. In absence of this, text position will be rounded vertically as before. Fixes: QTBUG-35682 Change-Id: I8ce7a72a64e5a0924dac7c244e3e07c2938bfd09 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add correct prefix for GHS compilerKimmo Ollila2021-01-251-0/+2
| | | | | | | | | | | | This fixes INTEGRITY build error: cannot access position 53 in array of 49 elements constexpr const char *begin = func + prefix; and many "expression must have a constant value" errors. Change-Id: I0e043028fbcb479c6657b59ea144b4536cc65651 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QComboBox/Fusion style: elide text when it's too longChristian Ehrlicher2021-01-231-1/+2
| | | | | | | | | | The fusion style did not elide a very long text in a QComboBox as it's done in other styles / non-popup mode. Fixes: QTBUG-86632 Pick-to: 6.0 5.15 Change-Id: I356a61809220d41717a9039d2b33dd706d034941 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove the QT_CMAKE_BUILD preprocessor defineJoerg Bornemann2021-01-222-5/+0
| | | | | | | | | | | | Qt is now always built with CMake. The "cmake" keyword for QtTest blacklists remains for now. Removal is tracked in QTBUG-90545. Change-Id: I0011d56176a07c82698b2eb9aa330e77efa6cd34 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QProcess/Win: move pipe draining into QWindowsPipeReaderAlex Trotsenko2021-01-224-32/+89
| | | | | | | | | | | | | | | | | | ... where it belongs. To avoid the loop, introduce the drainAndStop() function, which allows QWindowsPipeReader to flush the pipe itself. It determines the number of bytes pending and blocks until the remainder of the process output is received. Note that the loop in drainOutputPipes() didn't actually have to interleave the two pipes (because we're presuming that the operations will finish instantly), so we don't do it now. Also, the code violated the API contract: 'true' was returned when the 'wrong' channel received data; this is now fixed as a side effect. Change-Id: I38ed4861a238e39e793c3716e856e5bfdeed3d74 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QTestlib: Speed up comparison of qsizetypeFriedemann Kleint2021-01-224-0/+36
| | | | | | | | | | | | | Add a qCompare() overload for qsizetype, preventing it falling back to the slow code path pre-formatting expected/actual. toString() should use the correct format from the already present int-types (see macro TO_STRING_IMPL). Complements 94aa350621e8a5c4ad3b438c10fc1c0a9ed3bc8a. Task-number: QTBUG-38890 Change-Id: Ieb8cea7de086141a2c80f93b4c1be01572be96df Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Update TinyCBORThiago Macieira2021-01-2211-48/+114
| | | | | | | | | | | Updated to commit e6a4fa4862bcc3a6f6b07cf9d9b784d0ab6068b4. Pick-to: 6.0 Fixes: QTBUG-89650 Task-number: QTBUG-90214 Change-Id: I6edce5101800424a8093fffd15cdf6591cbf809d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* rhi: Pipeline cache load/saveLaszlo Agocs2021-01-2213-54/+574
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add QRhi APIs to retrieve and reload the contents of the "pipeline cache". The only API where there is a true pipeline cache is object is Vulkan (VkPipelineCache). For OpenGL, the other backend where we support this, it is simulated with program binaries. The Qt 5 style OpenGL program binary disk cache continues to work like before, but one has now the option to do things in a more modern, graphics API agnostic way, that leads to generating a single blob instead of a large set of files in some system location, allowing easier "pre-baking" of the cache content. It is expected that Qt Quick exposes the two new functions in form if QSG_RHI_ environment variables, thus allowing easy testing and cache file generation. As an example for the performance improvements this can give, consider Vulkan, where we do not have any existing persistent caching mechanism in place: Running BenchmarkDemoQt6.exe --scene flythrough --mode demo creates 18 QRhiGraphicsPipeline objects from Qt Quick and Qt Quick 3D. The total time spent in QRhiGraphicsPipeline::create() during application startup for these 18 pipelines is 35-40 ms on a given Windows (NVIDIA) system. When exporting the pipeline cache contents to a file, and then, in a subsequent run, reloading the cache contents, this is reduced to 5-7 ms on the same system, meaning we get a 6-7x improvement. The generated data is always specific to a given Qt version, RHI backend, graphics device, and driver version. Much of the implementation consists of adding and verifying the appropriate header to the blobs retrieved from the driver, to allow gracefully ignoring data that was generated with a device or driver that differs from the one used at run time. This should provide robustness, even if the Vulkan or OpenGL implementation is for some reason not prepared to identity and reject incompatible cache/program blobs. Fixes: QTBUG-90398 Change-Id: I67b197f393562434f372c7b7377f638abab85cb3 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QSsl: add a new private APITimur Pocheptsov2021-01-229-320/+767
| | | | | | | | | This is an abstraction for TLS backend and its factory, preparing to transition to plugin-based design. Task-number: QTBUG-65922 Change-Id: Ibe810e77fd1b715a6bea66cd3f44312b015ac274 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QSslSocket - introduce the API providing information about backendsTimur Pocheptsov2021-01-218-7/+516
| | | | | | | | | | | | | | This API gives the names of available backends and provides a basic information about features/protocols supported by those backends. Also, it has the 'loadBackend' functions which allow to select a particular backend (which are becoming plugins). At the moment, the implementation is still 'hardcoded', the follow-up patch will allow to select different backends in runtime. Task-number: QTBUG-65922 Change-Id: I05877de9c02857594e76b24d52e7578bdb01df69 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add face support to texture fileJonas Karlsson2021-01-215-39/+85
| | | | | | Task-Id: QTBUG-76970 Change-Id: I3bbd43357c7fcce8949522b089a4572b948f08f4 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix separately building SQL plugins with CMake 3.16Joerg Bornemann2021-01-211-1/+3
| | | | | | | | | | | | | Also move the cmake_minimum_required call to the top of the file, because the line before already requires some policy settings, which is what cmake_minimum_required() is establishing. For the standard Qt build, we make sure to get appropriate policy settings by calling qt_internal_upgrade_cmake_policies(). Pick-to: 6.0 Change-Id: If97556a9dd00646e83957959d0f9f16916625160 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* SQLite: Update to 3.34.0Andy Shaw2021-01-213-730/+2030
| | | | | | | | | [ChangeLog][QtSQL][SQLite] Updated to 3.34.0 Fixes: QTBUG-90226 Pick-to: 6.0 5.15 Change-Id: I2a489bec1fee2bdee7ea474094ca3db308699753 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Hold references to zone IDs alive during useEdward Welbourne2021-01-211-2/+8
| | | | | | | | | | | | Restore holding of a getID() call's return in a QJNIObjectPrivate eliminated in commit 78cde1bfd94521bbe4972f31a79c959d0990ea77; this keeps the Java internal object alive for its lifetime, where it might otherwise be garbage-collected before we're done with it. Fixes: QTBUG-88610 Pick-to: 5.15 6.0 Change-Id: Id65b059012f7bd3377a6562c1b647feb75a13679 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* QProperty: Add private isAnyBindingEvaluating functionFabian Kosmale2021-01-212-0/+19
| | | | | | | | | | | | | | | | | To optimize certain operations, it can be useful to know whether we are currently evaluating a binding. For instance, we have properties whose storage is only alloctaed on-demand when they are set. However, we would also allocate them if they are used in a binding context, as we would otherwise not properly track the dependency. Using isAnyBindingEvaluating in the getter, we can detect this situation, and avoid the allocation if it returns false. This API is private for now, as it exposes some internals of the property system and should be used with care. As it needs to access the TLS variable, it also has a non-negligible cost. Change-Id: I373aabee644fe7020b2ffba7d6a0ad9a1e1b4ec0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Gracefully reject requests for absurd font sizesEirik Aavitsland2021-01-211-0/+6
| | | | | | | | | Avoid overflows. Fixes: QTBUG-89899 Pick-to: 6.0 5.15 5.12 Change-Id: Ic1a83c1704fe20be3d032358dc91ee8e751f2281 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QPushButton: fix drawing pushbutton with a menuChristian Ehrlicher2021-01-201-8/+9
| | | | | | | | | | | | | | | | | Drawing a QPushButton with a menu results in a clipped label text and a wrong aligned decoration and menu button. The position of the menu button was calculated wrong (spacing has to be subtracted since the start position is the right side). Also the text label alignment was done before it was adjusted for the menu button which results in an unaligned (in constrast to a pushbutton without a menu) label and decoration. Fixes: QTBUG-89619 Change-Id: I872d39ff2d8eb685fe6843e38c7f727868e1ee9a Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Funning <huangyub@uniontech.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* iOS: ensure we close the edit menu when the user taps outside the input areaRichard Moe Gustavsen2021-01-201-32/+50
| | | | | | | | | | | | | | | | | | | | | | | iOS used to close the edit menu automatically when the user tapped on the screen (even for menus shown explicitly using the UIMenuController API). Apperently this has now changed (probably as a part of [UIMenuController setMenuVisible:] being deprecated in iOS 13). So we now need to hide it explicitly. Because of this, we no longer close the edit menu if the user taps outside the input area. This patch will fix this by updating the logic in QIOSTapRecognizer to close the menu explicitly. There are some more details around when to show or hide the menu, which is commented on at the relevant places directly in the patch. Pick-to: 6.0 5.15 Fixes: QTBUG-90332 Change-Id: I336e3f4003817b39c7abf63f963fde1f3ef87c20 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* iOS: ensure we hide the edit menu while dragging on the selection handlesRichard Moe Gustavsen2021-01-201-0/+9
| | | | | | | | | | | | | | | | | | | | iOS used to close the edit menu automatically when the user tapped on the screen (even for menus shown explicitly using the UIMenuController API). Apperently this has now changed (probably as a part of [UIMenuController setMenuVisible:] being deprecated in iOS 13). So we now need to hide it explicitly instead. Because of this, the edit menu would be showing together with the magnifier class while the user was dragging on any of the handles. This patch will fix this, so that we close the edit menu explicitly whenever the user starts dragging on a handle. Pick-to: 6.0 5.15 Fixes: QTBUG-80298 Change-Id: Iff2032d64db1b582fa7f048c6a1f37ec8a1528af Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>