Commit Graph

30694 Commits (e71e22beafa7a0a108eb72fbfdfd2a68f167bcfe)

Author SHA1 Message Date
Marc Mutz 76be819345 QEasingCurve: reduce code duplication in setCurveShape()
Instead of creating an explicit QEasingCurve object in each
switched-over case, extract the conversion between the enums
involved into a helper and just call setEasingCurve() with
the result (implicitly converted to QEasingCurve).

Saves 0.5KiB in text size on optimized AMD64 Linux GCC 9.1
builds.

Change-Id: I81b5d7199d9dd99ba3735c910a50e371e0b99838
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-30 13:10:33 +03:00
Marc Mutz bcf6f99237 QEasingCurve: remove a default case label
A default: case label turns off compiler warnings for missing
enumeration values, which we'd like to have, so remove it.

Change-Id: I96247a7fc46e91a29591a907e52841a90df62f10
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-30 13:10:18 +03:00
Marc Mutz 7940bc32a1 QLineEdit: use QMargins internally instead of 4 x int
Replace the four ints xTextMargin with one QMargins member, and the
effectiveXTextMargin() function with effectiveTextMargins(). The
left and right effective margins were always used together, so this
in no case leads to extra work, compared to separate functions.

Change-Id: I46d061919ffac297142213ccb4033caa0288b554
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-07-30 13:05:11 +03:00
Simon Hausmann 31ffc7bf2a Fix removal of QJsonObject properties when assigning undefined
Commit 8010e906d3 accidentally ended up
removing the removal-on-undefined-insertion check by calling insertAt
instead of insert, which had it. This patch moves the check back into
setValueAt.

Change-Id: Ic381e284d3da37e31c4eb29f79dfab9c55c2e3e9
Fixes: QTBUG-77204
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-30 11:08:24 +02:00
hjk 4fa0b41523 uic: Avoid use of Q_UNUSED in the generated code
Instead, use (void)x; directly.

The current use of Q_UNUSED(x); generates warnings for an
empty statement the expansion of Q_UNUSED contains a semicolon
already.

Emitting Q_UNUSED(x) without the extra semicolon would be
an option, too, but as the future of Q_UNUSED's embedded
semicolon seems unclear right now, avoid its use altogether.

The change affects only generated code that's barely ever
read by a human, so the overall utility of "improved readability"
of Q_UNUSED in that place is questionable anyway.

Change-Id: I332527ed7c202f779bd82290517837e3ecf09a08
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2019-07-30 09:34:36 +02:00
Eskil Abrahamsen Blomfeldt 31753adebe Revert "Fontconfig font database: Short-circuit matching by filename"
This reverts commit eea99e1e8f.

The call to FcFreeTypeQuery() takes over 300 ms for
NotoSansCJK-Regular.ttc and friends, so in the current state,
this change cannot be used. I am not sure why these file
in particular takes so long, but it might be because it is
large (around 19MB) or because it is a font collection.

The original fix was intended to be a smaller performance
optimization, but it has added over 2 seconds startup time to
simple applications showing Chinese text, so we revert it
for now and it can be resubmitted later when the problems
have been ironed out.

Task-number: QTBUG-77108
Change-Id: Ibb2ef799573d7effd1595d788939fe33d82cc923
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-07-30 09:10:01 +02:00
Qt Forward Merge Bot 409cc99896 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ibdbd88e11cd03d5ce558e67ad8e9a21436e7ef89
2019-07-30 01:00:19 +02:00
Friedemann Kleint 111df3b5e0 QTestLib: Fix various clang warnings
- Fix else after return/break
- Fix use of int as boolean literal
- Use range-based for in some cases
- Avoid copies by using const-ref
- Remove unnecessary null-check before delete

Task-number: QTBUG-69413
Change-Id: I69f46e6deaa55ef70a8b3a61e6539c79a64aaa23
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-29 20:43:26 +02:00
Marc Mutz afb8ba3fd2 QStringView: clean up storage_type
Now that all supported compilers support char16_t, we don't need the
storage_type == wchar_t hack for MSVC anymore.

Remove it. Adapt docs.

Change-Id: I55df6c8a9fa5a9c7e6f53ba89f3850956b369061
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2019-07-29 18:09:16 +00:00
Marc Mutz 353a6946b1 qstringalgorithms.h: add pure, noexcept, constexpr
... where they were missing.

Change-Id: I58c32e57675b5d5ee500722933ef4a356a679e46
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-29 21:07:17 +03:00
Marc Mutz 4628351c3f QStandardPaths: don't build a QHash just to look up one key
The code parses a file, looking for XDG_*_DIR entries and stores each
one's key and raw value in a QHash. After parsing, it, however, looked
up exactly once, by a key it could have known all along.

So, move the key computation before the opening of the file, and look
for the correct key directly, consciously striving to continue to
find, as the old code implicitly did, the last entry, since man 5
user-dirs.dirs explains:

> The format of user-dirs.dirs is designed to allow direct sourcing of
> this file in shell scripts.

Which means last one wins.

Port to QStringView API of QRegularExpression, too.

Change-Id: Ie92b689b5b9221df918c67b96f2f6a09827e7b1e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
2019-07-29 21:07:08 +03:00
Marc Mutz 1fcd8345ac QPNGImageWriter: fix compilation with libpng 1.4
Amends 83de6d0ce5.

The interface of png_set_iCCP() changed source-incompatibly from 1.4
to 1.5. #ifdef on the version as is done elsewhere in the code. Drop a
no-op C cast.

Also add PNG_iCCP_SUPPORTED around the new code, as that check is used
elsewhere in the code.

