Commit Graph

31415 Commits (a2ddd96ac8b7657c2ef64f2a8f51db5cd8a8d96a)

Author SHA1 Message Date
Tor Arne Vestbø 6ec5a97ebb macOS: Harden screen handling logic when reconfiguring displays
When connecting/disconnecting/reconfiguring screens Qt needs to know
about the changes before they are propagated by the OS in other ways,
so that we can reflect the changes in the list of QScreens as soon as
they happen.

Unfortunately the canonical notifications for this in AppKit,
NSApplicationDidChangeScreenParametersNotification, is delivered
after AppKit itself reacts to the change, which results in receiving
NSWindowDidChangeScreenNotification, NSWindowWillMoveNotification,
and others, while the list of QScreens is stale.

To work around this we adopted the lower layer Quartz Display
Services API in 3976df2805 to notify us when there are changes to
the screen configuration.

Unfortunately the window server on macOS is not consistent in how
it orders events during screen reconfiguration, and we can't rely
on the NSScreen list being up to date when we get our callbacks
from Quartz.

To work around this we still hook into Quartz, so that we get the
callbacks as early as possible, but then track the state of the
AppKit NSScreen list and update our own QScreens as soon as we
see a change.

We now also include sleeping displays in the list of QScreens,
which matches the behavior of NSScreen.screens. Similarly we
exclude displays that are mirroring another display.

Task-number: QTBUG-80193
Change-Id: I6b1958d6ee61373b2861e05a0d971d2300596f3e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-29 12:37:44 +01:00
Laszlo Agocs 0f812db558 rhi: vulkan: Remove unused include
QVulkanWindow support has long been removed from the Vulkan backend.
The include is a leftover from those times.

Change-Id: Ie68ac3611b24310f2b6111a72dd0679adafdc74d
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-11-29 12:23:57 +01:00
Friedemann Kleint cbb4d50019 Silence MSVC build of Qt for Python
Enclose QAssociativeIterableImpl::advanceImpl within
QT_WARNING_DISABLE_DEPRECATED, fixing numerous warnings:

MSVC\14.23.28105\include\xutility(727): warning C4996: 'QHash<QString,QVariant>::const_iterator::operator --': was declared deprecated
include\QtCore\../../src/corelib/tools/qhash.h(432): note: see declaration of 'QHash<QString,QVariant>::const_iterator::operator --'
include\QtCore\../../src/corelib/kernel/qmetatype.h(1217): note: see reference to function template instantiation 'void std::advance<QHash<QString,QVariant>::const_iterator,int>(_InIt &,_Diff)' being compiled
        with [ _InIt=QHash<QString,QVariant>::const_iterator, _Diff=int ]
include\QtCore\../../src/corelib/kernel/qmetatype.h(1253): note: see reference to function template instantiation 'void QtMetaTypePrivate::QAssociativeIterableImpl::advanceImpl<T>(void **,int)' being compiled
        with [T=QVariantHash]
include\QtCore\../../src/corelib/kernel/qvariant.h(793): note: see reference to function template instantiation 'QtMetaTypePrivate::QAssociativeIterableImpl::QAssociativeIterableImpl<QVariantHash>(const T *)' being compiled
        with[T=QVariantHash]

Amends dbb54805f6.

Change-Id: Ieb875eaa943100ce1941cb1473b35892330c3889
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-29 11:26:59 +01:00
Mårten Nordheim f881d00a4f QWindowsFontDatabase: Check preferred family names for all fonts
The code was initially introduced in
9204b8c31e but getting the names were
conditioned on whether or not Windows identified it as a truetype font.
This excluded cases which had preferred names embedded but was not
truetype fonts. To fix that we run the code unconditionally.

[ChangeLog][Windows] Fixed a bug where some fonts would not be
accessible by referencing their typographic name.

Fixes: QTBUG-78556
Change-Id: I8823684b09cce3b1b8722b1e609a5bb49b13da13
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-11-29 09:31:21 +01:00
Peter Varga cc5c47d85f macOS Accessibility: Fix role for comboboxes
Otherwise combobox with editable text field won't work.

Change-Id: I135c3a63cf8fba66d724e140a5a63828853e154e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-29 08:22:00 +01:00
Andy Shaw 985f491024 QTreeView: Reset the pressed index if the decoration was pressed on
We need to reset the pressed index when the decoration was pressed on
otherwise if the mouse ends up over an already selected item that was
previously clicked on. This prevents it from thinking that the mouse
has been released on this item right after pressing on it.

Fixes: QTBUG-59067
Change-Id: Iab372ae20db3682ab0812661f86533079ba4083c
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-11-29 06:53:10 +00:00
Allan Sandfeld Jensen 9feb20e581 Remove convert_ARGB_PM_to_ARGB
It was only used by conversions to indexed8 and mono, and is slower
than the generic conversion which is optimized.

Change-Id: I0480c5a1b5fa2de7e3c87fd621064dace46e5945
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-11-28 20:52:13 +01:00
Fredrik Orderud 5b1a4578f5 wasm: Disable TextureSwizzle
The WebGL 2.0 specification explicitly does not support texture swizzles. Therefore,
disabling it when targeting WASM. This fixes "WebGL: INVALID_ENUM: texParameter:
invalid parameter name" when running in Chrome or Firefox.

Change-Id: Ic7e22e0f623095245274924095cb63fd0ff7e8c2
Reference: https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.19
Fixes: QTBUG-80287
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-11-28 15:21:41 +01:00
Olivier Goffart 9fd217e746 Silence intel compiler warning about float comparison
Add the equivalent intel warning macro in public header where there
was already the macro for -Wfloat-equal

Change-Id: I8f20400f0b95c8f3857fa7a0a33464c8c34d5c0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-28 14:54:59 +01:00
Laszlo Agocs ee3e0ed751 rhi: gl: Fix ms renderbuffer on WASM with WebGL2
Unlike renderbufferStorage, renderbufferStorageMultisample is not
guaranteed to accept the unsized GL_DEPTH_STENCIL internalformat. For the
former, WebGL 2 guarantees it for compatibility for WebGL 1, but the
multisample version does not exist in WebGL 1, so from the specs it is not
given at all that the unsized format would be accepted. So use the ES 3.0
sized format instead, like we would on a "real" ES 3.0 implementation.

Fixes: QTBUG-80296
Change-Id: I822ae382097085c0a3279c16bb69a173dbf15093
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2019-11-28 14:16:33 +01:00
Edward Welbourne cfd2f3c46e Work around macOS's inconsistency in naming of India's time-zone
macOS fails to create a zone for the name its own systemTimeZone
claims to have (see new comment). So make sure we do consistently
recognize the name systemTimeZoneId() returns, using systemTimeZone
from which we got its name.

Add minimal testing of system time-zone.

Fixes: QTBUG-80173
Change-Id: I42f21efbd7c439158fee954d555414bb180e7f8f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-28 14:16:33 +01:00
Joerg Bornemann c33916a279 Fix prefix determination for windeployqt'ed MinGW applications
We hard-coded the assumption the import lib naming scheme is always
basename + ".lib" which is wrong for MinGW.

This amends commit a131d610.

Fixes: QTBUG-80366
Change-Id: Ibefb8a54483cc62743b8783530644b03e720262c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-11-28 13:48:00 +01:00
Friedemann Kleint 512c1febbd QtWidgets/Windows: Simplify .pro files
Remove the include path for wintab which is no longer needed in Qt 5
(the code is in  the QPA plugin).
Remove the inclusion of win.pri for the Windows vista styles plugin
and specify the theme library directly.
This should result in simpler CMakeList.txt files.

Change-Id: I736db5c965982cdf79a234a94fc723f0556c1717
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-11-28 12:44:36 +01:00
Friedemann Kleint 0c4e502b56 androidtestrunner: Fix warnings about missing parameter to QStringLiteral
Use QString instead, fixing:
src\tools\androidtestrunner\main.cpp(474): warning C4003: not enough arguments for function-like macro invocation 'QStringLiteral'

Change-Id: I88b8c0f1dfa7828460e8952510e3d4150ab68896
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-11-28 11:19:16 +01:00
Edward Welbourne 65ea4948dc Unicode tables: minor prettification
Put blank lines before the final Num*Classes entries in enums, to set
them off visibly from the "real" members. Moved some oddly placed
commas to the ends of preceding lines, so that later additions can
just add lines (with comma on end) without having to modify the
preceding line while doing so.

Change-Id: I5188dc25af9e4c17a1882fd9dab070e88013060b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-28 11:04:39 +01:00
Edward Welbourne 1a1718b342 Add missing docs for UCD additions at 5.15
Also remove two stray commas pointed out in code-review and some
others noticed on checking for similar.
This amends commit c3eb521a0f.

Change-Id: If20c5146b740defe8d25ff61d399031b5c66ded1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-11-28 11:04:27 +01:00
Mitch Curtis fc5dc8c16a Improve QShortcutMap debug output
Replace the macro with a logging category so that it's not necessary to
patch Qt to get output about e.g. ambiguous shortcuts.

Change-Id: I4d365aac5a5c0da8629447d93d3bc90c9c3076c2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-11-28 09:35:49 +01:00
Eskil Abrahamsen Blomfeldt 2a4dd69499 CoreText: Fix getting system fonts on recent macOS/iOS versions
We introduced a work-around for iOS 11 which breaks on more
recent OS versions because we try to request meta-fonts by
name instead of using the special system font descriptors.

This would cause warnings on the console and Times New Roman
when requesting e.g. the system fixed width font.

When testing on iOS 12 without the work-around, we are no
longer able to reproduce the original issue, so the
assumption is that this problem has been resolved. Since
iOS 11 is not a supported target for Qt 5.14 we can remove
the work-around entirely.

[ChangeLog][macOS/iOS] Fixed a bug where QFontDatabase::systemFont()
would return the wrong fonts on macOS 10.15 and iOS 13.

Fixes: QTBUG-79900
Change-Id: Ie375c8c2ab877d6d66e3696662c4939f639a6e9e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-28 06:08:45 +00:00
Lorn Potter 20891777bb webassembly: enable opengl es3
Our WebGL 2 support is half finished, since we use surface format verion of 3
to map to webgl2, but do not enable Open GL ES3 needed for WebGL2 support.

This allows glDrawArrays and glDrawElements to be used

Change-Id: Ifbd434f4d25e49f671145a6727999a90920d6810
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-28 00:07:53 +00:00
Timur Pocheptsov 14ae881445 QSslSocket (OpenSSL) fix a resource leak
Introduced by fe6e54fb1f. The probability -> 0,
meaning malloc must fail to trigger it, but it is still a leak. We now use
std::unique_ptr which improves the code in general a bit and fixes a leak.

Change-Id: I6c0fa36953196d3235fb60354dc9ad2396d8dfcb
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-27 20:40:55 +00:00
Christian Ehrlicher 4422a9bd88 QWidget: don't set WA_PendingMoveEvent when geometry does not change
When the geometry of a hidden widget was set with setGeometry(),
WA_PendingMoveEvent and WA_PendingResizeEvent were set unconditionally
even if the crect already had the correct value. This lead to
unneeded Move/Resize events within sendPendingMoveAndResizeEvents().

