Commit Graph

51777 Commits

Author SHA1 Message Date
Robert Löhning
82499a6a28 Fuzzing: Discard logging output from QSslCertificate
It's pointless in a fuzzer and slows down execution.

Change-Id: I0d36ed8814cf8fb332c196ea7e24eae8ee4d3c6e
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2021-05-31 17:11:05 +02:00
Robert Löhning
75cdbb85ea Fuzzing: Discard logging output from QTextDocument
It's pointless in a fuzzer and slows down execution.

Change-Id: I160d7fd761118f9eba9b98fc024aef293e021845
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-05-31 17:10:58 +02:00
Fabian Kosmale
33a2bd9ca9 Q_DECLARE_METATYPE: Do not re-register types
When Q_DECLARE_METATYPE is used, we often end up re-registering types as
typedefs of themselves. This is because with Q_DECLARE_METATYPE, we set
a legacy register operation which calls (after some indirection)
QMetaType::registerNormalizedType.
We still need to support this to preserve compatibility in the presence
of typedefs and namespaced types. However, there is no reason to do the
wasteful work of normalizing the typename at runtime and adding memory
overhead to have a type registered as a typedef of itself.

We can skip the type normalization work by checking whether the name in
the metatype interface equals that of the typename. We still need to
make sure that the converter and view functions are registered, though.

Moreover, we can fix the check in qRegisterNormalizedMetaType to only
call registerNormalizedTypedef if the new name doesn't match the name
stored in the metatype.

Fixes: QTBUG-93841
Change-Id: Icfe42c349b23add630fe3c761362b60e9e9aaa2b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-31 17:08:11 +02:00
Giuseppe D'Angelo
bf0b2b24a7 QChar: mark as PRIMITIVE type
I guess the reason it was marked RELOCATABLE was to ensure
initialization, which we now do anyways (even for PRIMITIVE).

Change-Id: If4f2c248b7b04a301bad81588ea9a9ad06534760
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-31 17:01:42 +02:00
Robert Löhning
8b691ce245 Fuzzing: Add CMake project files for fuzz targets
Change-Id: Ied44bfd2c83d5590066146187a7333b677ceb179
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-31 16:44:06 +02:00
Igor Kushnir
4b0b87b5c2 QWidgetTextControl: ignore GroupSwitchModifier for BackSpace
"The keypad and group switch modifier should not make a difference" when matches a QKeySequence, see QKeyEvent::matches() implementation.

Qt(xcb) treats AltGr as GroupSwitchModifier in hard code, which should
come from Qt 4 era. Nowadays, with different xkb setups, Mode_switch
could be different keys. When it is AltGr, Qt will get AltGr as
GroupSwitchModifier. When it is not AltGr, another key like
Less/Greaterkey(details in bug report), GroupSwitchModifier will not
be set in the case.

Fixes: QTBUG-36565
Pick-to: 5.15 6.0 6.1
Change-Id: I7251963d41a70d61800d25e43d5012b859693f69
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-05-31 14:42:05 +00:00
Alexey Edelev
c4b5e84e9e Avoid blocking read from stdin when collecting json files
Change the behavior of moc when collecting json files. If argument files
are specified, suppose moc received empty input and skip input from
standard input.

Pick-to: 6.1
Fixes: QTBUG-93504
Change-Id: I45ec790ed458f1fae543d069555bc8abc6560816
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-31 07:13:09 +00:00
Kai Köhne
97abef2140 Fix path of qmlimportscanner for Android
Amends c113c88aa2

Fixes: QTBUG-94077
Change-Id: If8dff3ec3750e88fcff5e6e076e0666eef2ca142
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-31 09:12:40 +02:00
Kai Köhne
10368c61a9 blake2: Fix MSVC warning C4804
Pick-to: 6.1
Change-Id: I392da957b9cc84f55bb8eaeb888ca5dd35ec36f2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2021-05-31 08:39:59 +02:00
Xiao YaoBing
afb9bdc76f Make the code format more standardized
Change-Id: I33fa0800df2dd3cfd525c27234dc6fbd46fd1e9b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2021-05-31 04:34:23 +00:00
Tang Haixiang
c77840d734 Fix PageDown behavior and PageUP
When the PageDown is pressed, the current's rect cannot be
used to match the item, because we don't know the size of
the rect. Move the rect by the height of the viewport, and
then move the rect upwards until it matches the
button <= viewport's bottom of the item

