summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Introduce QT_NO_LINKED_LIST and mark QtBase (almost) free of itMarc Mutz2019-07-124-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | QLinkedList is still used in several tests. Add exceptions for these subdirs. Change-Id: I50ccd2a0892129d4a47aa4e2400211690da9a82d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | QColorTransform: make fit for releaseMarc Mutz2019-07-125-31/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Unexport the value class, export only out-of-line public member functions to give us more leeway in changing code later (otherwise, we'd be bound by BC with MSVC debug builds, which call even inline methods from the DLL. - Don't use QSharedPointer as the d_ptr. It's twice the size of a pointer. Use a naked pointer-to-const. Derive Private from QSharedData. This requires some changes in QColorSpace, and, as usual, an out-of-line copy ctor. - Add member-swap(), Q_DECLARE_SHARED(). - Drop noexcept from the dtor. It implicitly is, adding it explicitly looks weird. - Pass QRgb and QRgba64 by value, not by cref. They're trivially-copyable, so passed in registers if passed by value. Passing by cref forces them onto the stack. Change-Id: I669643d219ede6b7d07f15afbf8728e16150b3b2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Remove QColorTransform::isNullAllan Sandfeld Jensen2019-07-121-2/+0
| | | | | | | | | | | | | | | | | | | | | It is an undocumented and unused method with an obscure name. Change-Id: Ife27bf836447865cd305c8c7fc9c438759b439cb Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | QPdfEngine: replace a QHash with a C arrayMarc Mutz2019-07-122-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | The mapping is completely static and the key is the index, so just use a const char array. The only twist here is that to avoid relocations, we use an array of const char[4] instead of const char*[]. Change-Id: I001b4db833f14e000676125f6f1be4484d996e0b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | QPdfWriter: replace a QHash with a static_castMarc Mutz2019-07-123-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QHash was mapping equivalent values of different enums to each other. The enums have the same enumerators, though, so if we take care to keep the two in sync in the future, we can just static_cast them into each other via int. Change-Id: Ie67978604f8c3b9477419bc6029bbb869061e938 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-1214-17/+21
|\| | | | | | | | | | | Change-Id: Icaabf08f9af539ddf844d96bc9c3a2d09408ba8a
| * | doc: Enable a declaration for qdocMartin Smith2019-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | A declaration of fromStdVariant() was not visible to qdoc because it was ifdef'ed out. This update ensures that qdoc sees the declaration. Change-Id: I4b00a895aa61175296ec80806b43311eff4f25ca Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * | Fix MinGW cross-build with precompiled headers on LinuxJoerg Bornemann2019-07-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need localtime_r() in several places. To have this function declared when including time.h, _POSIX_THREAD_SAFE_FUNCTIONS must be defined. E.g. qdatetime.cpp includes unistd.h before time.h to define said macro. However, this falls apart when precompiled headers are used, because of the following include chain in qt_pch.h: qcoreapplication.h -> qobject.h -> chrono -> time.h This patch ensures that _POSIX_THREAD_SAFE_FUNCTIONS is defined before including time.h in qt_pch.h by including unistd.h early. Fixes: QTBUG-76680 Change-Id: I3875072edf37f45492f29d84fc297a9682e11db4 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | [Doc] Fix minor typosSze Howe Koh2019-07-1012-16/+16
| | | | | | | | | | | | | | | Change-Id: I7e74806218dcc07d800f4ec08e94abce32483f5e Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* | | Revert "QDistanceField: add missing copy assignment operator"Marc Mutz2019-07-112-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reverts commit 0624c99ea3d52f07c93378fcf75c3121df1b3928, which fixed a GCC 9 -Wdeprecated-copy warning by adding the copy assignment operator. The 5.12 change 0e162315 fixed the same warning by removing the copy ctor. The merge ef37ab99 removed the copy ctor, but kept the assignment operator added by 0624c99e, bringing the original warning back, but with the roles of copy ctor and assignment operator reversed. One has to give. Change-Id: Ib32841df94a5ff80402a68b5fe776eb82e94136f Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QTestLib: Fix class declarations/structureFriedemann Kleint2019-07-1110-34/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove virtual from functions declared as override - Use " = default" for trivial constructors/destructors - Remove all special functions from QTestLog Apply Fixits by Qt Creator with some amendments. Task-number: QTBUG-69413 Change-Id: I812b8116e5b4c927e4e5cee44e63bc705385d866 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | QTestLib: Introduce nullptrFriedemann Kleint2019-07-1112-62/+59
| | | | | | | | | | | | | | | | | | | | | | | | Apply Fixits by Qt Creator with some amendments. Task-number: QTBUG-69413 Change-Id: I620e40a277dc2b20b0ec26fc32577e66b0456bb3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | QTestLib: Use member initializationFriedemann Kleint2019-07-1118-94/+54
| | | | | | | | | | | | | | | | | | | | | | | | Apply Fixits by Qt Creator with some amendments. Task-number: QTBUG-69413 Change-Id: Iba0834dc89cbfc215acc5873f31fa6eeed74177d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | | return value in QOrderedMutexLocker::relock when thread is disabledTasuku Suzuki2019-07-111-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic96e777491cc8d304be056a3476a4de4c4700a0f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Fix build without feature.temporaryfileTasuku Suzuki2019-07-111-0/+6
| | | | | | | | | | | | | | | Change-Id: I096b6a7d9cc8e17165e07657f6647a14baafefa5 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Move text-related code out of corelib/tools/ to corelib/text/Edward Welbourne2019-07-1066-106/+118
| | | | | | | | | | | | | | | | | | | | | | | | This includes byte array, string, char, unicode, locale, collation and regular expressions. Change-Id: I8b125fa52c8c513eb57a0f1298b91910e5a0d786 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-07-1014-17/+24
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-1014-17/+24
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/time/qdatetime.cpp src/widgets/widgets/qcombobox.h Change-Id: Ib84352e8fe34aed2986a1c94e7346a46a71c803b
| | * | doc: Add missing class qualifierMartin Smith2019-07-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A glass qualifier was missing in a \fn command. This caused clang to report an error. The class qualifier is added by this ubdate. Change-Id: I1c4928183f4c8eb1b28f0fde2ce659a1feb24175 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * | QTextObject: One more 0 to nullptr conversionAndre Hartmann2019-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I61446afa882304400d3ae8045e4f17bb7a020600 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
| | * | Fix compilation with disabled deprecated APIsSona Kurazyan2019-07-086-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QImageIOHandler::name() has been deprecated since 5.13, but its overrides weren't. Enabled compilation of the overrides only when the QImageIOHandler::name() is compiled. Task-number: QTBUG-76491 Change-Id: I8fea0032427d25bb0de01be8920c723fc21f6b7a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| | * | [androidcontentfileengine] Catch SecurityException during file openingNicolas Fella2019-07-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | resolver.openFileDescriptor throws a SecurityException when the caller doesn't have sufficient permissions to access the URL. This will make an application crash. We should handle this case gracefully and report it to the user. I'm unsure if there is a better way to do this than simply logging the exception. Change-Id: I36bfbd3e398c8176e57042a27740aa15bce63a7c Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * | QComboBox: revert deprecation of currentIndexChanged(QString)Christian Ehrlicher2019-07-052-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QComboBox::currentIndexChanged(QString) was deprecated due to the fact that there is a currentTextChanged(QString) signal but this signal is not equivalent to the other since it's also emitted when the lineedit text changes. Therefore revert the deprecation of this signal. Fixes: QTBUG-76890 Change-Id: Ia314116a5ac4e43e60383da9e729e24ffb3e8b30 Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * | doc: Remove erroneous double left braceMartin Smith2019-07-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A double left brace in a link command was causing qdoc to fail for the remainder of the qdoc comment. This update just removes one of the left braces. Change-Id: Ie4fc0122e0799955b7804c2b6f61393af01747c7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * | xcb: reduce focus-in delayGatis Paeglis2019-07-052-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch amends fe63900dc9891dd355ca1f10d6c7e5fd1516f5d5 The previous value of 400ms was a random and seemingly harmless choice. It turns out that 400ms is a bit too long and interferes with x11 async behavior tweaks in the VirtualBox source code. The original aim of specifying a concrete delay was to fix the nondeterministic behavior of the pre-existing code and to avoid flickering on KWin caused by waiting too little. This patch changes 400ms -> 100ms, which seems to work better in practice. Fixes: QTBUG-76742 Change-Id: Ia8168216819ac41d0124622c9472a98a1877262f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | | Fix testlib build without features.propertiesTasuku Suzuki2019-07-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3ca7f8cdb59a9a1e61d2702e92cd5e2d1420ac84 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Jason McDonald <macadder1@gmail.com>
* | | | qsslsocket_openssl_symbols.cpp: replace manual memory management with ↵Marc Mutz2019-07-101-51/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | std::unique_ptr Also fix the name mismatch between the Windows- and non-Windows versions of loadOpenSsl(), which, presumably, were caused by having two different return values, something easily fixed by defining a small struct instead of using a QPair. Some #ifdef'ery saved, and a lot of brittle deletes on early returns. Change-Id: I77440de2f6fa51759510506ff4ef51917eb5b3ea Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | | QTestLib: Speed up QCOMPARE for float, double, int, unsignedFriedemann Kleint2019-07-094-22/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Factor out a helper template formatting the QCOMPARE failure message delaying the formatting of the parameters with toString() and use that for float, double, int and unsigned. This removes the need to always format and allocate strings for the operands even in the success case, speeding up the QColor test from 3.3s to 700ms (Windows/release). Task-number: QTBUG-38890 Change-Id: I999484765bdaed921d3fc35f35a9fbbcd82a9704 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | | QTestlib: Check compared images for device pixel ratioFriedemann Kleint2019-07-091-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When accidentally running a test doing screen-grabbing with High DPI scaling active, sizes of the obtained pixmaps can differ due to the device pixel ratio. Add a check to make that clearer. [ChangeLog][QtTestLib] Comparison of QImage, QPixmap now checks for the device pixel ratio. Change-Id: Id8d5187e99c565c44a7bfb8b9cfb09737815fb15 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | | QFileSystemModel: Improve class structureFriedemann Kleint2019-07-094-54/+32
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use member initialization in private classes and repack members to minimize padding. Use delegating constructors and default constructors/destructors. Task-number: QTBUG-76493 Change-Id: Iaea8880811782ee5846c128590b83c23e6fae445 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | QFusionStyle: fix excessive top margin of groupboxYulong Bai2019-07-091-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | The users voted for smaller top margin while there was neither title nor checkbox. Task-number: QTBUG-44056 Change-Id: I5bd5cabb094c9cdec379f20e206196f1b5432182 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | QHostInfoRunnable: make the lookupFinished() call more robustMarc Mutz2019-07-091-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use a scope guard to reliably mark the runnable as finished with the manager, lest a deleted runnable lingers in the manager's currentLookups for too long/ever. Change-Id: I89eff49931d0428f4e75789a0a1188edb1f66220 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Be less laissez-faire with implicit conversions to QCharMarc Mutz2019-07-0917-61/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QChar currently is convertible from nearly every integral type. This is bad code hygiene and should be fixed come Qt 6. The present patch is the result of compile fixes from marking these constructors explicit. As is clear from the distribution of fixes, only low-level string handling code used these implicit conversions, an indication that they're not in widespread use elsewhere. Change-Id: Ief5336f21e6d181e03ab92893b3d13a14adc7cb0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | QHash: mark the equality operator for QHashDummyValue constexpr noexceptMarc Mutz2019-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | Who knows what this may end up being good for. Change-Id: Ib5e73b0170ebba54f87f36e75b7c407f801c52a0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Add mouseDoubleClickDistance and touchDoubleTapDistance to QStyleHintsShawn Rutledge2019-07-082-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends ca280bfe3bc551f814d59d25079e098798fbdad7 and 705e3f68df83dca165e3cddb914d3816155323f8 which added these enums only to QPlatformTheme::ThemeHint but not to QPlatformIntegration::StyleHint. Those patches did not add accessors to QStyleHints, probably because the accessors in QStyleHints use the themeableHint() function which takes both enums; so to have an accessor implemented this way, we need it in both enums. But it's getting too silly, since the only platform plugin that modifies MouseDoubleClickDistance is Android, implemented by QAndroidPlatformTheme overriding QPlatformTheme::themeHint(), and thus illustrating that adding the enum to QPlatformIntegration::StyleHint is not the only way to allow a platform plugin to customize the hint. So it seems we need a new way of writing these accessors without needing to duplicate the enum value in QPlatformIntegration::StyleHint. The new version of themeableHint(QPlatformTheme::ThemeHint) falls back on the static QPlatformTheme::defaultThemeHint() accessor. Users should at least be able to see what the default value is; and having these getters will also provide link targets for QtQuick's TapHandler docs. Change-Id: I0f8560062bcd0ca5e6d580071d9fbcf3f07f625f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | QHostInfo: perform deferred cleanup (std::any_of)Marc Mutz2019-07-081-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The code contained a copy of std::any_of from a time when we couldn't rely it's availability in all compilers. We now can, so remove the copy. Change-Id: I356077f58ae6a48b71f2dd98a2dab4e2acf985c7 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Add manual test for QNetwork{Connection|Status}MonitorMårten Nordheim2019-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplistic console application with one test for each of the two classes. Simply tests that we receive the signal when the connection is disrupted in some way. This patch also exports the classes for tests/developer builds so that we can actually link with them. Change-Id: I8066312274350984110c3f3ad3e94854adca7c2a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | qnetconmonitor: Fix misspelling of accessibleMårten Nordheim2019-07-085-8/+8
| | | | | | | | | | | | | | | Change-Id: Ia898d305f64abb5d3d1de007c764c143b26c7654 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Introduce QNetwork(Connection|Status)Monitor to WindowsMårten Nordheim2019-07-083-0/+735
| | | | | | | | | | | | | | | | | | | | | | | | Currently not available for mingw because it's missing all the interfaces. But should start working once it has them. Change-Id: I231e8b69e008c5300a83087fe9cd071acd0687cb Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | QNAM: Don't condition connecting QNetworkReplyImpl signals on qnetconmonMårten Nordheim2019-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | QNetwork{Status,Connection}Monitor isn't used for QNetworkReplyImpl yet, so we should connect the signal until it is. Change-Id: I40f1483608195418d43c442f46184882f64596ff Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Inline QMutexPool into its only remaining userMarc Mutz2019-07-084-244/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also reduce the pool size from 131 to 17, and use QBasicMutex instead of recursive ones. Change-Id: I3bf0374cce5ff2c07427070aba6128a22c9b70e4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | qsslsocket_openssl_symbols.cpp: replace mutex pool use with QBasicMutexMarc Mutz2019-07-081-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of QMutexPool caused an #ifdef, because, lacking an object, some OpenSSL function pointer was used as the address required as input for the mutex pool. Sadly, the names of the functions differ between OpenSSL versions, thus the need for an #ifdef. By simply using a QBasicMutex (defined at namespace scope to evade https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79561), the #ifdef can go away. Another level of #ifdefs goes away because, even for non-QT_CONFIG(thread) builds, Q*Mutex etc are defined, just as no-ops. So we can freely use them without QT_CONFIG(thread) guard, unlike QMutexPool. Finally, optimize for the (common?) case of already-loaded libraries by making symbolsResolved an atomic variable, and checking that before taking the mutex (double-checked locking, done right). For reasons of said GCC bug, again, the QBasicAtomic is defined at namespace scope. And then move the other boolean there for symmetry. Change-Id: Ic5f44871fb200e5368b9af327e4d1e852fbc586c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Fix build without features.textmarkdownwriterTasuku Suzuki2019-07-081-1/+1
| | | | | | | | | | | | | | | Change-Id: I30b39bb6ac4c24281c7fc87573936f62512ce015 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | QTextBrowser: assume Markdown is UTF-8Shawn Rutledge2019-07-081-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | That's how CommonMark specifies it. The HTML codec-guessing algorithm was making it fall back to Latin1 in practice, which was screwing up any Unicode characters found in the markdown source. Change-Id: I4021adc4a68591ecfd56ef24971af53ce3e9c96d Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | | QDBusConnectionInterface: Add activatableServiceNamesKai Uwe Broulik2019-07-072-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows to query all names that can be activated on the bus. Change-Id: I8f894bf858eb18b67a074ca666ad3200ed99c373 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Q_ARRAY_LITERAL: protect the check for literal typesGiuseppe D'Angelo2019-07-061-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some compilers (hello, MSVC) do not produce literal types in Qt because their constexpr support has been blacklisted. Therefore, amend the check for literal types in Q_ARRAY_LITERAL: only do the check if the compiler supports constexpr. Change-Id: I7cffe00dde447d975aa6a7d02248df9c351508ff Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Fontconfig font database: Short-circuit matching by filenameAndreas Hartmetz2019-07-061-22/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the filename matches, no other matching is necessary. Fontconfig doesn't have a fast path for that, so implement one here. Fontconfig is unlikely to add that fast path, see here: https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/103 With -O1 builds of Qt and KDE stack, 358 fonts installed according to KDE systemsetting, on a Ryzen 1800X, startup time of kwrite decreases as following according to perf stat: msec task-clock: ~480 ms to ~455 ms cycles: ~1.73e9 to ~1.65e9 Change-Id: I630a80e4bed2647d5bbd95247005aab7d0cb0363 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | QtNetwork: port remaining uses of QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-065-11/+8
| | | | | | | | | | | | | | | | | | | | | In one case, added NSDMI to avoid churning the ctor-init-list. Change-Id: I5587d5cb7e393f60ad29cb5186127304d27d1d46 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QtGui: port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-065-11/+9
| | | | | | | | | | | | | | | Change-Id: I1ce4fcfa1bfb9a89fe3ebe61d049b9b3100fd700 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QtNetwork: bearer: port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-066-8/+7
| | | | | | | | | | | | | | | | | | Change-Id: I691ecbaf9ea0796decbb48fd62b25d0a2941d979 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>