Fixes: QTBUG-75475
Fixes: QTBUG-79906
Change-Id: Ibbe03882f039948b6b7c04887420741ed2e9c0f7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-27 20:00:45 +01:00
Laszlo Agocs 64760504e7 rhi: Allow testing QRhiRenderPassDescriptors for compatibility
For Metal and Vulkan this needs actual work because that's where
the concept of renderpass descriptors is relevant. GL and D3D can
just return true always.

The big benefit of this is that Qt Quick can now compare renderpass
descriptors via isCompatible() for its pipeline cache (similarly to
how it is already using isLayoutCompatible() for srbs), and so
renderpass descriptors for layers (Item.layer, ShaderEffect) will
typically be compatible and so can pick up pipelines created by other
layers from the cache.

Also add autotests for shader resource binding and renderpass descriptor
compatibility.

Task-number: QTBUG-80318
Change-Id: I0008bc51c4ee13b0113d2c8caf799e1257f18a18
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-11-27 19:07:36 +01:00
Edward Welbourne 78cde1bfd9 Fix mis-guided init() in default QAndroidTimeZonePrivate constructor
It set the time-zone member sensibly to the default zone, but then
called init("UTC"), which over-wrote that default with UTC.  This had
no visible effect (as the default-constructed object is only used to
access methods that (though virtual) are effectively static), but was
needlessly complicated.

Tidied up systemTimeZoneId() at the same time.

Change-Id: I897aff16855c28487a1029bef50c75ebc1ff5b55
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-27 18:27:43 +01:00
Edward Welbourne c20c7efea9 Sanitize QAndroidTimeZonePrivate::init()
It was setting the system zone ID if it somehow managed to find a
match for an empty zone name; that makes no sense.

A case-insensitive comparison seems reasonable for the "this isn't
just a default zone object, used because the name I asked for isn't
recognized" check.

It set m_id after it had checked everything, where it could just as
well have used m_id as the variable in which to record whether its
check has succeeded already.

It was using the name it was asked for, rather than the one this ended
up being mapped to, which is probably a better name to use for
it. (This should only differ in case.)

Split a long line.

Change-Id: I41a3b01ba99522ee68f3d7941c532019b9ebf946
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-27 18:27:43 +01:00
Edward Welbourne 0debb205b2 Permit leading space at start of RFC 2822 Date format
Relevant RFCs explicitly permit such space.

Change-Id: I8eb444e96287368cbbf973c77513b43d1d36f972
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-27 18:27:43 +01:00
Edward Welbourne 6566157df3 Make Qt::RFC2822Date's doc match up with its implementation
The qdatetime implementation's rfcDateImpl() uses regexes which did
not match its comments; nor did either the regexes or the comments
match what was documented. A review of relevant RFCs suggests we
should revise this in future, probably at Qt 6.

The documentation also only addressed the formats recognized when
parsing a date-time, without indicating how they are serialised or how
dates and times are handled separately.

Added a note to the tests for the read-only formats, to remind the
reader that the RFCs merely recommend recognising these - be
permissive in what you expect and strict in what you deliver.

Change-Id: I0f0bec752e7a50bde98cceceb7e0d11be15c6a6f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-27 18:27:43 +01:00
Edward Welbourne 48d2ffd397 Add Since markers to QChar::Script docs and sort in alphabetic order
Change-Id: I4aedaf87b8b424fe946eb1618ce77a79cfddc111
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-11-27 11:08:43 +01:00
Laszlo Agocs f3c37c839c Enable QRhi Metal backend on iOS
While we are at it, remove the Border and MirrorOnce wrap modes that have
not been supported on OpenGL, because they are unsupported with Metal+iOS
as well.

Task-number: QTBUG-78580
Change-Id: I0db94b9d3a6125b3bb5d7b1db5d02a42cd94d2c2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-27 09:51:28 +01:00
Christian Ehrlicher ce7447d88c QLayoutItem: make QLayoutItem::widget() const in Qt6
QLayoutItem::widget() should be const since it does not modify the
class. Since this can not be done within Qt5 in a binary compatible way,
change it for Qt6.

Fixes: QTBUG-41997
Change-Id: I9211eb1c36a5bc4f06ab417a9df790ebedb7fcda
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-27 08:46:29 +02:00
Fredrik Orderud 8a60244da8 Fix renderbufferStorageMultisample: invalid internalformat
Chrome 78 is outputting "INVALID_ENUM: renderbufferStorageMultisample: invalid
internalformat" when running a Qt application after building it for WebAssembly (WASM)
against the Qt 5.13 branch using the Emscripten 1.39.3 (upstream) compiler.

The problem appear to be caused by glRenderbufferStorageMultisample not supporting
GL_DEPTH_STENCIL directly. Instead, GL_DEPTH24_STENCIL8 or GL_DEPTH32F_STENCIL8
should be passed. Keeping the glRenderbufferStorage call as-is.

Change-Id: I777dbc26b1d989950525a434a25ed344389f5059
Reference: https://www.khronos.org/registry/OpenGL-Refpages/es3.0/html/glRenderbufferStorageMultisample.xhtml
Fixes: QTBUG-80286
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-11-26 21:03:33 +01:00
Ben Boeckel d5608ca437 Qt5CoreMacros: properly check the CMake version
The POSITION_INDEPENDENT_CODE property was introduced in 2.8.12, so
use it in versions newer than 2.8.12.

Fixes: QTBUG-79671
Change-Id: If7f023e80964f2e47edc35eee617b51aeecbf032
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-26 20:17:07 +01:00
Christian Ehrlicher cd3585ab15 QDial: use correct button color
When the pixmap for the QDial was cached, the button color for the knob
was not properly set

Fixes: QTBUG-19855
Change-Id: Ib09ac12f0b11c47a0d05f01759fc6eeadbeab06c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-26 20:01:10 +01:00
Friedemann Kleint e1d173d3ca Fix qdoc include paths for QStandardPaths
Amends c30ffe1d33.

Fix
src/corelib/io/qstandardpaths.cpp:361: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:368: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:392: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:406: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:479: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:537: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'
src/corelib/io/qstandardpaths.cpp:594: (qdoc) warning: Cannot find qdoc include file 'standardpath/functiondoc.qdocinc'

Task-number: QTBUG-79827
Change-Id: I8eb0ae7bc167151979c729964d2dc3f171e10568
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-26 20:01:10 +01:00
Christian Ehrlicher 2260d680c9 Deprecate qMove(), Q_DECL_OVERRIDE and Q_DECL_FINAL
This function and the two macros are natively supported by all
compilers needed since Qt 5.7 as explained in
4c704fad08

Change-Id: Iac01d2481ef4a6ee333e3ee5f09082a9fba725e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-26 19:51:00 +01:00
Friedemann Kleint 1825426187 QtWidgets: Fix warnings about providing function for DESIGNABLE in property declaration
Set them to be designable by default, fixing:
kernel/qaction.h:66: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:178: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:179: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:180: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:181: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:182: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
kernel/qwidget.h:204: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
widgets/qabstractbutton.h:67: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.
widgets/qgroupbox.h:60: Warning: Providing a function for DESIGNABLE in a property declaration is deprecated and will not be supported in Qt 6 anymore.

The toolbar properties were not caught by the warnings, but it appears
the checks do not work; the properties are designable when parented
on a non-QMainWindow parent.

Change-Id: Ib7dfb878ba593f2dfa05b85db2c384bf3d860e46
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-26 19:12:01 +01:00
Eirik Aavitsland da0af1e21d Doc: Improve explanation of QLineEdit input mask
The explanation of the input mask syntax and behavior was somewhat
unclear.

Task-number: QTBUG-76320
Change-Id: I45dc4a883c491d3dc08125b0f7efad46f2a9a33f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-26 09:53:26 +01:00
Friedemann Kleint c54b1d273f qtestsupport_widgets.h: Fix syncqt warning
Fix include, removing:
QtWidgets WARNING qtbase/src/widgets/kernel/qtestsupport_widgets.h includes qtwidgetsglobal.h when it should include QtWidgets/qtwidgetsglobal.h

Change-Id: I3dc608cba48e9ae36b0683a94a4bf411e23f5136
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-26 09:08:43 +01:00
Sona Kurazyan ccc2133c64 Port QDomDocument to QXmlStreamReader
Reimplement QDomDocument using QXmlStreamReader and switch to the new
implementation starting from Qt 6.

The changes in the behavior are reflected in tests: some test cases
which were marked as "expected to fail" are now passing.

Task-number: QTBUG-76178
Change-Id: I5ace2f13c036a9a778de922b47a1ce35957ce5f6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-26 09:07:26 +01:00
Christian Ehrlicher f0443984b8 QComboBox cleanup: use member initialization and nullptr
Cleanup QComboBox private classes:
 - rearrange members to avoid unneeded padding
 - use nullptr
 - remove unused functions
 - don't print warnings about own deprecated functions

Change-Id: I350d1c63602e32cf4b45549bc35cf1538dbbe8f0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-26 09:07:26 +01:00
Thiago Macieira 31e94dc96c QGb18030Codec: fix out-of-bounds access when decoding surrogate pairs
This is already the second surrogate of the pair, there's no need to +
+i.

Fixes: QTBUG-80268
Change-Id: Ia2aa807ffa8a4c798425fffd15d9a48ee0ca8ed7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-11-26 05:08:28 +01:00
Andre de la Rocha b8cf3c3500 Windows QPA: Disable the native Windows OSK if Qt Virtual Keyboard is in use
This change detects that the Qt Virtual Keyboard is in use through the
QT_IM_MODULE environment variable and disables the native Windows OSK
accordingly, to avoid showing both virtual keyboards at the same time.

Task-number: QTBUG-76088
Change-Id: I2715b337e6de729f0514ea1892b94b3c4f9cd984
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-25 18:02:41 +01:00
Tor Arne Vestbø 770a1d7156 macOS: Replace use of deprecated acceptsTouchEvents API
The equivalent of setting acceptsTouchEvents to YES is enabling
indirect touches. Direct touches are enabled by default by AppKit,
but can be explicitly disabled by clearing the NSTouchTypeMaskDirect
bit.

Change-Id: I5ba09d36f6ee2ce962e3ce21bab06537dd1fa5ad
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-11-25 18:00:23 +01:00
Tor Arne Vestbø 3c90ac02d1 macOS: Replace use of deprecated NSDragPboard enum
Change-Id: I90128abe310f971a89ecb6551e31950211adda77
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-11-25 18:00:17 +01:00
Langonda Agag 0e0793ca59 Improve QTextDocumentPrivate cursor performance
The cursors in QTextDocumentPrivate are held in a QList.
This becomes a serious performance problem with lots of
extra selections due to a call to
QTextDocumentPrivate::removeCursor() from the QTextCursor
destructor.

Given the following test program:

    QPlainTextEdit *editor = ...
    std::list< QTextCursor> list;
    for(int i = 0; i < 100000; ++i) {
    QTextCursor c(editor->document());
    c.setPosition(std::rand()%100);
    list.push_front(c);
    }
    list.clear(); // <-- clear calls hangs for 3+ seconds
                  // due to time spent in
                  // QTextDocumentPrivate::removeCursor()
                  // due to QList::removeAll() call

Note the push_front because it exacerbates the issue because
the entire list will be traversed.

The change submitted changes the structure to a set,
removing the issue.
In theory, this limits that a cursors cannot be in the
structure twice, but this neither happens nor would it make sense.