Change-Id: Ie203bd9eebea5697f426fa3e95591f86346b2685
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-29 21:05:39 +03:00
Samuel Gaist 036e9d66f5 Fix CC_Slider rendering on macOS
QSlider rendering is currently broken as the context used to render it
is not properly translated. This patch fixes that.

Fixes: QTBUG-72970
Change-Id: I30896ceee1f37f6dfcf01a342d10af3bb279ac8a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-29 20:01:20 +02:00
David Faure 3e7463411e Fix crash when the focus widget gets a focus proxy after the fact
QApplicationPrivate::focus_widget became a dangling pointer
in the following scenario:

A widget first gets focus and later on gets a focus proxy.
QApplicationPrivate::focus_widget was still pointing to the initial widget.
Upon destruction, QWidget::hasFocus() [which follows to the focus proxy
and then compares with focus_widget] was therefore false for both
widgets. So QWidget::clearFocus() didn't call
QApplicationPrivate::setFocusWidget(0) for either of them. As a
result, focus_widget remained set, and became dangling.

In real life, this happened with a QWebEngineView, which the application
gave focus to upon creation. At that time it doesn't have a focus proxy
yet. That happens later, in QWebEngineViewPrivate::widgetChanged.

https://bugs.kde.org/show_bug.cgi?id=381793

Change-Id: Ifee610bb76a2d4d2797b98ece9bffe5fffe3c6a6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-29 17:15:02 +02:00
Qt Forward Merge Bot f53fc76060 Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" 2019-07-29 15:33:37 +02:00
Tor Arne Vestbø f4647b40ca macOS: Respect QSurfaceFormat color space when creating NSWindow
Task-number: QTBUG-47660
Change-Id: I90a2956bfaa52c361a3eba32f0ea19c0eca8c277
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-07-29 15:24:05 +02:00
Yuya Nishihara 7cf9f4e3d3 kms: Try to preserve existing output routing as weston would do
This is basically a backport from weston:
75487c2560

It states that:

 - preserving the existing CRTC -> encoder -> connector routing will
   make the startup faster
 - the existing routing may be set according to some device limitations

Since the QtWayland implementation appears to be based off an old
version of weston (maybe pre-2.0), this patch might look different from
the latest weston implementation. But the idea stays the same.

FWIW, this works around the issue I've seen on Renesas R-Car E3 (aka
Ebisu) board. Without this patch, VGA1+HDMI1 setup would fail because
the device reported possible_crtcs=1 (meaning {crtcs[0]}) for the second
screen "HDMI1", but the crtcs[0] was already taken by the first screen
"VGA1".

  No usable crtc/encoder pair for connector "HDMI1"

With this patch, the crtcs[1] is paired with "VGA1" (as it is the
existing routing), so the crtcs[0] can be allocated for "HDMI1".

Change-Id: Ibd304a8b5efbe4a8aa94b2c5697fe2b399386280
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-07-29 21:46:58 +09:00
Eirik Aavitsland ac885a34ec Revert "Fix comparisons of image with different color spaces"
QImage comparison has always ignored differences in
metadata. Introducing colorspace comparison can break backwards
compatibility, as not all image formats or handlers have colorspace
capability.

This partially reverts commit
733ca2230c.

Fixes: QTBUG-77205
Change-Id: I1d525a9727e84502624cd118f503eec7be306c99
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-07-29 12:45:16 +00:00
Marc Mutz ce99361cc0 QEasingCurve: fix missing copy() override
TCBEase is-a BezierEase, but overrides value(). It only performs additional
checks and then calls the base class' implementation, but it feels wrong,
like a bug waiting to manifest itself, that slicing should occur on cloning
a TCBEase.

Fix by adding the missing reimplmentation.

Change-Id: I2524f51fec1850ff36ed706bc79e9592734d8680
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2019-07-29 12:45:12 +00:00
Marc Mutz 93b845464f QStringView: two fixes for newly-added toWCharArray()
Amends e89fbd8c3a.

- While QString::data() never returns nullptr, QStringView::data()
  may, which makes calling QStringView{}.toWCharArray() UB on Windows
  (since memcpy's 2nd argument must never be nullptr, even if the size
  is zero). Fix by protecting the memcpy call.

- QStringView, by design, does not use out-of-line member functions,
  because calling these forces the QStringView object onto the stack.
  Fix by making inline.

Also use the more efficient qToStringViewIgnoringNull(), as the result
does not depend on QString::isNull() (no characters are written
either way), and add a missing article to the function's docs.

Change-Id: I5d6b31361522812b0db8303b93c43d4b9ed11933
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-29 12:45:08 +00:00
Andre de la Rocha c8bb8cb761 Windows QPA: Fix detection of the Surface Pen eraser button
The Surface Pen eraser button generates Meta+F18/19/20 keystrokes, but
when it is not touching the screen the Fn WM_KEYDOWN message is eaten
and only a Fn WM_KEYUP message with the previous state as "not pressed"
is generated, which would be ignored. With this patch we detect this
case and synthesize the expected key events to allow the button to be
used in applications.

Fixes: QTBUG-77153
Change-Id: I075f5cbb903cb36c9ec241ee1bb31d436b725e3a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-07-29 12:38:05 +02:00
Oliver Wolff 56b1cb0b04 Move processOpenModeFlags out of QFSFileEngine
The same logic is needed for QWinRTFileEngine. To be able to reuse the
code, it was moved out of the class.