Fixes: QTBUG-92583
Pick-to: 6.1
Change-Id: I210edc0e8b942984f3fc20e7752c6e1315152ea1
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-05-31 03:27:12 +00:00
WenTao Song
80cf470534 doc: Fix typo in setViewportMargins() docs
There was a duplicated word in the api documentation.

Fixes: QTBUG-94073
Change-Id: I1344a89aa579be5272a44831daa9451eb8030431
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2021-05-30 23:06:54 +00:00
Giuseppe D'Angelo
4ee4b7a871 PCRE2: upgrade to 10.37
New upstream release.

Change-Id: I3a7e6c3d6706c940c0a279e4b63e1bfd96cc242c
Pick-to: 6.1 5.15
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-05-31 01:06:41 +02:00
Volker Hilsheimer
d36ef40d18 QComboBox: propagate style change on widget to internal container
When changing the style of the combobox, the change will not propagate
to the internal container widget, so the changeEvent handler won't be
called. This is correct (as per QWidget::setStyle documentation).
QComboBoxPrivateContainer asks the combobox style for relevant settings,
such as the frame style, which is then used for sizing and positioning.
If the combobox's and container's settings become inconsistent, then the
combobox popup will not get the correct size and/or position.

Move some of the style-dependent changes into a separate function and
call it when the QComboBox::changeEvent handles the style change so that
both widgets have a consistent set of settings.

Add a test case that verifies that the style is asked for the relevant
setting when the style changes.

Note: QComboBox does a lot of style-dependent setup work in different
places, which is quite messy and complex. Trying to consolidate that
further breaks tests though, so this change is doing the minimum
necessary to fix the reported issue.

Pick-to: 6.1 5.15
Fixes: QTBUG-92488
Change-Id: Ia957d504b2d800add26fc0565be727b5c08a5358
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2021-05-31 01:06:00 +02:00
Volker Hilsheimer
11e88eaa6d QComboBox: add space for scrollbar if needed after showing popup
QComboBox tests if a horizontal scrollbar is needed before sizing and
showing the popup, but QListView only knows whether a scrollbar is needed
only after laying itself out during the initial show and paint event.

So test whether the need has arisen as part of this initial layout, and
then provide the additional space. Resizing the widget after showing it
is not ideal, but in practice makes no visible difference (and it's
either way preferable to not being able to access the item covered by
the scrollbar).

Pick-to: 6.1 5.15
Fixes: QTBUG-93736
Change-Id: I0bf077e18116ce174ae7f9218cb3b0dfa82964e1
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-05-31 01:05:53 +02:00
Assam Boudjelthia
cbd226fffa CI: explicitly use -gpu swiftshader_indirect with Android emulator
Force the emulator to use software acceleration to avoid a crash.

Change-Id: I1e73b8bc6485b0854cf83f5d9faa5d5f872a90df
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-05-31 00:03:05 +03:00
Assam Boudjelthia
cbaff13701 Block flaky rhi and OpenGL tests on Android
Task-number: QTBUG-87429
Change-Id: I5a09a82b5fd27d9a36563e5270703a32c067d4b6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-05-30 23:02:53 +02:00
Robert Löhning
aab3348c48 Avoid possible division by zero
"width / line.length()" didn't crash because it's a qreal but that's
still undefined behavior.

Fixes oss-fuzz issue 32984

Change-Id: Ia9c35b9eb5d86c4ce3c7f030b68e95ae83350c44
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-27 23:46:00 +00:00
Lorn Potter
f677f62943 wasm: fix screen offset logic
Change-Id: Id71dfcba5d0bc1fe660a478db5f4c57e68468b4b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-05-27 21:45:02 +00:00
Mårten Nordheim
ec716dc1fd QNetworkInformation: Move android dependencies and perms to plugin
It was a necessary workaround at the time, but this has since been fixed