Change-Id: I817dc5d1bda1d98c6725a531b32d1c711a029a34
Reviewed-by: Langonda Agag <namezero@afim.info>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
2019-11-25 08:44:56 +00:00
Jimi Huotari 2e7c83ea38 Fix build with -xcb and -no-libinput
Since a34e81ab [1], 'xkbcommon_support' is under
'src/platformsupport/input', and will not be defined when building
with -no-libinput, and as such, 'xkbcommon_support-private' added in
'src/plugins/platforms/xcb/xcb_qpa_lib.pro' will be unknown.

1. https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.14&id=a34e81ab

Change-Id: I79563b329623651b462b8fedcfb59ef5f2c2e52a
Gentoo-bug: https://bugs.gentoo.org/699110
Suggested-by: Petr Zima <zima@matfyz.cz>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-11-23 20:33:31 +02:00
Thiago Macieira bcbefcd645 QCborValue: Extend the constructor to also create extended types
We already did that when parsing from CBOR binary data, so the code was
already present.

[ChangeLog][QtCore][QCborValue] The constructor taking a CBOR tag and a
value to be tagged now attempts to convert to a QCborValue extended
type. For example, if the tag is 0 (UnixTime_t) and the payload is a
number, the resulting object will become tag 1 (DateTime) and the
payload will be the the ISO-8601 date/time string.

Fixes: QTBUG-79196
Change-Id: I6edce5101800424a8093fffd15cdf650fb2fc45c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-11-23 02:14:42 +01:00
Thiago Macieira 8027fb60dd Fix QCborValue::toCbor with non-ASCII URLs
Found while fixing QTBUG-79196.

Change-Id: Ia2aa807ffa8a4c798425fffd15d841657def99af
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-11-23 02:14:39 +01:00
Qt Forward Merge Bot 59a705e371 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2019-11-23 01:00:34 +01:00
Qt Forward Merge Bot a5e4a67e8b Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I1c68f2f6bc35d344c60a1898b68bf2ca79e54a9d
2019-11-23 01:00:23 +01:00
Christian Ehrlicher 96c27eb710 QList/Table/TreeWidgetItem: Allow reseting values by passing the default value
The convenience functions setBackground(), setForeground() and
setSizeHint() a default constructed value as 'reset'. This means a
default constructed QBrush or QSize is returned in the data() function
which leads to an unexpected background or forground color or size hint.
Therefore check if the passed value is a default constructed value and
set an empty QVariant instead which.

[ChangeLog][QtWidgets][ItemViews] The convenience views
QList/Table/TreeWidgetItem now treat a default constructed QBrush or
QSize as an empty QVariant which allows to reset the values set to it's
default values.

Task-number: QTBUG-76423
Change-Id: I840570bbad3e5fd8c5b4b58903b4fd0066dbdeb7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-22 22:02:15 +01:00
Friedemann Kleint 2c871dfd38 Avoid initializing QFlags with 0 or nullptr in further cases
Amends qtbase/af2daafde72db02454d24b7d691aa6861525ab99.
Where applicable, port over to member initialization, thus also
fixing nullptr warnings.

Change-Id: Iaaf2dbbbcf2952253390b8839fd15a1b17be32c0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-11-22 20:43:55 +01:00
Kai Uwe Broulik 935681eaca QSortFilterProxyModel: Add change signals for properties
Makes it more easily consumable from QML.
This patch only adds them for properties where no behavior change
(i.e. no "if (m_foo == foo) return" changes) is necessary.
The other ones will be done in a follow-up patch.

Change-Id: If9f35cf9ac382e6f626db138a88eb14cebda1d52
Reviewed-by: David Faure <david.faure@kdab.com>
2019-11-22 19:45:18 +01:00
Joerg Bornemann a131d6100c Fix prefix determination for windeployqt'ed applications
Qt5Core.dll of windeployqt'ed applications is right next to the
executable, and the prefix is considered the directory where the
application is located. QLibraryInfo of a relocatable Qt5Core.dll would
return a wrong prefix (by default <app dir>/..), because it determines
the prefix with QT_CONFIGURE_LIBLOCATION_TO_PREFIX_PATH (by default "..").

We now detect whether the executable was windeployqt'ed by checking
whether Qt5Core.dll is next to the executable.

However, we must not do that for applications in QT_HOST_BINS, because
they are not windeployqt'ed and must still use the standard prefix.
We detect this case by checking whether for Qt5Core.dll exists a
corresponding Qt5Core.lib in the libdir below the detected prefix.

Fixes: QTBUG-79318
Change-Id: I1c9b971b282c6b9b19a93f1819ba8aee74be5be4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-22 15:00:11 +01:00
Laszlo Agocs 5142fe2c54 rhi: d3d11: Do not rely on Win10-only enum value
When building against a 8.1 or older SDK the Windows 10-only value
DXGI_SWAP_EFFECT_FLIP_DISCARD may not be present. Just use the value
directly. At runtime that code path cannot be hit anyway when running
on 8.1 or older.

Task-number: QTBUG-80084
Change-Id: I0974b82db770e5487315798432ee601937b96c5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-22 13:06:32 +01:00
Ville Voutilainen 7bb0d5379d Make transferTimeout getters const
Change-Id: I84c7e830ed9cf58c05ff06052c3df3beb74bb723
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-11-22 13:59:22 +02:00
Timur Pocheptsov b455e45ab2 Deprecate TlsV1SslV3
Since we anyway deprecated SslV3.

Change-Id: I437114a76062b7a18a9978e359b3ccf16869c17d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-11-22 09:39:20 +01:00
Allan Sandfeld Jensen af2daafde7 Deprecate constructing QFlags from a pointer
This was used to support QFlags f = 0 initialization, but with 0 used
as a pointer literal now considered bad form, it had been changed many
places to QFlags f = nullptr, which is meaningless and confusing.

Change-Id: I4bc592151c255dc5cab1a232615caecc520f02e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-20 19:43:38 +01:00
Morten Johan Sørvig 73a764c247 Don’t warn on QT_AUTO_SCREEN_SCALE_FACTOR usage
This warning turned out to be spammy, since the env.
variable may be set by KDE, in which case there is
nothing the user or app developer can do to fix the
situation.

QT_AUTO_SCREEN_SCALE_FACTOR is now Done on X11, and
remains Deprecated on all other platforms.

Change-Id: I9d372655624b0e0b822f0a70e9aec4b18ab98630
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-11-20 15:19:24 +01:00
Friedemann Kleint 8bc4ea1e97 Windows QPA: Fix deprecation warnings
Fix warnings introduced by
qtbase/72f57cc84244633ca69ede9a1fd510b9b1881c1d:

qwindowstheme.cpp:167:62: warning: 'bool QWaitCondition::wait(QMutex*, long unsigned int)' is deprecated: Use wait(QMutex *lockedMutex, QDeadlineTimer deadline) instead [-Wdeprecated-declarations]qwindowstheme.cpp: In member function 'bool QShGetFileInfoThread::runWithParams(QShGetFileInfoParams*, long unsigned int)':
qwindowstheme.cpp:201:63: warning: 'bool QWaitCondition::wait(QMutex*, long unsigned int)' is deprecated: Use wait(QMutex *lockedMutex, QDeadlineTimer deadline) instead [-Wdeprecated-declarations]

Change-Id: Ie33f8b0e1e742f972d2a8065eba9e16a13ec43ee
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-11-20 14:59:04 +01:00
Joerg Bornemann 5d1af4f0be Compile fontconfig-related code on non-Unix platforms
...if the feature is enabled.
This fixes the build for MSYS2 with fontconfig.

Fixes: QTBUG-79748
Change-Id: I2c834b6d968766f98c5df2f3df5c8c9bdbd80f11
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-20 13:12:19 +01:00
Alexander Volkov 3b98fe7f77 xcb: Simplify code by using helper QXcbIntegration::defaultConnection()
Change-Id: Ieb0e21d85fcd0c168b1bb090e967d02a8a6a6083
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@gmail.com>
2019-11-20 14:37:49 +03:00
Andre Hartmann c8df1a2c6d QTemporaryFile: Add a note about behavior on Linux
Mostly copied from the 5.10 changelog file.

Task-number: QTBUG-80157
Change-Id: I58654fe998ada603241b9a7cb967f55e66ebc954
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Tomasz Siekierda <sierdzio@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-20 12:04:56 +01:00
Friedemann Kleint c355602595 Windows QPA: Port from QList to QVector
Use a QVector where possible. Otherwise, try
to introduce auto to make migration easier.

Change-Id: I9deadb363fabd1755deca180ed5cb771390fcb30
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-11-20 11:37:20 +01:00
Qt Forward Merge Bot 1315133233 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ic4ffd206bdd3ed68fd3d21a93818923e8d3a1e7a
2019-11-20 01:00:51 +01:00
Allan Sandfeld Jensen b10e1209e1 Implement inplace image conversion for generic down conversions
If the destination image format is smaller than the source one, allow
an inplace conversion followed by a shrinking realloc.

Change-Id: I99b3e285e06fb37fd5fe7412749fa87f4cf2ee9a
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-11-19 18:13:37 +01:00
Christian Ehrlicher d7cb21ac08 QDom: use QLocale::C when converting a double to a xml attribute
QDomElement::setAttribute(QString, double) did not use QString::setNum()
but qsnprintf(). This is wrong because qsnprintf() is using the current
locale instead QLocale::C. It was also inconsistent to
QDomElement::setAttributeNS() which was already using QString::setNum().

Also fix the documentation which stated that all
QDomElement::setAttribute() format the values according the current
locale.

Fixes: QTBUG-80068
Change-Id: Iabb0b39c0d0723060527542c283a5435f26f31ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-19 17:33:33 +01:00
Christian Ehrlicher ede867f581 QWheelEvent: add \since flag for ctor
c08bf215cc added a new QWheelEvent ctor
but missed the \since flag.

Fixes: QTBUG-80088
Change-Id: I6c81179999dd100162dc0cd5dc28e7b5b843b437
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-11-19 17:33:21 +01:00
Samuel Gaist 54d5ca0c27 Doc: improve Using Model Indexes in Model View Programming guide
The current example using QFileSystemModel doesn't take into account the
asynchronous nature of that model. This puts people on the wrong path on
how to use it.

This patch improves the snippet as well as the explanation steps.

Change-Id: I5c7a3c19aad48847f0b965b5eb69b492d6263f51
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-19 08:56:44 +01:00
Qt Forward Merge Bot 587f1cbc5d Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I4e5c8a1fcef443c3383e207102f21d41000ff322
2019-11-19 01:00:12 +01:00
Samuel Gaist 6a7a4aac0a Doc: add warning for binding values in QSqlQuery
Not all SQL operations support binding values like the PRAGMA
instruction of SQLite. This patch adds a warning for the developer to
make it clearer that binding values cannot be used for everything.

Task-number: QTBUG-80082
Change-Id: Ie1d33815d74a0759a3593df9410b8bad448f6fe9
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2019-11-18 23:52:36 +01:00
Eskil Abrahamsen Blomfeldt e193459877 Fix kerning with fractional pixel size
Since most of our APIs for pixel size are integer-based, we
would assume it was when passing it to Harfbuzz. But QRawFont
(and the internal APIs in Qt and Harfbuzz) support floating
point pixel sizes. The result would be that setting e.g.
pixel size 20.25 would give the same glyph positions as 20.75,
but the glyphs would be some fraction of a pixel larger.