Task-number: QTBUG-77095
Change-Id: If52b2fc8a0f3056d32fc693775565a1c3803b7d4
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-29 12:23:07 +02:00
Oliver Wolff 3fbb6a9572 QWinRTFileEngine: Handle QIODevice::Truncate when opening files
Fixes: QTBUG-77095
Change-Id: I45b38fab779518c49b22077c493d8640572d40d9
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-07-29 12:22:55 +02:00
Qt Forward Merge Bot 154155f588 Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/corelib/io/qresource.cpp

Change-Id: I54917f72444a621bd08aeaa15f5d17415993144d
2019-07-29 11:56:00 +02:00
Marc Mutz adab531771 Port from QStringViewLiteral to u""
Now that all our supported compilers know char16_t, we no longer need
QStringViewLiteral, whose only purpose in life was to turn u"" into
L"" for MSVC < 2015.

Change-Id: I25a094fe7992d9d5dbeb4a524d9e99e043dcb8ce
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-29 11:17:28 +03:00
Marc Mutz eb39185acb QGraphicsWidget: replace manual memory management with unique_ptr
Change-Id: Ib63812cf1e63e33dff5016d37a37f18bf9aa6ee0
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2019-07-29 10:17:25 +02:00
Oliver Wolff 7138d6fd6b QWinRTFileEngine: Implement setSize
Fixes: QTBUG-77132
Change-Id: Ic0410297a2215f1b7b656966cbe84b925706532f
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-07-29 09:13:38 +02:00
Lorn Potter 570fb55a33 wasm: fix wide character data download
Need to pass correct buffer size

Change-Id: I19cb65114f49decc225cd807d59f1f08ad6b70c9
Fixes: QTBUG-76212
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-29 09:25:48 +10:00
Marc Mutz 186bdec01a Standardize on unique_ptr to hold QAbstractFileEngine
This will make it possible to return it from functions in an owner,
as exemplified in the QFileInfoPrivate ctor, unlike QScopedPointer,
which lacks move special member functions.

Change-Id: I179ffa4f656e1b83c23e0f67d1542834460ff382
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-28 12:16:22 +00:00
Marc Mutz 80d7ba4c49 QGradientCache: fix use of deprecated QHash::iterator::operator+
Use std::next, which will transparently loop over ++it instead of
calling op+, whenever the time has come to do so.

Change-Id: Icee38bd96894488cf53c1596cd611c61cc68ace8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-28 12:21:55 +03:00
Qt Forward Merge Bot f9b8c544e6 Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: Ic6cfe08dbda1dc92b969e67063f805df63ba0fcf
2019-07-27 01:00:37 +02:00
Edward Welbourne 15fd596fdd Fix typo: s/QLocal/QLocale/
This amends commit 1d8c9978fa in which I
perpetrated this typo.

Change-Id: Iccfc14aff7c4f3976b92919c8e8dc4b7906642ae
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-07-26 18:34:24 +02:00
Volker Hilsheimer e24a4976be QHostInfo: Always post results through the event loop to the receiver
Lookups performed via QHostInfoRunnable must not synchronously call
the user-code's receiver objects, as that would execute user-code in
the wrong thread. Instead, post a metacall event through the event
loop of the receiver object, or the thread that initiated the lookup.

This was done correctly for the trivial cases of empty host name or
cached results, so the code generally existed. By moving it from a
global function into a member function of QHostInfoResult, we can
simply access the required data to construct and post the event.

As we process that posted event, we need to check that the context
object (which is already guarded via QPointer) is still alive, if
we had one in the first place. If we had one, and it's deleted, then
abort.

[ChangeLog][QtNetwork][QHostInfo] Functors used in the lookupHost
overloads are now called correctly in the thread of the context object.
When used without context object, the thread that initiates the lookup
will run the functor, and is required to run an event loop.

Change-Id: I9b38d4f9a23cfc4d9e07bc72de2d2cefe5d0d033
Fixes: QTBUG-76276
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-26 17:59:47 +02:00
Tor Arne Vestbø e6498362fd macOS: Respect color space set on NSWindow when flushing backingstore
By default Qt tries to avoid potentially costly color matching by
not assigning an sRGB color space to our backingstore, even if
that's what we in practice fill it with.

We used to do this by assigning the display's color space, which
effectively opts out of color matching, similar to the old behavior
of the device RGB color space (which nowadays implies sRGB).

By picking up the color space from the NSWindow instead, we allow
the user to override the color space to trigger color matching,
for example by explicitly setting it to NSColorSpace.sRGBColorSpace.

NSWindow will fall back to the screen's color space if the window
doesn't have one set.

Task-number: QTBUG-47660
Change-Id: Iac8177e85e86fe9044a41eb2c93fbf26bb83c248
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-07-26 15:33:27 +02:00
Timur Pocheptsov 5b3c09e35f QMacStyle - another slider fix
As a follow-up to fixed resize handling: the trick Gabriel wanted
to use to enforce a specific look on a slider's bar, never actually
worked due to misplaced statement which essentially is cancelling
the 'magic' before the bar is drawn. Now it's fixed: bar is centered
(between the rows of tickmarks above and below) + it's had a nice
blue filling back!

Change-Id: I3021c2b86e4c25981eeee015e32baa24ccebc3bd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-26 15:12:17 +02:00
Dominik Holland a2fa624c79 Revert "eglfs: Add vsync support when using NVIDIA eglstreams"
This reverts commit df2b76046d.

The patches causes high cpu load and it looks like vsync is done
by newer NVIDIA drivers out of the box without such a implementation.