Task-number: QTBUG-90812
Change-Id: I8c0d5bf4c61d379736cd07a28c089c55d6befdee
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-05-27 23:45:01 +02:00
Volker Hilsheimer
a3f3af8a8f macOS: don't show invisible separator items
Give QCocoaMenu access to the item's visibility property by adding a
public getter, and respect that state when syncing the separator to the
corresponding QCocoaNSMenuItems.

Pick-to: 6.1 5.15
Fixes: QTBUG-88651
Change-Id: I7e238e5d3be141ec8f4e8f6f3ab22d761094d2d2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-05-27 22:18:32 +02:00
Janne Koskinen
b2e053072d Add explicit default constructor for QEglFSContext
Fixes Integrity compiler issue where it cannot find implicitly defined

Change-Id: I126333dd4b02b9b653b8e1ac5da07679b343c91f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io>
2021-05-27 18:37:15 +03:00
Giuseppe D'Angelo
606d72da17 QFuture: remove incorrect sentence from docs
QFuture shouldn't be passed by value: it's a reference counted
class ("shared future").

Change-Id: I3890062c45f9a6470b278223b88d482f57bf68a0
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2021-05-27 17:18:20 +02:00
Volker Hilsheimer
7f543c6afa Fix qdoc warning after port to QProperty
As of 7b6cef0e65 the signal is a const
member function.

Change-Id: Ia5559904b7a47c9763863c73bb357d3d241307ea
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-05-27 17:18:18 +02:00
Volker Hilsheimer
d7e478475e Fix qdoc warnings
Change-Id: Ie51ccff3272f078e062380033678828a01f03eb8
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-05-27 17:18:18 +02:00
Volker Hilsheimer
5ac479f599 macOS: respect underline attribute in menu item fonts
When we draw menu item text with CoreText instead of QPainter, then we
need to translate QFont::underline() explicitly to an entry in the
attribute dictionary.

Task-number: QTBUG-73990
Pick-to: 6.1 5.15
Change-Id: I7e0c258f7cf80a89b29517fa8122576342654de1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-05-27 16:53:09 +02:00
Andrei Golubev
6ac2b902d1 QList: do some minor cleanups in the internal code
Change-Id: I7e502e4d2fa5af94c20e7da62d1c06597b6b16a7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-27 14:28:18 +02:00
Kai Köhne
fd9c2c8033 Silence warning C4996 (use of deprecated GetDesktopDpi)
Silences warnings

   warning C4996: 'ID2D1Factory::GetDesktopDpi': Deprecated. Use DisplayInformation::LogicalDpi for Windows Store Apps or GetDpiForWindow for desktop apps.

Using GetDpiForWindow sounds like the right approach, but it's not obvious
where to get the window handle from here.

Task-number: QTBUG-94043
Pick-to: 6.1
Change-Id: I2fc005e0c970c8338184f4500b876774ec9d976b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2021-05-27 14:28:18 +02:00
Alexey Edelev
19e789bace Implement propagation of object files to the end-point executable
This proposal collects all the resource objects to the qt-specific
property of the static libraries. This is done to avoid littering
of other static libraries and put resource object files to the
source part of the linker line when linking the end-point
executable.
The way we link object resource libraries is changed back to the
target_link_libraries approach as we may omit using finalizers
with linkers other than ld. Users may enforce finalizers by calling
the qt6_enable_resource_objects_finalizer_mode function if need.

Refactor tests related to the static resources.

Amends ddaa7150d8

Task-number: QTBUG-93002
Change-Id: I74135e291cd82fb54d1b284b4b4a1e002b1fef98
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-27 14:28:17 +02:00
Kai Köhne
029425478a Clarify that QLoggingCategory works independent of compiler build type
Also mention exception for internal categories starting with 'qt.'

Fixes: QTBUG-93852
Change-Id: Iff8657a31074ee70cba25f6acdccb5ba4b1d3b01
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-05-27 14:28:17 +02:00
Alexandru Croitor
a3c430f390 CMake: Revise plugin finalizer mode usage
Only use plugin finalizer mode if qt_finalize_target is called at the
end of the user project (which we can't really check, the user has to
ensure that) or when qt_finalize_target is automatically defer-called
by CMake 3.19+ (which is done by qt_add_executable).