Using floats instead should have no impact on the common case
where the pixel size is an integer, but it should also enable
the other case, where QRawFont is used (or potentially future
APIs that do not have the integer limitation.)

[ChangeLog][QtGui][Text] Fixed a problem where pixel sizes
would be truncated before calculating glyph positions.

Fixes: QTBUG-67091
Change-Id: Ib066b1330ddcf52d4b344412e350aa9a60c847ff
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2019-11-18 13:34:25 +01:00
Venugopal Shivashankar c30ffe1d33 Doc: Move the common documentation to a qdocinc
The member functions of QStandardPath and
Qt.labs.platform.StandardPath behave the same, so
it's ideal to maintain their documentation in one place.

Task-number: QTBUG-79827
Change-Id: I349dbb85cd9b6a3bedac329c0707fc07057cd64b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-18 12:34:32 +01:00
Thiago Macieira 8e8b50b061 RDRAND test: also disable if RDRAND produced only three samples
It's unlikely, since we do 64-bit RDRAND on 64-bit machines.

Change-Id: I8d95fbaf90e842b9b44dfffd15cd684a98a7ff50
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-18 01:41:43 -07:00
Thiago Macieira 737fd5550b Change the QtCore library output to show the plugin path
It's a lot more useful than the include dir. It actually helps debug
problems.

Change-Id: I1496b069cc534f1a838dfffd15ca07fe8ad1c8c6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-11-18 01:41:06 -07:00
Florian Korsakissok 61def1f6cd HiDPI: Select most fitting pixel ratio when painting QIcon
There is a way to select a better pixel ratio when the QPainter has a
valid pointer to a QPaintDevice than simply getting the global app
pixel ratio.

Change-Id: I8f89fd01094bbac7a01a83be89991730b0fa6597
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2019-11-18 07:34:32 +00:00
Christian Ehrlicher 360df2cf74 QComboBox: add property placeholderText
QComboBox had no option to tell the user that he must select an item -
there was no placeholder text like e.g. in QLineEdit. This feature is
widely used in html forms so we should support it also.
Therefore add a new property 'placeholderText' to specify a text which
should be shown when the current selected index is invalid.

[ChangeLog][QtWidgets][QComboBox] QComboBox got a new property
'placeholderText'

Change-Id: If6dac45c9f43455474e267907b0b0d893301c611
Fixes: QTBUG-1556
Fixes: QTBUG-2776
Fixes: QTBUG-77141
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-15 20:45:24 +01:00
Qt Forward Merge Bot 5abb976f23 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2019-11-15 16:30:51 +01:00
Qt Forward Merge Bot adc7bbe910 Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
	src/gui/rhi/qshader.cpp
	tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp

Change-Id: I1c4ae718eb3592a0a0a90af9d11553f3ab68cad5
2019-11-15 16:29:40 +01:00
Samuel Gaist 76a0f94a6d Take widget content margin into account for menu bar size calculation
The menu bar size calculation didn't take into account the margin of the
layout content which makes said menu bar sticking out of the widget.
This patch includes the margin to ensure the menu bar has the correct
size.

Fixes: QTBUG-76585
Change-Id: Ia2c163137fa2889f4028ee3b31766b2747d97b72
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-11-15 14:15:24 +01:00
Eirik Aavitsland 54f5b89750 Fix: QIcon high dpi scaling when aspect ratio differs
When an icon engine is asked to produce a pixmap scaled to a certain
size, it may return one with a different aspect ratio than
requested. In particular, an SVG will use its own aspect ratio, as it
should. QIcon's DPR calculation would break down in this case,
resulting in ugly scaling.

Fixes: QTBUG-79371
Change-Id: Id97049259dcee1a2980474250ef1163be5639085
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-15 11:55:05 +00:00
Daniel Teske 9f48f1ebc2 QLineEdit: Fix End key for input masks
Consider this simple example:
   QLineEdit edit;
   edit.setInputMask( "9-9-9-9-9-9" );
   edit.show();

Without any input, m_text will contain: " - - - - - ". text() removes
the input mask's mask characters from that and returns "      ". A string
with 6 spaces. Thus currently the End key jumps to position 6, which is
in the middle of the string. Using m_text the End key jumps to the actual
end.

[ChangeLog][QtWidgets][QLineEdit] Fixed End key in combination with
certain input masks.

Task-number: QTBUG-16187
Task-number: QTBUG-20414
Change-Id: Ibb30a1dfa2f78103611b5afc9971dc43e8bdcc4a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-15 13:40:05 +02:00
Richard Moe Gustavsen 01ec11507d QStyleSheetStyle: add new property to QPushButton: icon
There is currently no proper way to change the icon of a
pushbutton from css. But there is a need for doing so
(QTBUG-2982), and the typical work-around is to instead use
the css property 'qproperty-icon'. But setting qproperties
from the style is not a good idea in the first place, since
it modifies the state of the widget it draws. Moreover, such
properties are only set once (in QStyle::polish()), and
will not have any effect on pseudo states, like hover.

To close this gap, this patch will add a css property
'icon' that can be set on a QPushButton. This property
will follow normal css cascading, and respect pseudo
states, equal to any other css property.

[ChangeLog][QtWidgets][QStyle] You can now set the
CSS property 'icon' on a QPushButton to override
which icon to draw.

Fixes: QTBUG-79137
Change-Id: Ie7e0b0fa4f19471f51108cd4ca931356219d562e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2019-11-14 20:28:35 +01:00
Christian Ehrlicher a4751f8824 QShortcut: add pmf ctor overloads
Provide pointer to member function overloads for the QShortcut ctor. The
ctor with two functors but no contexts is not provided since it creates
ambiguousness.

[ChangeLog][QtWidgets][QShortcut] QShortcut ctor has now pmf overloads

Fixes: QTBUG-77816
Change-Id: Ic9a759cde5150dbb94c2fd351b88ee8e447e0852
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-14 19:59:23 +01:00
Christian Ehrlicher 41702d8455 Honor alpha for SH_Table_GridLineColor
Make sure to honor the alpha channel for the color returned by
SH_Table_GridLineColor.

Fixes: QTBUG-74909
Change-Id: If9688329e5e2ab41833dfeb7e6292fdfcbf63aa1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-14 20:48:22 +02:00
Christian Ehrlicher c15a069830 QTreeView: make sure to not ask the old model during setModel
Within QTreeView::setModel() the header might emit columnCountChanged
which then tries to update the geometries based on the old model which
is wrong.
Fix it by setting geometryRecursionBlock to true so
QTreeView::updateGeometries() will not ask the old model for it's data.

Fixes: QTBUG-75982
Change-Id: Ia0dd36cd7c6c5347fbc285deac43da6941accbe7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-11-14 20:47:45 +02:00
Cristian Adam 80ac9e8b7c Compile fix for MinGW 8.1.0
Workaround for libpng bug in GCC 8.1.0.

Task-number: QTQAINFRA-3303
Change-Id: Id7668e795cb4ab16de3199fc3727d844aa31bfad
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2019-11-14 17:50:49 +01:00
Laszlo Agocs 14bb413309 eglfs: kms: Read page flip events on a dedicated thread
Task-number: QTBUG-74953
Change-Id: I9a630c9245d8b0afe40ade9199cf4f1d358275da
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-11-14 16:25:49 +01:00
Laszlo Agocs 813e4460de eglfs: kms: Fix hw cursor with multiple screens
We used to have the assumption that moving the cursor to an out of
range position is valid and will result in a hidden cursor.

This is apparently not the case. For example, on an RPi4 with Mesa
V3D we get lots of funny artifacts after doing drmModeMoveCursor()
to invalid positions.

To remedy this, start hiding the cursor correctly when the position
is clearly out of the screen's bounds.

Task-number: QTBUG-79924
Change-Id: I3ef7ad0ce928546399443f21452f0b6deadf8036
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2019-11-14 16:13:30 +01:00
Edward Welbourne ad11cab484 Allow longer time-zone components on Android
Android uses its own time-zone naming, which includes a zone called
"Canada/East-Saskatchewan", whose second component is 17 characters
long. This violates a rule in the IANA naming scheme for zones, that
limits components to 14 characters each. So tweak the isValidId()
check to allow Android its long names.

Android has added Outer Mongolian time-zones, which are as borked as
many others in 1970, so blacklist those transitionEachZone() tests.

Fixes: QTBUG-69128
Change-Id: I46f674f095431335b16900860d83b624257ae3bb
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2019-11-14 10:47:57 +01:00
Thiago Macieira 103d307f2e Be explicit about QDataStream serialization: explicit casts to int
The reader uses int variables, so use the same in the writer.

Change-Id: I1496b069cc534f1a838dfffd15c94c7cacd3dd93
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-11-14 01:09:21 -08:00
Qt Forward Merge Bot 9a14171a10 Merge remote-tracking branch 'origin/5.13' into 5.14
Change-Id: I28ba24ae126a054c1aec17fa19ad594718f870c5
2019-11-14 09:52:51 +01:00
Friedemann Kleint 0ec40c21c1 uic: Update ui4.cpp/h sources
Apply changes from qttools/4235774262f633da196a192248dbacf4f67f085e.

Task-number: QTBUG-79896
Change-Id: I49466980a7c5983f57d4948386b15e8fcec82343
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2019-11-14 08:46:14 +01:00
Lorn Potter a3f62d7ead wasm: add platform qsettings
Since the backend is async, the settings will not be ready to read/write
instantly as on other platforms, but only be ready after the
filesystem has been synced to the sandbox. This takes at least 250 to
500 ms. The QSettings status() or isWritable() can be used to discern when the
settings are ready for use.

This also fixes a crash in threaded wasm

Task-number: QTBUG-70002
Fixes: QTBUG-63923
Fixes: QTBUG-79650
Change-Id: If24c6ada1b91b2a565ed6733da74972c3027f622
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-14 12:10:29 +10:00
Christian Ehrlicher f2cf5f5417 Port QThread::wait() to QDeadlineTimer
So we are in sync with QWaitCondition::wait().

Task-number: QTBUG-64266
Change-Id: I1d7487786513241cedd35d202c4ddee4937b08ec
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-13 19:34:07 +01:00
Friedemann Kleint f2cc6fd4a0 uic: Remove some usages of QList
Task-number: QTBUG-79896
Change-Id: I298a434040fa903509685b7cde82bbea722f3246
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2019-11-13 17:05:23 +01:00
Ulf Hermann 1e5d1a43dc Make sure the metatypes are installed in prefix builds
The JSON collection step has to be target_predeps in order to be
executed if the only place its output is referred to is INSTALLS.
Furthermore, some CONFIG options clear the INSTALLS variable.
Therefore, we need to add the metatypes CONFIG entries after
those.

Change-Id: I4694ab1d82c13cb4e3886c1722a03255d14b7f29
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-11-13 15:26:03 +00:00
Laszlo Agocs 5bd48047de eglfs: kms: Make threaded atomic drm work
The atomic modesetting support was not prepared for page flips being
issued from different (per-screen) threads.

This could be seen with the threaded render loop of Qt Quick: having a
QQuickWindow per screen means having a dedicated render thread for each
screen. QKmsDevice used simply instance variables to keep track of the
request. This leads to the commit failing with EBUSY sooner or later.

