summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Extend QContiguousCache to use qsizetype for size and indicesLars Knoll2020-03-142-38/+38
| | | | | | | Allow for more than 2^31 items and large offsets. Change-Id: I42f7bf20ce0e4af43dbb2e2083abf0e232e68282 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add move semantics to QContiguousCacheLars Knoll2020-03-141-34/+60
| | | | | | | | | | Provide move semantics for QContiguousCache. Do further cleanup of the code and avoid special casing for complex typeinfo where it won't make a difference anyway. Change-Id: I9bd261aec21be7a050e04f5b3a1f0b8e1d94c064 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Cleanup code in QContiguousCacheLars Knoll2020-03-141-94/+74
| | | | | | | | | Remove the union being used to hold the d-pointer, as accessing both members of the union on the same data is technically undefined behavior. Change-Id: Ia5a063d97538222575a47e9462c0675acdf32aef Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QRegularExpression: inline some compatibility callsGiuseppe D'Angelo2020-03-132-13/+13
| | | | | | | | | The functions take QStringView now. The ones taking QString can be implemented inline (BC break). Drive-by change, use qToStringViewIgnoringNull. Change-Id: Ia3089c574446418e5ab93e08e21869ef19fbfbfd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove an outdated commentGiuseppe D'Angelo2020-03-131-8/+0
| | | | | | | | QRandomGenerator is now used to seed QHash, so the comment is wrong. Change-Id: Ic50fe95ea4169b55290cc758f5aebfbb0a3ea085 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* High-DPI: Enable AA_UseHighDpiPixmaps by defaultMorten Johan Sørvig2020-03-131-1/+2
| | | | | | | | | | | | | | The effect of this is that QIcon::pixmap() will/may return a pixmap larger than the requested size (with an appropriate devicePixelRatio set), suitable for high-dpi displays. Many use cases, such as painting the image with QPainter, will be unaffected by this change. User code which e.g. iterate over image pixels may have to be updated. Change-Id: I63e867cc1e3f2a0b5cad92e1ffab4fe4de33ae19 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: pro2cmake: Handle LIBS_SUFFIX define correctlyAlexandru Croitor2020-03-122-2/+2
| | | | | | | | | Matches the LIBS_SUFFIX define we use in Android conditions and replaces it with a sane amount of escaped characters. Change-Id: I7d870f992c70b105dd80b6fa94f87d3fa5644006 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-1115-72/+162
|\ | | | | | | Change-Id: Ibee5acec72a1a1769d4bc5f23f56c7dc8d4cf3cb
| * Doc: Fix documentation for class qfloat16Topi Reinio2020-03-102-22/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class has documented member functions, but only the related \headerfile was documented. The class documentation itself was omitted with the \dontdocument command. Replace the \headerfile with a \class command, and move the global functions to be related to the class itself. Keep the title as a \keyword to avoid breaking any external links. The new class page will inherit the .html file name of the header page, so we're safe in that regard as well. Fixes: QTBUG-82800 Change-Id: Id51539b45e0642d91b304a37f95461ca3d6c9841 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * Mimetypes: Build fix for Android builds on WindowsCristian Adam2020-03-101-2/+5
| | | | | | | | | | | | | | | | | | | | | | Due to Android's multi-abi the build will fail due to concurrent access: cmd /c C:\Projects\Qt\repo\qtbase\src\corelib\mimetypes\mime\generate.bat C:\Projects\Qt\repo\qtbase\src\corelib\mimetypes\mime\packages\freedesktop.org.xml > .rcc\qmimeprovider_database.cpp The process cannot access the file because it is being used by another process. Change-Id: I647e0a6d8aa03cf116b08a1dce6e61e8882661f4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * QDataStream: keep brace delimiters inside #if-scopesMårten Nordheim2020-03-101-1/+2
| | | | | | | | | | | | | | Because it looks odd. Change-Id: Ic272ae7b1b5a3e0a70884caa683ccbdd3a61ff6a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * Doc: Mention .qrc compression attributes in resource compiler docsTopi Reinio2020-03-101-4/+15
| | | | | | | | | | | | Fixes: QTBUG-76321 Change-Id: Idf7b4157b46d98392314ccddf6b714f9e620b5f8 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * QDataStream: fix compilation with QT_DISABLE_DEPRECATED_BEFORE=0x0050F00David Faure2020-03-081-4/+8
| | | | | | | | | | | | Fixes: QTBUG-81023 Change-Id: I0d56785d1fed2c4c8e0e87ccefb0b72b0ed3644a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * Fix UB in QProcess deprecation warning fixesJoerg Bornemann2020-03-061-1/+2
| | | | | | | | | | | | | | | | The commits e1e08629 and 66e905b1 introduced undefined behavior. Fix this by assigning the result of takeFirst to a temporary. Change-Id: I9e29412cf632d4836b95d47e12d8c07ab0645fbb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Doc: Mark QColorSpace enum as introduced in Qt 5.15Kai Koehne2020-03-061-2/+2
| | | | | | | | | | Change-Id: Ibf2da1ebb4eb9520a2a507ed6afb89f7176391bb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Doc: Fix \sa link for QResource::uncompressedData()Kai Koehne2020-03-061-1/+1
| | | | | | | | | | | | | | | | No point in linking to itself. Change-Id: Id0bf3fa6878417e541ec0997d34758b0c59e99b3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix deprecation warning in QProcess::execute(QString)Joerg Bornemann2020-03-051-5/+3
| | | | | | | | | | | | | | | | Implement this method in terms of splitCommand and QProcess::execute(QString, QStringList). Change-Id: I1fe78fb53d8b6b34a8796f9fbda380a98a840c99 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * QLoggingRegistry: use QStringView/QLatin1String moreMarc Mutz2020-03-052-26/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - QLoggingRule::parse() and the ctor take pattern as QStringView - parseNextLine takes lines as QStringView and produces the pattern as QStringView for QLoggingRule - (setContent has to wait for QStringTokenizer) - QLoggingRule::pass()'s first argument is always QLatin1String, so take it as one Use chopped() more, add a std::move(). Change-Id: Ic95ea77464a9922fef452846bc6d5053bd5de56e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * QLatin1String/QStringView: add (missing) member compare()Marc Mutz2020-03-054-6/+53
| | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QLatin1String] Added compare(). [ChangeLog][QtCore][QStringView] Added compare() overloads taking QLatin1String, QChar. Change-Id: Ie2aa400299cb63495e65ce29b2a32133066de826 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * QString/QByteArray: make all symmetry-checked member-compare() combinations ↵Marc Mutz2020-03-053-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | noexcept In QByteArray, they were just not marked as such. In QString and QStringRef, the implicit conversion from QChar to QString would destroy it. Add a QChar overload, delegating to QStringView. Added docs for the new overloads, copying from the nearest neighbor so as to not look out of place. All string classes use different wording for these functions. A cleanup of this state of affairs is out of the scope of this patch. Change-Id: I0b7b1d037aa229bcaf29b793841a18caf977d66b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Android: Bump gradle (plugin) versionsBogDan Vatra2020-03-041-0/+5
| | | | | | | | | | | | | | | | | | Move min & target sdk from AndroidManifest.xml to build.gradle Fixes: QTBUG-70817 Change-Id: Id9bb9825a3232587e0255b2d3d6f0273c5f9b66a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix typoSimon Hausmann2020-03-101-3/+3
| | | | | | | | | | Change-Id: I4923efb537c1d1b5778bf97955dbf247eaa6220a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Small typo fixSimon Hausmann2020-03-101-13/+13
| | | | | | | | | | | | Change-Id: Ie26dce967af59f140ebf03debe06aba19bd6a8e8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Remove template leftoverFabian Kosmale2020-03-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | Amends 33cd680ddbaccf6139e215d851a39e657ae36394, which removed the Qt5CompatiblityHook class. However, the template line above it was not removed, and now applied to isBuiltinType. As that function should not be a template, we remove it now. Change-Id: If8e276daebce5480b59d9c21b049818f9a46ec98 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Fix warning in qmetaobjectbuilder.cppMitch Curtis2020-03-101-1/+1
| | | | | | | | | | | | | | | | src\corelib\kernel\qmetaobjectbuilder.cpp(1489): warning C4267: '+=': conversion from 'size_t' to 'int', possible loss of data Change-Id: I9cf9bdcb62b796eb8d3f3c633640b648cb11b39f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | CMake: Remove old 3rdparty mechanism for harfbuzz-non-ngAlexandru Croitor2020-03-101-2/+13
| | | | | | | | | | | | Change-Id: I37c1e561ac83c51a06aae50ccb176094785d52f5 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Remove old 3rdparty mechanism for double conversionAlexandru Croitor2020-03-103-11/+61
| | | | | | | | | | | | Change-Id: I2b20d4d9d95a1f7f59bc506046a1ebc20eb305f7 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | CMake: Regenerate configure.cmake files to get reportsAlexandru Croitor2020-03-091-0/+49
| | | | | | | | | | Change-Id: Ifa1646c7e471b3eaba552498ee1dc24f6ab864de Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | QFlatMap: explicitly include <vector>Vitaly Fanaskov2020-03-061-0/+1
| | | | | | | | | | | | | | | | | | Without this include, it fails to compile the following line on some systems: "std::vector<bool> done(s)", because only a forward declaration is available. Change-Id: I6eac4b7f69dda16e181043eb707f970b21b2dfef Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | 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>