This removes the previous behavior of using the finalizer mode if
qt_import_plugins is called. Instead the old regular mode is used
if the above preconditions are not met.

The removed behavior had ordering issues if qt_import_plugins was called
before target_link_libraries. The dependency walking would be done
before Qt dependencies were added and thus no plugins would be
linked.

Amends 6fcc272ac9

Task-number: QTBUG-80863
Task-number: QTBUG-92933
Task-number: QTBUG-94030
Change-Id: I78702b653a35596f5581c2f4282b2336f0124e60
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-05-27 14:28:17 +02:00
Lorn Potter
a1c8530a91 wasm: fix cmake syntax for emscripten
fix debugging demangler
Emscripten apparently does not like the quotes in the compiler argument

and remove array syntax

Change-Id: I66652f6bdc5872faf540a877ca01bf75dde47bbb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-27 21:16:49 +10:00
Alexey Edelev
edbe0eb335 Use the correct framework name when preparing the framework paths
Amends 425ff34aa1

Task-number: QTBUG-87775
Change-Id: Ic79e77255e1f3aec9748a6770838f9eeeae94d38
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-05-27 10:36:19 +00:00
Eskil Abrahamsen Blomfeldt
a5085d7f6a minor: Clean up areMetricsTooLarge() conditions
This amends e2bdff3555.

The linearAdvance property has some history. First it was
a 16 bit value (allowing for 10.6 fixed point numbers). Then
it was turned into 22 bits to fit the 16 bits of Freetype
integer parts into it (16.6). Then back to 10.6. Then in
b7e4367387 it was turned
back into 16.6 again. But this was accidentally reverted
as part of a bad conflict resolution in
afb326f071.

Since there was no check for it, we would sometimes overflow
the linearAdvance, but only in the rare cases where the
width and height did not also overflow. Specifically this
is the case for whitespace, which always has a width of 0
regardless of the advance.

This change just moves the linearAdvance condition in
together with the other checks to avoid fragmentation, and
also adds this fun story to the commit log.

Pick-to: 6.1 5.15
Change-Id: Iaac09942f4c50d1aced4a160b6eabb11eb8e6373
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2021-05-27 10:13:55 +02:00
Timur Pocheptsov
810e755c18 Fix auto-tests that are fooled by the presence of more than one plugin
It's possible that Qt is built with OpenSSL and some other backend.
The ifdefs generated are not mutually exclusive anymore, as it was
in the past. So tests should rely on the actual backend they have
working at runtime.

In the process of fixing the auto-tests, modernized feature #if-ery and
some associated compilation issues.

Fixes: QTBUG-92875
Change-Id: I2be1b924d506fd36dc4e2c6c9158b5023ff87f32
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-27 06:41:26 +02:00
Timur Pocheptsov
71d242c6d3 QSsl::ImplementedClass - add DtlsCookie
To report QDtlsClientVerifier implementation supported.

Change-Id: I23812396c0c6a9595769d8ddb9cc2f85cc636ecb
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-05-27 06:41:16 +02:00
Assam Boudjelthia
478ed8b71f Android: Add runOnMainAndroidThread() under QNativeInterface
This replaces QtAndroidPrivate::runOnAndroidThread{Sync} calls.
This also now allows passing std::function<> that can return values,
and not only an std::function<void()>.

This adds some tests for this calls as well.

Fixes: QTBUG-90501
Change-Id: I138d2aae64be17347f7ff712d8a86edb49ea8350
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-05-26 23:24:11 +00:00
Allan Sandfeld Jensen
da30e402f3 Add SIMD optimizations for color-transform writes
Add NEON for RGB32 and RGBA64 writeback, and SSE2 for
RGBA64 writeback.

Change-Id: Id9ee803267a78f5bdff5beaa719e7a59c1dbb9fb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-27 00:18:04 +02:00
Allan Sandfeld Jensen
f3e7073f93 Add NEON optimizations to QColorTransform
And avoid some needless shuffling.