Make the atomic request and related variables thread local.

This prevents failing drmModeAtomicCommit() with 2 or more screens and
the threaded render loop. It does not fix other potential issues when
waiting for page flips to complete, that is to be tackled separately.

Task-number: QTBUG-74953
Change-Id: I2dac10d5e9bdc0cb556ac78c9643c96d40d692e4
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-11-13 16:23:27 +01:00
Giuseppe D'Angelo 782df5b41d Make QObjectPrivate::threadData a proper atomic
QObjectPrivate::threadData used to be a QThreadData *, and was
read and written from multiple threads without proper synchronization.
As an example, it was read from QCoreApplication::postEvent and
written from QObject::moveToThread, therefore causing UB.

Port threadData to a proper atomic, removing the races. Fix all usage
points.

In general, QObject is documented to be simply reentrant,
not thread-safe, and certain bits (e.g. timers, moveToThread)
are not even reentrant. The reasoning therefore is that a given
QObject's threadData is not supposed to be touched by multiple
threads without some synchronization happening elsewhere, and
therefore relaxed loads should be sufficient.

As drive-by change: refactor QCoreApplication::postEvent.
It was particularly subtle, because it had a loop using a volatile
to cope with the possibility of the receiver object switching thread
while we tried to lock its thread's event queue.

However, volatile does not achieve any synchronization, so drop it,
and refactor the algorithm using better locking primitives.
Put this algorithm in a common place, and also reuse it from
removePostedEvents, which was lacking any synchronization.

Change-Id: Icc755f7eb418ff54b33db4bdd87fd8eaf4e82c7a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-13 16:22:40 +01:00
Alex Trotsenko 4e0d5498eb QEventDispatcherWin32: unify input checks in {un}register...()
The event manager has a family of the functions for registering
sockets notifiers, event notifiers, and timers. To ensure
efficient debugging, it would be useful to have one approach
regarding input parameters validation for the entire set of
that functions. Based on registerSocketNotifier() implementation,
this patch offers the same debugging principles for
QWinEventNotifier and QTimer. Some debug messages have also
been refined.

Change-Id: I1418ef43c51f7b794462b5e9c8a849633e0c60f9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-13 17:22:04 +02:00
Eike Ziller 51cbd5288c Fix rendering of markdown in QLabel
Since 65314b6ce8 there is a TextFormat
for MarkdownText, and QWidgetTextControl supports that, but QLabel
does it in its own way and sets plain text or rich text on the text
document itself. Add a code path for MarkdownText there.

[ChangeLog][QtWidgets][QLabel] Markdown is now a supported textFormat
for QLabel.

Fixes: QTBUG-79766
Change-Id: Ib9370ef300089af2c4d6070e545c5470f32833a8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-11-13 13:51:22 +00:00
Andy Shaw 2735c5bf06 Add support for passing qrc files to qmlimportscanner
With the qrcFiles entry in the deployment JSON for Android, it can now
pass this on to qmlimportscanner for scanning the qrc files for the
available imports. This enables qmake to populate the qrc files it has
referenced in the project, be it generated by qmake or added by the
user.

Task-number: QTBUG-55259
Change-Id: Ic512ce6f24508b3ea09ebdd07ac4446debfd9155
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-11-13 14:00:39 +01:00
Alex Trotsenko 79a1fc0e01 QBasicTimer: release timer id on exit
In some cases of inheritance, timer deletion can be triggered from the
event dispatcher destructor where QThreadData::eventDispatcher is
already nullptr. Despite the fact that the application is in shutdown
phase, we should free the resource.

Change-Id: I61ed1d817fd7638953f7d629823f19d4f6f1ee00
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-13 10:10:13 +02:00
Timur Pocheptsov 38f38c7188 Deprecate enumerators fro SSL v.2 and v.3 protocols
And we'll get rid of them in Qt 6.

Task-number: QTBUG-75638
Change-Id: I34764f93bf579da0640a930d9160783ea9c8317d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-13 08:24:49 +01:00
Eike Ziller 3641606008 Use default QTD font size for mono font when importing markdown
QFontDatabase::systemFont(FixedFont) determines the font for inline code and
code blocks in a markdown document.  Now we change the size of that font to the
same size as QTextDocument::defaultFont() so that the user has the ability to
customize the font size in each document instead of only system-wide.

Change-Id: Ief7367336f7613e88695dbb08bcb7e9f50db8961
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-11-13 06:59:16 +00:00
Lorn Potter 30f4ca4e4f wasm: fix building examples and applications
This fixes a bug where app build would fail with AssertionError: SIMD is
used, but not supported in WASM mode yet

This patch was wiped out by the recent freetype update and is exactly
the same as
44b91a619d

Fixes: QTBUG-79938
Change-Id: Iaa8f23c83d0488ddd351454a674a6cad76e7cc8b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-13 06:33:18 +00:00
Liang Qi 8693c07a80 Merge "Merge remote-tracking branch 'origin/5.13' into 5.14" 2019-11-13 07:24:05 +01:00
Liang Qi d140f2f614 Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts:
	examples/widgets/widgets/scribble/mainwindow.cpp
		This amends cb54c16584.

Change-Id: Iaae60a893330524b2973917e23b31f9d51f8bd38
2019-11-13 07:21:33 +01:00
Albert Astals Cid aef07a433f QTableWidget: Fix -Wdeprecated-copy warning
In file included from ../../include/QtCore/qlist.h:1,
                 from ../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/kernel/qobject.h:49,
                 from ../../include/QtCore/qobject.h:1,
                 from ../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/kernel/qcoreapplication.h:46,
                 from ../../include/QtCore/qcoreapplication.h:1,
                 from /src/widgets/kernel/../../gui/kernel/../../corelib/global/qt_pch.h:66,
                 from /src/widgets/kernel/../../gui/kernel/qt_gui_pch.h:48,
                 from /src/widgets/kernel/qt_widgets_pch.h:48:
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h: In instantiation of ‘void QList<T>::node_construct(QList<T>::Node*, const T&) [with T = QTableWidgetSelectionRange]’:
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h:614:13:   required from ‘void QList<T>::append(const T&) [with T = QTableWidgetSelectionRange]’
/src/widgets/itemviews/qtablewidget.cpp:2416:71:   required from here
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h:471:35: warning: implicitly-declared ‘constexpr QTableWidgetSelectionRange& QTableWidgetSelectionRange::operator=(const QTableWidgetSelectionRange&)’ is deprecated [-Wdeprecated-copy]
  471 |     else *reinterpret_cast<T*>(n) = t;
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /src/widgets/itemviews/qtablewidget.cpp:40:
/src/widgets/itemviews/qtablewidget.h:52:24: note: because ‘QTableWidgetSelectionRange’ has user-provided ‘QTableWidgetSelectionRange::QTableWidgetSelectionRange(const QTableWidgetSelectionRange&)’
   52 | class Q_WIDGETS_EXPORT QTableWidgetSelectionRange
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~

Change-Id: Iad959315ad374ef288f5fffd15d6876cb63bce8e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 127ed7e6e0)
2019-11-12 21:52:58 -08:00
Laszlo Agocs 2f81ad9d74 eglfs: kms: Choose unique primary planes for each crtc
Otherwise we end up with using the same plane for multiple crtcs, which
fails (with atomic - planes have no importance when atomic is not enabled).

This fixes systems where we run with atomic enabled and there are multiple
primary planes with their possible_crtcs matching multiple crtcs.

Task-number: QTBUG-74953
Change-Id: I8bcbdd389265d09f8851187881102fb5b9a83b5c
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-11-11 16:39:35 +01:00
Laszlo Agocs 32d8f5310b eglfs: kms: Allow overriding plane ids per crtc
With atomic enabled (QT_QPA_EGLFS_KMS_ATOMIC=1) the plane chosen for
a crtc becomes important. The current logic is pretty broken when there
are multiple planes available with many of them marked as being supported
by multiple CRTCs. Choosing the same plane for multiple crtcs results in
failing the atomic commit. This happens with a RPi4 with two screens
connected, for example. (because there are 2*3 planes: one primary, one
overlay, one cursor for each screen, but Qt is trying to use the same
primary plane with both CRTCs)

The issue does not surface in special environments where there is one
(dedicated) plane per crtc exposed by drm, but becomes apparent on a PC
or on the RPi where the setup described above is the common case.

As a temporary solution allow doing the following:

export QT_QPA_EGLFS_KMS_PLANES_FOR_CRTCS="49,28:78,57"

This would then force using plane id 28 for crtc id 49, and plane id 57
for crtc id 78. (the ids can be discovered either from the eglfs debug
logs, or by checking /sys/kernel/debug/dri/<N>/state)

This is to be complemented with a fix for picking a unique primary plane
for all CRTCs but that's going to be a separate patch. Allowing a manual
override is important regardless since it helps troubleshooting.

Task-number: QTBUG-74953
Change-Id: Ie03f80dac31813f2c4489235d435769dd3d3883e
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
2019-11-11 16:39:25 +01:00
Olivier Goffart bf131e8d21 Do not load plugin from the $PWD
I see no reason why this would make sense to look for plugins in the current
directory. And when there are plugins there, it may actually be wrong

Change-Id: I5f5aa168021fedddafce90effde0d5762cd0c4c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-11 11:05:29 +01:00
Ryan Chu 004e3e0dc2 Make Qt aware of NTFS Junctions on Windows
On NTFS, a junction point can be created and deleted by the mklink and
rmdir commands, respectively. If a directory is not identified
correctly as a junction, then applications will likely try to remove
it using recursive methods, leading to fatal data loss.

With this change, Qt can identify file system entries as junctions,
allowing applications to use the correct file system operation to
remove it.

The test needs to delay the cleaning up of junctions and files it
creates until the checks are complete; since they might fail and make
the test function return prematurely, use a scope guard.

[ChangeLog][QtCore][QFileInfo] Add QFileInfo::isJunction so that
applications can recognize NTFS file system entries as junctions

Task-number: QTBUG-75869
Change-Id: I3c208245afbd9fb7555515fb776ff63b133ca858
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-09 00:47:45 +01:00
Christian Ehrlicher b81863cfad QWaitCondition: fix dummy QWaitCondition implementation
The dummy implementation of QWaitCondition which is used when the thread
feature is not available lacks some functions which were recently added.
So we have to add them now.

Change-Id: I32720e0857a1bd3fcf0e70078404a38dd8a8ca88
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-11-08 20:14:45 +01:00
Friedemann Kleint 8f2db974ab Windows QPA: Fix wrong scaling of fixed size in window creation phase
When a fixed size the window is moved to another screen
by QPlatformWindow::initialGeometry(), the size constraints
would be incorrectly scaled using the initial screen in the handling of
WM_GETMINMAXINFO.
To fix this, pass the resulting screen out of QPlatformWindow::initialGeometry()
and use it during the window creation phase.

Fixes: QTBUG-77307
Change-Id: I149a2a65e816da841a32abc14a495925bf9cc6f6
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-08 16:48:04 +01:00
Simon Hausmann 576c8126ab Avoid erroneous creation of QScopedValueRollback objects
Mark the class as [[nodiscard]] to ensure that instances are given names
and do not destruct (roll back) immediately. This avoids accidental code
like this:

    QScopedValueRollback<Foo>(bar, baz);

