summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QtCore: replace QLatin1String/QLatin1Char with _L1/u'' where applicableSona Kurazyan2022-03-25109-1184/+1351
| | | | | | | | | | | As a drive-by, did also minor refactorings/improvements. Task-number: QTBUG-98434 Change-Id: I81964176ae2f07ea63674c96f47f9c6aa046854f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
* Android: Keep the ParcelFileDescriptor open for content urisJarkko Koivikko2022-03-252-5/+26
| | | | | | | | | | | | | | Detaching fd and closing the ParcelFileDescriptor prevents IO with the services like Google Drive on Android. Instead, the file system should keep the ParcelFileDescriptor open while the IO operations take place and close it manually. Also, prevent Qt from closing the handle for us. Pick-to: 6.2 6.3 Fixes: QTBUG-101996 Change-Id: Ie54c04ad5aa1e7ee5444a04c30ac1323f73047bb Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Enable QIcuTimeZonePrivate's support for transitionsEdward Welbourne2022-03-251-15/+10
| | | | | | | | | | | | | | The support was previously limited to ICU version 50, with an == check rather than a >= one, accompanied by a TODO comment to check whether the API was stable at 51. Nine years have passed since ICU 51 was released, we're now up to release 70, and now I've finally verified that the API is stable (and fixed a few bugs in how we use it). So change the check so that we now do use the transition API. Fixes: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: Ica024b6c28a213e0de0a37f196839e8ded193889 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix QIcuTimeZonePrivate::data() before the first transitionEdward Welbourne2022-03-251-6/+8
| | | | | | | | | | Provide valid data, since ICU can, by the means we used before the transition API was introduced. Task-number: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: I4d4a1201db2255b98901dacb83169ae4ae25ef05 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix QIcuTimeZonePrivate::hasDaylightTime() to catch historical DSTEdward Welbourne2022-03-251-2/+11
| | | | | | | | | | | | | QTimeZone::hasDaylightTime() is documented to return true if a zone has ever dabbled in DST, but the ICU implementation was only detecting whether the zone currently engages in it. When the transitions API is available (currently for version == 50; will soon change to >= 50), use it to find out whether DST was ever in effect. Task-number: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: I4576de2e074dc57b54450b1e40a23358ccf0ef49 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix ICU's handling of last representable transitionEdward Welbourne2022-03-251-1/+9
| | | | | | | | | | | | | | | ICU's search for next transition, when the result would lie later than is representable by qint64, returns the last transition before the bound, even if this is at the time it was meant to exclude from the range searched. This lead to infinite looping when we tried to traverse transitions forward. Recognize when this happens and return the invalid data object that indicates falling off the end of time instead. Task-number: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: I1a210fb7a4086b2fdb052b2260c800bfc29f965a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Apply the East-Saskatchewan exception to zone-fragment lengths to ICUEdward Welbourne2022-03-251-5/+9
| | | | | | | | | | | | The exception was previously limited to Android, but I now find that ICU has the same over-long names; it seems likely that's where Android gets them. Also update the link to the theory page from the TZ DB, as it now has an official home on www.iana.org. Task-number: QTBUG-99747 Pick-to: 6.3 6.2 Change-Id: I9af67426d15609dfaf5f335405ceb1218fcf40ff Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Avoid overflow in some more qdatetime.cpp functionsEdward Welbourne2022-03-251-28/+36
| | | | | | | | | | | | | | | | | One multiplied TIME_T_MAX * MSECS_PER_SEC despite knowing this to be too close for comfort to the bounds of qint64; but the comment indicated it should have been using a 32-bit signed max in place of TIME_T_MAX. Two others simply neglected to check for overflow. Also use QRoundingDown::qMod() in one place to avoid needlessly complicating arithmetic; and assert, in another, that we were never in danger of overflowing anyway (thanks to an earlier isValid() check). Restructured QDateTimePrivate::zoneMSecsToEpochMSecs() in the process of catching its potential overflow. Change-Id: I429321d90246ba922cccf09a4f028f03a514cb6b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix char/uchar comparison warning in toPercentEncodingEdward Welbourne2022-03-251-1/+1
| | | | | | | This amends commit 5291dc7dcfa489354d3f880468902debf755d9cd Change-Id: Icdd9562f74a4de0323ba8fef558958af41eeb5a1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Notify about focus object changes upon widget destructionVolker Hilsheimer2022-03-252-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | If the active QWidget gets destroyed, then QWidgetWindow::focusObject will return nullptr. If then no other object takes focus, then we'd never emit change signals, and QGuiApplication's _q_updateFocusObject (which then informs the input context and emits signals) didn't get called. This left the input context with a dangling focus object pointer, which resulted in crashes. If the QWidget clears its focus, but the corresponding window doesn't know that it had focus, then fall back to the widget's focus widget to see if we have a change in focus, so that signals get emitted. Add a test case that shows that we didn't call _q_updateFocusObject by counting emissions of the QGuiApplication::focusObjectChanged signal, which we emit in this function. The signal is emitted more than once both when showing a widget, and now also when destroying a widget that has a focus child. The former is a previous issue, the latter is an improvement to not emitting the signal at all. Pick-to: 6.3 6.2 Fixes: QTBUG-101423 Fixes: QTBUG-101321 Change-Id: Ib96a397211d442f52ce795a3eebd055a0ef51b0d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Pass ANDROID_SDK_ROOT and ANDROID_NDK_ROOT variables to external projectsAlexey Edelev2022-03-251-0/+8
| | | | | | | | | | | | | The path to an Android toolchain is set to the one is used on CI by default. To rewrite it user need to set ANDROID_SDK_ROOT and ANDROID_NDK_ROOT variables. But these variables are not propagated to the per-ABI external project, so they cannot locate the Android toolchain file correctly. Fixes: QTBUG-102041 Pick-to: 6.3.0 6.3 Change-Id: Ic30a3298518af93718f5422402edd5e0715ea135 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Doc: Add \relates command for documented global functions/macrosTopi Reinio2022-03-255-3/+9
| | | | | | | | | | | | | Global functions need an associated header file/class/namespace to make the documentation visible. Remove QDoc comment tag (/*!) for an internal function. Pick-to: 6.3 Task-number: QTBUG-99578 Change-Id: Id390d433d7e081fc90fa57a02097b6c37fa13bee Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove mention of Q_GLOBAL_STATIC being more thread safe than local staticsTor Arne Vestbø2022-03-251-4/+0
| | | | | | | | | As of C++11 local statics are guaranteed to be thread safe, so this advantage doesn't hold anymore. Pick-to: 6.2 6.3 Change-Id: I9ac34b8af30e44ff8134e5f81f45c8aa0f8ddcc9 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Avoid fetching destination when not usedAllan Sandfeld Jensen2022-03-251-21/+82
| | | | | | | | Previously this optimization would only trigger if all spans were opaque, with this change it can also trigger with singular spans. Change-Id: I79f362072ece7b6082463d32fc91000d5ff319b5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* iOS A11Y: Set more accessibilityTraitsMike Achtelik2022-03-251-0/+11
| | | | | | | | | | Set traits for roles that have a direct mapping between QAccessible::Role and UIAccessibilityTraits. This allows the screen reader to pick up on them and give additional info e.g. for links. Pick-to: 6.3 6.2 5.15 Change-Id: I0f85e525fef390dcdf1ea664a0d325ce54f5b25b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Always cancel unfinished QPromises on destructionSona Kurazyan2022-03-251-8/+2
| | | | | | | | | | | | | | | | | | If the QPromise is being destroyed, we should signal the associated futures to stop waiting. No matter in which state the promise is, if it's not finished, we should always cancel to avoid infinite waits. This is also what docs state: "The promise implicitly transitions to a canceled state on destruction unless finish() is called beforehand by the user." Fixes: QTBUG-101284 Pick-to: 6.3 6.2 Change-Id: I65ebfefe03b79b41afacda78a4f49938c54d8b37 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* cmake: skip unity build inclusion of generated resourcesTim Blechmann2022-03-251-2/+5
| | | | | | | | | | | generated resource files contain static variables like `qt_resource_data`. if multiple resources are included in unity builds, we end up with name clashes, so we should exclude them Change-Id: I8cbe73a9e3ce3808a142b7cb6315355a7d4161db Pick-to: 6.2 6.3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QVariant: disable building from arbitrary pointersGiuseppe D'Angelo2022-03-251-0/+8
| | | | | | | | | | | | | | | | | The QVariant(bool) is an extremely dangerous catch-all for all sorts of things that may convert to bool, including arbitrary pointers. Delete the corresponding constructor, in order to force users to use the (correct) construction using fromValue, and/or to prevent bugs altogether. This is technically speaking a SiC, but one of type A -- if pointer to bool was intented, just do the conversion explicitly. [ChangeLog][QtCore][QVariant] QVariant used to be constructible by raw pointers through a conversion towards bool. This is now illegal. If such a conversion is needed, users are advised to insert manual casts to bool. Change-Id: I1b1f81962259514e57d841246740e0f7050104e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Improve style drawing under DPR scalingEirik Aavitsland2022-03-251-2/+30
| | | | | | | | | | | | | Line painting code originally designed for unscaled, aliased, pre-Qt4 drawing generally behaves better with a half pixel offset applied. This fixes a heap of glitches when this code is run with a device pixel ratio > 1. Fixes: QTBUG-88934 Task-number: QTBUG-96223 Pick-to: 6.3 Change-Id: I617b0ecc0be2593b34bf78349043f72b9ea4b20c Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* CMake: Enable verbose autogen for cmake auto tests and EP examplesAlexandru Croitor2022-03-241-0/+1
| | | | | | | | | | | | | | So we can see the exact moc invocations when debugging issues in the CI. For ExternalProject examples, it is conditional on whether Qt is configured with QT_INTERNAL_VERBOSE_EXAMPLES set to ON, otherwise calling the main ninja without -v will end up cluttering the output with AUTOGEN output. Pick-to: 6.2 6.3 Change-Id: I6468ab0e461b3be283e2428e3515cae4d5986242 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* CMake: Enable debug verbosity for cmake auto tests and EP examplesAlexandru Croitor2022-03-241-0/+2
| | | | | | | | | | | | | | | | | | | | Since e2a0ddbb69640c94b4ee107260a088d5c1c7e273 , if Qt is configured as a non-developer-build, some of the CMake tests that include QtSetup would have their CMAKE_MESSAGE_LOG_LEVEL set to the reduced NOTICE value. Make sure that tests always have a DEBUG level, so that if they fail in the CI, we have more info on what goes wrong. For ExternalProject examples, it is conditional on whether Qt is configured with QT_INTERNAL_VERBOSE_EXAMPLES set to ON, otherwise calling the main ninja without -v will end up cluttering the output a non default log level. Amends e2a0ddbb69640c94b4ee107260a088d5c1c7e273 Pick-to: 6.2 6.3 Change-Id: Icd3b6e0fcc6c73e4b53b6c4a6d8354c96077a050 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* rhi: d3d11/vulkan: Allow passing in an array range overrideLaszlo Agocs2022-03-246-6/+62
| | | | | | | | | | | | | | | | | | Only (straightforwardly) implementable with modern APIs, and only really exists to handle special platform cases, such as when a video framework gives us a D3D texture array with D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE which is only possible to use as a shader resource if the SRV selects a single array layer. Has no effect on the normal usage of texture arrays, where all array layers are exposed, and it is the shader that selects the layer when sampling or loading via the sampler2DArray. That continues to be the standard way to work with texture arrays. Change-Id: I0a656b605da21f50239b38abb83067e0208c1dbe Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* QStandardItemModel: use the right datatype for text alignmentGiuseppe D'Angelo2022-03-241-2/+2
| | | | | | | | Now that views can deal with Qt::Alignment returned by a model, use the right type. Change-Id: Ib6de5f7acbc76e9529451ddb494e808a41c59021 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QAbstractItemModelTester: use the right types for some rolesGiuseppe D'Angelo2022-03-241-2/+3
| | | | | | | | | | | | Models are expected to return Qt::Alignment and Qt::CheckState when asked for the text alignment / check state roles, respectively. However, for legacy reasons, models may return `int` for either possibility. Extend the tester to cover this. Task-number: QTBUG-75172 Change-Id: I64bfc898466e8bb4d4a8a35726986ae610a8ffbe Pick-to: 6.2 6.3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* qdbusxml2cpp: Improve error messageAleix Pol2022-03-241-24/+28
| | | | | | | | | | | | | Instead of saying: You should add <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="<type>"/> to the XML description It now says You should add <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="<type>"/> to the XML description for 'Bind' So you get an idea of which type it's asking to annotate. Change-Id: Ia0842d3b54681825201813fe0875014cd35d8192 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: David Faure <david.faure@kdab.com>
* widgets: Disable "Pick color" in QColorDialog when unavailableFan PengCheng2022-03-241-14/+31
| | | | | | | | | | | On Wayland, you can't read screen content, so the "pick color" feature does not do anything. In cases such as these, we should detect that the platform does not support the feature and hide or disable the button. Fixes: QTBUG-101145 Change-Id: I192ca2aac78b3df5352b4dc71100b93f69dc5efb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QNX: remove mmrenderer overlay window supportRafael Roquetto2022-03-245-117/+21
| | | | | | | | | QtMultimedia no longer supports overlay windows. The QNX multimedia plugin now relies on the canonical rendering codepath via QVideoWindow. Change-Id: Ic3bb14865f147a47200554e4791c191540e5bb75 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
* QAbstractItemView: with single selection, deselect on Ctrl+ReleaseVolker Hilsheimer2022-03-241-9/+22
| | | | | | | | | | | | | | | | | After cbf1b4bc60bca3994b8f8685ee922e53a6b4eed2 the selected item got deselected on Ctrl+Press, which made Ctrl+dragging a selected item impossible. Only deselect on Ctrl+Release. Add scenario to existing test case, and update the documentation to clarify the properties involved, and to point out that the event parameter might be nullptr. Fixes: QTBUG-101647 Pick-to: 6.3 6.2 Change-Id: I749b1cb1a0a311f5c1d4c333984716f05f2c90b5 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Volker Enderlein <volker.enderlein@ifm-chemnitz.de> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Itemviews: start fixing mixups of int/enum for Qt's item rolesGiuseppe D'Angelo2022-03-235-9/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | A model is supposed to return a Qt::CheckState for a CheckStateRole, and a Qt::Alignment for a Qt::TextAlignmentRole. This is what the documentation says (and what makes sense), but unfortunately Qt's default delegate expected a plain `int` instead. This sometimes worked (via QVariant conversions, e.g. when using a plain enum) and sometimes didn't (e.g. when using a flag type). This is confusing for end-users (and type unsafe, killing the whole point of using enums and flags in the first place). Adding some automatic flags<->int conversions through QVariant is frowned upon, so I don't want to go there. Instead, add some private convenience functions that extract either the right type from a variant, or try to extract an `int` and convert it to the expected type. Use these from within itemviews code. Change-Id: I44bee98c4a26a1ef6c3b2fa1b8de2edfee7aef32 Pick-to: 6.2 6.3 Fixes: QTBUG-75172 Task-number: QTBUG-74639 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* FreeType: Load multiple font faces from the same file on macOSNiklas Wenzel2022-03-233-2/+77
| | | | | | | | | | | | | | Previously, if a font file contained multiple font faces, only the first could ever be loaded. This could lead to Qt loading different font styles than requested by the application. [ChangeLog][Text][Freetype] Fixed a bug where the macOS FreeType backend would fail to load font faces from font files containing multiple faces. Fixes: QTBUG-100666 Pick-to: 6.2 6.3 Change-Id: I6a126266a2e15f843dd578ab25c11748881bb932 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Use the CMake path format when passing the CMAKE_PREFIX_PATH to ctestAlexey Edelev2022-03-231-10/+25
| | | | | | | | | The generated 'CTestTestfile.cmake' file contains unescaped '\' symbols in --build-options argument that causes an issue if the Windows path format is used in CMAKE_PREFIX_PATH. Change-Id: Ic03934fcb7bc6230cef72584fef81b01026d5f3b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CoreText: Maintain theme fonts in the font database instead of themesTor Arne Vestbø2022-03-235-17/+8
| | | | | | | | | | | | | | | | | | The ownership of the fonts were handled in the iOS and macOS themes, but the CoreText font database also kept a reference to these fonts. As there was no way for the themes to reset the font database references we could potentially end up in a situation where the font database had stale references. And as the font database would not rebuild the theme fonts once populated the themes then would not be able to build a new list of theme fonts. Moving the ownership to the font database makes semantics and management of the fonts clearer. Pick-to: 6.3 6.2 Change-Id: I61756abaf5487f28d520dfa1cf7a8ee2d716cce6 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Use QLatin1StringView in QString/QLatin1String APIs and docsSona Kurazyan2022-03-237-440/+454
| | | | | | | | | | | | | | | - Replaced QLatin1String with QLatin1StringView in QString/QLatin1String APIs and docs (except for QLatin1String class declaration and ctor names). - Made the docs look like QLatin1StringView is "The Real Thing". [ChangeLog][QtCore] Made QLatin1StringView the recommended name for referring to a Latin-1 string view (instead of QLatin1String). Task-number: QTBUG-98434 Change-Id: I6d9a85cc956c6da0c910ad7d23be7956e4bd94ac Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QDateTime: enable larger ShortData for bootstrapped buildMarc Mutz2022-03-232-2/+2
| | | | | | | | Ensures we get a modicum of testing of the Qt7 32-bit code in. Change-Id: I0838e4340265e19ab2b17a1a91a11ef5f9948893 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QSettings: port API from QString to QAnyStringView keysMarc Mutz2022-03-233-10/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the public interface ported to QAnyStringView, we can now internally optimize memory allocations _in a central place_ (e.g. by returning std::u16string or QVarLengthArray<QChar> from normalizeKey() instead of QString). But first we needed to get rid of all the unwarranted allocations in user code. Effects on Linux AMD64 stripped C++20 release builds: GCC 11.2 libstdc++ (TEXT -= 6.5%): text data bss dec hex filename 635148 10992 2824 648964 9e704 tst_qsettings-01-baseline 593691 10992 2824 607507 94513 tst_qsettings-02-qanystringview Clang 10.0.0 libc++ (TEXT -= 11.6%(!)): text data bss dec hex filename 790336 10640 2832 803808 c43e0 tst_qsettings-01-baseline 698572 10640 2832 712044 add6c tst_qsettings-02-qanystringview That's the beauty of QAnyStringView: transparently reducing temporary QString creation; and the simplest code is also the most efficient. [ChangeLog][QtCore][QSettings] Keys can now be passed as QAnyStringView (was: QString). The most efficient way to pass literal keys is now "key"_L1, the backwards-compatible way is QStringLiteral("key"). Fixes: QTBUG-101390 Change-Id: I510fb4ce17ef109dac7c9cdc5d90ede0d1a9db5f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Remove qipaddress from boostrap libFabian Kosmale2022-03-231-1/+0
| | | | | Change-Id: I31a883404f34d0933fe8b316d05b0f28103e48ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QTemporary(file|dir) from boostrap libFabian Kosmale2022-03-232-2/+2
| | | | | | Change-Id: I851f0fd8150592784a7b38d3d30d69d8346de112 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Document that native file dialogs might not show a titleVolker Hilsheimer2022-03-231-5/+10
| | | | | | | | | | | | Native dialogs on macOS haven't shown a title bar since macOS 10.11. The caption string passed in might not be visible to the end user, which can be problematic for certain applications that use the title text to provide context to the user. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-59805 Change-Id: I3a1cea8f11a62c0927a9ba00159a118e2b078956 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Remove QUrl* from boostrap libFabian Kosmale2022-03-231-4/+0
| | | | | | Change-Id: I669ad12588adfd6fb409525616e145120e5a7c76 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Jpeg handler: Detangle error reporting from the abort handlingEirik Aavitsland2022-03-221-7/+7
| | | | | | | | | | | | | | If libjpeg has detected a fatal error, wait until after the longjmp to report the error using qCWarning(), as some compilers don't like that happening before the stack has been restored. Also avoids code duplication. Fixes: QTBUG-100821 Pick-to: 6.3 6.2 Change-Id: I8d0e6e1bcc4f2a85dae06b3879453ee9077288c0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
* Document some details of TAP's use of YAMLishEdward Welbourne2022-03-221-1/+67
| | | | | | | ... along with how QtTest soon shall be using it. Change-Id: I9c723ebdb8ee5be1c4152aa911ae7c846ea61b5c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use a cheaper is-empty test for a C-stringEdward Welbourne2022-03-221-1/+1
| | | | | | | | We only need to look at the first byte to determine whether the length is > 0; no need to count how many more bytes after it aren't '\0'. Change-Id: Id2db2a9a993086c0aee02c99396fcb346b1a348e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Avoid duplicate descriptions in TAP's incident YAMLEdward Welbourne2022-03-221-2/+2
| | | | | | | | | | | | | | When a B?Fail's description doesn't match the QVERIFY/QCOMPARE regexes, it got output as a comment in the YAML block after the test line had already reported it as a TODO comment. An empty description would also have lead to an empty comment in the YAML block. Condition this fallback output case on there being a description that hasn't yet been reported in the test line. Task-number: QTBUG-96844 Change-Id: Id7fe81d26ddb01da3d8003ada8fa590a5e1a166f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix indentation of some continuation lines in qtaptestlogger{.cpp,_p.h}Edward Welbourne2022-03-222-4/+4
| | | | | Change-Id: I33dc05b61b07f077edc7c4816d43d0b53f5f4b43 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* TAP test logger: treat blacklisted XFail the same as XFailEdward Welbourne2022-03-221-1/+1
| | | | | | | | | | | In all places but one they were treated the same; fix that last one to match the rest. This removes one line from the YAML block for each blacklisted XFail test; in each case, this message duplicates the one on its "not ok ... # TODO..." test line. Change-Id: Iff2028afccd979db7f2c84e85d1b78541900008e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Match QtTest command-line output options to the help outputEdward Welbourne2022-03-221-8/+10
| | | | | | | | | Reorder the different formats to match the order in the help output and include missing entries from the list of formats supported by the -o filename,format variant. Change-Id: I884f9facc7cfde7cec0bee75944efdd72d66a83e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Document what QtTest's various loggers doEdward Welbourne2022-03-229-10/+87
| | | | | | | | | Provide basic (internal) documentation of each logging class and link the command-line documentation to pages relevant to the formats not defined by Qt. Change-Id: I3251dd1304203c6ab87dfe1f2dec0e9787ab69f8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QFuture: fix a codechecker warningSona Kurazyan2022-03-221-1/+1
| | | | | | | | | | | | Codechecker complains about passing a forwarding reference to std::move, which may unexpectedly cause lvalues to be moved. We should use std::forward instead. This amends cbf8fc0ac43365f4dd69c64ec770d8f547d772f3 Change-Id: Ieba9e960b5dfb448e9cebabe9541967698995b8f Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Doc: Reorganize sections structure in Qt Widgets landing pageAndreas Eliasson2022-03-221-20/+21
| | | | | | | | | | Also, use the global include snippets for the 'Using the Module' section. Task-number: QTBUG-100369 Pick-to: 6.3 Change-Id: Ib9e32dd48689879c91c7c307f8cf0f01dc478efe Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* QNX: Fix compiler warning by when FEATURE_clipboard is not enabledPasi Petäjäjärvi2022-03-221-0/+2
| | | | | | | | | warning: unused parameter 'selectionClipboard' [-Wunused-parameter] Pick-to: 6.2 6.3 5.15 Task-number: QTBUG-101382 Change-Id: I4f42a6f41c8f8a8b3edd3a042c89b7a2a49a96fe Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>