Change-Id: I5101eb0582c17f5e3cb6db8e20d315ef38bd1863
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-05-27 00:18:04 +02:00
Giuseppe D'Angelo
1a86bfa672 QNetworkManagerService: do not use a module-wide include
We don't need all of QtDBus + QtCore dragged in.

Change-Id: I99dd6b1a50587d8d520ec5240c5129b406e4f40d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-05-26 22:07:57 +02:00
Alexandru Croitor
76e4b13e7c CMake: Fix finalizers not being run for android executables
Android executables are actually loadable modules, not executables.
Instead of checking for the target type if it's a MODULE, be explicit
and mark the target with a special qt property that we then use to
decide whether the finalizer should run.

Amends c4df673dd9

Change-Id: I5330d80d39488cfda6ebe07e2a1883200a796be8
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-05-26 22:07:56 +02:00
Xiao YaoBing
135dbdb553 Partially modified to use C++11 standard nullptr
Change-Id: Ibfd76357ceb56b347afe7122fc252b866b21cb11
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-27 03:24:40 +08:00
Tor Arne Vestbø
7f4ec4ed88 Blacklist tst_QTcpServer::linkLocal on macOS ARM
Amends d790e9fda9.

Change-Id: If17a9e2f3f9858c0850006f48242248c4b812e27
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-26 21:24:40 +02:00
Alexandru Croitor
6dd1b66517 CMake: Don't apply invalid infixes to INTERFACE libraries
And object libraries.

Setting properties like IMPORT_SUFFIX on them doesn't make sense and
can cause configuration issues.

Amends 1bd408d6f7

Change-Id: Ie91d1fbc7ba130816854d50c5b00ef793e4bad1f
Reviewed-by: Martin Storsjö <martin@martin.st>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-26 20:37:21 +02:00
Allan Sandfeld Jensen
93cd9130d6 Introduce float QImage formats and rendering
Useful for some HDR representations and HDR rendering.

Change-Id: If6e8a661faa3d2afdf17b6ed4d8ff5c5b2aeb30e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-05-26 18:00:01 +02:00
Edward Welbourne
e51831260a Nomenclature change: s/countr/territor/g in locale scripts
Change the nomenclature used in the scripts and the QLocaleXML data
format to use "territory" and "territories" in place of "country" and
"countries". Does not change the generated source files.

Change-Id: I4b208d8d01ad2bfc70d289fa6551f7e0355df5ef
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-05-26 18:00:01 +02:00
Edward Welbourne
21e0ef3ccf Rename util/locale_database/enumdata.py's various *_list to *_map
These variables provide mappings, not lists, so name them non-deceptively.

Change-Id: Idf15e78ad73790bc86dd8b9d4f248d1c4f73993c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2021-05-26 18:00:01 +02:00
Edward Welbourne
181424d9b5 QLocaleXmlWriter.enumData(): move enumdata import to method from caller
The only reason cldr.py imported enumdata was so as to pass what it
imported to writer.enumData(); that method might as well do the import
itself.

Change-Id: Ie77dcd29058f926b8cca4deef35837f30505859f
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2021-05-26 18:00:01 +02:00
Edward Welbourne
451500f8f8 Check for overflow in QDateTime::setMSecsSinceEpoch()
When adding an offset from UTC, arithmetic may overflow.  Likewise
when combining a date and time (that have been offset for UTC).  Also
check the return from epochMSecsToLocalTime(), as it can fail; and pay
attention to the status stored by setDateTime(), to notice when it
hits an overflow. Fixed some tests that only passed because we
neglected these checks. Extended a test to check we detect overflow in
a couple of cases close to the extremes.

Change-Id: I127a670302f94a07bb9b087b1b9c608b7c08785c
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-05-26 18:00:01 +02:00
Edward Welbourne
fc6629b6bb Harmonize zoneMSecsToEpochMSecs() and localMSecsToEpochMSecs()
Now that the latter calls the former in its fall-back, this saves that
call the need to follow up with determining DST and abbreviation. This
also lets refreshZonedDateTime() update its DST guess for timezones as
well as for local time.

Change-Id: I820b65c1d6db78619defe2af5e947cb98ae336f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-26 18:00:01 +02:00