which rolls back instantly, when it should be

    QScopedValueRollback<Foo> blah(bar, baz);

which rolls back at the end of the scope.

Change-Id: I00269fe325b804078bd0a9d5058c941af7ba5597
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-08 14:24:55 +00:00
Qt Forward Merge Bot dd1bb0de7b Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2019-11-08 09:11:15 +01:00
Qt Forward Merge Bot 78c687f98e Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I963b5f48b5d6f3500ca379fbd7f1a4290b570175
2019-11-08 09:11:02 +01:00
Johan Klokkhammer Helsing f0a43a9def Make QPlatformPlaceholderScreen a sibling of other screens
This is how the fake screen currently behaves in the xcb plugin. So if we are
to deduplicate, it's probably best to match current behavior first.

I still left an option for not being a virtual sibling in case other platforms
don't support showing a window on a placeholder screen.

Task-number: QTBUG-79711
Change-Id: I4e8b44d892efb85fdb003f1d473d0867442d7e4e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-11-08 08:44:00 +01:00
Eskil Abrahamsen Blomfeldt c17a5cec19 Android: Implement MaximizeUsingFullscreenGeometryHint
This flag tells the app to use as much of the screen as possible
while still keeping system UI visible, and can be supported on Android
by using translucent system UI, similar to iOS.

What this does:
1. It changes the current fullscreen/not-fullscreen logic to
allow three states: fullscreen, fullscreen with translucent
decorations and not-fullscreen.

2. In order for it to work, we have to send the actual
screen geometry and available geometry, at least in the case
where the user needs to know the available geometry to
know the safe area of the window. So we get the real screen
metrics and pass these to the QPA plugin (API level 17, so
we can do that now that the minimum version is 21.)

3. Note that getting the insets and calculating the useable
area does not work for non-fullscreen windows, since Android
is quite inconsistent in this respect. So in this case we
just use the window size and origin of 0,0 for the available
geometry.

4. Since we are touching this code anyway, this patch also tries to use
more consistent wording (calling it "available geometry" everywhere
instead of desktop geometry in some places and just geometry in
others, etc.)

[ChangeLog][Android] Qt::MaximizeUsingFullscreenGeometryHint window
flag is now supported, and will make the window fullscreen, but keep
the system UI on-screen, with a translucent background color.

Fixes: QTBUG-74202
Change-Id: I7a59a6c6fb51ebbdb86e7149e794726e67001279
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-11-08 07:04:43 +01:00
Andre de la Rocha 26f8adb1ee Windows QPA: Avoid returning UI Automation ValueProvider for static text
Static text controls should not return a ValueProvider. Otherwise,
Narrator reads out static texts and announces whether they are
editable or not, which is confusing to users. It should only read
out the text itself.

Fixes: QTBUG-79613
Change-Id: I080cd6a5db10f6f673b50c40ac7d87c3737d9b55
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-07 17:40:12 +01:00
Eskil Abrahamsen Blomfeldt 3e529369eb Support MaximizeUsingFullscreenGeometryHint in resizeMaximizedWindows()
In QPlatformScreen there is a convenience function which resizes windows
when the screen changes. This did not have support for
MaximizeUsingFullscreenGeometryHint and would mistakenly resize these windows
to the available geometry.

Since not all QPA plugins support this hint, we have to add a capability
flag to avoid changing behavior on platforms where it works as intended.

Task-number: QTBUG-74202
Change-Id: Ife88f597fbb3affa722f63ac18fb5719ffa8ed33
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-07 12:43:03 +00:00
Vitaly Fanaskov a866055d18 QHighDpiScaling: impove readability of screenSubfactor method
Task-number: QTBUG-53022
Change-Id: Idae4379dd78d3125c375fad37a5a3af5bbcdc51e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-07 13:43:00 +01:00
Andre de la Rocha ef54abae43 Windows QPA: Fix missing update when the display is sleeping
If an item was updated while the display was in sleep mode then when the
display came back from sleep it would not be updated. This change detects
when the display returns from sleep and repaints the windows to ensure
the updated items are presented.

Fixes: QTBUG-76307
Change-Id: I5fff5209e8a5c359d06ba1df61944690e9475ea6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-07 12:06:00 +01:00
Christian Ehrlicher 72f57cc842 QWaitCondition: mark obsolete functions as deprecated
Mark QWaitCondition:wait(..., ulong) as deprecated so they can be
removed in Qt6. Also replace the usages of this deprecated functions
inside QtCore.

Change-Id: I77313255fa05f5c112b0b40d4c55339cc4f85346
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-07 10:53:16 +01:00
Allan Sandfeld Jensen 52a3f1b00c Fix accuracy of ARGB32->A2RGB30 conversions
It was converted over ARGB32PM, when it should have been directly
converted to not lose accuracy, instead there was an unnecessary direct
ARGB32->RGB30 conversion, which was converted to the necessary type.

This also improves the selection of conversion over ARGB32PM or RGBA64PM
for ARGB32 and RGBA8888 by using 32-bit conversion when alpha is not
relevant.

Change-Id: I5990d8a23b2909d3910d8c1213fa46477742b052
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-11-07 10:42:08 +01:00
Edward Welbourne 1c4626f830 Rationalize descriptions of date-time formats
Document QDateTime's methods by reference to QDate and QTime, to avoid repetition.
Use consistent descriptions between toString() and fromString(), in each case.
Document the truth: various things were simply wrong, in at least some copies.

Change-Id: Ie80017250cd470f65733f96d182ed7d043694f0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-07 10:34:24 +01:00
Andy Shaw 3916b8a28b iOS: Account for UITextInteraction when building against 12.x or lower
In iOS 13.0 we can handle UITextInteraction as normal, but in lower
versions it is not available to utilize at compile time. So we have to
check for the other types instead and return if it is not one of those.

Change-Id: Icbc5558e677ed40c03f30a174e2d79b87f489f68
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-07 10:33:27 +01:00
Sona Kurazyan fa2c9a27e2 Move out the reusable part of QDomHandler to a new class
QDomHandler implements methods for building the DOM tree. These
methods can be reused also in the new QXmlStreamReader-based
implementation. They are moved to a new QDomBuilder class and
QDomHandler become a wrapper around it.

Task-number: QTBUG-76178
Change-Id: I01956c209ae253b69c23f20d90a5befe7b5329a0
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-07 08:39:33 +00:00
Vitaly Fanaskov ed20f32098 QHighDpiScaling: fix potential null pointer dereference
It's not guaranteed that QPlatformScreen::screen should always return a
valid pointer. Furthermore, you can run into this situation with, for
example, two screens setup.

Task-number: QTBUG-53022
Change-Id: Ic23bb2c30b1245f98a793a44cc5e0b39f9afac4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-07 09:07:16 +01:00
Qt Forward Merge Bot 75f791419c Merge "Merge remote-tracking branch 'origin/5.13' into 5.14" 2019-11-06 19:44:29 +01:00
Mitch Curtis 78ed3a12db Fix typo in QLoggingCategory documentation
Change-Id: Id147e6f4c25a75eed5456390819f340d8d20172c
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
2019-11-06 14:33:20 +01:00
Qt Forward Merge Bot e3cc16e9fb Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts:
	.qmake.conf
	mkspecs/features/mac/default_post.prf
	src/corelib/tools/qsimd_p.h
	src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
	util/qfloat16-tables/gen_qfloat16_tables.cpp

Change-Id: If48fa8a3bc3c983706b609a6d3822cb67c1352a4
2019-11-06 11:41:19 +01:00
Edward Welbourne 3c7df4a0ff Add support for a signaling NaN in qfloat16
There was a comment saying what value does the job, so might as well
put it to work.

Change-Id: I47f1a8ce7ce889580f71aa784ccbcc227ebe0b23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-06 11:37:02 +01:00
Edward Welbourne 7bf4f81de8 Add qfloat16::copySign() since we can't overload std::copysign()
Change-Id: Idfaf841b3eb3538f076ae4f0de2d7d029e1588fe
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-06 11:36:49 +01:00
Johan Klokkhammer Helsing b7858e9b4b Add QPlatformPlaceholderScreen
...and QPlatformScreen::isPlaceholder()

This class can be used to reduce the amount of boiler-plate required to create
a fake screen when there are no real screens (Qt doesn't currently support
running with no QScreens).

Change-Id: I7290406a3d010bcbaf15a1a8a84216e3abf75c78
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-11-06 11:18:49 +01:00
Andy Shaw 5771b5325b syncqt: Add a means to suspend/resume the processing of a file
Rather than tweaking the parser to cover every eventuality with corner
case lines that could cause incorrect header files to be created then
the means to suspend/resume the processing of a file is added.

This enables us to have it skip over the template line that is causing
a QList header to be created as part of the QtGui headers. This patch
includes the fix to solve this in addition.

Fixes: QTBUG-68129
Change-Id: I751646c4b20a4434347c149ae5e6dcb6e7618853
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-11-06 10:49:24 +01:00
Volker Hilsheimer 4ada4f283e Make QDir::cleanPath documentation less misleading
The code doesn't convert anything that might be a separator on other
platforms (most notably, '\') to '/', it only replaces platform-native
separators (i.e. '\' if running on Windows) with '/'.

Change-Id: I2e241b88b8bd271dfa5d7db61402fe8ef9a6bb6f
Fixes: QTBUG-79736
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-06 08:41:46 +01:00
Christian Ehrlicher 88047be4ec QAbstractItemView: don't toggle selection on mouse move on some index
In single selection mode, the current selection toggled when the user
pressed the left mouse + Ctrl key and then moved the mouse over the
item. This was introduced with 28a21d98ef
which added the possibility to deselect an item in single selection
mode.
Fix it by adding a check if the event was a mouse move event and use the
old codepath for it.

Fixes: QTBUG-77353
Change-Id: Id845ada302c92646885dfd966721b00d940f1260
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2019-11-06 06:59:38 +01:00
Ulrich Ölmann e5078714fe qlibinputtouch: bugfix: do not skip touch events
Having a platform with Texas Instruments's ADS7846 touch screen controller (NXP
i.MX6 DualLite SoC) and a LOGIC Technologies Inc. LTTD800x480 L2RT 7" (800x480
pixels) TFT LCD panel attached to it (resistive touch) using Linux v5.2.17 and
libinput-1.12.6 a single one finger touch starts with a LIBINPUT_EVENT_TOUCH_
DOWN directly followed by a LIBINPUT_EVENT_TOUCH_MOTION both having the same
touch position.

Now Qt's code for touch input processing compressed both into one touch point
with state Qt::TouchPointStationary which resulted in QGuiApplicationPrivate::
processTouchEvent() seeing no touch points with state Qt::TouchPointPressed
anymore. As a consequence processTouchEvent()'s local container windowsNeeding-
Events stayed empty and the whole touch frame was skipped.

Fix this by still compressing into one touch point, but keeping its state as
Qt::TouchPointPressed.

Fixes: QTBUG-79212
Change-Id: Ia571d79ec5c1d6143e923ed69b378503b53e5992
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-11-06 02:05:54 +00:00
Volker Hilsheimer bc4c2382aa QMdiArea: On macOS, render inactive subwindow controls grayed out
The controls were correctly grayed out when the entire window was not
active, but inactive subwindows showed their controls in color, and only
the titlebar had a slightly paler gradient to indicate that they are not
active. MDI is not a concept on macOS and there is no clear style guide
for how such windows are supposed to behave, but the look of the
inactive titlebar before this change is too similar to the active state
for it to be useful.