Change-Id: I41c9cfcf1bbdf7da9b764394e4442768084e9a35
Fixes: QTBUG-74866
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-07-26 11:33:38 +02:00
BogDan Vatra 698faf7b6d Android: Fix SSL 1.1 support on API-21
OpenSSL 1.1.x libs must be suffixed otherwise it will use the system ones which on API-21 are OpenSSL 1.0 not 1.1

Fixes: QTBUG-76884
Change-Id: I7d4052be68cf7dc65f74a48da8e1e37182056a5e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-26 12:20:15 +03:00
Marc Mutz 6bc7309135 QResource: fix nullptr-check gone tautological
Amends 136c5b9338.

Before that change, each of the three members was a separate
Q_GLOBAL_STATIC, so checking resourceList() for nullptr was the
correct thing to do to find out whether the static was already
destroyed.

After the change, the resourceList() function will never return
nullptr. Either resourceGlobalData.isDestroyed(), in which case
dereferencing it asserts, or it isn't, in which case resourceList()
returns a valid pointer.

An explicit isDestroyed() check was added to the unregister function,
but the register one was also checking resourceList() for nullptr,
and this was left unprotected.

Add the check and remove the now-tautological checks for nullptr
resourceList().

Change-Id: I41fe66939ce858a77802b8af04c1de6e4fafe048
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-26 12:18:47 +03:00
Edward Welbourne fc2ed2361c Tidy up some messy code in QLocale
It was using if/else with extraneous braces, where simple ternary operators will do.
It was doing a StringView content check clumsily when mid() and startsWith() suffice.

Change-Id: I693f29ce5b425d53469d2c756fe27459f36470e9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2019-07-26 11:04:58 +02:00
Liang Qi bf08e0bbb2 Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/network/access/qhttpthreaddelegate.cpp

Change-Id: Id47b977587e2d713c16ac17e63c5ec80c2f05ee9
2019-07-26 10:13:06 +02:00
Edward Welbourne 7303218e42 Split all the over-long lines in qlocale.cpp
There were many. Reflowed some documentation to 80 columns, split all
code lines that exceeded 100 columns. Revised the splitting in a few
cases that were inelegant or conflicted with our coding style. Added
braces to some bodies of split control lines.

Change-Id: I56eb9632f6399f0db1293477966f7d553f196a5b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-07-25 11:14:23 +02:00
Timur Pocheptsov 0ce3f7d62b QMacStyle: workaround NSSliderCell's cached/stale geometry
It's a bit cheesy solution, but works as I've noticed first on
QSlider's with a ticks direction 'both'. Works because we were
already using numberOfTickMarks property to trigger a special
behavior for HIG non-compliant widgets. Works for our case too
- we trigger a geometry update.

Fixes: QTBUG-76811
Change-Id: I2cbf00d42d98e78519b281d138a2f74227ef5449
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-25 10:15:41 +02:00
Michael Brasser 65cdd0f366 Enable shader cache for ES2 when GL_OES_get_program_binary is present
Change-Id: I4fb71471a7dd22441def1eb837857d245c3e3c5a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-07-25 01:49:48 -05:00
Marc Mutz c13bb2a66a QObject: replace QScopedPointer with std::unique_ptr in the implementation
Use the standard tool instead of self-made stuff that cannot decide whether
it wants to be a scoped pointer (why take()?) or a movable one (why no move
special member functions?).

Take advantage of C++11 local structs for pulling the custom deleter into
the scope where its only user is located, too.

Change-Id: I7e097a59edef9adc8455504ae94b8df0f8b9e5d2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-24 18:06:30 +02:00
Marc Mutz fd42589b14 Extend QString::arg(QString, ..., QString) to more than 9 arguments
Now that we have QStringView::arg(), we can use it to implement a
similarly flexible QString::arg(). It's not as straight-forward as in
QStringView, though: QString has existing arg() overloads that all
become worse matches with the introduction of the new,
perfectly-forwarding overload.

So in order to allow calling of the other arg() functions, first
constrain the new arg() function to arguments that are convertible to
QString, QStringView, or QLatin1String, and then delegate to the
QStringView version. To stay compatible with the previous overloads,
which accepted anything that implicitly converts to QString (in
particular, QStringBuilder expressions), add a new overload of
qStringLikeToView, taking const QString &. This benefits the existing
QStringView and QLatin1View versions, too.

[ChangeLog][QtCore][QString] QString::arg(QString, ..., QString) can
now be called with more than nine arguments, as well as with
QStringViews.

Change-Id: I1e717a1bc696346808bcae45dc47762a492c8714
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-24 17:31:25 +02:00
Timur Pocheptsov e4c1feae5c Implement 'preconnect-https' and 'preconnect-http' for H2
QNetworkAccessManager::connectToHostEncrypted()/connectToHost()
creates 'fake' requests with pseudo-schemes 'preconnect-https'/
'preconnect-http'. QHttp2ProtocolHandler should handle this
requests in a special way - reporting them immediately as
finished (so that QNAM emits finished as it does in case of
HTTP/1.1) and not trying to send anything.
We also have to properly cache the connection - 'https' or
'http' scheme is too generic - it allows (unfortunately)
mixing H2/HTTP/1.1 in a single connection in case an attribute
was missing on a request, which is wrong.
h2c is more complicated, since it needs a real request
to negotiate the protocol switch to H2, with the current
QNetworkHttpConnection(Channel)'s design it's not possible
without large changes (aka regressions and new bugs introduced).

Auto-test extended.

Fixes: QTBUG-77082
Change-Id: I03467673a620c89784c2d36521020dc9d08aced7
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-24 16:03:02 +02:00
Alexandru Croitor f54881f73a Fix exporting of Core tools
It should happen after qmake is built, to make sure that the target is
made global, otherwise when cross-building qtbase in another build tree,
the configuration phase will fail due to not finding qmake.

