summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Allow QWindowsPipe{Reader|Writer} to work with foreign event loops, take 2Alex Trotsenko2021-03-029-361/+852
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a foreign event loop that does not enter an alertable wait state is running (which is also the case when a native dialog window is modal), pipe handlers would freeze temporarily due to their APC callbacks not being invoked. We address this problem by moving the I/O callbacks to the Windows thread pool, and only posting completion events to the main loop from there. That makes the actual I/O completely independent from any main loop, while the signal delivery works also with foreign loops (because Qt event delivery uses Windows messages, which foreign loops typically handle correctly). As a nice side effect, performance (and in particular scalability) is improved. Several other approaches have been tried: 1) Using QWinEventNotifier was about a quarter slower and scaled much worse. Additionally, it also required a rather egregious hack to handle the (pathological) case of a single thread talking to both ends of a QLocalSocket synchronously. 2) Queuing APCs from the thread pool to the main thread and also posting wake-up events to its event loop, and handling I/O on the main thread; this performed roughly like this solution, but scaled half as well, and the separate wake-up path was still deemed hacky. 3) Only posting wake-up events to the main thread from the thread pool, and still handling I/O on the main thread; this still performed comparably to 2), and the pathological case was not handled at all. 4) Using this approach for reads and that of 3) for writes was slightly faster with big amounts of data, but scaled slightly worse, and the diverging implementations were deemed not desirable. Fixes: QTBUG-64443 Change-Id: I66443c3021d6ba98639a214c3e768be97d2cf14b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QSsl: fix UB pointer useTimur Pocheptsov2021-03-022-7/+7
| | | | | | | | | | | | | Weird macro had inverted notion of type safety: instead of casting parameters and return values (they are pointers) to work with generic OPENSSL_sk_xxx functions, it was ... casting a function pointer to an invalid type to get ... nothing, but UB. Home-brewed (un)'safestack'!!! Change-Id: Ib91a7ba4cd472f370836797e422456f91a4385b0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 9fc2f1f076b953ff0979fb73ed6e70ac9bde278c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Move QSslCertificate's details and cert-related code to the pluginsTimur Pocheptsov2021-03-0220-1726/+540
| | | | | | | | | | | | | | | Also since we have to properly support 'no-ssl' configure option (alas, we support QSslCertificate on such builds) - introduce a minimal crippled QTlsBackendCertOnly, which depends on X509CertificateGeneric. Fixes: QTBUG-90954 Task-number: QTBUG-65922 Change-Id: Ib9d62903f16b7c0eaaa23e319a822c24a7631dc6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 41fc143635c25f937a557f09890601f6c7d38736) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Merge "Add the 6.2 deprecation macros"Giuseppe D'Angelo2021-03-021-0/+8
|\
| * Add the 6.2 deprecation macrosGiuseppe D'Angelo2021-03-021-0/+8
| | | | | | | | | | | | | | | | | | ... which makes me wonder, why isn't this stuff bumped automatically when a minor version branch is created? Change-Id: Ia43f898163a4baa0896a09bd13d65cf534fe1df5 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Merge "High-DPI: Set the minimum scale factor to 1"Morten Johan Sørvig2021-03-022-5/+18
|\ \ | |/ |/|
| * High-DPI: Set the minimum scale factor to 1Morten Johan Sørvig2021-03-022-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid painting errors with dpr < 1, also for the PassThrough mode. This limits the minimum high-dpi scale factor to 1, for the code path which determines the scale factor based on screen DPI. Pick-to: 6.1 Task-number: QTBUG-89948 Change-Id: I14b3f130f0ae141d5f05c87437f926a9f76d1dec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Merge "QLabel: simplify createStandardContextMenu"Volker Hilsheimer2021-03-022-14/+12
|\ \ | |/ |/|
| * QLabel: simplify createStandardContextMenuVolker Hilsheimer2021-03-021-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If control is nullptr in the beginning, then it will be nullptr later as well, and the function won't do anything. And if the effectiveTextFormat is Qt::PlainText, then the linkToCopy will be empty, and the function won't do anything, either. So we can just handle these cases right away, making the code simplier. Fixes static analyzer warning 43de3f3125108b4353afd94e94f59926. Pick-to: 6.1 Change-Id: I5b8eb94a1e40c2725de6a168298d8f3bcde748eb Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * Don't access moved-from objectVolker Hilsheimer2021-03-021-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang's static analyzer tooling warns about this access-after-move [1]. While the comment above the function indicated that this was deliberate and relying on a moved-from QString being valid, it is still bad practice. Since 'str' is empty in moved-from state if - and only if - it was a non-const reference, make a compile-time check of the constness of type T instead. [1] https://testresults.qt.io/codechecker/daily_analyses/qtbase/dev/qtbase-dev-20210301-e14ccf0553/qstring.cpp_clang-tidy_b0545db57a2cc5dac67a56f76322ffd0.plist.html#reportHash=209ee3db0b17d21919326a1ad6635318 Pick-to: 6.1 Change-Id: Iac1813b61b6a3c2ef4053b911a4043c5382f85e4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* | cmake: disable snippets/graphicsview if "printdialog" is not availableRichard Moe Gustavsen2021-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The graphicsview doc snippet has an explicit QT_REQUIRE_CONFIG(printdialog) check that will fail the build if Qt is not configured with "printdialog". This check should be mirrored in the cmake file, so that we skip building the snippet in the first place if the feature is not available. As it stood, we would build the snippet if "printsupport" was enabled. But this is too granular, as you can configure Qt to have general print support, but at the same time, skip the print dialog. This caused the build to fail on iOS. This patch will check the correct feature in the cmake file. Change-Id: I31acc1f7c257e08374ea7b84a7fc38c66f214271 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Stabilize test QMenu::QTBUG_89082_actionTipsHide() on WindowsFriedemann Kleint2021-03-021-0/+3
|/ | | | | | | | | | | Move the cursor out of the way to prevent it from interfering. Amends 3f3d5e6716d9130776b3613ccbd5595de7d4af8d. Task-number: QTBUG-89082 Pick-to: 5.15 Pick-to: 6.0 Change-Id: I0efbe2b5618a04e92839083a1bd3383e05d6ff93 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge "Handle para tags the same way for OOB checks as the other tags"Allan Sandfeld Jensen2021-03-021-21/+16
|\
| * Handle para tags the same way for OOB checks as the other tagsAllan Sandfeld Jensen2021-03-021-21/+16
| | | | | | | | | | | | | | | | | | Do not include the first parameter in the main tag anymore. That is a left over from before unaligned access was added. Pick-to: 6.1 Change-Id: I2caf027c6b9930d3e23fe5ec8bdcd45db34835a9 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Make qt_get_module_for_plugin() internal and do what its name saysCraig Scott2021-03-021-12/+7
|/ | | | | | | | | | | | | | | | | | Contrary to its name, this command was also setting a target property. Since it was only called in one place and that caller can just as easily set the property instead, rename the command to make clear its internal nature and refactor it so that the caller is responsible for setting that property instead. Also make it an error rather than just a warning if the command is used for a target that doesn't belong to any module. Since this is now unambiguously an internal command, we should always expect the target to belong to a module. Pick-to: 6.1 Change-Id: I929a652ddd482653868fc9df887f38f4bc7f35d9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge "Canonical type conversion"Hou Lei2021-03-021-1/+1
|\
| * Canonical type conversionHou Lei2021-03-021-1/+1
| | | | | | | | | | | | | | Avoid C-style casts when possible. Change-Id: I623d7bc62bd0e48a5e0493c892d6ad9b11b0ca0c Reviewed-by: David Faure <david.faure@kdab.com>
* | Font style name 'Normal' and 'Regular' have the same meaningOliver Eftevaag2021-03-021-0/+8
|/ | | | | | | | | | | | | | Some popular fonts on linux systems follow a naming convention, where font styles are named 'Regular', 'Italic', 'Bold' and 'Bold Italic'. Qt so far only accepts the words Italic and Oblique interchangably, but not with Regular and Normal. This change will make sure that Regular is interpreted the same as the Normal font style. Fixes: QTBUG-90396 Pick-to: 6.0 6.1 5.15 Change-Id: Ibbaf086de742c91f4d380c937ca80e846aa32a2e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QCommandLineParser: fix crash if there's no QCoreApplicationDavid Faure2021-03-012-3/+33
| | | | | | | | It'll display <executable_name> instead in the help output. Fixes: QTBUG-91430 Change-Id: Ib6211b24cdaa4683a4f62c90b5a1a20ba69f1cff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge "Brush up the imageviewer example"Friedemann Kleint2021-03-0110-104/+89
|\
| * Brush up the imageviewer exampleFriedemann Kleint2021-03-012-4/+5
| | | | | | | | | | | | | | | | | | | | | | - Fix the save as file dialog being in "Open" mode by setting acceptMode - Fix clazy warnings about detaching QList by using constFirst() - Fix clazy warning about passing a context to slot connection Pick-to: 6.0 6.1 5.15 Change-Id: I0c800e9829e118fcec477322aa2a13660e3b51d2 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * Improve QMakeLibraryInfo encapsulationAlexey Edelev2021-03-015-61/+72
| | | | | | | | | | | | | | | | | | | | | | QMakeLibraryInfo uses external data to produce paths. This causes issues when trying to use it out of the existing qmake environment. Add data fields that contain the path to the binary that uses QMakeLibraryInfo and manually specified qtconf. Task-number: QTBUG-75870 Change-Id: Ic6fa274ede3a9287826ff66c79f155b10d0d455c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Simplify prefix-related functionality of qmakeAlexey Edelev2021-03-014-29/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Since the QT_CONFIGURE_HOSTBINDIR_TO_HOSTPREFIX_PATH and QT_CONFIGURE_HOSTBINDIR_TO_EXTPREFIX_PATH definitions keep the same value in modern CMake build, no need to have special handling in cases where these values are used in qmake. Also it will be useful to specify the relative path to the prefix directory from the directories different of 'bin' when use QMakeLibraryInfo. Task-number: QTBUG-75870 Change-Id: I5a777001eb334dcf05e22853a514d4257352d59b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Remove unused definitionsAlexey Edelev2021-03-012-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | QT_CONFIGURE_CROSSBUILD is always '0', so it's not necessary to keep conditional compilation in QMakeLibraryInfo. Also the QT_CONFIGURE_SYSROOTIFY_PREFIX definition is never used in the project. Task-number: QTBUG-75870 Change-Id: I1fe42dce40fddc6a72254736883f93aa4727f6b3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Handle desc tags the same way for OOB checks as the other tagsAllan Sandfeld Jensen2021-03-011-7/+3
| | | | | | | | | | | | | | | | | | | | Including one entry of the value in the header is pointless after the unaligned access rewrite, and a potentially dangerous pattern, though safe here due to overchecking. Pick-to: 6.1 Change-Id: I4c0380040f89920467c309503408f1df6f88423f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Simplify QDateTimeParser::fromString() to always record the date-timeEdward Welbourne2021-03-011-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, *datetime was only written to if the parse was a success. When parsing a date-time that's invalid by virtue of falling in a spring-forward gap, the parser returns a date-time that is invalid but has a toMSecsSinceEpoch() suitable for use in creating a sensible interpretation of the parsed string (in offset by the width of the gap from the specified position in the gap). It is more useful to return this value than a default-created QDateTime. Change-Id: I89f39e729b1f9fede1532d8b82f6f676477ddadb Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* | Try again if mktime() fails when we thought we knew DST-nessEdward Welbourne2021-03-011-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When refreshing a QDateTime(,, Qt::LocalTime) we call mktime on data obtained from it, passing in the DST status (when known; this keeps two otherwise identical times in a fall-back distinct). One of the tests relies on changing zone under the feet of such a date-time, created in Hawaiian standard time; it serializes it, the reads it back in Western Australian Daylight-saving time and expects the results to be equal. However, the two differ in DST-ness, which leads to mktime() failing for the Hawaiian original, with unwelcome results. Notice this case, failure with DST-ness claimed known, and retry without the claim, so as to correct the DST-ness. Change-Id: Id0278df53130f76fc587769efe946ca9af1adc26 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QTimeZonePrivate::dataForLocalTime: avoid {ov,und}erflowEdward Welbourne2021-03-011-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | When computing a recent and imminent time, to bracket the time for which we want data, take care not to cycle round to the other end of the range of representable times. Rephrased comments on this function, in the process, to more accurately reflect what we're doing. Change-Id: Iacd36186abc6b19d0ca03981aec80b2c5af077b3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Only store offsetFromUtc when sane (and assert sanity)Edward Welbourne2021-03-011-4/+8
| | | | | | | | | | | | | | | | | | | | | | The addition of a sanity-assertion revealed that, for an invalid time-zone, refreshZonedDateTime() left epochMSecs unset but computed offsetFromUtc from it none the less. Leave it as zero in that case, or any other where the conversion to UTC didn't give valid date and time. Change-Id: I0ebd955798532e91e7e211bf065667e313ee5c2d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Rework an assertion to eliminate a common sub-expression using a lambdaEdward Welbourne2021-03-011-8/+9
| | | | | | | | | | | | | | | | | | | | This take more lines but makes the condition clearer and the lines shorter, even after converting to use the names for constants in the condition. Change-Id: I9e5b7b79ff62095ed11b8723be238444fd32d9c1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Use qint64 as base-type for an enum mostly cast to that typeEdward Welbourne2021-03-011-45/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Various constants used in qdatetime.cpp were cast to qint64() where used. There ware also some Q_INT64_C()s, two of which should have used members of this enum; the third suggested a new addition to the enum. Adding that and basing the enum on qint64 eliminates the need for casting, although one asprintf() does now require a cast back to int. There were also some redundant casts to qint64(), so I removed those. Change-Id: Ia51ad8020f037badb1506ca379da19098a8655f8 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Limit value in setFontSizeFromValue()Robert Löhning2021-03-011-2/+2
|/ | | | | | | | | | | | Avoids overflows in QFreetypeFace::computeSize and QFontEngineBox::boundingBox Fixes oss-fuzz issue 30290 Pick-to: 5.15 6.0 6.1 Change-Id: If8e9ff74bf706a701e26832ad21b3439a3b437f7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Kill qHash(QPointF)Giuseppe D'Angelo2021-02-281-0/+2
| | | | | | | | | QPointF operator== is fuzzy, hence it can't be hashed efficiently. Prevent the erroneous addition of the overload by client code by providing it as deleted. Change-Id: I2cfaaf5c2c8896ec9a7929f7c7bf52a912d0450f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix z-value of QGraphicsItems being ignored during drawQiang Li2021-02-281-1/+1
| | | | | | | | | | | | | | | In QGraphicsScene's function draw, don't copy the children into a const copy (to prevent detaching in the loops), as they might get sorted. Instead, use a const reference. Amends e349f787d595aa343ca86af94159b6730d55b8d5, which introduced the bug by making a copy of the unsorted list. Fixes: QTBUG-81316 Pick-to: 6.0 6.1 Change-Id: Iab9b87e75178a883806088a9db234c7a2aaa9301 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QBrush: get rid of an unused private functionGiuseppe D'Angelo2021-02-282-6/+0
| | | | | | | No idea why it's there, it's unused. Change-Id: Icf7b48e1e4ab37158a81e15ffa5a7125bfd10822 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix out-of-buffer in ICC curv parsingAllan Sandfeld Jensen2021-02-281-5/+6
| | | | | | | | | | After the unaligned ICC profile fix, we could read 2 bytes past the end of the buffer for curv elements with 0 parameters, though we wouldn't use or return the data. Pick-to: 6.1 6.0 5.15 Change-Id: Ibea9fa2840c01d690716d8f48e301fbfa67aa163 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QMetaType: Store QMetaObject for pointer to const QObject, tooFabian Kosmale2021-02-265-0/+54
| | | | | | | | | | | | | | | | | Before this change, the QMetaType for T const* where T is derived from QObject would not store the static QMetaObject of T. This commit changes this. As a consequence, the metatype system can now convert between const and non-const pointers to QObject. Note that this allows casting const away; but so does C++ with const_cast. In addition, a new flag, QMetaType::IsImmutable is introduced, and used to tag the metatypes of pointer to const types. This allows code to discern between pointers to mutable and const QObjects, which is relevant for the QML engine. Task-number: QTBUG-82354 Change-Id: I3e4e4f39f565bd99a65e161528ce5304df73d6d6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QJsonValueRef: add missing operator[]Fabian Kosmale2021-02-261-0/+4
| | | | | Change-Id: Iae165cd7bb2a7ea02d819fa25e0618d81f9a54f4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Document requirements for getters and setters of bindable propertiesAndreas Buhr2021-02-252-6/+38
| | | | | | | | | | | | | Getters and setters of bindable properties have to be carefully written to avoid several problems. This patch adds documentation for this. Task-number: QTBUG-89505 Task-number: QTBUG-90511 Change-Id: Ib25590b3d8d95c490d9555c0f258f48cb6cfe4a9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Assert that QWidgetPrivate::create creates a windowVolker Hilsheimer2021-02-251-0/+1
| | | | | | | | | | | | | Assert the expected side effect of createTLSysExtra, which might not allocate a window, but must do so in this case (as we have already returned if the QWidget is not a window). Fixes static analyzer warning 2f3bbfe8addb586445e96f8906d6769e Pick-to: 6.1 Change-Id: I4d5b8651b3510eff8e4a7b25889c0521ba6a4247 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix qmake's metatype generation feature after moving moc to libexecJoerg Bornemann2021-02-251-1/+1
| | | | | | | | This commit amends 1f30bcf33618ca39c47dc1058529b55635e30aef. Pick-to: 6.1 Change-Id: I677bd75bffddab6d764108e4fb2826e01c9dcb07 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Reduce warnings from ICC parsingAllan Sandfeld Jensen2021-02-252-9/+11
| | | | | | | | | | Messages about Qt deficiencies reduced to info, and info set as the default message level. Pick-to: 6.1 6.0 5.15 Fixes: QTBUG-91401 Change-Id: Ia97438f08de5e0383e77631dca9b253b47ef8167 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QEventDispatcherWin32: get rid of the hook procedureAlex Trotsenko2021-02-252-30/+9
| | | | | | | | | | | | | | | | | | Instead of intercepting the WM_QT_SENDPOSTEDEVENTS message in the hook procedure, we can handle it at receive points, making qt_GetMessageHook() unnecessary. Including general performance improvements, this patch fixes the issue where some applications (e.g. Ableton Live) do not call a chain of nested hooks for plugins. Pick-to: 6.1 5.15 Fixes: QTBUG-90949 Change-Id: If8e96848392c6f10d45af2aac0567707d16af673 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Nuno Santos <nunosantos@imaginando.net>
* Fix logic problems with table based grayscale ICC profilesAllan Sandfeld Jensen2021-02-252-6/+6
| | | | | | | | | White-point was calculated wrongly and some tables could cause bad behavior in the tables. Pick-to: 6.1 6.0 5.15 Change-Id: I24e8f5f3cc1306f5f898a4acbf7b008e26bd04e2 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add more support for structured bindingsGiuseppe D'Angelo2021-02-255-0/+238
| | | | | | | | | | | | | | | | | | | | | | | After QPoint(F), it's now the time of QSize(F) and QVectorND, which can be unambiguously decomposed. [ChangeLog][QtCore][QSize] QSize is now usable in a structured binding declaration. [ChangeLog][QtCore][QSizeF] QSizeF is now usable in a structured binding declaration. [ChangeLog][QtGui][QVector2D] QVector2D is now usable in a structured binding declaration. [ChangeLog][QtGui][QVector3D] QVector3D is now usable in a structured binding declaration. [ChangeLog][QtGui][QVector4D] QVector4D is now usable in a structured binding declaration. Change-Id: I67bb152f4210f2be27607179cd2ec522174cc483 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Assert that we have a socketEngine before calling itVolker Hilsheimer2021-02-251-0/+1
| | | | | | | | | | | | If we are connected or bound, then we must have an engine. Otherwise in code we frequently test for the d->socketEngine pointer, including in waitForConnected. Fixes static anlyzer warning 3b37ce4102843c97ceef2b7bb68a409d. Pick-to: 6.1 Change-Id: Ib9818282ad2813db97859cbe1f184bcfb5ea4ab4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QIcon::setIsMask: don't dereference nullptrVolker Hilsheimer2021-02-251-2/+2
| | | | | | | | | | | | | | QIcon::detach might result in the d pointer being nullptr, and other code tests for that condition and allocates the d pointer explicitly. Change the order of the tests in setIsMask as well, fix static analzyer warning 0a4723ca2d216ec8883a3d412aeded4c. Pick-to: 6.1 Change-Id: Idca12f230036362f13cbaee1ae4f0e5ce6726015 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Use Core library for qmake instead of the Bootstrap libraryAlexey Edelev2021-02-2525-565/+550
| | | | | | | | | | | | | | | | | | | Move the qmake-specific logic of the QLibraryInfo class to qmake internals. 'qconfig.cpp.in' now stores information about the library info entries to keep them consistent between qmake and the Core library. qmake requires specific features enabled in the Core library, so building qmake will be skipped if the features are not enabled. All flags directly related to the qmake have been removed from Core lib. Remove all bootstrap related sections from qmake CMakeLists.txt Task-number: QTBUG-89369 Change-Id: I26de157d3bfd4a5526699296e9d46e1c180b89ae Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* tst_QFuture::continuationsWithContext: fix the flakinessSona Kurazyan2021-02-251-3/+14
| | | | | | | | | | | | | | | | | When attaching a continuation with the default (QtFuture::Launch::Sync) policy, it will be launched in the same thread where the parent has been executing, or in the thread where the parent lives, if the continuation is attached after the parent has already finished. Fixed the test-case to make sure the continuations are attached while the parent is still running, so that they can be resolved in the parent's context. Fixes: QTBUG-91373 Pick-to: 6.1 Change-Id: I82b3b0c47b76d121b44bd512659c08b3b474e351 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Improve docs for QFuture::then() with contextSona Kurazyan2021-02-252-0/+21
| | | | | | | | | | | | | Be more precise about attaching a continuation with the default (QtFuture::Launch::Sync) launch policy after a continuation with context. Pick-to: 6.1 Change-Id: I5b80063df2443e5742033864ba012bf34ed4cdf7 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>