This change restores the pre-5.11 state, prior to the removal of HITheme
based styling in 8633e1a7b4.

Change-Id: If009bf085a87fe2610d888636348dc8b13a93ec1
Fixes: QTBUG-79648
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-06 01:21:47 +01:00
Tor Arne Vestbø 7f0aaa88ef macOS: Only skip screen reconfigure if primary screen changed
Change-Id: Ia5d208ace5086e8e92f95f859383773894a18768
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit dcbe25bbbb)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-11-05 19:52:54 +01:00
Lars Knoll 66b6e28c01 Use QMultiHash::insert() instead of insertMulti()
Change-Id: I5daeba708a9efcf60e92cfc9a04e80546e9ae6a2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-05 17:32:34 +01:00
Lars Knoll 2faccdf9a6 Don't insert multiple names for the same role
It doesn't make a lot of sense to have two names for the
same role. Use 'fileIcon' exclusively for the Qt::Decoration/
FileIconRole.

Change-Id: Icaa46ba4aa61efc56ba007a14bab5e59ea26cd35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-11-05 16:32:28 +00:00
Lars Knoll dbb54805f6 Deprecate reverse iteration on QHash
std::unordered_map only supports forward iteration for good
reasons. Align our API with this by deprecating reverse
iteration and the operator+/-() for iterators.

[ChangeLog][QtCore][QHash] Reverse iteration over QHash is now
deprecated.
[ChangeLog][Potentially Binary-Incompatible Changes] QHash's
iterator category was changed from bidirectional iterator to forward
iterator. This may cause trouble if a library uses the iterator category
to alter functionality through tag dispatching. This only applies when
compiling the library or application with
QT_DISABLE_DEPRECATED_BEFORE=0x050F00 and the other with a lower value.

Change-Id: I0fb6d017cabdef1bc508e62f76dc2fa73cd3652d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-11-05 17:32:22 +01:00
Shawn Rutledge d1c6f7e5a2 QTextMarkdownWriter: preserve empty lists
You can save a "skeletal" document with list items to fill in later,
the same as you can do in HTML or ODF format.  Reading them back via
QTextDocument::fromMarkdown() isn't always perfect though.

Fixes: QTBUG-79217
Change-Id: Iacdb3e6792250ebdead05f314c9e3d00546eeb9f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-11-05 16:40:18 +02:00
Shawn Rutledge 524ab7b535 Avoid crashing when the end of an empty markdown list is detected
The markdown parser generates empty lists in some cases when a character
that can be used as a bullet is found on a line by itself.
cbEnterBlock() and cbLeaveBlock() are called symmetrically in such cases.
QStack::pop() on an empty stack triggers an assert, so push and pop need
to be done symmetrically too.  But it's difficult to actually create the
list as soon as the MD_BLOCK_UL or MD_BLOCK_OL callback occurs, without
breaking the case fixed in 7224d0e427 (and
probably other cases).  That's because QTextCursor::insertList() creates
a list item at the same time as it creates the list itself, and also
inherits block formatting from the previous block.  We now insert empty
lists with empty items whenever the need for that is detected though,
and there's a failsafe to prevent popping in case something still goes
wrong with that logic.  We aren't strict about reproducing the original
markdown when regenerating it via toMarkdown(), but it's getting closer.

Fixes: QTBUG-78870
Change-Id: Ided194ce7aec2710c60dbac42761ee4169ed9b78
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2019-11-05 16:39:13 +02:00
Andy Shaw b1004c7d0a If only family is set, prefer that in the families list after resolving
If a font with only a family set is resolved with one that has been setup
with setFamilies() then the family needs to be prepended to the families
list after resolving. This is so that the font still prefers the one set
as just a family with no famillies set.

This also amends the QFontDialog test to account for this too.

[ChangeLog][QtGui][Text] Resolving a font that just has a family set
with families set will prepend the family to the families so that it
is still the first preference for the font.

Task-number: QTBUG-46322
Change-Id: Icc4005732f95b2b4c684e592b06b31e133270e44
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-11-05 09:46:29 +01:00
Qt Forward Merge Bot 6f8a97e480 Merge "Merge remote-tracking branch 'origin/5.14' into 5.15" 2019-11-05 01:01:07 +01:00
Qt Forward Merge Bot 92e888f27e Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Icd98de8592828c60cfea3d69f9c7ae2711b9f059
2019-11-05 01:00:54 +01:00
Allan Sandfeld Jensen a3361ac66d Remove old resizing inplace QImage converters
They are highly unlikely to avoid reallocating and moving data, and
working inplace is likely just slower.

Change-Id: I16eb1d54a660e52b145be1ed0b64a3fb636a0002
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-04 23:58:40 +01:00
Christian Ehrlicher 77455a9a8c QProcess: explicitly mark QProcess::error() as deprecated
The signal QProcess::error() was deprecated in Qt5.6 but not annotated
with QT_DEPRECATED_X.

Change-Id: I9dd11c9b8019a0554cb82d6acb6b7e0a01c78123
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-04 10:42:55 +01:00
Kai Koehne accc40f323 Fix check for EGL on INTEGRITY
This fixes a regression introduced in c00487d588.

Fixes: QTBUG-79285
Change-Id: I95f073d019d6e909f8de132ea9f27002043d5d52
Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io>
Reviewed-by: Timo Aarnipuro <timo.aarnipuro@qt.io>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@tqcs.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-11-04 09:44:51 +01:00
Kai Koehne 1d959c0de3 Qt XML: Fix module in comment
Change-Id: Ibb1c0b54c4add118328f9281e2dbbcf9c1c62312
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2019-11-04 09:00:38 +01:00
Andy Shaw 39ed657b63 Query the mouse buttons initially in case the middle button was used
Change-Id: I99a3ef598bdaaba1afb6bf6521d1ceafcc9b603c
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2019-11-03 11:44:08 +01:00
Friedemann Kleint 5436a6f3e0 QNetworkReply: Fix SSL configuration handling
Use QT_CONFIG consistently and enclose
sslConfigurationImplementation(), setSslConfigurationImplementation()
and ignoreSslErrorsImplementation() within QT_CONFIG as well.

This enables a build of Qt for Python with -no-feature-ssl.

Change-Id: Ia699293ab73a5dc86d8dcf95aa5f6369334d36a2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-01 20:13:54 +01:00
David Faure 0fb995492d QImageIOHandler: remove #if around virtual method name()
It makes -DQT_DISABLE_DEPRECATED_BEFORE=0x050d00 (in an application)
trigger a binary incompatible change and crash.

Change-Id: I9b9783d134821697180dc3fd8f2f69a51ddb7ac6
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-01 17:13:20 +01:00
Sona Kurazyan 44a26a0a79 Move the private and internal APIs of QDom to new files
qdom.cpp is too big, move the private classes and internal classes
to new files to make the maintenance and reviews for the upcoming
changes easier.

Task-number: QTBUG-76178
Change-Id: Ibe83bf9104e000d405a07653f4278083e2da648e
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-01 16:37:25 +01:00
Leena Miettinen fa0a79a2bb Doc: Add guidelines for writing Qt tests
Based on https://wiki.qt.io/Writing_Unit_Tests. Some of the
guidelines will be added to the documentation of a particular
class, function, or macro.

Task-number: QTBUG-18368
Task-number: QTBUG-63987
Change-Id: Ied267edc71e370a07f5124ba05432799f595dda6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-01 15:29:13 +01:00
Timur Pocheptsov 1a878e65c2 QSslSocket - remove old OpenSSL backend (< 1.1)
OpenSSL 1.0.2 will stop receiving all support at the end
of 2019. Qt 5.15 is our next LTS thus makes sense remove
OpenSSL 1.0.2 support there. This also allows us quite
a significant cleanup of an old heavily if-defed code
and all 'pre11' suffixed source files.

[ChangeLog][QtNetwork][SSL] Removed OpenSSL 1.0.x support, now 1.1.x is required

Change-Id: I70c70c56cbd8aeff793afe793335696d1b1b7408
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-11-01 14:52:09 +01:00
Peter Varga a54a48e5b8 AtSpiAdaptor: Fix QAccessible::TextUpdated notification
Change-Id: I47e445d085b130121fe44eb2d4afc830de3b884b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-11-01 14:40:27 +01:00
Leena Miettinen 4f45dc762d Doc: Add best-practice-info for using QVERIFY() and QCOMPARE()
From https://wiki.qt.io/Writing_Unit_Tests

Task-number: QTBUG-63987
Change-Id: I7229ac0712d1207c0c9ebdac868c33bb35dcb0f0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-01 14:40:27 +01:00
Adam Sowa efaa4aa2a1 QFile::decodeName(const char *): don't construct QByteArray but use the argument directly
Use QString::fromLocal8Bit(const QByteArray &str) instead of constructing QByteArray to avoid memory allocation and strcpy.

Change-Id: I32bbb47fbc45681c621adaebe8f8574d8f8ad6bf
Fixes: QTBUG-79644
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-01 07:53:07 +00:00
Kari Oikarinen 2d680b27f3 Clarify Q{Abstract,Local}Socket::waitForDisconnected() documentation
Make it clear that the functions will return false if the socket was already
disconnected.

Fix the QLocalSocket example snippet to handle that case correctly by checking
state() before attempting to wait.

Fixes: QTBUG-50711
Change-Id: I4ab4062446a0041a35a3a1d65a19202ffa103298
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-01 10:09:43 +03:00
Lorn Potter 26f9cb7ce5 wasm: take canvas offset into account
This fixes issue with dialogs when the canvas is not at 0,0 in the
browser window

Change-Id: I14f6754746e064921635d6b3af3353bf3620ac44
Fixes: QTBUG-79160
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-11-01 11:03:28 +10:00
Qt Forward Merge Bot 7a13a09116 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ic13ef00d76c81295076bb2432576db70ec84fe29
2019-11-01 01:00:45 +01:00
Leena Miettinen a62a6b9b17 Doc: Update info about QSKIP()
Add a section about using QEXPECT_FAIL() to skip known bugs.

Change-Id: Icf258b6e20add3b68d62e404fd9ac0db70420bf2
From: https://wiki.qt.io/Writing_Unit_Tests
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-10-31 18:28:42 +01:00
Ville Voutilainen 36e277e917 Add a transfer timeout at QNAM level as well
Task-number: QTBUG-3443
Change-Id: Idc4d3c9b1ace69bd8b6456506778116a3e8a5490
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-10-31 19:12:07 +02:00
Friedemann Kleint 37b4c07c70 3rd-Party/Double conversion: Fix developer build with MSVC
Re-apply 72e3d3633e, which
was omitted in 425df43d7f.

Task-number: QTBUG-79418
Change-Id: I0afa9ff9ace5bdc6cea103cf2acba6dbf9a64a72
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-10-31 15:56:08 +01:00
Mårten Nordheim 0ae489053a Turn a local QHash into a QMultiHash
972a0402be was merged before one of its
parent patches which changed this QHash into a QMultiHash. So in 5.14
it would overwrite values instead of adding new entries. No idea if it
has caused or will cause any regressions. But it was an accident so
let's fix it.