qmake was accidentally exported before if you configured qtbase twice,
because the tool was kept around in a cache variable, the second
configuration actually recreated the CoreToolsConfig.cmake file to
contain qmake as well.

Change-Id: I6941e83f7d6bd03c56de120fba1d18e50c4af0e4
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-07-24 09:01:24 +00:00
Oliver Wolff 589d96b9b0 winrt: Remove QWinrtScreen::pixelDensity so that the default of 1.0 is used
Winrt does device independent scaling by default so that overwriting
pixelDensity for QWinrtScreen will break the use case of setting
Qt::AA_EnableHighDpiScaling. That mode is basically always active on
winrt.

Task-number: QTBUG-76363
Change-Id: Ib522201850d17757be4a80aa819c3f1245ca7147
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2019-07-24 08:49:09 +02:00
Allan Sandfeld Jensen 83de6d0ce5 Add support for saving colorspace to PNGs
Also fixes interaction with QImageReader gamma correction

Change-Id: I108f253697f7ff60be6940bca17faa9f9ceb577b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-23 23:37:45 +02:00
Allan Sandfeld Jensen 733ca2230c Fix comparisons of image with different color spaces
Take color space into account when comparing images, and fix gamma
comparison that was trying to be too accurate.

Change-Id: I3674653abb21b66aaacb557addc4afb4ee75cfdd
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-23 23:37:37 +02:00
Sona Kurazyan 9c2f18d357 Remove usages of deprecated QApplication::keypadNavigationEnabled
Added QApplicationPrivate::keypadNavigationEnabled() as a
replacement of deprecated QApplication::keypadNavigationEnabled(),
for the internal usage.

Task-number: QTBUG-76491
Change-Id: I75f4c628b72d86b5e428e7e285a786d23abbf3f2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-23 20:48:33 +02:00
Allan Sandfeld Jensen 181e96cae2 Remove public d_func from QColorSpace
Replaced with getter in private.

Change-Id: I968eb45052a80b45750213cf6a0c08b5973dfc4d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-23 19:07:56 +02:00
Shawn Rutledge aa4470943d Procrastinate QWheelEvent deprecations until 5.15
It turns out that Qt3D has uses of x() and y() in a header, which is
an error rather than just a warning.  So we need more time to do
a qt5.git submodule update, then fix Qt3D. Amends
7d29807296

Change-Id: Ibead628e7094316bb17d5924f6c6f75dbda5826b
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-23 14:43:35 +00:00
Leander Beernaert 42589df6b9 Fix define value for QtQui
A define was placed in the wrong section.

Change-Id: Ibaf16fc45d51d99f7581bc98d6df334972b04278
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-07-23 11:32:30 +00:00
Alexandru Croitor e86509016c Fix mapping of Apple platforms in pro2cmake.py
"mac" scope in qmake actually means all mac platforms,
just like "darwin", aka macOS, iOS, watchOS, etc.

Regenerate corelib, gui and testlib after this modification.
This is a requirement for the iOS port.

Change-Id: I029c7e907d13f6ec31816a08602a5930f9ac16a7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Qt CMake Build Bot
2019-07-23 10:31:15 +00:00
Lorn Potter 547f216efd wasm: fix international dead keys
Emscripten has changed the key code to include the string 'Digit'
on numerals. We use this to detect and translate any Dead keys that
may be pressed.

Fixes: QTBUG-77041
Change-Id: I054e98a6cf66390b1154f25fe385e5b12840851f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-23 17:40:10 +10:00
Alexandru Croitor cd408af9bc Add some missing CLASS_NAME values to plugins
This substantially decreases the number of warnings when doing
a Qt static build with examples.

This is a quickfix modifying the relevant files directly. A proper
fix will follow that regenerates the whole files.

Change-Id: I2a3cc2c4ea02b3412beb96f7b4be9d43365a460d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Qt CMake Build Bot
2019-07-22 18:48:28 +00:00
Simon Hausmann 9f40dddaaa Minor cleanup
Remove unnecessary condition. We're already inside a FEATURE_vulkan
block.

Change-Id: I3a4d2db9ad830b6a0a0b2c5895ab8b2060713370
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-07-22 13:01:39 +00:00
Shawn Rutledge 86f91bf0f7 Make the warning in QBackingStore::endPaint() a little more helpful
Amends 2aa9908e24

Change-Id: I2883ca27b06b2b414b4991b2dab3f84100b4c853
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-07-22 13:09:37 +02:00
Liang Qi 46cb35fccc Merge "Merge remote-tracking branch 'origin/5.13' into dev" 2019-07-22 12:34:37 +02:00
Simon Hausmann fecefdd369 Fix mapping of features to private features
When a feature generates a private feature, we should not just repeat
the condition but also make it depend on the original feature. In qmake
features had different outputs, while we have a 1:1 mapping. For example
the developer_build feature had "private_tests" as an output feature.
There's no condition attached to the feature and auto-detect is off, so
we'd generate

    qt_feature("developer_build" AUTODETECT OFF)
    qt_feature("private_tests" AUTODETECT OFF)

and that's wrong, because when the user enables the visible feature
(developer_build) we want it to propagate to the private_tests feature.

Change-Id: Id8408864802fa1e1ed9e67a5f47d1d2fde38d321
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-07-22 08:29:33 +00:00
Laszlo Agocs f4e0dda205 rhi: gl: Fix feature version check logic
It was somewhat incorrect in a few places.

Some of these should be moved to QOpenGLFunctions/Extensions later.

