Commit Graph

45562 Commits

Author SHA1 Message Date
Volker Hilsheimer
90210c8d28 Remove dead code from src/widgets
Code that's removed via QT_VERSION(6, 0, 0) check is already no
longer compiled.

Change-Id: I70865f330a6260ac2e9cf2770d599a5b6f7bb7d4
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2020-05-11 11:05:15 +02:00
Marc Mutz
219e7bafa2 QtGui: fix deprecated QChar conversions
Conversions from non-char-types to QChar are going to be deprecated.
Use QChar::fromUcs2(), fromUcs4(), QLatin1Char(), or convert the
constructor argument to char16_t.

Change-Id: Ib45ebd5560aa3a2bc460037ab09773607485c6e2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-05-11 09:02:44 +00:00
Marc Mutz
9e56d28663 QRegularExpression: cast to PCRE2_SPTR16
It seems that PCRE2_UCHAR16 is exactly ushort, even though it's
documented to be uint16_t. There's no requirement for these to be the
same type, nor for the PCRE typedef to continue to point to the same
type, so add explicit casts.

Change-Id: I89f65d29feaada84ea00688976a123364857bc58
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-05-11 11:01:13 +02:00
Allan Sandfeld Jensen
8a0f100e97 Split PixelLayout to separate source file
Change-Id: I0beafa39d92550ea78e78a07b25ce1253cc6668d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-05-11 10:57:05 +02:00
Marc Mutz
2ed048fa8d QString: optimize insert() of a substring
The old code malloc()ed a buffer to hold a copy of the data if a
substring of *this was to be inserted. Instead, use a QVarLengthArray.

Pick-to: 5.15
Change-Id: Ia3b4d7509bff2375ec0da5c890ecff2e9f7f335c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-05-11 10:47:26 +02:00
Giuseppe D'Angelo
1018dba04f Torrent example: fix crash
Yet Another Side Effect of not keeping iterator stability.

Although not idiomatic, the pattern

  while (i != e) {
    auto cur = i++;
    if (cond)
      erase(cur);
  }

was actually correct. Move to the idiomatic erase pattern
instead (it = cont.erase(it)).

The example still has memory problems all over the place on
shutdown. At least now it doesn't crash when running.

