summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QAssociativeIterable: Unwrap variants on value()Ulf Hermann2020-10-191-2/+12
| | | | | | Fixes: QTBUG-87688 Change-Id: I66515eaa1217c34f003648af6423b318b54977c4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QAssociativeIterable: Add methods to add/remove keys and valuesUlf Hermann2020-10-192-0/+60
| | | | | | | | This way we can actually modify the container. Previously the interface was rather useless. Change-Id: I278aae46999862ada115c9066a010d7de5cde4ff Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QMetaContainer: Consistently coerce typesUlf Hermann2020-10-1911-99/+88
| | | | | | | | | | | | | | | The high-level iterable interfaces should coerce the types of most QVariants passed to the expected ones. To do this, move the type coercion code into qvariant.{h|cpp} so that it is available to the QVariantRef specializations. The exception are variants passed to the find() functions of associative iterables. Here, we should not coerce values we cannot convert to the default-constructed keys. Instead we return end() in such cases. Fixes: QTBUG-87687 Change-Id: I0bd4e5c4e4e270dd3bf36cb3fb115794828077f2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QRhiBackendCommandList: avoid new[]/delete mismatchFabian Kosmale2020-10-191-1/+1
| | | | | | Change-Id: Iac2645ebd1d42753817078f194ba61520f5f70c9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QLocale: do the inlining in the class body to save repetitionEdward Welbourne2020-10-191-36/+17
| | | | | | | | It also makes it easier to find the definition when looking at the declaration. Change-Id: Idae18d3881f3cf8ba6c6c7e48201ec925815013e Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Refine QLocale constructor documentationEdward Welbourne2020-10-191-1/+2
| | | | | | | | Clarify that the "minus sign" is a plain ASCII U+002D dash, not U+2212 minus sign; and, for symmetry, that the underscore is U+005F. Change-Id: I7250959d36e56f960dac24a739a1a8826a6bc578 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix QLocale's findLocaleDataById(): skip likely sub-tag look-upEdward Welbourne2020-10-191-3/+1
| | | | | | | | | | | | It was always called in pairs, first with likely sub-tags added, then with the base that started from. So doing a likely sub-tag lookup inside the function was redundant for the former while making the latter redundant - and it's needed. Task-number: QTBUG-84669 Pick-to: 5.15 Change-Id: I18bf1d4976a51d9436efd20d1a84a36cfc60f618 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use unchecked substring methods in date-time codeEdward Welbourne2020-10-192-33/+31
| | | | | | | Change-Id: I38b9aaa0335c6168706c2508ed1117fd908e679c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
* Check time-text is long enough while checking for its colonsEdward Welbourne2020-10-191-1/+3
| | | | | | | | | | Added some tests that trigger an assert without this check. (Drive-by: renamed one QTime test to match its QDate(Time)? counterparts.) Change-Id: I3d6767605fdcca13a9b4d43a32904f584eb57cf9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
* QFontDatabase: fix a uint->int implicit conversionGiuseppe D'Angelo2020-10-191-2/+2
| | | | | | | Just use an int, as it'll be converted to that anyhow for insertion. Change-Id: Ie5a9d35a7c10e38cbba49d8915602f9207b8e0ac Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QPdf: consolidate usage of uintGiuseppe D'Angelo2020-10-194-11/+12
| | | | | | | | | Objects in QPdf are indexed by uint. In a couple of places (incl. QFontSubset) int were used instead, causing sign conversion warnings (turned into errors by -Werror). Use uint instead. Change-Id: Ie0436c8aff3b67d8ef95a5f26fc16403e7e02bd1 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QTextTable: fix an implicit uint->int conversionGiuseppe D'Angelo2020-10-191-2/+2
| | | | | | | | Make it explicit; didn't investigate why mixed comparisons are used here. Change-Id: Idd353c76a65ca1c8c4a158886f64c9cbb321494b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QList docs: remove some QVector->QList leftoversGiuseppe D'Angelo2020-10-192-58/+5
| | | | | Change-Id: I2a7b5ef07ddb07a261110914088b9942801a3c25 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Remove redundant QPointingDevicePrivate::extraShawn Rutledge2020-10-191-1/+0
| | | | | | | The inherited QInputDevicePrivate::extra is enough. Change-Id: I663c63d9b6616ee1f3c312a905a34180a6a038c3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* CMake: Provide add_qt_gui_executable for a short timeAlexandru Croitor2020-10-191-0/+5
| | | | | | | | | | | | | Until all repos are updated to use qt_add_executable instead. This is a minimal addition, instead of the previous QT_NO_INTERNAL_COMPATIBILITY_FUNCTIONS approach which did not work in all cases. Amends c3fee0d984e59cee3ab6d069011015dd850be98f Task-number: QTBUG-87661 Change-Id: I03bbb1451de8e54be4e075f878ed104c287aa93f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QVLA: make (last)IndexOf and contains function templatesGiuseppe D'Angelo2020-10-192-9/+15
| | | | | | | | | | | | Just like QList. [ChangeLog][QtCore][QVarLengthArray] The indexOf, lastIndexOf and contains methods now take an object of any datatype -- and not just the array's own value type. This allows for heterogenous lookup in QVarLengthArray objects. Change-Id: Ibc55191a140612a4e9be46b4d18457415ea3717f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add noexcept to d-ptr accessor functionsAllan Sandfeld Jensen2020-10-191-8/+9
| | | | | | | | | | In theory this could be source incompatible with Q_DECLARE_PRIVATE on a QSharedDataPointer, but that would both be a misuse, and all places where something like that could have been used in Qt, Q_DECLARE_PRIVATE is already manually inlined. Change-Id: I60bdde3a71646129cef84f31624d0432e7af91ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QProperty: Add value() and setValue() to QBindableUlf Hermann2020-10-191-0/+14
| | | | | | | | This simplifies code that would otherwise need to use the setter and getter in addition to the bindable. Change-Id: Iec6510b4f578f5b223c63b3a0719257a0cf2463d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use valid glyph index for box font engineEskil Abrahamsen Blomfeldt2020-10-191-2/+2
| | | | | | | | | | | | | | | | | | Glyph index 0 is reserved for "glyph not found", which can confuse Harfbuzz. For QFontEngineBox we always return a valid glyph since it is the fallback font when no other fonts are available. Symptom of issue was that we could get to Q_UNREACHABLE for certain strings when Harfbuzz returned a glyph count of 0. [ChangeLog][QtGui] Fixed a potential crash when rendering text with an empty font database. Fixes: QTBUG-85016 Pick-to: 5.15 Change-Id: Iaf1d003cdff57320bf4327aa8e63dffd9d1da82c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Rename add_qt_gui_executable to qt_add_executableAlexandru Croitor2020-10-191-1/+8
| | | | | | | | | | | | | | | | | | Also adjust pro2cmake to use the new qt_add_executable name instead of add_qt_gui_executable. No compatibility functions provided this time, so we'll need to follow through all repos and regenerate all examples. Two reasons for not providing compaitibility functions: 1) We don't intend add_qt_gui_executable to be public API 2) A previous case with qtquickcontrols2 and qttools pointed out that making top-level builds work with cross-compatibility API is not simple. So just go ahead and regenerate everything. Task-number: QTBUG-87661 Change-Id: I2f228827b786ae03bf7e1bf3908ea02a8794ed52 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix QFontDialog::selectedFont() does not return actual selected fontZhang Yu2020-10-191-1/+1
| | | | | | | | | "QFontDialog::accepted" was emitted before setting "selectedFont" to current font. So when calling "QFontDialog::selectedFont()" in slot of signal "QFontDialog::accepted",it does not return actual selected font. Fixes: QTBUG-87483 Pick-to: 5.15 Change-Id: Ic9303e3df73ddd876fc78a0038f9379dbdf1853c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Revert "QRegularExpression: add move constructor(s)"Giuseppe D'Angelo2020-10-192-44/+0
| | | | | | | | | | | | The QRE classes are not ready for move construction. They would need to deal with the possibility of a null-dpointer, and they currently don't; this clashes with the policy of having moved-from classes in valid-but-unspecified state. This reverts commit 733ab10961a4d6539b4d42cf4768e9cb0b88c6a7. Change-Id: I36720dc9d0bf754a980eba373e37abf725cea174 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QRegularExpression: port to QESDPGiuseppe D'Angelo2020-10-192-5/+4
| | | | | | | | | | | | | For QRegularExpressionMatchIterator there is actually one code path that modifies the object itself. Avoid spurious calls to detach() in there by making the detach explicit, and streamline the rest of the code around it. QRegularExpressionMatch only has a const API so it "doesn't care", but port it for consistency. Change-Id: I26881b3af9ae75082dd39462115869b1a9ee1339 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add function to access QLockFile's file nameShantanu Tushar2020-10-182-0/+10
| | | | | | | | This is useful in cases like error handling when you need to print the name of the lock file. Change-Id: Ife4901ed53ae81d19e68cce7f1c173ef3745d56f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use std::void_t instead of the hand-rolled versionGiuseppe D'Angelo2020-10-181-10/+6
| | | | | Change-Id: Ibcf0e3d32f05b95f5f1996a071a50bc0eba1ae61 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix allocated memory of QByteArray returned by QIODevice::readLineKai Koehne2020-10-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | If the maxSize argument is 0 (the default), QIODevice::readLine will allocate a QByteArray with the size of the next chunk of data, which may be quite large. Before returning, it then resizes the byte array to the actual size that was read. But since change 6b884d2aa129, QByteArray::resize() does no longer shrink the capacity. This means that the returned QByteArray keeps it's maximum size as allocated memory. This can lead to excessive memory consumption, especially if the returned QByteArray's are stored for further processing in the client code. Fix this by explicitly calling QByteArray::squeeze() before returning. [ChangeLog][QtCore][QIODevice] Fixes a regression in Qt 5.15 causing QByteArray's that are returned by QIODevice::readLine() to consume large amounts of memory. Fixes: QTBUG-87010 Pick-to: 5.15 Change-Id: I1f95fc4098849e900680fc945238bfeda881022c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QRandomGenerator: optimize for the common use caseThiago Macieira2020-10-182-23/+29
| | | | | | | | | | | | | The most common uses of QRandomGenerator are getting 32- and 64-bit quantities, either through the generate() and generate64() functions or by ones that call those, like bounded() or generateDouble(). So optimize for those with the same entry point by returning one 64-bit value from the _fillRange() function. Further optimize by not requiring a buffer for those two cases, which required us to replace the (begin, end) parameters with (begin, count). Change-Id: I3eb349b832c14610895efffd16356859eecd5397 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Core: Make the metacontainer interfaces constexprUlf Hermann2020-10-181-33/+23
| | | | | Change-Id: Ib8e486a855673b191a9854e1c4d62614a2b87e72 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove QByteArrayList_indexOfGiuseppe D'Angelo2020-10-182-7/+0
| | | | | | | | | It was used as exported symbol for the implementation of QByteArrayList::indexOf. Since then, the implementation has been changed, and this code is unused. Change-Id: I468d05507b6b520cf5bfa4bc567a3d67c43b9a32 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QColorSpace: port to QESDPGiuseppe D'Angelo2020-10-185-61/+42
| | | | | | | | | | Replace the hand-rolled refcount management with QESDP. Since the class has a default-constructed / moved-from state where the d-pointer can be nullptr, add a in-class detach() that ensures a private object. Change-Id: Id81431fa60132dbc0eed45bb60b38d4f7d73833f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Make most of QMetaTypeInterface constexprUlf Hermann2020-10-189-70/+88
| | | | | | | | | | | | | | | | | | The only thing we need to modify at runtime is the typeId and that can be mutable. This way we can have a constexpr ctor for QMetaType which hopefully makes the importing and exporting of related symbols less fickle. On Windows we cannot make QMetaTypeForType constexpr as that leads to mysterious errors in other places. Until we figure out why that is, we just leave this class as non-constexpr. This reveals that qcoreapplication.h and qvariant.h are using QDebug without including it. We now get template instantiation errors. Include qdebug.h to avoid that. Change-Id: If1bf0437ada52459c59c6fa45bab3d22dfb0bc92 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Cbor: Export the datastream operators for QCborSimpleTypeUlf Hermann2020-10-181-2/+2
| | | | | | | | Otherwise they are not available to the tests. This is exposed by making the metatype interfaces constexpr. Change-Id: I1b3214f339985f2f8ffaf0640cf51e41e92198d0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* doc: Update and flesh out native interface docsTor Arne Vestbø2020-10-1810-450/+439
| | | | | | | | | The namespace and overviews are in the qtdoc repository. Docs for individual interfaces should live with their platform. Change-Id: Iba5fd7e9ebc4f1f634ec9dc3ec125ce88a1312ba Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QMutableEventPoint::detach: deref old privateFabian Kosmale2020-10-181-0/+2
| | | | | | | | | | After detaching, the current QMutableEventPoint obviously doesn't reference old QMutableEventPointPrivate anymore. Deref it, so that we do not leak memory. Change-Id: I3b59667603d41f452eead9a2db13e1d005f622ec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* doc: Make QtGui docs depend on platform integration docsTor Arne Vestbø2020-10-171-1/+2
| | | | | Change-Id: I72cad7f399219d448d78763c50369f087e9d0cf7 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Consistenly deprecate QMultiMap insert, add moving unite overloadVolker Hilsheimer2020-10-172-20/+39
| | | | | Change-Id: I8d1d30f3962b0444c27591bf45b6b3c538172039 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* qcontainerinfo: make variable templates inlineFabian Kosmale2020-10-171-74/+74
| | | | | Change-Id: I09d51f0a04a6dc12915ba6ad0b77af074238988d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qtypeinfo.h: We only need a const reference for most operator<<Ulf Hermann2020-10-171-2/+2
| | | | | | | | | If we require a value, then we need a dtor, too. This is not always the case. For example QSessionManager has a private dtor, leading to failures. Change-Id: I3f715848ff5c63b2ea2773c17bced21e7a814ca9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* MinGW: Fix static direct2d plugin build using PCHCristian Adam2020-10-171-0/+6
| | | | | | | | | | | | | Ammends 27499d25fb6d5b12ee6f97f5a6bedcde53b2dcee The value used to create the PCHs for _WIN32_WINNT is 0x601, and qwindowspointerhandler.cpp requires for MinGW 0x603. Since the precompile header value cannot be undefined while compiling the source file, it's better not to use the PCH for this particular source file. Change-Id: I2dc10fa11f0a796c2d21d8880e32e911359f1602 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Generate qrc files at configure time and make them traceableCristian Adam2020-10-171-1/+4
| | | | | | | | | | | Having the qrc files at configure time allows qmlimportscanner to scan them when invoked with -qrcFiles argument. The traceability part is done via _qt_generated_qrc_files property. Task-number: QTBUG-85994 Change-Id: I75c252a987cd1c1f49ba73ec9d100edc73c23486 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Generalize the winmain/qtmain entry-point libraryTor Arne Vestbø2020-10-178-47/+46
| | | | | | | | | | The use-case is relevant for other platforms as well. Now that Qt has a module system we can also replace a lot of the hand crafted logic for linking with simpler constructs. Change-Id: Ib6853aaf81bfea79c31f2de741d65b4b56f23ef6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Inline the members for QRecursiveMutexLars Knoll2020-10-172-72/+36
| | | | | | | Avoid creating a a d pointer for recursive mutexes. Change-Id: I28af15a416ee17de346e2ea5b1442279d9d3e159 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* <chrono> should always be available with C++17Lars Knoll2020-10-171-6/+0
| | | | | Change-Id: Ia4868259bfa25e4b929a51de6de580df7277c282 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Split QMutex and QRecursiveMutexLars Knoll2020-10-177-244/+239
| | | | | | | | | | | | | | | | | | | | | | | These classes should not inherit from each other anymore in Qt 6. The reason is that this makes the 95% case of using a non-recursive mutex much slower than it has to be. This way, QMutex can now inline the fast path and be pretty much as fast as QBasicMutex is in Qt 5. They actually use the same code paths now. The main difference is that QMutex allows calling tryLock() with a timeout, which that is not allowed for QBasicMutex. [ChangeLog][QtCore][QMutex] QMutex does not support recursive locking anymore. Use QRecursiveMutex for that purpose. QRecursiveMutex does not inherit QMutex anymore in Qt 6. Change-Id: I10f9bab6269a9181a2e9f534fb72ce65bc76d989 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Refactor QMutexLocker to be able to handle recursive mutexesLars Knoll2020-10-178-52/+39
| | | | | | | | Since we're going to split QMutex and QRecursiveMutex into separate classes, make sure QMutexLocker is prepared for that. Change-Id: Id5e9a955d1db7c8ee663dd3811ad6448dad0aeae Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix the initial cursor state for the VNC pluginMagnaboscoL2020-10-171-1/+4
| | | | | | | | | Ensure that we show a cursor directly after a client connects. Fixes: QTBUG-85006 Pick-to: 5.15 Change-Id: Icb604beb1b0ca2e7efa42ac01c2aac0a3e002865 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Cleanup remaining QVariant::Type uses in Qt SqlLars Knoll2020-10-172-25/+27
| | | | | Change-Id: Ibcaa678cd9f9c957392a75b477fa6821f9a69127 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QWindowSystemInterface: Add tablet event overloads without timestampsFriedemann Kleint2020-10-172-0/+34
| | | | | | | | On some platforms, tablet events do not have a time stamp. Task-number: QTBUG-46412 Change-Id: I3cc820b1edaaf55511c000fefb805f5a3a7872a6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix Clang compiler warnings (-Wrange-loop-analysis)David Skoland2020-10-177-16/+16
| | | | | | | | | | | | | | | In a macOS environment, Clang throws a number of compiler warnings about loop variables when building qtbase. See task for more info about the environment. This changes a handful of loop variables, like QJsonValue references into QJsonValueRefs. Task-number: QTBUG-87216 Pick-to: 5.15 Change-Id: I26006efd7c75c2d56ebc7f7efb4c9bdcabe92e8b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Implement move and comparison operators for QEventPointVolker Hilsheimer2020-10-173-4/+76
| | | | | | | | QEventPoints are equal when all data values are equal, the refcount is ignored. Change-Id: I6ef70faf0b12129eaa22bfc1f0a45bab2422d421 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>