Change-Id: Ibc7a6409f16ddf1ad71230671dcad558dac1b86f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-07-22 07:12:43 +02:00
Liang Qi 261a87f956 Merge remote-tracking branch 'origin/5.13' into dev
Conflicts:
	qmake/generators/makefile.cpp

Change-Id: Ib3715e626f2fd32804c75c16ea9aa06a1216e76d
2019-07-22 06:50:42 +02:00
Mat Sutcliffe 0652bdcf5e QJsonObject: add QLatin1String overloads of non-const methods
Also optimized the existing QL1S overload of non-const operator[](), and
applied Extract Method refactoring to the other existing QL1S overloads.

[ChangeLog][QtCore][QJsonObject] Added insert(), remove(), and take()
overloads taking QLatin1String.

Change-Id: I5e737cf2d7d9ffb325d6981db1e4a6a9f093657b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
2019-07-20 12:04:48 +01:00
Mat Sutcliffe 7f8e3aab2d JSON: add some QStringView overloads
[ChangeLog][QtCore][JSON] Added overloads of functions taking key
strings as QStringView; in QJsonObject, QJsonValue and QJsonDocument.

Change-Id: I78b40aba8200003acfae257ff06f5f15737005e7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
2019-07-20 12:04:31 +01:00
Mat Sutcliffe a4e9fa03ca QJsonObject: minor refactoring
Applied DRY principle.

Change-Id: Ic3035552c6174167b4fe19fd4c825500dff16ded
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-07-20 12:04:14 +01:00
Mat Sutcliffe 8010e906d3 Optimize non-const overload of QJsonObject::operator[]
Refactored parts of insert() into a new private method insertAt(), which
can also be called by operator[]() to avoid a redundant key lookup.

This is in preparation for overloading QJsonObject's non-const methods
on QLatin1String.

As a bonus, this also avoids a redundant key lookup in
QJsonValueRef::operator=().

Change-Id: Ic481981d838e50bc55fb8e7844536749781899ce
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-07-20 12:03:32 +01:00
Tor Arne Vestbø 857e4881c6 macOS: Properly unpolish font and palette
Explicitly setting the application font and palette will actually
persist the current state of the application font and palette to
the widget, and it will stop reacting to system style changes.

Change-Id: Ib856fe86cd3edb618b7ee5819d6c6c892c61fd1d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-20 12:03:29 +02:00
Qt Forward Merge Bot 124b5b8108 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ic34021fbb87d689ee23a5d1b3f50617ada9ec9b9
2019-07-20 01:00:13 +02:00
Marc Mutz ce86c3373e QHostInfo: un-QObject-ify QHostInfoLookupManager
QObjects are not even reentrant, but this class must be thread-safe,
so it's always ... icky ... to have to analyze a "thread-safe
QObject", because for all intents and purposes, that's an oxymoron.

The QObject-ness isn't even used, except for defining a private slot,
connected to QCoreApplication::destroyed(). That slot just calls
waitForDone() on QThreadPool, which is a QObject itself, so use it
as the context object for the signal-slot connection, using a lambda
as slot.

So, strip the class of it's base class, convert the private slot to a
lambda and connect to that. Finally, remove the moveToThread() call,
because this new class can be destroyed from any thread, not just the
main one.

Change-Id: I0e33983aa7afd0ad621ece4afd10d9e4adad38c1
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-19 22:16:04 +02:00
Thiago Macieira 65f9646583 Fix QCborStreamReader not flushing QIODevices due to internal buffering
When successfully finishing a parse, it's reasonable to expect that the
QIODevice was advanced to the end of the input data.

[ChangeLog][QtCore][QCborStreamReader] Fixed a bug that caused the
QIODevice that the data was being read from not to show the entire CBOR
message as consumed. This allows the user to consume data that may
follow the CBOR payload.

Fixes: QTBUG-77076
Change-Id: I1024ee42da0c4323953afffd15b23f5d8fcc6f50
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-07-19 12:31:42 -07:00
Marc Mutz 315ac36e5d QFile: hold engine by unique_ptr
Unfortunately, we can't, yet, change QAbstractFileEngine::create() to
return a unique_ptr. But we should do it in Qt 6.

Change-Id: If18ff766bce73ecd4143274ac9f9a5a7b9d5912c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-19 17:08:45 +02:00
Marc Mutz 2851f6eae9 QHostInfo: remove unused QAbstractHostInfoLookupManager
If it was used in the past, it no longer is, and can't be, because
it's not exported.

Change-Id: Ifb9c353e756add5b57bf0c5706c075bb2eb41d83
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-19 16:44:38 +02:00
Marc Mutz cab920d52c QSharedNetworkSessionManager: prune expired QNetworkSessions
Equality for QNetworkConfiguration is defined by identity of the
Private object, so even if there are QNCs with the same properties,
they will not compare equal. This probably happens when a user roams
through different WLANs (e.g. from work via public transport to home
and then back), and each time the home WLAN pops up, it will beget a
new QNetworkConfiguration, not comparing equal to the previous one.

So, over time, we might collect a sizeable amount of
QNetworkConfiguration objects just sitting in the cache without ever
being able to actually use an associated network session, because they
all have long since expired.

To fix, prune expired network sessions, and thus their associated
QNetworkConfigurations, from the cache. To not run every time, prune
only when this size of the cache is larger than 16 (arbitrary number).

Change-Id: I11a636f45ccf67420f84b1c79a4453a144de7c5c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-19 16:36:26 +02:00
Allan Sandfeld Jensen 34e457e873 Parse PNG cHRM chunks
Used for setting primaries without a full ICC profile.

