summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Remove trivial overrides from QProcessJoerg Bornemann2020-03-062-31/+0
| | | | | | Change-Id: I630fc44213fdc380c8b00e159989d5067bb2a185 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Merge QProcess::startDetached(QString, QStringList, ...) overloadsJoerg Bornemann2020-03-062-20/+1
| | | | | Change-Id: Ic74f78c2bdf9acf0f91df3151e82cf2bf2602c1d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Depend on automoc timestamp for metatypes extractionLeander Beernaert2020-03-051-13/+40
| | | | | | | | | When using CMake 3.17 with any of the Ninja generators we can leverage a dependency on the timestamp file produced by CMake's automoc to avoid having a custom target run on every build. Change-Id: Ia70d2730cc8296d0a43642655fe69b555cb393c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Convert Core_qobject to a static moduleLeander Beernaert2020-03-051-13/+9
| | | | | | | | This removes the last add_custom_target when used in conjunction with the Ninja and CMake >= 3.17. Change-Id: Ibb9bdff4b5bc00542d2a5ba631cea7e0510ad5e9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Get rid of some QT_STRICT_ITERATORS leftoverLars Knoll2020-03-051-73/+0
| | | | | | | | Amends 06456873fceddcd340431fc5999c50ff6d3c2371. Fixes: QTBUG-82611 Change-Id: I8b1e01549f3e910b85a571833237e38a7c2b49a9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: fix typoMårten Nordheim2020-03-051-1/+1
| | | | | | | | gerate -> generate Change-Id: I948a3bdb4f56584a9ab02f27760fec5989d528ce Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QHash/QMap: don't return const from value(), key()Marc Mutz2020-03-054-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | ... it breaks move semantics. We can change these, since they're templates and a short survey shows that no-one in Qt was crazy enough to inherit an exported class from QHash or QMap. Otherwise this would be BiC on MSVC, which encodes the return type. There's also no safety benefit here, as none of the overloads returns by reference, so users cannot expect map.value(key).mutate() to have an effect on the element in the container. In this, key() and value() differ from op[], which also returns const, but whose overload returns a reference. op[] is therefore not proposed here. [ChangeLog][QtCore][QHash/QMultiHash/QMap/QMultiMap] The value() and key() member functions now return T (was: const T), enabling move semantics on their return values. Change-Id: I0e5f53f9834caad458e3bde27f1daacbb4bac71b Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add support for attaching continuations to QFutureSona Kurazyan2020-03-059-7/+647
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added QFuture::then() methods to allow chaining multiple asynchronous computations. Continuations can use the following execution policies: * QtFuture::Launch::Sync - the continuation will be launched in the same thread in which the parent has been executing. * QtFuture::Launch::Async - the continuation will be launched in a new thread. * QtFuture::Launch::Inherit - the continuation will inherit the launch policy of the parent, or its thread pool (if it was using a custom one). * Additionally then() also accepts a custom QThreadPool* instance. Note, that if the parent future gets canceled, its continuation(s) will be also canceled. If the parent throws an exception, it will be propagated to the continuation's future, unless it is caught inside the continuation (if it has a QFuture arg). Some example usages: QFuture<int> future = ...; future.then([](int res1){ ... }).then([](int res2){ ... })... QFuture<int> future = ...; future.then([](QFuture<int> fut1){ /* do something with fut1 */ })... In the examples above all continuations will run in the same thread as future. QFuture<int> future = ...; future.then(QtFuture::Launch::Async, [](int res1){ ... }) .then([](int res2){ ... }).. In this example the continuations will run in a new thread (but on the same one). QThreadPool pool; QFuture<int> future = ...; future.then(&pool, [](int res1){ ... }) .then([](int res2){ ... }).. In this example the continuations will run in the given thread pool. [ChangeLog][QtCore] Added support for attaching continuations to QFuture. Task-number: QTBUG-81587 Change-Id: I5b2e176694f7ae8ce00404aca725e9a170818955 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Lars Knoll2020-03-0414-83/+126
|\
| * Merge remote-tracking branch 'origin/5.15' into devLars Knoll2020-03-0414-83/+126
| |\ | | | | | | | | | Change-Id: I99ee6f8b4bdc372437ee60d1feab931487fe55c4
| | * QMimeXMLProvider: fix another issue with -no-mimetype-databaseThiago Macieira2020-03-032-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler must emit the destructor for the members of a class in an inline constructor, in case the constructor throws. This won't work in Qt 5.15 due to QList requiring knowing whether QMimeMagicRuleMatcher is trivial or not. Another solution would be to use QVector. Fixes: QTBUG-82547 Change-Id: Ia8b65350cd5d49debca9fffd15f79db872ed7c0c Reviewed-by: David Faure <david.faure@kdab.com>
| | * Add operator-> to the key-value iterator for QHash and QMapIvan Čukić2020-03-032-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the arrow operator to the stl-like key-value iterator (QKeyValueIterator) for QMap and QHash. This allows using normal member access syntax it->first and it->second instead of having to use (*it).first and (*it).second. [ChangeLog][QtCore][Containers] Added operator-> to the key-value iterator for QHash/QMap. Change-Id: I9cfa6480784ebce147fcfbf37fec5ad0080e2899 Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
| | * QEventDispatcherWin32: unregister event notifiers on closeAlex Trotsenko2020-03-033-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QEventDispatcherWin32::closingDown() is called, threadData->eventDispatcher is already nullptr and the application will no longer process the events. Thus, just as it works for socket notifiers and timers, it makes sense to disable all active event notifiers at this point. Otherwise, it seems possible that an object in signalled state can provoke a data race in the notifier's callback on 'edp' pointer, if QWin32EventDispatcher destructor is running simultaneously. Task-number: QTBUG-64152 Task-number: QTBUG-70214 Change-Id: I6e77f3eeca1b0ea639021e73b86798cba0200ebf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Fix missing return-type in doc of qfloat16::copySign()Edward Welbourne2020-03-031-1/+1
| | | | | | | | | | | | | | | Change-Id: I617081fe3335a85191be7882578644621d5ffede Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Suppress warnings where QString and its tests use SplitBehaviorEdward Welbourne2020-03-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | This is a follow-up to commit 895939c7f91d0c8424a0638c42d05cb42293a142 to fix deprecation warnings it added. Change-Id: I3d86655ec2c84c1bdcac9c70436075fc78f2f781 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * QMap: undeprecate QMap::count(Key)Mårten Nordheim2020-03-032-32/+19
| | | | | | | | | | | | | | | | | | | | | For compatibility with std::map Change-Id: Icba536244aadcad97c59dfd4bb22a7fdea881a7b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * QMap/QHash: Use versioned deprecation macroMårten Nordheim2020-03-032-10/+10
| | | | | | | | | | | | | | | | | | | | | Because then it can be configured Change-Id: Ib4c20dd64bedfe2ebadf13283698c50d4c0bc527 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Undeprecate QHash::count(Key)Mårten Nordheim2020-03-032-29/+14
| | | | | | | | | | | | | | | | | | | | | For compatibility with std::unordered_map. Spotted in the API review. Change-Id: Ic34600d55baebcbbf115c1090cd555984037c44c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Avoid UB in QList::removeAt()Lars Knoll2020-03-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always keep the out of bounds check for backwards compatibility, but warn about it, so that we can remove it in Qt 6. Amends commit ebf695bc779a63a5730df05ab246305c0ab342e4 Change-Id: I3f1e7e8f9f20feb0b0f06ff9083c26682f1c7d3b Reviewed-by: Richard Öhlinger <richard.oehlinger@adbsafegate.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Warn about Q(Date|Time)+ switching to C locale in Qt 6Edward Welbourne2020-03-031-0/+24
| | | | | | | | | | | | | | | Change-Id: I3a3afc3fb4ddca405a75097feb15aee0e72b3b19 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QTypeRevision: Fix warnings about max macro from windows.hFriedemann Kleint2020-03-041-1/+2
|/ / | | | | | | | | | | | | | | | | | | Similar to def272750cdb7810bca4f4815ed1183ba2bd6df9, put parentheses around std::numeric_limits<Integer>::max, fixing: qversionnumber.h(339): warning C4003: not enough arguments for function-like macro invocation 'max' Change-Id: Id574f3a08973cf1408e015f155c8e658b04bd170 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | MSVC: Suppress warning C4910 for exported extern templatesMårten Nordheim2020-03-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Warnings like the following started showing up in dev after 3c0cd7566cf858d0fd23fecad5ef9faec798cf5f. Not a problem in CI but it is treated as an error in develop-builds, suppress them for now since it still manages to build. warning C4910: 'QtPrivate::QMetaTypeForType<bool>': '__declspec(dllexport)' and 'extern' are incompatible on an explicit instantiation Amends 3c0cd7566cf858d0fd23fecad5ef9faec798cf5f Task-number: QTBUG-82403 Change-Id: I1ee6731afafd4636102a49555d4d892f39a21bc7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QMetaType: support manual unregistrationFabian Kosmale2020-03-033-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QtDeclarative registers types in plugins, and supports un- and reloading those plugins. Those types would leave pointers to unmapped memory in the type registry on macOs, which would later cause crashes. We therefore add private API to manually remove the types from the registry, which can then be used in declarative. Lastly, as a precaution for re-registering the types, we reset QMetaTypeInterface::typeId to 0, as the memory is most likely not reset to 0 when reloading the plugin. Change-Id: Ic3fc08759f3d4481dca44a91b33baf3ea9e7198e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-03-0320-127/+262
|\ \
| * | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-0320-127/+262
| |\| | | | | | | | | | Change-Id: If36d96c0fef3de5ab6503977501c55c62a2ecc97
| | * Make QProcess::splitCommand accept QStringView, as per header reviewVolker Hilsheimer2020-02-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | A static function that only parses the string to create the list, so no need for a QString overload. Change-Id: I1df297adb795095d6eec94ccfcad52498178a7b1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| | * Deprecate QString::SplitBehavior in favor of Qt::SplitBehaviorEdward Welbourne2020-02-282-34/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | This requires changing which of the two families of methods gets to take a default argument for its behavior. Task-number: QTBUG-81853 Change-Id: I6759bedd9af364d6e12bb39cd539b5dcba37027e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * De-inline Qt::SplitBehavior splitters of QString and QStringRefEdward Welbourne2020-02-284-81/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert the QString::SplitBehavior variants to call them, rather than the other way round and convert the internal infrastructure to use Qt::SplitBehavior, ready to deprecate the QString::SplitBehavior versions without generating intenal warnings. Task-number: QTBUG-81853 Change-Id: Ia6b78881c3d0e30a7bbd4dfd00cc15a407f448a2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Core: Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-02-2811-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I446f9ddc8f8de4a0b79b09edb44f7c1496fbc33f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Docs: Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-02-281-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Applied suitable wrapping round various char and string literals, since docs are meant to show best practice. Change-Id: Ie061905fad26f9b4dda3eedba4612704f0a19126 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Doc: Fix punctuation for QMetaType::QMetaType()Kai Koehne2020-02-281-1/+1
| | | | | | | | | | | | | | | Change-Id: I99d78ae475844f3d145952fd789c5753979745f7 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Doc: Fix documentation for deprecated methods in QJsonDocumentKai Koehne2020-02-281-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | \deprecated has to stand on its own - qdoc will ignore anything on the right side of it. Change-Id: Ib698aa66826d6430bbafd926a9c64febd5463c5c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Doc: Fix wording of operator=!(QMetaType, QMetaType()Kai Koehne2020-02-281-1/+1
| | | | | | | | | | | | | | | Change-Id: I02ca10f968acb42a6e0d793cad78d7d0baa7f472 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Doc: Replace 'In alternative' with 'Alternatively'Kai Koehne2020-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | Amends b19220d17fa66de5ded41690ffff263ee2af5c63 Change-Id: Ic6869ce77440b43b30248f1130dabe8cc1b231e9 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | | Only declare comparison operators for QVector when comparableAllan Sandfeld Jensen2020-03-031-5/+9
|/ / | | | | | | | | | | | | | | This avoid SFINAE from incorrectly assuming QVectors of non-comparable types has them. Change-Id: Ie44eb7873384a0f41a6b8160c340b71ea25839dd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Bump the datastream version for Qt 6Jarek Kobus2020-02-281-7/+1
| | | | | | | | | | | | | | We don't support obsoleted QMatrix type anymore. Change-Id: Id412510aa1ad08d6e89a73da3317152e6dfa8f57 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QDebug::toString(): use nospace()Mitch Curtis2020-02-282-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The intended use cases for toString() are the situations where you can't use operator<<, such as QVERIFY2, Q_ASSERT_X, etc., which means that it will often be used as an argument to e.g. QString::arg(), where the user has control over the structure of the message. For that reason, adding an extra space to the end is not necessary and just gets in the way. This amends 658b9697f9d85d4ed294810b4f60bafdbdd8e247. Change-Id: I0695e6809026a0f92ed783899da80de4fa2a1684 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | STL compatibility: erase() should take a const_iterator as argumentLars Knoll2020-02-281-7/+6
| | | | | | | | | | | | | | | | | | erase() takes a const_iterator as argument in std::vector. We should do the same to facility better interoperatbility. Fixes: QTBUG-81915 Change-Id: I60ffb0eb45955be8e3e6aeaa56998f7c668fed09 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.15' into dev"Lars Knoll2020-02-2814-48/+134
|\ \
| * | Merge remote-tracking branch 'origin/5.15' into devLars Knoll2020-02-2814-48/+134
| |\| | | | | | | | | | Change-Id: I469b0501cc65fc5ce4d797a69ae89405cc69c7f8
| | * QConcatenateTablesProxyModel: Add getter for sourceModelsKai Uwe Broulik2020-02-272-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | Currently, there's no generic way to get the source models as there's only calls to add or remove them. Change-Id: I23cdef7c93328b58a80ec4659b44073f8ff05088 Reviewed-by: David Faure <david.faure@kdab.com>
| | * QMimeXMLProvider: add missing semi-colon in the #else caseThiago Macieira2020-02-271-1/+1
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-82547 Change-Id: Ia8b65350cd5d49debca9fffd15f74e22c0536805 Reviewed-by: David Faure <david.faure@kdab.com>
| | * Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Lars Knoll2020-02-271-0/+4
| | |\
| | | * Merge remote-tracking branch 'origin/5.14' into 5.15Lars Knoll2020-02-271-0/+4
| | | |\ | | | | | | | | | | | | | | | Change-Id: I4212d070d5752275085e754b96f0392113604dba
| | | | * QObject: treat T* -> bool conversions as narrowingMarc Mutz2020-02-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following wg21.link/LWG3228, it was found that a proper variant fix requires that T* -> bool conversions be treated as narrowing conversions in subclause wg21.link/dcl.init.lst. wg21.link/P1957R2 was accepted in Prague 2020 as a DR and retroactively applies to older C++ standards. Since we hard-code the algorithm of [dcl.init.lst], we can and must add this manually. [ChangeLog][QtCore][QObject] For the purposes of QT_NO_NARROWING_CONVERSIONS_IN_CONNECT, pointer (incl. pointer-to-member) to bool conversions are now considered narrowing. This matches the resolution of a defect report in C++ itself. Change-Id: Ifa9a3724c9c8ccd3dd6614928dbbe37477591dc1 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
| | * | | Fix QDateTimeEdit's handling of invalid time in dst gapVolker Hilsheimer2020-02-271-0/+8
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During a spring forward, a time-zone omits an hour. A QDateTime with such an hour is invalid, but QDateTimeEdit's handling of this invalid time was not done correctly. With this fix, up/down changes of any field that would result in an invalid date-time corrects the time to be valid, while leaving as much as possible of the user-entered data unchanged. To do that, we rely on QDateTime::toMSecsSinceEpoch to return a value even for such an invalid time, which then can be used to construct a valid QDateTime. Edits that would result in an invalid hour are reverted to the previous when pressing return, if correctionMode is CorrectToPreviousValue. This change also implements support for CorrectToNearestValue, which uses the same mechanism as when stepping over an invalid time. Include a test that verifies that the various interactions result in a reasonable value. Since QDateTimeEdit does not respect the timezone or timespec of the QDateTime it is initialized with, we have to find the first hour of daylight saving time for a year that we know works for most time zones. Failing that, we have to skip the tests. Verified in a wide range of time zones. Change-Id: I05b906ae3b5f6681891d23704f00f9c10cd479ae Fixes: QTBUG-79803 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| | * | Add an expansion limit for entitiesLars Knoll2020-02-264-2/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recursively defined entities can easily exhaust all available memory. Limit entity expansion to a default of 4096 characters to avoid DoS attacks when a user loads untrusted content. Added a setter and getter to allow modifying the expansion limit. [ChangeLog][QtCore][QXmlStream] QXmlStreamReader does now by default limit the expansion of entities to 4096 characters. Documents where a single entity expands to more characters than the limit are not considered well formed. The limit is there to avoid DoS attacks through recursively expanding entities when loading untrusted content. The limit can be changed through the QXmlStreamReader::setEntityExpansionLimit() method. Fixes: QTBUG-47417 Change-Id: I94387815d74fcf34783e136387ee57fac5ded0c9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * | QHash/QSet: Base iterator tag on warning version rather than deprecationMårten Nordheim2020-02-262-52/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you have deprecation warning version set to 5.15 and the "disable deprecated before" set to something lower then it will complain about usage of operator-- inside std::distance which is used in our generic collection iterator. This also required changing over to the QT_DEPRECATED_VERSION_5_15 macro so that the deprecation warning would also be disabled. This is a possible work-around - change the iterator tag if it would trigger a warning. Fixes: QTBUG-82397 Change-Id: I3e0ecae5edebba2a3560e7c3785bd9d1a6d0076d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Improve argument name for std::function argumentAllan Sandfeld Jensen2020-02-264-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Less \a fun though. Note using references in this API would just duplicate the API, but still end up with a copy when creating the QRunnable. By having the copy apparent directly in the API, we not only save the duplication, we also hint to the caller to use move if they want to avoid a copy. Change-Id: If11476d4b38853839c1e87e0339807a1798fc875 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-263-12/+12
| | |\| | | | | | | | | | | | | Change-Id: Iad459349ea8b4090d79b4771bfff8f656a8a8189