summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Update docs about how to configure OpenSSLKai Koehne2020-11-191-7/+6
| | | | | Change-Id: Ifd243cd8d3ac3fd52af649fd4507cfd9788e98d3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: use extraPrefixDirs with qmlimportscannerAssam Boudjelthia2020-11-191-2/+12
| | | | | | | | | This will ensure that qmlimportscanner can use the extraPrefixDirs, when an extra prefix is provided like the case with Conan builds. Task-number: QTBUG-88519 Change-Id: Idec3916b043822da094973a7e246a6ee4af14c83 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QSocks5SocketEngine: Fix out-of-bounds access of QBAMårten Nordheim2020-11-191-3/+1
| | | | | | | | | This should've been caught a long time ago, but long story short: it wasn't. This has been deprecated since 5.14 and is now asserting. Pick-to: 5.15 Change-Id: Iddee22b1a68e5d1a03006831f795db8ec1c472be Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Doc: Fix documentation warnings for Qt TestTopi Reinio2020-11-194-4/+12
| | | | | | Task-number: QTBUG-86295 Change-Id: If3c48bee8c898a228128ade18fbdeaa2b8de8b20 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Qt GUI: Fix custom module headerTopi Reinio2020-11-193-13/+10
| | | | | | | | There were two custom module headers for Qt GUI under different include paths. Combine them into one. Change-Id: I8b699d82820bee36a9ce8c384b94d1b99305e177 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: Fix documentation warnings for Qt GUITopi Reinio2020-11-1915-27/+105
| | | | | | | | | | | | | | | - Remove obsolete dependencies and references. - Restore previously deleted snippet code referenced in richtext.qdoc. - Add widgets snippets path to exampledirs; some classes were moved from QtWidgets to QtGUI and related \snippet commands were broken. - Mark internal functions under QNativeInterface::Private as \internal. Task-number: QTBUG-86295 Change-Id: I9c165c860c7191dac65972d702698a1745bff77f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Get rid of the QMatrix4x4(int) constructorLars Knoll2020-11-192-35/+27
| | | | | | | QMatrix4x4(Qt::Uninitialized) does the same thing. Change-Id: Ie226690f417505f082cb69fdb476e34db2b19c15 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* De-inline qFuzzyCompare for QMatrix4x4 and QVector4DLars Knoll2020-11-194-44/+42
| | | | | Change-Id: Ic412d5cefcc1c41e90ee5cf98814469aec3a91f6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Clean up QVector2D/3D/4DGiuseppe D'Angelo2020-11-1911-2756/+2763
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In random order: * Remove code marked for removal in Qt 6. * Inline as much as possible. This should give us a massive speed boost in some simple operations where the function call overhead as much as the cost of body of the function itself (lengthSquared, dotProduct, etc.). * Plaster constexpr and noexcept, as much as possible; follow Lakos' rule. * Unexport the classes; selectively export only the symbols still defined out of line. * Add [[nodiscard]] to any non-trivial mathematical operation (e.g. calculate the length). * To avoid circular dependencies, centralize their implementation in one file. Leave the existing headers for compatibility with existing #include statements. * Change all the signatures of the classes' members to take QVectorND, QPointF, etc. objects by value, not by const ref. Usage in other classes (e.g. QMatrix4x4) has not been adjusted. Change-Id: Iaf5a4b5289fcdf704e77656793390b8e772e94a5 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make QMetaTypeInterface constexpr on WindowsLars Knoll2020-11-191-44/+40
| | | | | | | | | | | | | | | | This was so far problematic as it gave various link errors. The solution to that seems to be to make the default constructor of QPairVariantInterfaceImpl constexpr to get around one set of problems. The other problem to solve where undefined references to metaobjects. The reason for that is apparently that QMetaTypeInterface contains a direct pointer to the meta object, something the linker doesn't like. Adding a level of indirection by using a function that returns the pointer seems to solve that problem. Fixes: QTBUG-88468 Change-Id: I5612ae807ea3b7e49bc40349d8d1fca1be9bd7ee Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Avoid linker errors for the bootstrap lib in debug builds on MSVCLars Knoll2020-11-192-0/+2
| | | | | Change-Id: I35406ede2246c9eadba9dcecb1bdb65848b07e42 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Change QString formatting of negative numbers in non-base-10Andreas Buhr2020-11-191-6/+0
| | | | | | | | | | | | | | | | | | | For bases other than 10, negative numbers have been converted to QString by casting them to an unsigned number and converting that. Thus QString::number(-17, 16) returned "0xffffffffffffffef", for example. This patch changes the behavior so that negative numbers are converted like positive numbers. Additinally, this patch adds unit tests for QString::number. [ChangeLog][Important Behavior Changes] Changed QString::number(integer, base) for negative numbers and bases other than 10 to return the string corresponding to the absolute value, prefixed by "-". Fixes: QTBUG-53706 Change-Id: I0ad3ca3f035d553860b262f5bec17dc81714d8ac Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Prevent time zone lookup from using infinite amounts of memoryAndreas Buhr2020-11-191-6/+6
| | | | | | | | | | | | The QTzTimeZoneCache created one cache entry for every time zone which was looked up, even if the code was invalid. This uses some memory for each time zone code queried and thus allows DOS attacks if user supplied time zone codes are parsed. This patch changes the cache to use QCache instead of QHash and thus only store up to 100 zones in the cache. Change-Id: Ia87fe500b8b9cf23dced5448a33b047702515f19 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* HTTP2: fix crash from assertionMårten Nordheim2020-11-192-2/+7
| | | | | | | | | | | | | | | In general the protocolHandler isn't deleted unless the channel is being destructed. So instead of reset()ing the pointer we keep it around. Also update the http2protocolhandler to mimic the http1 handler a little closer: shutting down the channel in receiveReply if there's no reply/activeStreams, and not calling receiveReply at all if there's no activeStreams. Pick-to: 5.15 Change-Id: I702547f594deb6b0c1384068f7e93e560527e8e2 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix memory corruption in QDBusInterface signal emissionsRobert Griebl2020-11-191-1/+3
| | | | | | | | | | | | | | | If more than one signal parameter required conversions (e.g. 2 QVariantMaps), then the auxParameter list would be reallocated on the second append. This resulted in the reference to the first conversion (stored in params) to be broken. Found with valgrind after the QtApplicationManager started crashing weirdly when built against Qt 6. The same code is in Qt 5, but it just works fine there: I guess the reallocation strategy in QList is different there, so we never have to reallocate the list. Change-Id: I2e0c8906ebc9474c4ec9f53cafc1689003d5c4c5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix schannel TLS 1.3 reneg delayMårten Nordheim2020-11-191-0/+2
| | | | | | | | | With TLS 1.3 the client goes through renegotiation when using Schannel. The status returned is OK and we can immediately continue, so do that. Change-Id: I831eaae318df9d94b5fb7672db7e407d94f9da56 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* CMake: Rename the qt resource properties to be internalAlexandru Croitor2020-11-191-1/+1
| | | | | | | | | Use lowercase underscored property names. This ensures they will continue to work even for INTERFACE libraries if it ever comes to that. Change-Id: I5281070f25c1eb9f591c79af8b7fa6169c7c0fb7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Doc: Remove wrong \obsolete doc commentsKarsten Heimrich2020-11-192-10/+19
| | | | | Change-Id: I541f12fab128493235716fb73d65f4ab0a62bb82 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QChar: use =delete instead of privateGiuseppe D'Angelo2020-11-191-2/+2
| | | | | | | Use the idiomatic way to block access to some functions. Change-Id: I6760dac6ce18910bf30b527b313882e394049349 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Disable copying and assigning of QEventVolker Hilsheimer2020-11-197-31/+75
| | | | | | | | | | | | | | Polymorphic classes should not be copied. However, we do rely on event copying in our propagation logic. So, make the members protected, don't delete them, using a dedicated macro. This way, QMutable*Event classes can be used to make copies. Remove some last usage of copying of QInputMethod(Query)Events. Change-Id: Ia0a8ae4ca9de97dcd7788ca3c6ed930b6460c43a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QXmlStream: sanitize input before building a QCharGiuseppe D'Angelo2020-11-181-2/+2
| | | | | | | | | | The result of getChar() may be a combination of a token category and a code unit, like `((LETTER << 16) | c)`. Constructing a QChar out of it requires masking the category out. This was already done in a few code paths but missing in others. Change-Id: I186fb01973a1badd425b3a6811843d8a40b13a6a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CBOR: remove the X11 True and False for goodThiago Macieira2020-11-184-7/+6
| | | | | | | | | | I don't care if you still need X11 headers. If you do, you know your workarounds. Pick-to: 5.15 Fixes: QTBUG-88591 Change-Id: If51855da004b4f3fbf43fffd1648a357eab2d865 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* wasm: fix showing tooltipsLorn Potter2020-11-191-1/+1
| | | | | | | Change-Id: I4c82ccc2bfa1019ef105ccf20982786097c126b9 Fixes: QTBUG-87227 Pick-to: 5.15 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Fix QSFPM not emitting dataChanged when source model is setWang ChunLin2020-11-181-0/+2
| | | | | | | | | | | | | | QSortFilterProxyModel did not emit dataChanged when calling setSourceModel() after modifying the source model. QSortFilterProxyModel::setSourceModel and QSortFilterProxyModelPrivate::_q_sourceReset(), _q_clearMapping is called to delete the source_index_mapping. They also need to call create_mapping function to re-create it. Fixes: QTBUG-87781 Pick-to: 5.15 Change-Id: Idbe34696c9d3a2fbf354b653c870bac61378811d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove obsolete warningsChristophe Giboudeaux2020-11-182-10/+0
| | | | | | | | The libproxy issue was fixed 4 years ago and the related Qt and libproxy bug reports were also closed long ago. Change-Id: I5af18f1eaaffb8d33556ab94ca1759959a2c272d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* xcb: Avoid use-after-free in QXcbConnection::initializeScreens()Alexander Volkov2020-11-181-2/+4
| | | | | | | | | | | Extend the scope of the resources variable to avoid its destruction while it's still in use. Fixes: QTBUG-88512 Pick-to: 5.15 5.12 Change-Id: I3298aabc871ff455bd1203ec276e7600d3e151ef Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Ensure that QMenu is polished before setting the screen in popup()David Redondo2020-11-181-1/+2
| | | | | | | | | | | | | | Some styles alter the widget that will influence the underlying platform window. An example is when a style would want to draw the menu with some transparency and sets the Qt::WA_TranslucentBackground attribute. This needs to happen before the platform window is created. However calling QWidgetPrivate::setScreen will end up creating the window and the surface format will be fixed at this point. Pick-to: 5.15 Change-Id: I707cf1de5c1614382cffbea1aae8cdb01f7de44a Reviewed-by: Nate Graham Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QChar: get rid of some redundant commentsGiuseppe D'Angelo2020-11-181-4/+4
| | | | | | | We have a proper tag now. Change-Id: Ia5279a82e078d27aa5e09a427f36cf355d959e1f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Centralize the wchar_t == char16_t check on WindowsGiuseppe D'Angelo2020-11-182-3/+3
| | | | | | | | Don't push it onto every TU that includes QChar (... approx. everything that uses Qt). Change-Id: I4a07ce9e38a347b45315db93b0c5b90c20bacdbc Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix x-height name in stylesheet docsFlorian Bruhin2020-11-171-1/+1
| | | | | | | | | | | The *height* of an x being called "ex width" makes no sense. Also, it seems like this measurement is typically called "x-height" rather than "ex height", see e.g. https://en.wikipedia.org/wiki/X-height Pick-to: 5.15 5.12 Change-Id: Id8e2c1aa9be1a4a60e667a076486777d34f1e76d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix QGraphicsItem crash if click right button of mouseZhang Yu2020-11-181-2/+6
| | | | | | | | | | | In this case, the 'parent' is QGraphicsTextItem which isn't a object inheriting from QWidget. Converting QGraphicsTextItem to QWidget by static_cast and using it as QWidget leads to crash. Fixes: QTBUG-88309 Pick-to: 5.15 Change-Id: I3c583f43125eb36841848434d1fa9a135b0e9f57 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Get rid of Q_COMPILER_CONSTEXPR checksAllan Sandfeld Jensen2020-11-178-35/+4
| | | | | | | Is required now. Change-Id: I62e95929d1649ea1390392230b619bd56d2a0349 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update landing pages and module pages in qtbaseJerome Pasion2020-11-1718-118/+137
| | | | | | | | | | -Qt SQL, Qt D-BUS, Qt GUI, Qt OpenGL, Qt Widgets, Qt Test, Qt Concurrent, Qt XML, Qt Network, Qt Core -language edits for consistency, add links Task-number: QTBUG-87155 Change-Id: Ic61350c9fa15090c802a42d8e9116219591eba73 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Document that ANGLE is gone from QtGuiVolker Hilsheimer2020-11-171-0/+15
| | | | | | | | | Text taken out of the source-breaks.qdoc file, which will be removed. Task-number: QTBUG-88152 Change-Id: Ibe5fe5328151358873c26d8f1eacc30027c2ced9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QLocale: simplify currency display name lookupEdward Welbourne2020-11-172-1425/+782
| | | | | | | | | | | | | | | We were extracting several candidate display names from CLDR for each currency, joining them with semicolons, storing in a table, then using only the first entry from the list - where we should probably have used the first non-empty entry in any case. So instead extract the first non-empty candidate name from CLDR and store that simply, saving the need for semicolon-joining or parsing out the first entry from the thus-joined list. This significantly reduces the size of the currency name data table. Change-Id: I201d0528348d5fcb9eceb5df86211b9c77de3485 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Inline QLocale's QString overloads via QStringViewEdward Welbourne2020-11-172-137/+101
| | | | | | | | Make declarations use same parameter name as implementation and documentation, in the process. Fixed indent of some doc comments. Change-Id: Ibaa3a5f6316a16c5b65f6ea6e0034f4eb2864b98 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* String-view-ify qt_splitLocaleName() and simplify its callersEdward Welbourne2020-11-175-81/+73
| | | | | | | | | | | Two of its callers didn't even care about the fragments it was returning, one only cared about two of them. The parsing could be more straightforward and less verbose. Parsing into QStringView saves the need to allocate copies of the substrings parsed. Cleaned up around the code that called it. Change-Id: Ie65d2b1b3eb891c20bc82275d7a0da00c30d7b8d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Export QLocaleId::fromName() so qttools can use itEdward Welbourne2020-11-171-1/+2
| | | | | | | | This shall replace QLocalePrivate::getLangAndCountry()'s use by qttools. Change-Id: Ib686a3769bd38c477d7fbad50cf494ee8a0b1c00 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Make QPageRanges::detach public, add data stream operatorsVolker Hilsheimer2020-11-172-1/+43
| | | | | | | | | | | As per QUIP-19 discussion, value types should have streaming operators, and detach should be public. detach() is still documented as \internal, like other public detach methods in value types. Change-Id: I30451909ad5226088fb05206f83983dda5b0c6b5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QTest: don't wait before sending mouse event: increment the timestampShawn Rutledge2020-11-171-25/+18
| | | | | | | | | | Tests can run faster now, but we still expect calculations based on the timestamp (such as QEventPoint::velocity()) to be correct. Change-Id: Ie962604c9ebd139384dcd89a157de66b4b773cc9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Track progress range in QFutureInterface::setProgressValueIvan Solovev2020-11-172-3/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously QFutureInterface::setProgressValue was silently ignoring the progress range and allowed to set any progress value. Also no checks were performed in QFutureInterface::setProgressRange, which allowed the user to set minimum > maximum. Add checking of the current progress range, when settings the progress value. Add checks for minimum and maximum values while setting the progress range. The implementation of the checks is mostly based on the logic that is used in QProgressBar. - If maximum is smaller than minimum, minimum becomes the only legal value. - If the current progress value falls outside the new range, the progress value is set to be minimum. - If both progressMinimum() and progressMaximum() return 0, the current progress range is considered to be unused, and any progress value can be set. - When setting the value using setProgressValue(), if the value falls out of the progress range, the method has no effect. Task-number: QTBUG-84729 Change-Id: I29cf4f94b8e98e1af30dd46fbdba39c421cf66bf Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Correct headers to build with eglfs modulesElvis Lee2020-11-1717-27/+9
| | | | | | | | | | | | | | To build with eglfs module and gbm device integration module, some headers should consider global path, not local. This covers eglfs_kms and eglfs_kms_egldeivce device integration. Other device integrations might be future work if needed. Task-number: QTBUG-85268 Change-Id: I1bad5fbac99aa79d146e90f88b53519b09254e13 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
* Consolidate static_asserts for event sizesVolker Hilsheimer2020-11-172-4/+4
| | | | | | | | | | | | The assertion for size of QMouseEvent and Q(Mutable)SinglePointEvent being equal was previously in QtDeclarative; qtbase should already fail to build if they ever diverge. Having the checks in a single translation unit is enough, qevent.cpp is the obvious choice. Change-Id: I80ad24273738dfde8b165323ac1e790c320c707c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Android: Ensure windows always have a geometry on creationPiotr Mikolajczyk2020-11-171-0/+10
| | | | | | | | | | | | | | | A QWindow created without an explicit geometry needs to pick up a default geometry in the platform plugin. If the window has a maximized of fullscreen window state, it will fill the entire available geometry of the parent window (or the screen if there's not parent window). Fixes: QTBUG-69159 Fixes: QTBUG-69156 Fixes: QTBUG-69154 Pick-to: 5.15 Change-Id: If8565d92a97bb4b3fa44757e68969d54d0bc7ebe Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Don't initialize POD types with memset(0)Lars Knoll2020-11-172-6/+6
| | | | | | | | | This is dangerous as at least pointers to member objects/data are not always zero initialized. Change-Id: I1250e101ab73cd816694315fc9130f4d486b9feb Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move the iterator from QTypedArrayData to QListLars Knoll2020-11-174-96/+85
| | | | | | | | | | The low level implementation does not use it at all, so there's no point having the iterator in QTypedArrayData. Having it in QList removes and indirection and will lead to clearer error messages. Change-Id: I4af270c3cdb39620e5e52e835eb8fe1aa659e038 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Remove unused methodLars Knoll2020-11-171-22/+0
| | | | | | Change-Id: I22738a3d5f1ad3dc4e5f542f4102dfac0491a241 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clean up QList(iterator, iterator)Lars Knoll2020-11-172-17/+16
| | | | | | | | | | Fold the two overloads into one, and distinguish the cases using if constexpr. Do not overload QArrayOps::copyAppend(), to make it clear which one is being used. Change-Id: If6a894841aacb84ba190fb2209246f5f61034b42 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Only export the non inline methods of QArrayDataLars Knoll2020-11-171-6/+6
| | | | | | Change-Id: I4a66fd13ee3e6b4ceb3f5d58de4a44aa394b9e0e Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix signature of QArrayDataOps::erase()Lars Knoll2020-11-174-11/+17
| | | | | | | | | | | | Bring it in line with the other methods that also take a pointer and a size. Also use truncate() in removeAll() as that's more efficient for the use case. Change-Id: Ib1073b7c048ceb96fb6391b308ef8feb77896866 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>