Change-Id: I6dd8e62ca15bf1f86e7bbc01aaf8e0bd85803071
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-19 16:29:26 +02:00
Tasuku Suzuki f0f46ade9e Fix SOURCES duplication in tools/bootstrap on macOS
Three *_unix.cpp are added twice for unix and for mac

Makefile:14766: warning: overriding commands for target `.obj/
qfilesystemengine_unix.o'
Makefile:14037: warning: ignoring old commands for target `.obj/
qfilesystemengine_unix.o'
Makefile:14913: warning: overriding commands for target `.obj/
qfilesystemiterator_unix.o'
Makefile:14184: warning: ignoring old commands for target `.obj/
qfilesystemiterator_unix.o'
Makefile:15071: warning: overriding commands for target `.obj/
qfsfileengine_unix.o'
Makefile:14342: warning: ignoring old commands for target `.obj/
qfsfileengine_unix.o'

Change-Id: Ia5f9d2873f738081c2d1e763efbdfc64209aaf7d
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-07-19 23:18:53 +09:00
Thiago Macieira 89e0c2854a Fix QStorageInfo inability to parse really long mountinfo lines
Docker creates really long lines due to the multiple levels of overlays
in the overlayfs. Our limit of 1024 bytes was too short.

[ChangeLog][QtCore][QStorageInfo] Fixed a bug that caused QStorageInfo
to be unable to report all filesystems if the options to mounted
filesystems were too long (over 900 characters, roughly), such as those
found in Docker overlay mounts.

Fixes: QTBUG-77059
Change-Id: I6aed4df6a12e43c3ac8efffd15b1ba4231e60b4a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-19 05:18:23 -07:00
Tor Arne Vestbø c5ab86976b macOS: Modernize and clarify transient parent window level inheritance
Task-number: QTBUG-71480
Change-Id: Ia026427844a674f6b36804571a897dc6f16364fa
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-19 11:02:11 +00:00
Allan Sandfeld Jensen 5c351da046 Protect against integer overflow in painting transformed images
Makes it safe to sample pixel coordinates above 32767.

Fixes: QTBUG-76829
Change-Id: I5965afef1bd65106fcfc130dd37572309eacbe42
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-07-19 11:55:50 +02:00
Tor Arne Vestbø af683471bd macOS: Add QCocoaWindowManager for dealing with window levels
Moves and improves the logic for lowering splash screens to a dedicated
window manager, which will learn more tricks in patches to come.

Change-Id: I8b8fd1dd78fdaf6f106a59c84d2a59254f3539c3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-19 10:56:23 +02:00
Qt Forward Merge Bot 8f0790dd90 Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: I999ba23a27cd897017d15c6ffe41ea8cd008ffb9
2019-07-19 01:00:41 +02:00
Eirik Aavitsland 82aabafada Fix loading of image files with wrong, but known, file name extension
If QImageReader recognized the suffix of a file, it would by default
not check if the file contents matched the claimed format. Hence, a
valid but misnamed image file would fail to load.
Fix by adding contents check for suffix-recognized files.

[ChangeLog][QtGui][Image] Loading of image files having a file name
suffix for a different image file type has been fixed. QImageReader
will now ask the suffix format handler to confirm the file contents
(canRead()), and fall back to normal file content recognition on
failure. This implies a slight behavior change in
QImageReader::loopCount(), ::imageCount() and ::nextImageDelay(): For
an unreadable file with a recognized suffix, they would earlier return
0, while they now will return -1, i.e. error as per the documentation.

Fixes: QTBUG-42540
Fixes: QTBUG-68787
Change-Id: I205e83f29ed7190cbcae95dab960232544d012f6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-07-18 16:05:57 +02:00
Tor Arne Vestbø 92563a2453 macOS: Allow overriding NSKeyValueObservingOptions for QMacKeyValueObserver
Change-Id: I6dc0f7c542ccfb768c1cd8688168c415e2c8a087
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-18 16:00:29 +02:00
Volker Hilsheimer de775f2e62 macOS: activate correct object when using multiple QSystemTrayIcons
Since we need to set the delegate on the defaultUserNotificationCenter,
which is a gobal object, we have to update the delegate when we show
the message. Otherwise, the last delegate created and set will receive
the notification, and the last QSystemTrayIcon created will emit the
activated signal.

Before clearing the delegate upon destruction, make sure that it's
the right item first.

Also updating coding style in the respective parts of the code, and
plugging a memory leak.

Change-Id: Ife62ae0776a5a610a6fd735b2959b807c3a410c7
Fixes: QTBUG-77003
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-07-18 15:26:49 +02:00
Eirik Aavitsland 7f948d9eff Disable experimental xcb native painting config option by default
Saves 13% on the binary size.

