summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* QVariant::compare: handle numerical values and pointers as documentedv6.0.0-beta1Fabian Kosmale2020-10-151-9/+80
| | | | | | | | [ChangeLog][QtCore][QVariant] Comparing two QVariants containing floating point numbers for equality no longer uses fuzzy comparisons. Change-Id: Iaba40a66d8fa566a432547fa1a30d5ea191c7fc0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QLocalSocket/Win: prevent writing to broken pipeAlex Trotsenko2020-10-152-0/+7
| | | | | | | | | | | | When a peer closes the connection, the device remains opened for reading purposes. However, we should disable writing on disconnected socket. Otherwise, if the user issues a write() call, a new pipe writer object will be created and the write call occurs with invalid handle value. Pick-to: 5.15 Change-Id: Id136798c7663df1fce7ed0aa4e3c6f5c65218a11 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Manual tablet test: Add a window showing the devicesFriedemann Kleint2020-10-151-0/+69
| | | | | | Task-number: QTBUG-46412 Change-Id: I9cb9bb3493728186e1e6b140308c292ca9662e55 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Android: fix path issue with backslashes on WindowsAssam Boudjelthia2020-10-151-2/+2
| | | | | | | | | | | | The androiddeployqt tool wasn't handling dependencies with backslashes properly, some dependencies like libplugins_platforms_qtforandroid was written into libs.xml as plugins\platforms\libplugins_platforms_qtforandroid_armeabi, the the app won't be looking for the correct path of the lib to load. Task-number: QTBUG-87574 Change-Id: Iad8c74d30d090adf69a17f2dafb455dff50b3d99 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QOverload helpers: code tidiesGiuseppe D'Angelo2020-10-151-10/+4
| | | | | | | | | Remove pre-C++14 code paths; and mark as `inline` the qOverload helper objects (constexpr variables at namespace scope aren't automatically inline). Change-Id: Ieb2a9f06e39720d0c7215a3d1273c3a5996d0bc7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Doc: Migration Guide for QString related changesKarsten Heimrich2020-10-151-0/+84
| | | | | | Task-number: QTBUG-87097 Change-Id: Idcdeaea5a65e91b99a08c2af03c7e76bbe5913bb Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Unwrap private QPalette data memberVolker Hilsheimer2020-10-142-15/+12
| | | | | | | | | Following 556511f9f39ddc887481e0cd5a877134ceb0da6b, there is only one data member in addition to the shared QPalettePrivate, so we don't need a data struct anymore. Change-Id: I8d7f33ed042e47464eb5f60a048956f8bf70e0b9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* rhi: Fix up vertex inputs with matricesLaszlo Agocs2020-10-147-25/+51
| | | | | | | | | | | | In order to prevent too much voodoo in backends like D3D11, the input layout is expected to specify the slice index for vecX that are part of an unrolled matrix. Also deoptimize the instancing manual test to exercise a matrix too instead of just vectors. Change-Id: If2dcbcbc483645ce2420b2f87dda765b95da6e80 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Return false from canFetchMore for uninitialized QFileSystem modelsDoris Verria2020-10-141-0/+2
| | | | | | | Task-number: QTBUG-87273 Pick-to: 5.15 Change-Id: I1787e3dd26ec10cf161d8fa4e329972b6dd4aa6c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix infinite loop triggered when displaying model with QTreeViewDoris Verria2020-10-141-1/+5
| | | | | | | | | For some models like the QFileSystemModel canFetchMore() returns true even though fetchMore() doesn't return anything if setRootPath is false. To prevent an infinite loop, add a check to make sure the model's rowCount was updated during the loop. Fixes: QTBUG-87273 Pick-to: 5.15 Change-Id: I16275fc2765fd77badc1c5d265e8ba5cd250163a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix compile time type normalization codeLars Knoll2020-10-144-86/+191
| | | | | | | | | | | | | | | | | | | | | Use a simpler constexpr to generate type name on gcc This works around an ICE on gcc in release mode when compiling with PCH enabled. As the type we're getting from Q_FUNC_INFO is already in a somewhat normalized form, this requires significanlty less processing and esp. not a recursive constexpr method which I suspect triggers the ICE. Fix integer type conversions to also properly normalize long long values (to q(u)longlong. Make sure the mapping also works on MSVC, where long long types get mapped to __int64. Also, normalize unsigned short and unsigned char to ushort and uchar, respectively, to follow the convention set by uint and ulong. Add some test cases to verify the mappings. Change-Id: I3dec5764450bf22ab6f066597803c3f46c2cd5ac Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Simplify implementations of QtConcurrent::blocking* methodsSona Kurazyan2020-10-142-89/+70
| | | | | | | Call non-blocking methods from the blocking ones. Change-Id: Icf63637223533254b76826340334de35bca258b2 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Minor cleanups based on API reviewSona Kurazyan2020-10-142-7/+7
| | | | | | | | | - Be more more consistent when declaring type aliases. - Re-group include directives Change-Id: Ic521e9f7692e538cc98871bdeccd9644c9879089 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* QMetaType: fix warning messageFabian Kosmale2020-10-141-1/+1
| | | | | Change-Id: I93c8b0d6b490cfed944a2a6a2b64361258a50141 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* General cleanup of qshareddata.hAllan Sandfeld Jensen2020-10-142-134/+135
| | | | | | | | Update the code to something more modern and make the two types more consistent. Change-Id: I524d33fea158e2ba7079fe836164eec03c45649b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Long live Q_IMPLICIT!Giuseppe D'Angelo2020-10-145-19/+25
| | | | | | | | | | | | | C++20 will give us explicit(bool). While we can't use it just yet in its full potential, we can introduce a macro to start marking our implicit conversions (aka `explicit(false)`), removing the need for /* implicit */-like comments. Port a few usages to it. Change-Id: I336d5e4c8d51d8329627900d1059e59062c5cafd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix Qt6 renamingBogDan Vatra2020-10-142-5/+11
| | | | | | | Fixes sha: 1907599bfd817e00c7f42b8cb941ebf93a098e7f Change-Id: I20ece75c321835f13a605ae4d56fee1a034ca7c8 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Brush up the basicsortfiltermodel exampleFriedemann Kleint2020-10-141-1/+25
| | | | | | | | - Add a clear button to the line edit - Indicate invalid regular expressions Change-Id: I1dbeaa0f9168224ccb9134c0c1fe281da14dcbce Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use QScroller in the Dir View exampleShawn Rutledge2020-10-143-5/+15
| | | | | | | | | | | We have never had enough examples that show how easy it is to install a QScroller. In this case, one line makes a QTreeView flickable. Pick-to: 5.15 Task-number: QTBUG-86090 Change-Id: Idb8b4709617befb261f3b78d63ddbdaf5ad18d6b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Mark QApplication::fontMetrics as obsoleteVolker Hilsheimer2020-10-142-0/+7
| | | | | | | | | | It returns the QFontMetrics of the desktop widget, so just for the default screen. Any usage of it is probably wrong, esp since code should use QFontMetricsF instead. Change-Id: I0b4b85a74a2c9b6cc023ffda0b2b399f9fc3c1c4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove QApplication::desktopVolker Hilsheimer2020-10-143-6/+4
| | | | | | | | | | | It's been replaced with QScreen-based APIs. There's some internal code left depending on a QWidget representing a screen, so move the API into QApplicationPrivate until that's cleaned up as well. Change-Id: I851e0901832f2747af3bf2c16a9c4d815598bd08 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add \since 6.0 to new functionVolker Hilsheimer2020-10-141-6/+10
| | | | | | | | Also fix general style of the documentation. Task-number: QTBUG-86479 Change-Id: Ia46bb3ec02d6474dd79b8ac733e0c613abc5e0d8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Schannel: TLS1.3 supportMårten Nordheim2020-10-143-44/+137
| | | | | | | | | | | | | | | | | | | | | | It's not possible to connect to microsoft.com with Schannel TLS 1.3 for some reason (also tested with Internet Explorer), but other sites work fine. Must be something they have to iron out for later. In my experience this needs a preview release of Windows. One of my machines is opted into the dev channel of Windows where they enabled TLS 1.3 by default, and it works well in my tests except for the part above. On my other machine, after enabling TLS 1.3 through the registry, I fail to complete the handshake with any site. So around March/April next year is when this code would activate for most people. MinGW apparently defines NTDDI_VERSION as the one for Windows Server 2003, so it currently doesn't build the new TLS 1.3 code. In Qt (as a project) we could consider setting this higher, but that's out of scope for this patch! Fixes: QTBUG-81294 Change-Id: If329959c3a30ecbfbb8c0d335cc39ccb6d012890 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* tests: blacklist two tests on Ubuntu 20.04Liang Qi2020-10-142-0/+4
| | | | | | | | | | | | tst_QApplication::sendEventsOnProcessEvents() and tst_QItemDelegate::editorKeyPress() There is some issue with the glib event dispatcher. Task-number: QTBUG-87137 Pick-to: 5.15 Change-Id: I79a983192edef3c3560a4296cc9dea2dfc2ee1b0 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Get rid of all usage of QApplication:desktopVolker Hilsheimer2020-10-1414-63/+28
| | | | | | | | Use QScreen APIs instead. Change-Id: Ie99af94fe4292223dbb165b3f5c1b74e8fe0498b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Drop qt_is_permutationGiuseppe D'Angelo2020-10-141-23/+0
| | | | | | | | | | It was a workaround until we could depend on C++14's std::is_permutation overload with 4 args. We now can, and the code using it is gone anyhow, so drop it. Change-Id: Ib9af71eeb767c83b1150c482441503288f1987d4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Document QApplication::desktop as obsoleteVolker Hilsheimer2020-10-141-1/+1
| | | | | | | | | | | | | | | There is no function equivalent in Qt 5.15, but the entire QDesktopWidget class is already documented as obsolete, so this method should implicitly no longer be used in new code. Qt 6 lifts QScreen up to support the various QDesktopWidget use cases, and a follow up will remove this method from Qt 6.0, or at least mark it as deprecated API as well so that it generates warnings when used. Change-Id: I9b205e6d4a636c22a95728695088233c898cbfc4 Pick-to: 5.15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Autodetect Android toolchain file and NDKJoerg Bornemann2020-10-133-18/+34
| | | | | | | | | | | | | | | | | | | | The Android toolchain file is now autodetected from the location of the NDK. The NDK location can be specified by setting the CMake variable ANDROID_NDK_ROOT. Auto-detection of the Android toolchain file is the only purpose of this variable. In recent Android SDK installations the path to the NDK is well-known and can be auto-detected too. If only ANDROID_SDK_ROOT is given, we try to detect ANDROID_NDK_ROOT first and from that the Android toolchain file. Adjust the build instructions in cmake/README.md, and remove the part where we suggest to set some environment variables that are only used to create the cmake call. Task-number: QTBUG-87068 Change-Id: Ia0df5df7651e98979e9cead1cdae7b17ecbc4afb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Reject overwrites by the same index in QPromise::addResult()Andrei Golubev2020-10-136-14/+244
| | | | | | | | | | | | One can call addResult(value, index) twice and consequently set the value twice by the same index. This seems rather strange and probably should not be allowed. This commit rejects setting results when there's already a valid result by that index. Consequently, this fixes memory leaks caused by N-times-called addResult(..., index) Fixes: QTBUG-86828 Change-Id: I77494f2cb73ce727ffad721cfcdcaa420899eb25 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Remove nodiscard in QPropertyObserverNodeProtector ctorAndrei Golubev2020-10-131-1/+1
| | | | | | | | | Produced error in my GCC 7.5 on Ubuntu 18: error: ‘nodiscard’ attribute applied to ‘QPropertyObserverNodeProtector<<anonymous> >::QPropertyObserverNodeProtector(QPropertyObserver*&)’ with void return type [-Werror=attributes] Q_REQUIRED_RESULT QPropertyObserverNodeProtector(QPropertyObserver *&observer) Change-Id: Ic1f6c4f502bb4d5c764686d5521b92f655592bb2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add a few missing Q_CLANG_QDOC for native interfacesTor Arne Vestbø2020-10-133-4/+4
| | | | | Change-Id: I5dbe2f7e7c03fb0a130b2da373f6f6a642d57575 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Android: add missing new line to androidtestrunner helpAssam Boudjelthia2020-10-131-1/+1
| | | | | Change-Id: Idba54c15af64b8dadcba9fa2125d6aae5e6c6bc9 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QSslSocket - replace NULL with nullptrTimur Pocheptsov2020-10-131-1/+1
| | | | | | Change-Id: I3af7747f424ef7837c9c3d4af3e5cbd14922aeb6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* doc: Add brief and group for native type conversionsTor Arne Vestbø2020-10-133-101/+175
| | | | | Change-Id: I74608619201bf77e487fb986bf213b349cc22f6a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QCborValue: streamline some code with qExchangeGiuseppe D'Angelo2020-10-131-3/+1
| | | | | Change-Id: I79b68173a236ff1f28504a11ff182bdf48b2df0b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark the class QPropertyObserverNodeProtector as [[nodiscard]]Lars Knoll2020-10-131-1/+1
| | | | | | | And not its constructor, as GCC at least doesn't like that. Change-Id: I4aada7ca7135dd9c599980640588e7c98d398171 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Loosen the requirements on the container passed to QtConcurrent::map*Sona Kurazyan2020-10-133-5/+3
| | | | | | | | | | | | Using std::begin() and std::end() forces the user to have const begin() and end() member functions being defined for the passed container. This is because std::declval<T>() returns rvalue which forces the compiler to select std::{begin, end}()(const Container &c) overloads and an test for a presence of const {begin, end}() methods. Change-Id: I9d96d9f73891ece53224f1741a1334500f7b35ad Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QObject: simplify part of connection logicFabian Kosmale2020-10-131-16/+3
| | | | | | | | | | | We do not require anymore that the metatypes are declared beforehand, but can instead simply use QMetaType::fromType<T>().id(). This allows us to remove the templates containing the "metatype is declared" validation logic. Change-Id: I0b74c72643a233335689074091a38648f3e4f853 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove timeStep parameter from QAnimationDrive::advanceAnimationVolker Hilsheimer2020-10-134-21/+16
| | | | | | | | | | | | This reverts commit 7544c242cb935b5ff625e54c3facceea535c6ae5, which reverted the first removal of the parameter under the assumption that it caused flakiness in tests. The flakiness was instead caused by changes to the wait functions in QTest, so remove the parameter again. Change-Id: I98154d5d7268375aebbcb09de757e75d9b765c5f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add externConstexpr to MSVC compile optionsUlf Hermann2020-10-132-0/+6
| | | | | | | | We want this in order to be able to export constexpr members. Change-Id: I33ba7964ebee54fe656df983985d8d6fa0b99358 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix detach on bool check of QSharedDataPointerAllan Sandfeld Jensen2020-10-131-0/+1
| | | | | | | | | We have a conversion to T* which would be triggered for a non negated bool check. Pick-to: 5.15 Change-Id: I543c66de6b4da64a3a63ee9a438fab6adcc58052 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qDebug: Avoid implicit QVariant conversionFabian Kosmale2020-10-133-8/+26
| | | | | | | | | | | | | | | | | | | | | | | This commit restricts operator<<(QDebug lhs, QVariant rhs) to only work if rhs is actually of type QVariant (instead of any type convertible to QVariant). This is especially important as a) we check in QMetaType whether (slightly simplified) QDebug{} << std::declval<T>() is valid, and if so, register a function which simply uses the operator. b) In QVariant, we ask the metatype system for the contained types registered debug function and then use it. If a type now does not have its own operator<< for QDebug, but is implicitly convertible to QVariant containing itself, this would lead to an infinite recursion, when trying to use qDebug with that type. The registered function in a) would just convert the type to QVariant, and then ask the QVariant to print itself. Disallowing implicit conversions in qDebug in general was considered (i.e. adding template<typename T> operator<<(T) = delete in QDebug ), but discarded as it breaks too much code relying on conversions. Fixes: QTBUG-87122 Change-Id: Ib709297670cbc6cc307efd0dfd8e5b0279df9414 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Rename qt6_quick_compiler_process_resources to be internalAlexandru Croitor2020-10-121-1/+1
| | | | | | Task-number: QTBUG-86827 Change-Id: I9d97b53a8c85e0c488be312c8894a1d73397eb13 Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Minor refinements in QLocaleEdward Welbourne2020-10-121-12/+9
| | | | | | | | | | A loop's condition could be simplified. Use std::size() rather than sizeof()/sizeof(). Clarify two comments. Change-Id: Ideba2e0e1ba9c9656297aefb0a375cc122ee8626 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Eliminate QLocaleId::fromIds() in favor of {...} constructionEdward Welbourne2020-10-122-23/+14
| | | | | | | | It's a value type, we don't need a pseudo-constructor to bypass constructors. Change-Id: Ic4774c82e43ab7e2c54ac743026ce087e34c150f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Mark QLocale's Language, Country and Script enums as ushortEdward Welbourne2020-10-122-4/+4
| | | | | | | | | | The code pervasively presumes their values can be held in a ushort, so make sure the compiler knows we expect that to work (and doesn't complain about narrowing when we do convert them to ushort). Change-Id: Idde7be6cceee8a6dae333c5b1d5a0120fec32e4a Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* rhi: Add missing \internal doc commandsTor Arne Vestbø2020-10-121-0/+3
| | | | | | Pick-to: 5.15 Change-Id: I09a69a04c6fcd406602e797cbeec59216fecd5d8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Exclude all modifiers as candidates for shortcutsTor Arne Vestbø2020-10-121-1/+1
| | | | | | | | | If we're going to limit shortcuts to non-modifiers, we should at least include all of the modifiers, otherwise we'll end up passing through e.g. Key_CapsLock. Change-Id: If11758f85d06f75e9b9c2d2a57d4a4915ff72317 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Remove dead codeLars Knoll2020-10-1214-98/+4
| | | | | | | This code has been deprecated in Qt 5. Change-Id: Ia8e0bc791ac1f43df7124b4f30db3d0bb9966015 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Enable the Android style plugin for the cmake buildLars Knoll2020-10-122-1/+21
| | | | | | Change-Id: Ie6a82c47c92067fb22270891bb81cd75ed3c9212 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>