Change-Id: I30bd2c4e2b3fa7fe4e28d4426ff3d894b9bae103
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-05-11 10:21:29 +02:00
Shawn Rutledge
30be6c41d5 eglfs: Send proper enter/leave events when multiple screens are in use
Given that there is only one mouse (which might change some day, but
hasn't yet), there can only be one window containing the mouse,
regardless of which screen it's on.  The implementation before was only
able to send enter/leave events when moving from one window to another
on the same screen; but we need the enter/leave events to be sent when
moving between two full-screen windows on two screens as well.

Also send an enter event the first time the mouse moves, to whichever
window that happens to be.  A Wayland compositor that renders its own
cursor will need to know which screen is in use at the beginning.

Pick-to: 5.15
Fixes: QTBUG-83973
Task-number: QTBUG-55161
Task-number: QTBUG-79924
Change-Id: Ie6f36cd33b103955a70bac73c1485bf475c08468
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-05-11 09:06:43 +02:00
Marc Mutz
36e5a9d025 Port QtPrivate::findString() from ushort* to char16_t*
Lots of casts disappear...

Change-Id: I21be426c9e4629657990ed4c896e4fce537aa1f0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-11 08:45:44 +02:00
Marc Mutz
2c1425898d Modernize foldCase() internal functions
Overload uint/ushort versions with new char16_t/char32_t ones, and
[[deprecate]] the old ones. There's too much churn for doing the
replacement in one patch.

Change-Id: Ib1f90a1c46b80aa0fb1ea00ce614af49f49bd712
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-11 08:45:36 +02:00
Marc Mutz
1030d934c4 QXmlStreamSimpleStack: port to qsizetype
Change-Id: Ie4ea7ca83dc1870d1a4a4cfbe4447b5d971b33bf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-11 08:32:49 +02:00
Marc Mutz
0c17dca4f0 QXmlStream: use even more ranged for loops
Write a small range adapter that maps begin() to rbegin() and end() to
rend() of the underlying range, use it to replace indexed reverse
loops with ranged for ones.

Change-Id: I5498a23106b0432ce885e72e5e3912910f50b5c1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-11 07:01:34 +02:00
Marc Mutz
2e298c5f82 Port qt_to_latin1() (and it's variants) from ushort to char16_t
Change-Id: Id341257f0ac1d6fd1d3176fb34fad253d2bddfb9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-11 07:01:30 +02:00
Marc Mutz
00f6258fb6 Adapt qxmlstream.g to older changes to qxmlstream_p.h
Change-Id: I35c0700ed29d756949b95c3a26fdf9f087b5ef1c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 12:56:41 +02:00
Marc Mutz
0beaed7384 QXmlStream: use more ranged for loops
More compact and isolates against decltype(size()) issues.

Had to make QXmlStreamSimpleStack iterable.

Change-Id: Icfa7b2ab09995c7a442fd8a5b2f5d6ce90120822
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 12:49:01 +02:00
Marc Mutz
f490ac6712 QXmlStreamReader: avoid double QHash lookups
Replace

  if (hash.contains(x)) { // lookup #1
     ~~~ hash[x];         // lookup #2

with

  if (auto it = hash.find(x); it != hash.end()) { // lookup
      ~~~ *it;                                    // no lookup

halving the number of QHash lookups. The container is not shared, so
there's no danger of a detach when going directly to the non-const
function.

Change-Id: Ifae409f98e0be972b31a24326ad548723831fda8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 12:48:23 +02:00
Marc Mutz
8ed88d8d14 Port qt_from_latin1() from ushort to char16_t
Change-Id: I054e2f604be7253d3322751d55d03b5bac09aefc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 12:46:45 +02:00
Marc Mutz
c3d2e0e60a Replace uses of QString::fromUtf16(ushort*) with (char16_t*)
Ditto fromUcs4(uint*) with fromUcs4(char32_t*).

The ushort/uint forms will be deprecated.

Change-Id: Ia4ce45ed8679951b24af13109e3e498f51fc3c89
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 12:46:23 +02:00
Marc Mutz
90ad722fb2 QXmlStreamReader: fix a qint64 -> int truncation
QIODevice::read() returns qint64, not int, and nbytesread is qint64,
too.

Pick-to: 5.15
Change-Id: I6d41c5c656336a95bb115b461282e9f247493c25
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 11:32:06 +02:00
Lars Knoll
a4eea312ed Correctly parse non BMP char refs in the sax parser
Update the auto test accordingly, and at the same time remove
all uses of QTextStream (as they aren't required).

Change-Id: I71b7cf6a6b54ea59507f27d5d2d04cc5ae5885fc
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-05-10 11:31:57 +02:00
Lars Knoll
babcabfbc8 Clean up state handling for ICU and iconv based codecs
Get rid of the hack for the FreeFunction and instead add a proper
function pointer to clear the data to the ConverterState struct.

Change-Id: I104aae1a4381c69f1a254713ec76e1aeaa862cdc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-10 11:31:50 +02:00
Andre de la Rocha
a77b19a911 Windows QPA: Fix missing accessible name change events
Accessible name change events were not being relayed through UI Automation.
This caused changes in the state of combo boxes and possibly other quick
controls to be missed by UI Automation clients. This would result, for
instance, in Narrator not reading the state of a combo box when its current
index was changed with the keyboard.

Fixes: QTBUG-70621
Pick-to: 5.15
Change-Id: I16de0ff2bb0fb5227111d5347c25f442e9b0a533
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-05-10 01:33:05 +00:00
Giuseppe D'Angelo
c54279a1ad Explain what the QStringView levels mean
Insofar the information was just in the commit message
(00a8be85d1); add that explanation
to the code itself.

Change-Id: Ice1919c803a31918e8228091b3192728cbbc32f4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-09 23:49:42 +02:00
Marc Mutz
a34fa92c29 QVncClient: fix an int -> QChar conversion
It was masked by all QChar ctors being made explicit, except the char16_t one,
which was left as the only viable choice.

Change-Id: I68da90730de0a7bdcd0825b4557b8534fbda2533
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-05-09 13:41:45 +00:00
Marc Mutz
928d57d8da QChar: add fromUcs{2,4}()
The fromUcs2() named ctor is designed to replace all the non-char
integral-type constructors of QChar which make it very hard to control
the implicit QChar conversions, which have caused a few bugs in Qt
itself. As a classical named contructor, it simply returns QChar.

The fromUcs4() named "ctor", however, needs to expand surrogate pairs,
and thus can't just return QChar. Instead, it returns a small struct
that contains one or two char16_t's, can be iterated over and be
implicitly converted to QStringView.  To avoid bikeshedding the name
(FromUcs4Result, of course :), it's defined inline and thus can't be
named outside the function. This function replaces most uses of
QChar::requiresSurrogates() in QtBase.

[ChangeLog][QtCore][QChar] Added fromUcs2(), fromUcs4().

Change-Id: I803708c14001040f75cb599e33c24a3fb8d2579c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-09 06:26:08 +00:00
Marc Mutz
19e7c0d2b5 QChar/QString: centralize case folding in qchar.cpp
There are (at least) two implementations of the low-level case-folding
algorithm, one of which (for QChar::toLower()) seems to be wrong (it
doesn't deal with special cases which expand to more than one code
point).

The algoithm hidden in QString and entangled with the QString
detaching code makes reusing the code much harder.

At the same time, the dependency of the algorithm on the unicode
tables makes exposing a non-allocating result type in the public API
hard. std::u16string would be an alternative if we can assure that all
implementations use SSO with at least four characters.

So, for the time being, leave this as internal API for use in an
upcoming QStringView::toLower() as well as case-insensitive hashing.

Change-Id: Iabb2611846f6176776aa20e634f44d8464f3305c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-09 06:25:05 +00:00
Marc Mutz
f6b96bc347 QString: fix UB in replace()
Comparing with <, >, <= or >= such pointers as are not pointing into
the same array is UB. A clever compiler could look at the code,
determine that the only valid execution is for it to return true, and
just always take the copy.

While that would be benign, it's not guaranteed that this would be the
outcome (it's UB, after all), and, of course, we don't want to take
the performance hit if we don't need it.

Pick-to: 5.15
Change-Id: I48cda232ff10a3c9fd4babcd7e7103a3aed126e8
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-05-09 08:24:39 +02:00
Marc Mutz
c3b5efa250 QString: fix UB in insert()
Comparing with <, >, <= or >= such pointers as are not pointing into
the same array is UB. A clever compiler could look at the code,
determine that the only valid execution is for it to return true, and
just always take the copy.

While that would be benign, it's not guaranteed that this would be the
outcome (it's UB, after all), and, of course, we don't want to take
the performance hit if we don't need it.

Fix by using std::less, which guarantees a total ordering for all
pointers.

Pick-to: 5.15
Change-Id: If07b9363b2ecd573f259e4fa972b629362061ce5
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-05-09 08:24:31 +02:00
Marc Mutz
3d58a6a0c8 QGraphicsAnchorLayout: port to QHVContainer [4/4]: sweep Orientation -> Qt::Orientation
This part of the patch changes all remaining occurrences of the local
versions of Orientation to Qt::Orientation.

Change-Id: Ic9ec19b8f069f614061f319abd30841e10cdd626
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-05-09 08:24:04 +02:00
Marc Mutz
6cc72479ac QGraphicsAnchorLayout: port to QHVContainer [3/4]: Orientation as alias for Qt::Orientation
There would still be too many renames, so keep the
locally-defined names 'Orientation', 'Horizontal', and
'Vertical' as deprecated forwarders to Qt::Orientation,
Qt::Horizontal and Qt::Vertical, resp.

Follow-up patches will remove these, then, completely.

Change-Id: Ifae926a38086027ad8fe4ad07d1d089c03f9508d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-05-09 00:18:49 +02:00
Volker Hilsheimer
204b6c9908 Fix out-of-bounds access when searching arrays
Reported by Coverity.

All arrays in this code have the size Num... - 1, so accessing the entry
at Num... - 1 is out of bounds. Since we don't dereference the value,
and only use the address of the entry "one past the last" like an end-
iterator, this does not actually access out-of-bounds memory. However,
this code does rely on undefined behavior.

Use pointer arithmetics instead to get the address of the entry "one
past the last", which is well defined behavior and should satisfy
Coverity.

Change-Id: Ie5fbb2da080d6118169f35056763b5d95cfeda62
Fixes: QTBUG-83817
Coverity-Id: 183557
Pick-to: 5.15
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-05-08 21:38:08 +02:00
Marc Mutz
2a11940b2a tst_stringview: remove dead code
wchar_t hasn't been QStringView's storage_type for a very long time
(at least since 5.10). And in Qt 6, we require char16_t support not
only in the compiler, but also in the stdlib, so drop the guards and
the alternative code paths.

Change-Id: I99f28b575f61c16a2497840708beaa4b54a80f57
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-05-08 21:11:17 +02:00
Marc Mutz
807b7f1f33 QChar: finish port to char16_t
Change-Id: If38405da34543f836e674474c05f2d98ed610a23
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 21:07:38 +02:00
Marc Mutz
c34efa071b QTextOdfWriter: store all bulletChar()s as char16_t's
... and return them as QStringView from a file-static function so that
the conversion to QString is centralized in just one place (and we can
think of skipping the QString conversion once QXmlStreamWriter can
write QStringViews and not just QStrings).

Because the Style enum is ... weird (negative values), plaster the
code with static_asserts so that we get to detect breakage when the
enum values change.

Change-Id: I4ca89b6c2601c6a1153e202de966356bb4f51651
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-05-08 17:02:28 +00:00
Marc Mutz
e031b33ad7 QFontDatabase: store all writingSystemSample()s as char16_t string literals
... and return them as QStringView from a file-static function so that
the conversion to QString is centralized in just one place (and we can
think of returning a QStringView in the public API?).

Change-Id: Ie33e2af1b57b8cb34672d245fb9205c68260f440
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 19:02:15 +02:00
Marc Mutz
1baf60d18c QFontDatabase: store Vietnamese writingSystemSample() in UTF-16
The old code stored it in UTF-8 with an encoded BOM.

Using the new QString::op+=(QStringView), we can store
the string, without the BOM, in ten instead of 15 bytes.

Change-Id: Ia1c51da523fcd6298b39bf2ec162a49c7cfdda63
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 19:02:09 +02:00
Timur Pocheptsov
920487bf6b QSslSocket::setSslSonfiguration - set d.configuration properly
We end up with an absurd situation:
QSslConfiguration conf;
//we set CA certs so that on demand loading is disabled:
conf.setCaCertificates({...});
QSslSocket s;
s.setSslConfiguration(conf);
Q_ASSERT(conf == s.sslConfiguration); // this assert fails.

Pick-to: 5.15
Change-Id: I272bed145434082acc6ead95fe3640d222b21131
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-05-08 18:11:03 +02:00
Timur Pocheptsov
f579be96f7 QMenuPrivate::hideMenu - avoid deleting 'q' too early
This function among other things enters a nested event loop twice.
With enough luck processing events may end with posting deferred
delete event for 'q' and then ... executing this event leaving
the whole call tree with a dangling pointer. This is not very
convenient, and we filter out such events to re-post them
a bit later.

Pick-to: 5.15
Fixes: QTBUG-82349
Change-Id: Ic620273b529b89f2bd57e25df1f91c2754940670
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-05-08 18:10:52 +02:00
Timur Pocheptsov
8481a9fc97 QCocoaDrag - avoid using the deprecated API if possible
The -dragImage stopped to work in 10.14 first with change in behavior
documented and the new API (AppKit) proposed/advised. Then after
some update the old behavior was restored and D&D for multiple
URLs was working again without us having to change anything.
In 10.15 it's not working anymore and we have to properly fix
it and switch to the API advised. The new API is non-blocking,
but QCocoaDrag::drag is expected to be blocking so we have to
add a nested event loop to emulate the old behavior. Dragging
image is a bit problematic (the exception is thrown because
number of images (1) and number of items in NSPasteboard
are not equal): creating separate images for different
drag items looks really messy. So ... we use the same image
again and again with the same frame.

Fixes: QTBUG-71939
Change-Id: I02c2a10eab280cf4a55513adaf29c22fff934c01
Pick-to: 5.15
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-05-08 18:10:35 +02:00
Edward Welbourne
7cb4c50e73 Add more QCalendar references to \sa sections of QDate docs
The QCalendar API is, in places, more efficient or expressive than the
QDate facade that accesses it. Make sure those using QDate have a
chance to find it.

Pick-to: 5.15
Change-Id: Iffdddfa1f4884e316a1c9887a8a5053eefa73499
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 17:42:11 +02:00
Marc Mutz
93bc6be21d QStringView: add toNSString() / toCFString()
Use it in QString and QCocoaMenuItem.

As a drive-by, s,OS X,\macos,g.

[ChangeLog][QtCore][QStringView] Added toNSString(), toCFString()
on macOS.

Change-Id: Ib05818015a4be11a0d72d4487fb82c580d27854e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-05-08 14:53:08 +00:00
Marc Mutz
dd4e96df52 tst_qstringview: modernize functions in help namespace
They don't work with std::span, since std::span has neither
const_iterator nor cbegin()/cend().

To fix, perfectly forward the return type with decltype(auto) instead
of mentioning T::const_iterator, and rely on the const-qualfication of
the help::c{r,}{begin,end}() functions' arguments to select the
correct T::{r,}{begin,end}() overload.

Change-Id: I4992d4bd521d2dc0f9ea51ae70cde8286ae543a5
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-05-08 16:53:04 +02:00
Marc Mutz
d67551ff5b tst_qstringapisymmetry: test split() with char16_t seps
Change-Id: I6744291b88d5334764da78375899313ac771294b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-05-08 16:52:59 +02:00
Giuseppe D'Angelo
729f1ab9a0 Merge QStyleOptionTabV4 into QStyleOptionTab
We don't need the subclass any more now that we can break ABI.
Merge it back into the "main" style option class, like already
happened during Qt 4->5.

Change-Id: Iba6d3df5f87b0c96f01746260f0a93951dad0e27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-05-08 16:41:38 +02:00
Edward Welbourne
6e63d65e5a Fix minor errors in ISODate and RFC2822Date formats' documentation
Various format characters are not capitalized in the format string, so
should not be capitalized in the doc that describes them - especially,
the m for minute should not be made to coincide with the M for month.
The H for hours *is* capitalized for ISODate, correctly indicating
that it's on a 24-hour clock, so make that explicit; and correct the
RFC2822Date doc to use HH rather than hh for its hours, likewise.
Reflow to our standard 80-column limit for docs.

Pick-to: 5.15
Change-Id: I357252817d59436de5806f45d40030b873ca3926
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-05-08 09:51:50 +02:00
Edward Welbourne
2491ee98b1 QTest::ignoreMessage(): interpret the message in UTF-8
The message to ignore is given in source code, hence UTF-8; it was
being ingested as local 8-bit, which lead to problems when a debug
message wasn't 7-bit clean and the system's native encoding wasn't
UTF-8. Modified QtTest's selftest to check encoding failure.

Pick-to: 5.15
Change-Id: I898744a450115b6d2ee992f1d3b36d8efaeeff7e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:51:38 +02:00
Edward Welbourne
e325bd68fd Catch overflow in QDateTime::fromSecsSinceEpoch()
It's documented to be undefined if the number of seconds is outside
the allowed range, but it doesn't hurt for that undefined behavior to
happen to be that the result is invalid. Added a simple test.

Change-Id: I20c3f680c7948b3904f213452272133be77e4d62
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:51:24 +02:00
Edward Welbourne
bd5fe6f385 Merge some QDateTime methods marked for merging
New methods added that can take default arguments to make old methods
redundant, now that we can break binary compatibility.

Change-Id: Iface9d91d4636965285a3ad0c5347fcd7ce5398c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:51:10 +02:00
Edward Welbourne
5ba66c5622 Remove all locale-dependence from Q(Date|Time)+
[ChangeLog][Important Behavior Changes][QDateTime] Removed all
locale-dependence from QDate, QTime and QDateTime, including the
Qt::DateFormat members that select the formats of the default and
system locales and the toString(Qt::DateFormat, QCalendar) overload,
which only used its calendar for these formats.  All toString()
methods now use, and all fromString() methods only recognize, the C
locale's names for days and months.  Use QLocale's methods if you need
to take locale into account.

Fixes: QTBUG-80441
Change-Id: I3a8968438741afb00f44262f79659c51e9b06c35
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:50:51 +02:00
Edward Welbourne
48e5a37536 Move a test of QLocale's methods out of tst_QDateTime
It clearly belonged in tst_QDate::toDateTime(), for which it adds a
few more test-case and in which it inspires some further testing.
The new testing of case-insensitivity doesn't work if the format
contains stray non-format characters, so added a new data column to
take care of that.

Pick-to: 5.15
Change-Id: I73619be02091c97024a84cb963c7029e9fd0569a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:50:24 +02:00
Edward Welbourne
1f13a0fbec Condition some date-time tests on feature textdate
They use the Qt::TextDate format, so do depend on the feature.
Rename one in the process; nothing in its test has anything to do with
de_DE locale.

Pick-to: 5.15
Change-Id: I2adae5c46e6009c13b433993ed2c3c761a500bfb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-08 09:50:16 +02:00