Amends 972a0402be.

Change-Id: I6623b0b7924024df148d5c83bcbb612f3e595f56
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-10-31 14:55:44 +01:00
Allan Sandfeld Jensen c0adcf0f22 Fix text-rendering regression on semi-transparent background on Linux
The short-cut for semi-transparent backgrounds has to take precedence
over the disabled gamma-correction short-cut. The order got inversed
in one function during 5.14 refactoring.

Change-Id: I0e54428839428068b602a13eddbf69897ed0797d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-10-31 13:43:54 +00:00
Leena Miettinen f54e97726f Doc: Add notes about Qt Style Sheets taking precedence
...over setting properties on individual widgets.

Task-number: QTBUG-28675
Change-Id: Ic7bfd723ed8970112a9892727170d3bacaa1903f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-10-31 12:56:19 +01:00
Topi Reinio b20956531b Doc: Remove empty section title from QMilankovicCalendar
Change-Id: I01b311cbe67fbb89625beb5a3941a652c9e851ed
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-10-31 11:10:31 +01:00
Volker Hilsheimer 5b20f58c19 Unify QFSFileEngine implementations on Windows and Unix
The functions for standard file system operations simply delegate to
the static functions in QFileSystemEngine, which are then implemented
separately for each platform. There is no need for the wrappers in
QFSFileEngine to be separately implemented as well.

The only noticeable difference between Unix and Windows versions was
the clearing of the meta data in QFSFileEngine::remove, which was only
done on Unix. This is now also done on Windows.

As a fly-by fix, correct the (internal only) documentation about case
sensitivity.

Change-Id: I274b34d5407fdfff2e0a2157bb5220607740a92a
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-10-31 08:59:52 +01:00
Edward Welbourne c3eb521a0f Update UCD data to Unicode 12.1.0's Revision 24
Had to teach the update program to accept category Lm as for
Joining_Transparent, for the sake of a new ArabicShaping.txt entry.
Added three new Unicode versions, several new scripts and a new
word-break class.

Updated UCD's test data for tst_QTextBoundaryFinder.  This left 57
tests failing; I have commented out the data rows for those tests,
pending someone with more knowledge addressing this.

Task-number: QTBUG-79631
Task-number: QTBUG-79418
Change-Id: Ic33d3b3551195d47a84d98e84020f57a68f0b201
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-10-30 17:38:02 +01:00
Tor Arne Vestbø 41226c4c48 macOS: Don't skip display link delivery via GCD during live resizing
We now avoid flushing GL if the exposed size does not match the window
size, so we don't need to halt update request delivery during resize.

Change-Id: Iaa89e67d50c987757a586b5958e08edf71a5dd0c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-10-30 15:46:40 +01:00
Leena Miettinen faff69968b Doc: Add best-practices-info about creating benchmarks
From https://wiki.qt.io/Writing_Unit_Tests

Change-Id: Idc0bafb32690f443e1f49cd4f8efb653d3aa46a4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-10-30 14:51:09 +02:00
Leena Miettinen 949fc2860e Doc: Add best-practices-info about initialization and clean-up
From https://wiki.qt.io/Writing_Unit_Tests

Change-Id: I20027066640ca797a2330f6daa81468f03921a69
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-10-30 14:50:57 +02:00
Kavindra Palaraja 6132b77db9 Doc: Clarify the ownership of a state for addState()
Change-Id: Ibe498c5288faa478a4dba934bc3c403829b337db
Fixes: QTBUG-62445
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-10-30 09:23:27 +01:00
Liang Qi 58f5695084 Update bundled Freetype to 2.10.1
[ChangeLog][Freetype] Upgraded bundled Freetype version to 2.10.1.

Fixes: QTBUG-77466
Change-Id: I1de8b8b03e0ffd0b17eeafff1017df7c638c9279
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-10-30 08:48:18 +01:00
Qt Forward Merge Bot c51ca1d1b2 Merge remote-tracking branch 'origin/5.13.2' into 5.13
Change-Id: Ieb5afc87086758119bcfc8efbe355f5c0a93fc04
2019-10-30 06:52:03 +01:00
Qt Forward Merge Bot a317bff298 Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: Ib4df563fc7b1f7c40f425e0e71180d9517a672be
2019-10-30 01:00:14 +01:00
Andy Shaw be73bdc5d2 Only call ShowCaret if Windows 10 1709 or later is used
This amends cc873ec23a which worked around
a problem that was showing up on earlier versions of Windows. This
extends the workaround up to Windows 10 1703 as the problem was still
occurring up to that version.

Fixes: QTBUG-79143
Change-Id: Ib7eace17fb8e3817c556e2bcd462e37834b1cbcf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
2019-10-29 18:34:08 +01:00
Alessandro Portale d157292f16 Wasm: Fix the markup in wasm_shell.html
Img width and height are separate tags. Alternatively, they could
be defined in the style tag.

Change-Id: I0a4a93b63a99a7b644e9096bb9238739f408c0df
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-10-29 16:12:23 +01:00
Morten Johan Sørvig b56e856d21 Cocoa: rename IsMouseOrKeyEvent -> isUserInputEvent
This matches the intended use of this function. Reformat
to modern Qt style.

Change-Id: I076d2bdb3ac14b346f0dc6934f7a47765badc6b0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-10-29 15:22:46 +01:00
Laszlo Agocs 58a67e4e0a rhi: Move to CBOR in QShader and expand the autotest
Binary JSON is said to become deprecated. Therefore, add support
for CBOR. Binary JSON is still supported for deserialization, so
all existing .qsb files will continue to work, as long as the
binaryjson feature is enabled in the Qt build.

Also makes QShaderDescription comparable. This is important for
tests in particular.

A nice side effect of using CBOR is that .qsb files become smaller.
For a typical Qt Quick material shader this can mean a reduction of
300 bytes or more.

Task-number: QTBUG-79576
Change-Id: I5547c0266e3e8128c9653e954e47487352267f71
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-10-29 15:22:46 +01:00
Tor Arne Vestbø aa91b0083e qpa: Add note about QScreen taking care of primary screen during removal
Change-Id: I31b4ed6e6597e22172dcca7180750f1392b9ad68
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-10-29 11:07:50 +00:00
Qt Forward Merge Bot f3fd887de1 Merge "Merge remote-tracking branch 'origin/5.13' into 5.14" 2019-10-29 11:13:03 +01:00
Andy Shaw ccd3bf0871 Ensure that child windows are visible again when showing their parent
When a window is closed, then it will cause the child windows to be
closed as well as a result. Therefore in order to ensure that they are
shown again as a result, we need to remove the WA_WState_ExplicitShowHide
attribute if the widget was not already hidden before. This enables us to
test for this attribute when calling showChildren(), so that if the
window has a windowHandle then we can make sure that this widget is shown
again.

Fixes: QTBUG-73021
Change-Id: I1186242b889899dfcd38d782a67567348e2055ee
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-10-29 10:45:19 +02:00
Alexandru Croitor 82ee87b7b8 CMake: Fix androiddeployqt support when using add_library MODULE
The recent change to support android with CMake assumes that the user
project will have add_library(foo SHARED), and sets the
CMAKE_SHARED_LIBRARY_SUFFIX_CXX variable to modify the final library
name to contain an ABI suffix.

This did not work when using add_library(foo MODULE), and
androiddeployqt failed saying it can't find the application binary.

Make sure to apply the ABI suffix to MODULE targets. Also cover
the suffix to be added regardless if the language used for compiling
the SO is C or C++.

Amends 52c799ed44

Change-Id: Ic44d67e33a123bd0104d98b368ceda0844474980
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-10-29 08:57:44 +01:00
Andy Shaw 11acbc2c99 sqlite: Update to v3.30.1
Since the patch applied previously is no longer required, we have
removed that too.

[ChangeLog][QtSQL][sqlite] Updated to v3.30.1

Fixes: QTBUG-79416
Change-Id: Ifc3fcc6e1768f80e97a5e0ab4b2aeabddf2ced9d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-10-29 09:17:41 +02:00
Giuseppe D'Angelo 538d5bdf66 Add a getter for QObjectPrivate::threadData
Strictly a temporary measure to deal with cross-module merges.

Change-Id: I344bb3f20f68f04367041834e608669122ff70b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-10-28 21:05:52 +02:00
Ville Voutilainen c33d8bfc99 Add a timeout for transfers
If a transfer timeout is set for QNetworkRequest, downloads
and uploads are aborted if the timeout expires and bytes
haven't been transmitted in either direction.

Task-number: QTBUG-3443
Change-Id: I702d223d673f0c6612343dc9d053815acfcb61b8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-10-28 21:15:43 +03:00
Mitch Curtis d86192e5ba QFontDatabase: improve logging output
Log the style name, add more descriptions of what's being logged.

Before:

Adding font "Lucida Grande" 50 QFont::StyleNormal 0 aa true fixed false

After:

Adding font family "Lucida Grande" stylename "Regular" weight 50 style QFont::StyleNormal pixelSize 0 antialiased true fixed false

Change-Id: I138f1b9f41dc41c528c830d81f8018fc16561631
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-10-28 15:42:29 +01:00
Eskil Abrahamsen Blomfeldt c62dbc0c02 no-thread: Add dummy implementations for stackSize functions in QThread
We recently added a call to setStackSize() in the QML thread, which
revealed that the dummy implementation for this function was missing
in no-thread builds.

Fixes: QTBUG-79571
Change-Id: Ibabb48d9cba73afda0842642045a2961e65523f9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-10-28 13:29:32 +01:00
Christian Ehrlicher 5b22dc71a3 QGraphicsItem: disable deprecated warnings during compilation
The previous commits which deprecated the function forgot to add
QT_WARNING_PUSH/QT_WARNING_POP around the affected code.

Change-Id: I042a2bcd40afe2e5fe517954be26a02fd048b563
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-10-28 13:09:40 +01:00
Morten Johan Sørvig 9cb823cd0f QTestLib: basic WebAssembly support
Disable the crash signal handler. This makes it possible
to run auto-tests in the browser.

Long-running tests may cause the browser to interrupt
or display the “a web page is slowing down your computer”
message, or not produce any console output while the
test is running.

Change-Id: Ifd53b744bd3652abfb466b78992ce2371eca2536
Task-number: QTBUG-68504
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-10-28 11:52:57 +00:00
Qt Forward Merge Bot 08f90adffd Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts:
	src/corelib/serialization/qjson_p.h

Change-Id: I83cea141a4de8b3998478bfded84ca9029f7a2a9
2019-10-28 10:50:03 +01:00
Tor Arne Vestbø 4b346aedf8 macOS: Deliver update requests even when view or layer needs display
This was a workaround to prevent visual artefacts from flushing GL
during window resizing, but now that we skip the flush entirely in
this situation we don't need to limit the update request delivery.

Change-Id: I84bd48e4e2fc5a03e9d27d5f9b4b32b8098e56a5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-10-28 11:48:40 +02:00
Qt Forward Merge Bot 7920397f0c Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I7803400aa500363fbaa57b0661315064bd3239d9
2019-10-28 01:00:42 +01:00
Tor Arne Vestbø dcbe25bbbb macOS: Only skip screen reconfigure if primary screen changed
Change-Id: Ia5d208ace5086e8e92f95f859383773894a18768
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-10-27 20:19:01 +01:00