Change-Id: I3be0957b80eec5d3c8b75b4d3f1784e4bd6b5e2a
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-07-18 13:44:48 +02:00
Marc Mutz eaceabe9ac QHostInfo: port from recursive to non-recursive mutex
It turns out that the only reason a recursive mutex is used was
because work() was locking it. But work() was only ever called from
functions that already had locked the mutex themselves, and kept it
locked across the call to work(). Clearly mark work() as expecting to
be called with the mutex held (by renaming the function to
rescheduleWithMutexHeld(), then drop the mutex locking from it.

After this change, a non-recursive mutex suffices, so save the memory
allocation and extra complexity involved with recursive mutexes.

Looking at the non-QT_CONFIG(thread) code in rescheduleWithMutexHeld(),
one might be tempted to expect a recursive mutex, since that code
calls QHostInfoRunnable::run() directly, which, in turn, recurses into
QHostInfoLookupManager whence control came, under mutex lock. But in
non-QT_CONFIG(thread) builds, QMutex is but an empty shell, all of its
operations are no-ops, so no possibility for deadlock, either.

Change-Id: Ic01d90c2ed3995b66ccf946d146fdaa6f9af3d8b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-18 11:38:02 +00:00
Marc Mutz a7de860cfd QMovie: move-enable QFrameInfo
All users of the QPixmap ctor can pass rvalues, so take by rvalue-ref
and move into place. Adapt callers to actually pass rvalues.

Change-Id: Iacff2ed893ceaa1665b270ce466ffdc21ba800f1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-07-18 12:06:46 +02:00
Marc Mutz 8abef02777 QHostInfo: add nothrow move constructor
QHostInfo isn't implicitly shared. The more important to optimize away
copies by providing a move constructor.

Port from QScopedPointer to Q_DECLARE_PRIVATE, as otherwise the move
ctor can't be inline, and we don't implement move ctors out-of-line in
Qt.

[ChangeLog][QtNetwork][QHostInfo] Added move contructor.

Change-Id: I6b63a04e36f63e299205830fdc590ff7e2af338b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-18 12:05:28 +02:00
Marc Mutz c187d58244 QtNetwork: ssl: port from QMutex::Recursive to QRecursiveMutex
Change-Id: I78913fee6720f6ad9b196824b35de189567340be
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-18 12:00:58 +02:00
Leander Beernaert 3212f1b866 Add special case handling for corelib mimetypes resources
We have to treat the resources from mimetypes in corelibs specially
as they are reused for two test cases. Since we no longer use the qrc
files, we have wrapped the relevant code in a function that can be
called for every target that depends on it.

This change also corrects formatting for the generate CMake code
regarding resource commands.

Change-Id: I50a05c81151d75aefc9ca165f5ffeb9f5cd77162
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-07-18 08:05:58 +00:00
Thiago Macieira 69ef6e8212 QStandardPaths: update docs to what $HOME is on iOS
It's not <APPROOT> (any more, or was ever).

Fixes: QTBUG-76911
Change-Id: I6aed4df6a12e43c3ac8efffd15aed22128862c23
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-07-17 22:41:47 -03:00
Qt Forward Merge Bot 7576250b1c Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I685000c4f33fb3707b2102fae0b58092107dc8f0
2019-07-18 01:00:08 +02:00
Volker Hilsheimer 3966b571ff QDir: strip Windows' long-path markers when converting from native
Applications might receive paths with Windows' '\\?\' markers, which
indicates a long path to Win32 APIs, when the application is opened by
explorer via file association. Qt not ignoring those markers will fail
to open such files.

By stripping the marker in QDir::fromNativeSeparators, QFile, QFileInfo
etc automatically are able to handle such paths. QDir::cleanPath is
also documented to normalize separators, so it needs to be done there
as well.

[ChangeLog][QtCore][QDir] Remove Windows specific long path markers
when handling file paths with native separators.

Change-Id: I526a890614edee8c85b39fc12c98e7ddb6e0d793
Fixes: QTBUG-75117
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-07-17 20:07:15 +02:00
Marc Mutz a7d7f71550 QWasmEventTranslator: return Key_unknown, not 0x00, when a key isn't found
This matches what translateDeadKey() returns for unhandled keys, and
processKeyboard() checks for when replacing qtKey with the result of
translateDeadKey().

Change-Id: I1500576b7b31047a7a35633a15cd6975b77d842d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-07-17 17:21:57 +00:00
Edward Welbourne 1d8c9978fa QDateTime docs: don't encourage use of deprecated textdate functions
The textdate API methods are deprecated in favor of QLocale; so
suggest use of QLocale in place of them.  Don't credit the deprecated
methods as being used where they aren't.

Change-Id: I0abcb1f69729760ae1b86cb8088e4158c0ad6010
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qbc.io>
2019-07-17 14:25:13 +02:00
Qt Forward Merge Bot eb9c5fd4f9 Merge "Merge remote-tracking branch 'origin/5.13' into dev" 2019-07-17 11:47:20 +02:00
Mårten Nordheim 19e45ee4c1 Win: qnetconmon: Use CoInitialize instead of CoInitializeEx
Somehow I didn't test using QNetwork{Status,Connection}Monitor together
with Gui. In qwindowstheme.cpp we call CoInitialize and as such we
cannot use CoInitializeEx with a different thread mode.

Change-Id: If4a4441cc2616371d8b7cda72cfad11187d8f153
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-17 11:42:46 +02:00
Qt Forward Merge Bot 64df0eda36 Merge remote-tracking branch 'origin/5.13' into dev
Conflicts:
	src/corelib/global/qlogging.cpp
	src/gui/painting/qtextureglyphcache_p.h
	src/gui/text/qfontengine.cpp
	src/widgets/widgets/qlineedit.cpp

Change-Id: Ic8798538df466b7141caa8bbf1fb7605eb56be37
2019-07-17 10:44:21 +02:00
Tor Arne Vestbø d224c762bc macOS: Use correct virtual screen when resolving GL surface format
Change-Id: I8288db85c8e99bf9fccfcfbca7f9e3594d00fa48
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-17 09:56:15 +02:00
Tor Arne Vestbø d2e4bde5d0 macOS: Use lambdas instead of Obj-C categories for GL helper functions
Allows us to reference captured variables and keeps the function
local to where it's used.

Change-Id: I609892888720202021862d26a74ceb50e232f356
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-07-17 09:55:57 +02:00