Commit Graph

31458 Commits (2bf5e2edbb67d6bc0ad021f79c2ff3939a174669)

Author SHA1 Message Date
Liang Qi 54b1f1d199 Merge remote-tracking branch 'origin/5.14.1' into 5.14
Conflicts:
	mkspecs/features/create_cmake.prf

Done-With: Artem Pisarenko <artem.k.pisarenko@gmail.com>
Change-Id: I2ecb9fdca06fe687be8ab3457a58dd81e5e81c4c
2020-01-28 09:16:11 +01:00
Venugopal Shivashankar 1ed802e3b8 Doc: Update the stylesheet reference for widgets and richtext
Add the Qt-specific properites to the list.

Fixes: QTBUG-37938
Change-Id: I178de6cd5e17cd282a20ccee9ce8355f540c38a1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-01-27 11:14:01 +00:00
Indiana Kernick ba1e880fbb QScrollArea: fix off-by-one error in ensureWidgetVisible
If focusRect was 5 pixels past the right side of the viewport, then the
scroll area would need to be scrolled by 5 pixels. The error arises
because of this:

focusRect.right() - d->viewport->width() == 4

focusRect.right() is still inside the rectangle but width is not.
So one has to be added. Likewise for focusRect.bottom() and height.

Change-Id: Ice47a7758d136b2e4bdcbe25a33a015b37f500c1
Fixes: QTBUG-80093
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-01-25 17:40:34 +10:30
Andy Shaw bb42b7d8b2 Make sure the focus is passed on correctly when back-tabbing
When the tested widget has a focus proxy, then we should check if the
current focus widget is not the same as that focus proxy before setting
it to be the widget that gets focus. This ensures that when back-tabbing
from a widget like QDoubleSpinBox that it will not get stuck inside that
widget and will back-tab to the next correct one.

Fixes: QTBUG-81097
Change-Id: I3f689c7715da7f3ce8c3d2f616041528f5778a2f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-25 08:10:32 +01:00
Assam Boudjelthia 236a47ff7a Android: JNI_OnLoad return JNI_VERSION_1_6 instead of JNI_VERSION_1_4
Update instance of old code using JNI_VERSION_1_4 to make the code
consistent.

Change-Id: I779696738caa3b844f4adf33104b4328dba748a5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2020-01-24 13:14:19 +00:00
Edward Welbourne 08d4caadd7 Prepare callers for QChar-to-QString change in some QLocale returns
The assorted characters making up numbers can potentially need
surrogate pairs for their encoding, so Qt6 shall make the methods
returning them return QString instead of QChar. Prepare callers of
these methods to cope when that happens.

This follows up on commit f91af791cc,
which announced the intent to change the return type.

Task-number: QTBUG-81053
Change-Id: I99896c1d4fc2e24758c6486eaca32fd915b9a673
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-23 19:44:09 +01:00
Edward Welbourne ca85e1246e updateSystemPrivate(): fix handling of empty string as non-null QVariant
QSystemLocale::query() can return an empty string for PositiveSign on
Windows, apparently. In any case, we shouldn't be taking .at(0) of a
QString without checking it's non-empty.

Fixes: QTBUG-81530
Change-Id: I4d496a2650362f225d02998bd7b8be9fd783edb4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-23 19:44:09 +01:00
Giuseppe D'Angelo e83c4e8138 QXmlStreamReader: fix memory leak
On some inputs a QXmlStreamReaderPrivate may allocate another
QXmlStreamReaderPrivate as its entityResolver. Which, recursively,
may allocate yet another one.

This "chain" of QXmlStreamReaderPrivate objects was managed using
raw pointers, and a leak was possible by resetting one of
these pointers to nullptr without freeing the corresponding object.

Change-Id: I2c6e1f023a2ed68b2b1857db25c53cce7f6bd3e7
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-01-23 19:44:09 +01:00
Giuseppe D'Angelo 4d8a515a23 QXmlStreamReader: early return in case of malformed attributes
There's no point at keep raising errors after encountering the
first malformed attribute.

Change-Id: Idb37e577ea96c3bd850b3caf008fe3ecd57dd32e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-23 19:44:09 +01:00
Allan Sandfeld Jensen 2d57dc2f33 Allow benign errors when writing PNGs
Otherwise we can end up not writing anything due to recoverable libpng
error reports.

Change-Id: I4d4db42305482babffbe2bcf25535a35b51502a9
Fixes: QTBUG-81604
Reviewed-by: Boudewijn Rempt <boud@valdyas.org>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-01-23 18:44:09 +00:00
Andy Shaw 0b28f1e3ba Fix QLocale::system() and uiLanguages() for the mobile platforms
On iOS, it was no longer using the Cocoa specific code needed to get
the locale and uiLanguages information so this functionality is brought
back as it was accidently lost.

In addition, this has a side-effect of fixing a problem with Android
versions below API 24 where it has no UiLanguages functionality so it
gets the information based on the system locale as a fallback.

Fixes: QTBUG-81307
Fixes: QTBUG-81357
Change-Id: I1709675b5bd5e9cedefb99eaec28279f20a347a4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-01-22 22:16:50 +01:00
Tor Arne Vestbø d0e9e5a36e macOS: Work around CoreFoundation failing to resolve bundle resources
When a framework is loaded from a Samba share CoreFoundation will fail
to resolve its Resources directory, and hence its Info.plist, which
means we can't look up the bundle by id.

Until this has been fixed in CoreFoundation and/or the macOS Samba
implementation we work around it by manually looking for QtCore.

This fixes our particular use-case of finding QtCore so we can resolve
the relocatable prefix, but there's still a potential issue if any other
code tries to use CF for bundle lookups. We don't seem to have any of
those in Qt itself, but this should be kept in mind if we see similar
issues in the future.

Change-Id: I8fd471e44f6afe33a7459ce550f0fcec9acfefb4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-01-22 17:58:33 +01:00
Tor Arne Vestbø db81129240 macOS: Remove doc references to the Carbon framework
Change-Id: I4d496acfc3d810d6334baba99cd697168bef0b75
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-22 17:26:23 +01:00
Alexandra Cherdantseva 0a4c5b5119 wasm: fix redundant string conversions between wasm and JavaScript
Avoid redundant conversions from UTF16 to UTF8 to UTF16 with
help of new class QWasmString static methods:
+ QWasmString::fromQString to convert QString to js string
using js Module.UTF16ToString
+ QWasmString::toQString to convert js string to QString
using js Module.stringToUTF16

Fixed document.getElementById calls for cavasId with unicode characters.

Change-Id: I3fc55bfeb6aeda75fa3acd85d22cea667b542f38
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-01-22 19:26:22 +03:00
BogDan Vatra 3bbd21ccc4 Release the local ref immediately
The local refs are released by the JVM when we exit the function, but if
we need tons of local refs, JVM will not be happy.

Fixes: QTBUG-81077
Change-Id: Ic38a5be1a563cb9c2465f9f902ff6ae6c61e698b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-01-22 10:07:32 +02:00
Friedemann Kleint 6c23f006e0 Windows QPA: Prospective fix for crash occurring when changing screen during session lock
Check on currentScreen in QWindowsWindow::checkForScreenChanged().

Fixes: QTBUG-80436
Change-Id: I19e34b9e2c32c9cfc8e5e5b758783c0ab89d5556
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-01-22 09:07:25 +01:00
Andy Shaw f59ef938ce Fix CVE-2019-19880 in SQLite
Fixes: QTBUG-81565
Change-Id: I6bf2364e696315e5262d1abfa2f0b6947f14a33b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-22 09:07:17 +01:00
Venugopal Shivashankar 21ee3b17b7 Doc: Add the line-height CSS property to the list
Apparently, it is one of the text CSS properties
that Qt supports.

Fixes: QTBUG-34053
Task-number: QTBUG-34053
Change-Id: I3076ab2f51f1519f41610b1e81dfecbb8dbc0256
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-21 11:05:37 +01:00
David Edmundson 6c7e121738 Revert "Do not read Xft.dpi on platforms that shouldn't be using Xft settings"
This reverts commit c7fec68e19.

This commit introduces a behavioural change within 5.14.

It's designed to special case plasma with a fix, but in practice it will
cause us more problems.

It will break:
 - font size on plasmashell and kwin on xcb which do not use Qt scaling
 - xwayland on projectors/headless tests

The original bug of double scaling that this was trying to fix is fixed
by b31852c4ca which is in 5.14.1 which
works in combination with the environment variables we set in plasma so
this is not needed.

Fixes: QTBUG-81532
Change-Id: I2f1b8ae4aecf7b80be4dbee812e6b4a64244fb1f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-01-20 12:41:51 +00:00
Thiago Macieira bab1473b7e Doc: QPluginLoader: remove the claim we search the current dir
Commit bf131e8d21 removed it and it's a
good thing.

Change-Id: Idc3fae4d0f614c389d27fffd15ea245420035e66
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2020-01-18 22:34:33 -08:00
Sze Howe Koh 520f7bb832 Doc: Fix QSql*Model snippets
- QSqlQueryModel docs contained a snippet about QSqlTableModel.
- Snippet #25 was about QSqlTableModel, but it was previously unused.
- This patch ensures that snippet code matches the corresponding text
  descriptions.

Change-Id: I2a5ffbe0978ef9b8d0b027db59647b824e52d214
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-01-19 07:19:47 +08:00
Andy Shaw 54c713e58f Android: Respect the --no-build option for APK packages
Fixes: QTBUG-80884
Change-Id: I90bc3100aeb85089256ce414434c98753e02c79c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-01-18 14:02:07 +01:00
Thiago Macieira e6f1fde24f QLibrary/Unix: do not attempt to load a library relative to $PWD
I added the code in commit 5219c37f7c to
find libraries in a haswell/ subdir of the main path, but we only need
to do that transformation if the library is contains at least one
directory seprator. That is, if the user asks to load "lib/foo", then we
should try "lib/haswell/foo" (often, the path prefix will be absolute).

When the library name the user requested has no directory separators, we
let dlopen() do the transformation for us. Testing on Linux confirms
glibc does so:

$ LD_DEBUG=libs /lib64/ld-linux-x86-64.so.2 --inhibit-cache ./qml -help |& grep Xcursor
   1972475:     find library=libXcursor.so.1 [0]; searching
   1972475:       trying file=/usr/lib64/haswell/avx512_1/libXcursor.so.1
   1972475:       trying file=/usr/lib64/haswell/libXcursor.so.1
   1972475:       trying file=/usr/lib64/libXcursor.so.1
   1972475:     calling init: /usr/lib64/libXcursor.so.1
   1972475:     calling fini: /usr/lib64/libXcursor.so.1 [0]

Fixes: QTBUG-81272
Change-Id: I596aec77785a4e4e84d5fffd15e89689bb91ffbb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-18 05:00:48 -08:00
Paul Wicking 9c172af7d5 Doc: Update text that refers to deprecated member function width()
* Add see also links from the deprecated function to the replacement.
* Change introduction text to reflect new function name rather than the
  old and deprecated width().
* Change see also and inline references to width(), so that they now
  refer to horizontalAdvance().

Task-number: QTBUG-65141
Change-Id: Iadfbc517e5df96e32058516f8795bd210cc4c5e4
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-01-17 14:19:03 +01:00
Paul Wicking fd31e4ce43 Doc: Display correct include for QWindowsWindowFunctions
Fixes: QTBUG-55412
Change-Id: I3a38fa26911b1c151af9f0b47f1be602058aa4af
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-01-17 14:19:00 +01:00
Nico Vertriest 28f95d4688 Doc: Fix qdoc compilation errors qtbase
Task-number: QTBUG-79824
Change-Id: I5a39525e3e735415ba96e2d585c5de754deb15de
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-01-17 12:56:08 +00:00
Volker Hilsheimer 89312b2eab Remove unused parameters from default-synthesized members
Fixes build error with gcc when compiled with -Werror=unused-parameters.

Change-Id: I12c3ecb30f489986b112f9736caec40aa50c7283
Fixes: QTBUG-81465
Reviewed-by: Liang Qi <liang.qi@qt.io>
2020-01-17 11:31:55 +01:00
Giuseppe D'Angelo a3b2eac380 QColor: add casts to ushort
Silence lossy conversion warnings on MSVC.

Task-number: QTBUG-80997
Change-Id: I0e5778b9f20b599de6fc8894c4b98fbc1b1510b9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-01-17 11:16:17 +01:00
Topi Reinio 5dc16d1324 Doc: Fix ButtonRole enum docs for QMessageBox and QDialogButtonBox
Multiple topic commands (in this case, \enum) do not work across
different classes.

Reuse the documentation comment via an \include statement instead.

Fixes: QTBUG-78910
Change-Id: Ife83bdc9bbad650835fafc072180d10037648d0a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-17 01:11:21 +00:00
Edward Welbourne c0ea88a677 Fix MS-Win system locale code to return QString for numeric tokens
QSystemLocale::query() is specified to return a QString (wrapped in a
QVariant) for the various tokens used in formatting numbers (zero
digit, signs, separators) but the MS-Win back-end was returning QChar
(wrapped as QVariant) instead, using the first UCS-2 code-point of the
string (even if this was the first of a surrogate pair). The same
error shall be perpetrated by its caller, but we can at least DTRT in
the back-end, ready for the coming fix (in Qt 6) to its caller.

In the process, eliminate some local variables that shadowed a member
variable and adapt number-conversion to cope with surrogate-pair
digits. Optimised the latter for the case where zero is "0".

Change-Id: Idfb416c301add4c961dde613b3dc28b2e31fd0af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-16 10:28:08 +01:00
Giuseppe D'Angelo 9f1948f59b QRegularExpression: fixup docs of wildcardToRegularExpression
Fix a couple of typos, and add a paragraph explaining
that there is no need of anchor the pattern again; a wildcard
is always anchored.

Fixes: QTBUG-81396
Change-Id: Ia67dc7477a05a450bdcc3def1ebbacce2006da4d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-15 22:59:00 +01:00
Kari Oikarinen 4f55c41816 Merge 5.14 into 5.14.1
Change-Id: Ie90edfd16f48e1907fd18288473ac403f62b9032
2020-01-15 19:08:18 +02:00
Fabian Kosmale a4fb128b73 QSequentialIterableImpl: support append
Task-number: QTBUG-80916
Change-Id: I87e74da0ce454e56b5fe94d9db3693a587d35edf
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-01-15 10:09:00 +01:00
Nico Vertriest 7a59d6f138 Doc: Correct non-link related qdoc compilation errors
Task-number: QTBUG-79824
Change-Id: I94dc566c9fb11bc8c598c0d5c043b6f388ebdc80
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-14 16:38:48 +00:00
Morten Johan Sørvig b31852c4ca Restore QHighDPIScaling::isActive() 5.13 behavior
In 5.13, isActive() would become true only if there
was a scale factor >1 present. This was accidentally
changed in 5.14, where isActive() becomes true whenever
e.g. AA_EneableHighDpiScaling is set, no matter the actual
scale factor values.

Change-Id: Iacbe2010cddbc3b9015ac24004ae2fe417d4f434
Fixes: QTBUG-80967
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-14 15:24:43 +00:00
Tor Arne Vestbø 8298118c52 macOS: Move palette setup into platform theme
The theme was the only client, so there's no point in keeping it separate
from its only call site.

Change-Id: I4783c5db6975ad2daaede704ab5855c57f190344
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-01-14 15:41:00 +01:00
Friedemann Kleint 21a14767b3 uic/Python: Fix missing QCursor import
Fixes: PYSIDE-1182
Change-Id: I1ccc524a152ea75508166f3d2c0c60f8d829cd8f
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2020-01-14 14:17:52 +01:00
Edward Welbourne 7b3d0abfa2 Do fewer calendrical calculations in QDateTimeParser::setDigit()
It was calling a QDate's year(), month() and day() methods, each of
which repeats most of the same calendrical calculations; and the same
results can be obtained from the calendar's partsFromDate() all in one
go. This also reduces the number of local variables needed.

Change-Id: I8f84e66a5f677f55cb2113c56ebbdf7c2517e828
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-14 10:47:05 +01:00
Friedemann Kleint 01d24eea09 Windows QPA: Fix co-existence of several Qt versions in an application
Change qtbase/ef54abae43db79792b40dfdca30ac0fa1b582354 added a
new dummy message window for power notification. This causes the
static class name conflict check to assume there is no conflict
since it does not exist in previous Qt versions.
Change it to perform the for each class name.

Fixes: QTBUG-81347
Change-Id: I290806d021ac7de130a41e996d03b8fb4eb2c437
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-01-14 09:54:19 +01:00
Friedemann Kleint 2f366a63b2 Windows QPA: Fix message box and other system sounds
Re-add the code hooking into
QWindowsUiaAccessibility::notifyAccessibilityUpdate()
which was removed by
0cf6297c15.

Fixes: QTBUG-81342
Change-Id: Ie97d7cca5b774196d53b675c92d84f4ce208f987
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-01-14 09:54:04 +01:00
Cristián Maureira-Fredes 3f6275960c uic: add customwidget imports support for python
Fixes: QTBUG-81073
Change-Id: I29659481b14927ffcb8f2cb1829b577a67e4b937
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-14 08:11:53 +01:00
Paul Wicking 99b3966319 Doc: Add note about mac-specific behavior for setWindowIcon
Fixes: QTBUG-74985
Change-Id: I7379865ab9564301c1e636ba1fda40cbb9e04c61
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-14 06:52:29 +01:00
Christian Ehrlicher 9dcbf2cf5c QScrollBar: allow scrolling any scrollbar with any mouse wheel
The most common mouse wheel movement corresponds to angleDelta().y().
We have previously allowed the user to use either wheel to scroll either
a horizontal or a vertical scrollbar when the mouse is hovering over it;
but 7d29807296 changed it so that the
vertical mouse wheel could no longer scroll a horizontal scrollbar.
The behavior is now restored as it was in
59cc316620.

Task-number: QTBUG-81007
Change-Id: Ieacdce539d5311499a86af645bbe0d5098e16be6
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-01-13 16:40:34 +01:00
Paul Wicking 9233ffa2d1 Doc: Don't document QTextStreamManipulator
Fixes: QTBUG-81002
Change-Id: Ic7d0516a25a8a6e63e1a305ca87498948d41013c
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-01-13 15:29:06 +01:00
Shawn Rutledge 41b44c6f21 doc: explain QWheelEvent::angleDelta() more thoroughly
It has been a QPoint for a long time now, to support both the usual
vertical mouse wheel and also the wheel tilt for horizontal scrolling,
or the actual horizontal wheel if the mouse has one, or the simulation
of a horizontal wheel via touchpad gestures; but the docs continued to
read as if it was just one value.

Task-number: QTBUG-71575
Change-Id: I3efa686ace4f09c7f237f72bf0500fbfbd3213cb
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-01-13 15:28:31 +01:00
Edward Welbourne 04f6073da2 ICC compile-fix for __builtin_add_overflow()'s parameter type
Based on Glen Johnson's patch, but rearranged to avoid repetition.

Fixes: QTBUG-81248
Change-Id: I9c23ab233ebd5514bc05fd155999597ada7295ef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-13 13:06:15 +01:00
Thiago Macieira f936ca4f86 qglobal.h: remove non-ASCII quotes from comment
Because MSVC warns. Added by me on commit.
c496fee2a5

Fixes: QTBUG-81310
Change-Id: I596aec77785a4e4e84d5fffd15e93a8e367e035e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-01-13 02:36:08 -08:00
Rainer Keller 76fbe75abe Remove empty block at beginning of imported markdown
An empty QTextDocument already contains a block; so when the formatting
is fully determined, if the document is still empty, then instead of
inserting a new block, we can set formatting on the cursor, which
affects the pre-existing block, before inserting text.  This avoids
leaving a blank line (the default block) above the inserted content.

Fixes: QTBUG-81060
Change-Id: I14e45e300a602493aa59680417d74d4c2b25862d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-01-13 09:25:39 +01:00
Alexandra Cherdantseva 18e06c37e1 wasm: do not get canvas as property of js global object
You cannot be sure that property with specified key in
a global object is really a canvas.
Should use `document.getElementById`.

Change-Id: Ife55adaad5517aed64122b0c9bff32489cf19a2f
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-01-13 11:07:21 +03:00
Morten Johan Sørvig 3d1e257770 Wasm: Support event loop wakeup from secondary threads
Minimal fix for the missing wakeup issue, in leu of
a new event loop implementation.

So far, emscripten_async_run_in_main_runtime_thread_
looks to be our option for scheduling calls on the
main thread. This function is available on emsdk 1.38.22
and higher.

Requires making from QEventDispatcherUNIX::wakeUp()
non-final. The future event dispatcher implementation
will not inherit QEventDispatcherUNIX, so this is a
temporary change.

Fixes: QTBUG-75793
Task-number: QTBUG-76007
Change-Id: Ie6f6ee6f7674206fc0673a4fe866ac614432ab65
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-01-12 21:38:21 +01:00
Giuseppe D'Angelo 2f536411d8 QRegularExpression: minor doc fixes
Amends d24a1d4323

Change-Id: I108f85b174e21ef71bf269fb9f6725972e76f107
Reviewed-by: David Faure <david.faure@kdab.com>
2020-01-12 12:29:58 +01:00
Giuseppe D'Angelo 577d698b8e QString::isLower/isUpper: redo the implementation
Use QStringIterator rather than indexed loops. This fixes handling of
non-BMP code points (which may be lower or uppercase, see the test).

Change also the semantics of the functions, adopting Unicode §3.13
definitions: a string is lowercase/uppercase if it's equal to its
own toLower/toUpper folding.

As a side effect, empty strings are now correctly reported to be
lowercase AND uppercase.

[ChangeLog][Important Behavior Changes] The semantics of
QString::isLower() and QString::isUpper() have been changed to match the
Unicode specification. Now lowercase (resp. uppercase) strings are
allowed to contain any character; a string is considered lowercase
(resp. uppercase) if it's equal to its own toLower() (resp. toUpper())
folding.  Previously, a non-letter character would make the string not
lowercase nor uppercase, and the mere presence of an uppercase (resp.
lowercase) letter would make isLower() (resp. isUpper()) return false,
even if the letter wouldn't change under case folding.  As a
consequence, now empty strings are lowercase and uppercase.

[ChangeLog][QtCore][QString] Fixed a number of bugs of
QString::isLower() and QString::isUpper(). Empty strings are now
correctly reported to be lowercase (resp. uppercase), and strings
containing code points outside the BMP are now correctly handled.
Note that the behavior of these functions has also been changed.

Change-Id: Iba1398279a072399a9f21295fe75f6e414f3f813
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-11 19:28:50 +01:00
Friedemann Kleint c584380c69 Windows QPA: Update documentation on command line options
Sort alphabetically and add recent relevant options with version
information.

Change-Id: I10c8cc82ce357775ed68cb811a0c906cd38633a5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-10 19:24:11 +01:00
Friedemann Kleint c4a9429be7 Fix developer build with clang-cl failing due exception spec
Clang does seem to understand  __declspec(nothrow) as
used by the COM macros like STDMETHOD. Suppress the warning,
fixing errors like:

qwindowsfontenginedirectwrite.cpp(105,24): error: 'AddBeziers' is missing exception specification '__attribute__((nothrow))' [-Werror,-Wmicrosoft-exception-spec]

Task-number: QTBUG-63512
Change-Id: If582cb0c12c62a7d12c4ae702747aac1f735db3c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-01-10 08:26:57 +01:00
Christian Ehrlicher efff8ff57a QFileSystemWatcher/win: watch also for attribute changes of directories
The windows filesystemwatcher did not watch for attribute changes for
directories (e.g. hidden flag) so it was not in sync with other
backends. Fix it by adding FILE_NOTIFY_CHANGE_ATTRIBUTES to the watch
flags when watching a directory.

[ChangeLog][QtCore][QFileSystemWatcher] Fixed a bug that caused QFSW not
to watch for attribute changes on Windows. Now it will correctly report
when files and directories become hidden or unhidden, for example.

Fixes: QTBUG-80545
Change-Id: I31767a0da899963e3940b4f5b36d1d581e6aa57c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-10 06:24:14 +01:00
Andy Shaw 1c75f59588 iOS: Handle positionFromPosition out of bounds
Based on the documentation for positionFromPosition, if the resulting
position is less than 0 or longer than the text, then we should return
nil. This fixes problems with placement of the cursor and selection
rectangle when auto-completion is used.

Fixes: QTBUG-79445
Change-Id: I44a18881527a8a22012fe5fcbbc3216e60c48bc9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-09 15:28:43 +01:00
Jani Heikkinen 1e42c97cf0 Bump copyright year
Change-Id: I9468ef21a2cf03cf07c38f012a2aa9bae6d02a03
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-09 14:41:53 +02:00
Edward Welbourne 11c5c078c7 Eliminate QLocale's default_number_options global static
It had create()'s default number options when passed to create, so
wasn't useful then; and otherwise shadowed the value held by the
cached private for the default locale. Noticed in the course of adding
an analogous global for the system locale.

Drive-by - eliminated a redundant language != C check.

Change-Id: I5601dc09188804c11dede5be460bfdd12b8152ce
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-09 11:15:50 +01:00
Edward Welbourne 0f80452b92 Improve QLocale method documentation
Add missing \sa lines, clarify what the exponential character is and
mention that C is an exception to the "no number options set".

Change-Id: I13ca483a07738908640408e0ca512de31586cec9
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-09 11:15:07 +01:00
Edward Welbourne f91af791cc Add advance warning of change of return types coming in Qt6
The QLocale methods that report the fragments used in making up
numbers all return QChar. A note dating from before Qt5 times warned
that we need to change these to return QString (since we might need a
surrogate pair to represent the relevant characters). Give advance
warning in the documentation that this shall happen at Qt 6.

[ChangeLog][QtCore][QLocale] decimalPoint(), groupSeparator(),
percent(), zeroDigit(), negativeSign(), positiveSign() and
exponential() still return QChar but shall be changed to return
QString in Qt 6. Callers are encouraged to switch to QString early,
exploiting the QString(QChar) constructor.

Task-number: QTBUG-81053
Change-Id: Ia802c7665676ecf13669c6a6f173f2e70eac578e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-09 11:13:59 +01:00
Pasi Petäjäjärvi 6224130cc8 Add touch input device mapping support via QT_QPA_EGLFS_KMS_CONFIG
To be feature parity with evdev touch which already supports this

Change-Id: Ie7f9c868ea888725b24c3855106e1c0c0ba943a9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-01-09 12:06:33 +02:00
Edward Welbourne 6f1ae59ee6 Change getMacLocaleName() to return a QString
Returning a QByteArray required doing a toUtf8() to a QString on one
of its paths, which was promptly undone by its caller using
fromUTf8(), since a QString was needed anyway.

Drive-by - remove spurious default for parameter in method definition.

Change-Id: I45f553d74cd0ba9dab25c439ba8291c00b7ceb5b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-09 10:55:54 +01:00
Samuli Piippo 2385ab73be QInputDeviceManager: initialize device counts
The device counts were used before they were initialized, causing
problems e.g. with mouse cursor.

Fixes: QTBUG-81207
Change-Id: Ic9dadcaebeb4c4a64bb506e4236d5a9260e0fdbc
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-09 10:45:48 +02:00
Lars Schmertmann 34e467b481 Remove dead code to fix a lint warning
Obsolete SDK_INT Version Check
------------------------------
This check flags version checks that are not necessary,
because the minSdkVersion (or surrounding known API level)
is already at least as high as the version checked for.

The mindSdkVersion in templates/AndroidManifest.xml is 21 for Qt 5.14
and androiddeployqt also ensures that the minSdkVersion is not below 21.

Change-Id: I452de5b152f572efc69e6b292a8b15dbbfba639b
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
(cherry picked from commit b8e404f6d0631e04d30a864dc68b0574bfca90f1)
2020-01-09 08:04:41 +01:00
BogDan Vatra 3b54009b13 AAB files can be signed only with jarsigner tool
Fixes: QTBUG-80406
Change-Id: I04b99477c744e7dd729a791c81194b90c4ec658a
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-01-09 08:26:50 +02:00
Andre Hartmann 1edf8bc465 QObject: Replace more 0 and NULL with nullptr
... in docs, comments, and warnings. Also adopt
some occurrences around there and in the snippets.

Change-Id: Icc0aa0868cadd8ec2270dda794bf83cd7ab84160
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2020-01-09 02:33:08 +01:00
Tor Arne Vestbø 7b092b3fe3 Remove clearWidgetPaletteHash argument from setPalette_helper
The argument is only used when the application palette is set,
(as opposed to setting the palette for a specific widget class),
and that code path is only triggered from QApplication::setPalette,
which passes 'true' for this argument.

Change-Id: I67a1cc3741f6f62653b0f95ff88d28228f9977d4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-09 02:33:08 +01:00
Tor Arne Vestbø 2a02487ff0 Move tracking of widget specific app palettes to QApplicationPrivate
Change-Id: I43cc25207026f174e46534baedf08e0c300728d1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-09 02:33:08 +01:00
Tor Arne Vestbø 0c37bc11b5 Share updates to QGuiApplicationPrivate::app_pal via helper function
Change-Id: I2f582358efaadcd33b39c52317222322c589423f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-01-09 02:33:08 +01:00
Inho Lee 445c1a873f Resolve a build error for ICC 19
This argument name makes an error with "line 302:Type t = Undefined;"

Change-Id: I5488ff02ab7c9f9391c17361da5e2aac2727a6a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-01-09 01:33:08 +00:00
Thiago Macieira 64359ad710 ucstrncmp: Fix UBSan report of array overflowing
The expression "a + offset + N" will eventually calculate an address
past the end of a, since we are comparing to end. That's undefined
behavior. Instead, calculate end - a and compare that to offset + N.

This commit subtracts "a" from both sides of the inequalities and swaps
the two sides to make them obey Qt coding style. Testing with GCC 9
(which is the only one I care about) shows the compiler generates the
same code.

Fixes: QTBUG-81218
Change-Id: Id84da383373844f3a4b0fffd15e7c1ab904daccd
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2020-01-09 01:33:08 +00:00
Giuseppe D'Angelo c61cedcc54 GCC: revoke constexpr before 5.0
It's causing build failures on GCC 4.9 due to our code hitting

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57694

(at least since de82d239f8).

Task-number: QTBUG-80997
Change-Id: I80a9d1fcbf26d8c0bf514ddc7bdb86eb7173360f
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-01-09 02:33:08 +01:00
Nico Vertriest 22942058aa Doc: Correct qdoc compilation errors qtbase
Task-number: QTBUG-79824
Change-Id: I4be365d92b1adfde09efd04d088f75c506666a95
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-01-09 02:33:08 +01:00
Jean-Michaël Celerier c77efa6d38 Disable support for RasterOpModes in GL paint engine
This leads to crashes for instance when displaying a text cursor
in a graphics scene.

Change-Id: I1b5c884ddb8325a7f5bdbc6027f0fae13f139a1c
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-01-09 02:33:08 +01:00
Błażej Szczygieł f2a61f2ce2 xcb: Propagate size hints when window changes its scaling factor
Properly scale size hints to the new scaling factor.

Fixes: QTBUG-80476
Change-Id: I1081c9b01560f7e434f0f1de0199ef3d3cae787c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-01-08 01:28:48 +01:00
Nico Vertriest f3b3c971cf Doc: Correct link errors
Task-number: QTBUG-79824
Change-Id: I05caaccab1efa16bc0a01ce3045a9377f9ef640e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-07 18:22:12 +01:00
Tor Arne Vestbø 5af73cd9db Skip WA_DontShowOnScreen widgets when checking whether application can quit
QApplication tries to close all windows on quit using closeAllWindows,
but closeAllWindows skips some windows, in particular any widget with
WA_DontShowOnScreen set.

QApplication then tries to verify that all windows have been closed,
and that logic should skip the same kind of windows as closeAllWindows
does.

We include WA_DontShowOnScreen so that widgets that are proxied via
QGraphicProxyWidget will not prevent the application from quitting.

There's still some divergence between closeAllWindows and the logic
in QApplication::event's quit handling, but aligning that requires
more work than this particular fix, and should probably also be
based on using the return value of tryCloseAllWindows() directly.

Change-Id: I2555eeee0cb04b8e736109fed57f37150efd1964
Fixes: QTBUG-81107
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-01-07 15:16:13 +01:00
Friedemann Kleint 2421759458 Restore High DPI scale factors
Change the default rounding policy to "Round" so that 2 is used
for 150% (144DPI) on Windows, as it was in 5.13.

Fixes: QTBUG-80934
Change-Id: I0cba986ce6afc9e2737c656000ad854c07844360
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-01-07 14:22:38 +01:00
Friedemann Kleint 78d2a04a01 QSystemTrayIcon: Fix geometry() to work with scaling enabled
Add missing call to QHighDpi::fromNativePixels(), retrieving
the screen from the menu.

Task-number: QTBUG-79248
Change-Id: I9f358c8010615c3f96ed9dc3b6666013ae9a0ed9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-01-07 13:23:06 +01:00
BogDan Vatra e52239f525 Use prefixed ssl libs when "-openssl-linked" configure params is used
As long as we do a multi abi build in one go there is no easy way for us to know
where the ssl libs are located for each ABI. The easiest way is to use libs
prefixed with the ABI.

For configure set we are using "_arm64-v8a" prefix as the configure script will
always use arm64-v8a to run the tests.

Don't show the OPENSSL_LIBS example as it won't work on Android.

Here https://github.com/KDAB/android_openssl/commit/ebb0b68be4 you can find
a script which builds these libs.

Fixes: QTBUG-80862
Change-Id: I019c2a208ae48a7356b8f3933d0f4aad5ac156a3
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-01-07 14:23:06 +02:00
Shawn Rutledge 1535fc9fb9 tablets on xcb: report correct local coordinates to nested windows
Change e453222414 tried to map global
position directly from the desktop to the window that should receive
the event.  That's fine for single-window applications; but media
players like OBS and VLC often use embedded windows to play video.
So the mapping needs to traverse the window parent hierarchy somehow.
In this patch it's done by calling QWindow::mapFromGlobal(), but that
only works with integer coordinates (QPoint).  To preserve the fix
for QTBUG-48151 (and other jitter bugs), we need sub-pixel accuracy;
so we have to add back the fractional part after mapping the int part.

Fixes: QTBUG-77826
Change-Id: Ib52ce14138e477182e0ef53b0ff30ce1eff40372
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2020-01-06 18:51:42 +01:00
Andy Shaw 6b835d5e51 QTextDocument: Set the font family to be after the families set
This amends a1f4321bbb as the font
families should take precedence over the font family set. If the font
family is already included in the families then it should keep its
placement. Otherwise it should be appended.

Task-number: QTBUG-80475
Change-Id: I0049189c88b6879e57619815ec780960e9c0a300
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-01-06 12:01:08 +01:00
Friedemann Kleint 5b22d17198 Fix some issues of a clang-cl developer build
- qeasingcurve.cpp: Add a cast, fixing:
  qeasingcurve.cpp(1515,25): error: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Werror,-Wmicrosoft-cast]
- Disable copy and move of QMainWindowLayoutSeparatorHelper, fixing:
  qbasictimer.h(59,5): note: 'QBasicTimer' has been explicitly marked deprecated here
    QT_DEPRECATED_X("copy-construction is unsupported; use move-construction instead")

Task-number: QTBUG-63512
Change-Id: I4d12a29cb1dcd68da9f9316c9e42992f218e6045
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-01-06 11:55:21 +01:00
Allan Sandfeld Jensen 2c3eaa7b87 Fix semi-transparent text on Linux with subpixel anti-aliasing
The newly optimized rgbBlend function wasn't updated to handle
SourceOver compositing when dealing with semi-transparent text color.

The extra composition isn't SIMD optimized but short-cut for all opaque
colors.

Fixes: QTBUG-80982
Change-Id: I88c1e60fd5e80a8c7f9e6b0e7de8248c7c00ebc2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-01-05 18:04:30 +01:00
Christian Ehrlicher 56674dca36 QSS/QComboBox: set correct palette when drawing SC_ComboBoxArrow
When the dropdown button of a combobox is drawn with QStyleSheetStyle,
not only the background color is used for drawing but also
QPalette::Light/Dark/Shadow. Since the palette was not properly set up
in some cases, the shaded frame around the button was drawn with the
default colors instead the ones derived from the given background.
Therefore we have to properly set up the palette before drawing the drop
down button by calling QRenderRule::configurePalette()

Fixes: QTBUG-80950
Change-Id: Ibf98fa28612b5c7527ef9dd6ae06c417315f2632
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-05 16:04:31 +01:00
Cristián Maureira-Fredes 9b647bf5ac uic: setWeight replace semi-colon by language::eol
Change-Id: I87f9c2896cfd6f83f683cf731e4a62aef627d69c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-01-05 15:31:41 +01:00
Christian Ehrlicher c623334248 QPlainTextEdit: make sure firstVisibleBlock() is valid
Under some circumstances it's possible that firstVisibleBlock() returns
an invalid block within QPlainTextEditPrivate::_q_textChanged() which
results in a nullptr access later on.
Therefore add a check similar to other places and test the validity of
the returned block before accessing it.

Fixes: QTBUG-80929
Change-Id: I1fd4643b10b842acfe1c356048379f0ba225dddf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-05 12:59:03 +01:00
Edward Welbourne 02ddf08db8 Note that zh's "Chinese" is in fact Mandarin
Task-number: QTBUG-63457
Change-Id: If1e36c3b2230d8c45311add26c976843eb5b3d36
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-04 15:55:05 +01:00
Friedemann Kleint 01f0df1cf5 uic: Add handling of resources imports for Python
The Python-bases pyside2-uic would write an import for each
resource file encountered, adding a "_rc" suffix. Add this
handling.

Task-number: PYSIDE-1171
Task-number: PYSIDE-1170
Change-Id: I870d61ca7262c0684de5359a5f990d23a4171032
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2020-01-03 16:10:13 +01:00
Friedemann Kleint 8b0b2057d0 uic: Add colon missing for "if()" constructs in Python
Task-number: PYSIDE-1169
Change-Id: I63c5305b0ddad1c4fcd585b65c3c78c05b40bac1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2020-01-03 15:09:53 +01:00
Tor Arne Vestbø 77f1d0bfa5 macOS: Skip uninitialized buffers in IOSurface backingstore
Task-number: QTBUG-80972
Change-Id: Ifb8eb84d6b802556ccd52ac129a91e142e265a81
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-03 14:48:14 +01:00
Friedemann Kleint 7c0341daee uic: Fix empty strings for Python
Introduce a constant in the language namespace.

Fixes: PYSIDE-1174
Change-Id: Ic3e58580b20c1d9a6ddf97f20709a3046d4b6f0c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2020-01-03 12:54:00 +01:00
Fabian Kosmale 8669b8e60f QVariant: Prefer direct conversion to QVariant{List,Map,Hash}
If a type has both a converter to QVariantList and to
QSequentialIterableImpl registered, we would have chosen the
QSequentialIterableImpl version. In the case of types like QJSValue,
this is more costly. With this change  we therefore uses the direct
conversion if it has been registered.

The same applies to QAssociativeIterableImpl and
QVariantHash/QVariantMap.

Change-Id: I9c0b5068efe4bfbc5e0598a200e6db59201e9974
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2020-01-03 10:59:37 +01:00
Andy Shaw 1e89c132e1 Fix CVE-2019-19645 in SQLite
Task-number: QTBUG-81020
Change-Id: I58b1dd9e7a90ba998c3af7f25a4627d8bdd70970
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-03 10:36:58 +01:00
Andy Shaw 3b697f4963 Fix CVE-2019-19646 in SQLite
Task-number: QTBUG-81020
Change-Id: I7176db20d4a44b1fb443a6108675f719e9643343
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-03 09:31:54 +01:00
Andy Shaw a75d238b31 Fix CVE-2019-19603 in SQLite
This includes the patch needed to fix this CVE and a supporting one to
include a new function added that it depends on.

Task-number: QTBUG-80903
Change-Id: Ic7639d50c89a3ee7d45426588c3ab0efd0eebb72
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-03 09:31:37 +01:00
Andy Shaw dcef0b96ee Fix CVE-2019-19242 in SQLite
Task-number: QTBUG-80903
Change-Id: I78a72a574da5cf3503950afe47146ae6424f00c6
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-01-03 09:30:52 +01:00
Tor Arne Vestbø 105e662221 macOS: Handle missing color space information in IOSurface backingstore
Fixes: QTBUG-80972
Change-Id: Iab3f1a9cf03251340e5f32bcc73103428e93282d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-03 01:14:01 +01:00
Tor Arne Vestbø 240a8514f8 Fix syncqt warning in qtestsupport_widgets.h
Change-Id: I4f350e3c209dc9a39e849c9c39c41da700abeb60
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-01-02 15:51:25 +01:00
Friedemann Kleint a6f56251ca Fix some qdoc warnings
src/corelib/tools/qhash.cpp:2596: (qdoc) warning: clang found diagnostics parsing \fn template <class Key, class T> template <class InputIterator> QMultiHash::QMultiHash(InputIterator begin, InputIterator end)
    error: 'QMultiHash' is not a class, namespace, or enumeration
src/corelib/kernel/qobject.cpp:4593: (qdoc) warning: Undocumented parameter 'EXPORT_MACRO' in QObject::Q_NAMESPACE_EXPORT
src/corelib/global/qfloat16.cpp:129: (qdoc) warning: Cannot tie this documentation to anything
src/corelib/text/qlocale.qdoc:1204: (qdoc) warning: Overrides a previous doc
src/corelib/text/qlocale.qdoc:1187: (qdoc) warning: (The previous doc is here)
src/network/kernel/qhostinfo.cpp:597: (qdoc) warning: clang found diagnostics parsing \fn QHostInfo(QHostInfo &&other)
src/printsupport/dialogs/qabstractprintdialog.cpp:346: (qdoc) warning: clang found diagnostics parsing \fn int QAbstractPrintDialog::exec(): error: out-of-line definition of 'exec' does not match any declaration in 'QAbstractPrintDialog'
src/testlib/qsignalspy.qdoc:101: (qdoc) warning: clang found diagnostics parsing \fn QSignalSpy(const QObject *obj, const QMetaMethod &signal):  error: expected unqualified-id
src/testlib/doc/src/qttest-best-practices.qdoc:28: (qdoc) warning: Can't link to 'Q_VERIFY2()'
src/widgets/kernel/qactiongroup.cpp:291: (qdoc) warning: Undocumented parameter 'b' in QActionGroup::setExclusive()
src/widgets/kernel/qactiongroup.cpp:305: (qdoc) warning: Undocumented return value (hint: use 'return' or 'returns' in the text
src/widgets/kernel/qshortcut.cpp:542: (qdoc) warning: No such parameter 'context' in QShortcut::QShortcut()
src/widgets/widgets/qdatetimeedit.cpp:632: (qdoc) warning: No such parameter 'minimumTime' in QDateTimeEdit::setTimeRange()
src/widgets/widgets/qdatetimeedit.cpp:632: (qdoc) warning: No such parameter 'maximumTime' in QDateTimeEdit::setTimeRange()
src/widgets/widgets/qdatetimeedit.cpp:632: (qdoc) warning: No such parameter 'less' in QDateTimeEdit::setTimeRange()

Change-Id: I9799b5135e84c4d811674b2d114ef27315bc12df
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-01-02 13:43:56 +01:00
Tor Arne Vestbø c027d9b61e Remove commented out code added by mistake in 7ac4e55cb9
Change-Id: Ibd53518be9d2b29dd880912bdb81c06435543789
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-02 12:22:52 +01:00
Ulf Hermann a1f4321bbb QTextDocument: Give fontFamily() precedence over fontFamilies()
If the singular fontFamily() is given, then this is obviously the one to
be preferred over any plural fontFamilies(). Make sure it always ends up
first in the list of emitted font families.

Change-Id: I1e3b1ba29721c8298b1a0d4a1e1da49ba5b4e7ac
Fixes: QTBUG-80475
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-01-02 10:30:13 +01:00
Lorn Potter 809a96d6d9 wasm: fix setting translucent background
We need to set the requested SurfaceFormat which may contain
the alphaBufferSize in order for
the GL context to have the alpha attribute

Fixes: QTBUG-77303
Change-Id: I39860e24de49a255ab7e73bca78af92e6c074d0d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-01-01 10:18:06 +10:00
Shawn Rutledge 4b1d370f75 Check platformNativeInterface pointer before dereferencing
QApplication::platformNativeInterface() returns null if started with
-platform offscreen.

Fixes: QTBUG-80946
Change-Id: I3ad03ad27148c8576bd3fab0b136827bb8d171ae
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-12-31 09:08:59 +01:00
Alexandra Cherdantseva a63969081c wasm: support all cursor shapes
Every Qt::CursorShape is supported.
Tested in Chrome, Firefox and Safari.

Change-Id: I38c9024dba4af70af789ac84ad7e38f749c847d7
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-12-30 14:30:22 +03:00
Tuomas Heimonen 27d1391280 QLocale: Support Indian number formatting
When QLocale::Country is set to QLocale::India numbers are written so that
after first three from the right and then after every second will be comma.
E.g. 10000000 is written as 1,00,00,000

Task-number: QTBUG-24301
Change-Id: Ic06241c127b0af1824104f94f7e2ce6e2058a070
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
2019-12-30 13:04:23 +02:00
Christian Ehrlicher 411c2e3e4f QCommonStyle: make sure to pass the widget to pixelMetric()
QStyle::pixelMetric() expects the affected QWidget as third parameter.
Some (external) styles rely on this to return the correct value.
Therefore add the widget to the function calls where possible.

Fixes: QTBUG-80971
Task-number: QTBUG-1857
Change-Id: I768ebb61a914cdba6e0549f841d46cf3edb0a2a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-28 10:10:32 +01:00
Giuseppe D'Angelo 6e3b4ddd92 QRegularExpression: adjust the error codes matching PCRE2 10.34
Change-Id: I78ecda1bdc784b8d7a69a4927dbe3b0f08c1d907
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-12-28 01:33:25 +01:00
Giuseppe D'Angelo 25101f0984 Update PCRE2 to 10.34
Also adjust the import script to handle new files.
The RTEMS patch is not upstreamed and had to be-reapplied.

Change-Id: Ie3102d56a25674b50c67edd3cce25ffe7040a215
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-25 00:49:19 +01:00
Giuseppe D'Angelo d24a1d4323 QRegularExpression: improve docs about porting from QRegExp
Change-Id: Ie5d737188977b0e4dc1070c2d7329d0ecb6a9308
Reviewed-by: David Faure <david.faure@kdab.com>
2019-12-24 22:28:59 +01:00
Christian Ehrlicher 2ad3348031 QPrintDialog: don't access dangling pointer when cups is disabled
When no cups support is available, ui.pagesRadioButton is destroyed in
QPrintDialogPrivate::init() but was accessed later on. Fix it by moving
the cups check one line above.

Fixes: QTBUG-80945
Change-Id: Ieb062b39e1461f39665ef612dfea1d7757274b7e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-23 16:05:48 +01:00
Christian Ehrlicher e0b9beb63d QFileInfoGatherer: don't pass empty list to QFileSystemWatcher
When an empty list is passed to QFileSystemWatcher::unwatchPaths() a
warning is printed out. To avoid this, check if the container is not
empty before calling unwatchPaths()

Fixes: QTBUG-80965
Change-Id: I23a7946e1e16a8d899abf6cce6b75a6f3662ca0f
Reviewed-by: David Faure <david.faure@kdab.com>
2019-12-23 16:05:39 +01:00
Tor Arne Vestbø 7ac4e55cb9 macOS Don't throw away backingstore buffers when backing properties change
Clients such as QtWidgets that do their own dirty tracking will assume
they can just flush in response to the expose event, without repainting
anything. Since we have no way at the moment to inform these clients that
the backingstore content might be invalid we can't just throw it away.

It turns out that to pick up changes in color spaces we can just tag
the existing buffers with the new color space, so we don't need to
throw it away. And for the older surface-backed mode we tag the color
space on flush, so we didn't need to invalidate anything in the first
place.

Fixes: QTBUG-80844
Task-number: QTBUG-77749
Change-Id: Icb1ceb178894bb43887cdf03fb855d2d614b5ab0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-23 13:55:50 +01:00
Tor Arne Vestbø 761025d08c Contain Qt::AA_SetPalette logic in QApplicationPrivate::setPalette_helper
Change-Id: I88b36e800139389895ecb1a15553207a24b3e3a4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-21 14:30:14 +01:00
Tor Arne Vestbø c7ecff0460 Simplify QApplication::palette
Change-Id: I1f1be554a72a385985eeee0b79b49acdfcf40d8e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-21 14:30:11 +01:00
Friedemann Kleint c24404dbda Unbreak developer build with clang-cl
Move the macro definitions for Q_DECL_UNUSED_MEMBER along with
a definition for Q_DECL_UNUSED from the scope excluding icc
and cl into a separate one for plain clang and cl since the
attributes work with clang-cl as well.
Remove the check introduced in
9782938045
since it is assumed that all clang versions have the attribute now.

Fixes:
include\QtCore/../../src/corelib/io/qloggingcategory.h(87,32): error: private field 'd' is not used [-Werror,-Wunused-private-field]
    Q_DECL_UNUSED_MEMBER void *d; // reserved for future use
                               ^
include\QtCore/../../src/corelib/io/qloggingcategory.h(108,31): error: private field 'placeholder' is not used [-Werror,-Wunused-private-field]
    Q_DECL_UNUSED_MEMBER bool placeholder[4]; // reserved for future use

Task-number: QTBUG-63512
Change-Id: I651771b085408443bb02e96698a980170fcaeb6d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-20 09:43:36 +01:00
Thiago Macieira 5034f8d8d5 forkfd: fix build with GCC 4.8 & 4.9
Prior to GCC 5.x, std::atomic_int was a typedef to __atomic_base<int>,
which meant we couldn't use it in atomic_compare_exchange that requires
pointers to std::atomic<int>. That changed in 5.x (r219790) in response
to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60940.

Easy fix, though.

Fixes: QTBUG-80896
Change-Id: I46bf1f65e8db46afbde5fffd15e1d625154f8d59
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2019-12-19 17:51:31 -08:00
Morten Johan Sørvig 43792c50d4 Don’t reset highDpicaleFactorRoundingPolicy
Don’t reset highDpicaleFactorRoundingPolicy in the
QGuiApplication destructior. This is a static property,
independent of the application object lifetime.

Change-Id: Ibf55e2a6ea1ae6429fce3f0e9d58323111aac374
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-12-19 14:21:01 +01:00
Morten Johan Sørvig 0f0d26418c High-DPI: restore rounding behavior on Android
Qt 5.14 introduced QApplication::scaleFactorRoundingPolicy,
where the default policy rounds the scale factor to
an integer, which matches Qt's behavior on Windows and X11.

However, Qt has never rounded scale factors on Android.
Restore the historical behavior and document the platform
difference.

Change-Id: I0f8e8fb65e3874338ea290bbb12da350da22f099
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-12-19 13:20:54 +00:00
Cristián Maureira-Fredes b31aef2900 uic: Rename raise() to raise_() for Python
Fixes: QTBUG-80791
Change-Id: Ia6339b8c683147456cdffa7f2d45972e8eacd92c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-19 12:38:58 +01:00
Tor Arne Vestbø 9a77beaea3 macOS: Deliver theme changes synchronously
Otherwise the expose event that AppKit triggers will be delivered before
we've propagated the theme change, and we fail to draw the UI using the
new theme.

Change-Id: I502122a2bf02a866d136106d831f0c2a0dfe26f2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-19 11:17:31 +00:00
Friedemann Kleint e2f4c5f4a1 double-conversion.cc: Fix developer build with clang-cl
clang-cl errors out with an unknown #pragma on the scope turning
off optimization for MSVC2012. Remove it since MSVC2012 is no longer
supported.

Change-Id: I46610885e10158bc5b3666b7698dc1162dbac8a7
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-12-19 11:23:31 +01:00
Albert Astals Cid 512b87bc28 Don't have a "see also qrand" from qrand
I guess what we wanted there was qsrand

Change-Id: I8e18e76ae65abf9de231d51faa61cc9142ea2b98
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-19 09:03:01 +01:00
Peter Varga a132e02540 Fix QAccessibleWidget::focusChild() to return focused descendant
This method should not ignore accessibility objects without
corresponding widget. The widget may have parts with their own
QAccessibilityInterface and these can be also focused.

VoiceOver ignores them if they are not returned by focusChild().

QAccessibleTabBar::focusChild() has been implemented to demonstrate
the concept and make tab titles of QTabBar readable by VoiceOver.

Task-number: QTBUG-78284
Change-Id: Id7c62d86154bbd5d47d6bbee8cb7d05268c2e151
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-12-19 08:39:10 +01:00
Paul Wicking caa82e1fc2 Doc: Add since version
for QCursor::swap and QOperatingSystemVersion::currentType.

Fixes: QTBUG-80854
Fixes: QTBUG-80891
Change-Id: Ia256fa0d3ad4665f44b933f5a4a8d4ee87e9fc13
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-12-19 07:03:13 +01:00
Leena Miettinen 48704c3f5c Doc: Add since Qt 5.8 info for QResource::lastModified()
Fixes: QTBUG-80856
Change-Id: I2f2b562ad2b262c6dfa236a43589129186589ed7
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-18 14:40:38 +01:00
Allan Sandfeld Jensen b2e3a5502a Parse Xft.dpi with fraction
Some versions of GNOME 3 would set Xft.dpi with fraction though that
is technically not valid.

Change-Id: Ib1027283cc78fd5d9869cd337864a92e28cd7e88
Fixes: QTBUG-64738
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-12-17 21:20:01 +00:00
Tor Arne Vestbø 0a09a6341d Sync implementation of QGuiApplication and QApplication setPalette
The two static setPalette methods in QApplication and QGuiApplication
should have the same behavior in terms of what signals and events
they emit.

Change-Id: I54579d490e31f3783e2d4fea689ca799a070ff1d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-17 20:22:39 +01:00
Tor Arne Vestbø 04f5008f51 Let sendApplicationPaletteChange() decide when it needs to exit early
Change-Id: I7a8e6c0b54d2a16a17b292a4102e05f743bcbe29
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-17 20:19:37 +01:00
Tor Arne Vestbø 87cedab94e Remove ApplicationResourceFlags::ApplicationPaletteExplicitlySet
After 8fb881900c it's tracked by AA_SetPalette. Since the latter
is publicly observable we remove the internal flag instead.

Change-Id: Ie69799f1b45d68017cb9eaab2a9986cc9ac9ca38
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-17 20:19:34 +01:00
Eirik Aavitsland 05d5268502 Fix QPainter::drawLines() with cosmetic pen
Even though each line in the array passed to drawLines() should be
rendered as an independent line, some state was kept in the cosmetic
stroker from one line to the next. This could result in visible
rendering errors.

Fixes: QTBUG-80834
Change-Id: Ief7bf78eab83ae34459802bff5a57d6beec4a5e5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-12-17 14:04:05 +01:00
Christian Ehrlicher bda2169d96 Doc: remove documented macros which were removed in Qt5
Remove documentation about QMIN, QMAX and QABS - they were removed
during Qt4 -> 5 porting.

Change-Id: I24e12e4f2bba635ff412e73dd1d0134bbab5247a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-17 06:38:58 +01:00
Christian Ehrlicher 8d2a6b422f QTextDocument: compile with QT_NO_PRINTER
The implementation of QTextDocument::print() is not available when
QT_NO_PRINTER is defined but the declaration was so when someone is
using this function (and QT_NO_PRINTER) a linker error will occur.

Fixes: QTBUG-56916
Change-Id: I49aaaa643c4d8587a66fc95733060cea11994872
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-12-16 22:12:45 +01:00
Marius Kittler 98f19f0036 Use pkg-config to find libjpeg
Change-Id: I42d877fbca5d746114cc28f8ee4db3e54754cd24
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-15 19:42:25 +02:00
Christian Ehrlicher 0edd2e39ad Let QItemSelectionModel::columnIntersectsSelection honor the parent
QItemSelectionModel::columnIntersectsSelection() should honor the parent
according to the docs. For rowIntersectsSelection() this was fixed a
long time ago but columnIntersectsSelection() was forgotten.

Sync the both functions and use range-based for loops as a drive-by.

Fixes: QTBUG-80644
Change-Id: Iaf08f85e2225204d1e6564fa4bb0bc826352ed53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-12-14 08:46:37 +01:00
Christian Ehrlicher 4689e198e7 Doc/SQL: update sql driver creation instructions
Fix the links, remove section about Q_ODBC_VERSION_2 - it wasn't there
since Qt5.0.

Change-Id: I571f5c2cf0f0e2df38638299c26814b510d1a8af
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-14 08:46:14 +01:00
Alexandru Croitor a3a6f28427 OpenGL: Fix signature of GLDEBUGPROC in qopenglextrafunctions.h
The typedef "QOPENGLF_APIENTRYP" was incompatible to the one
in "src/opengl/qopengldebug.cpp" which used "QOPENGLF_APIENTRY".

Note the misisng "P " ending.

The type is meant to be a function pointer, not a pointer to a
function pointer, so remove the extra P.

Change-Id: I229b73ca8e7367f88a2b48e2728e615605f02da3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-12-13 13:23:19 +01:00
Qt Forward Merge Bot 64f55f2d9e Merge "Merge remote-tracking branch 'origin/5.14.0' into 5.14" 2019-12-13 12:46:24 +01:00
Qt Forward Merge Bot 56b0dabf80 Merge remote-tracking branch 'origin/5.14.0' into 5.14
Change-Id: I03927d2ef75514e4f2633839387806125d8954f1
2019-12-13 12:46:12 +01:00
Tor Arne Vestbø df69364469 Remove QApplicationPrivate::set_pal
Its purpose was to track the default palette set by the programmer,
but after 8fb881900c this is tracked by the Qt::AA_SetPalette attribute.
The palette itself is always reflected 1:1 in the palette tracked
by QGuiApplicationPrivate::app_pal.

Change-Id: If3e84c8b3ae6070b6c50be7a33adb38799b3f3a5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-13 10:10:36 +01:00
Tor Arne Vestbø da0e745752 Explicitly polish palette instead of relying on QApplication::setPalette
The only effect calling QApplication::setPalette will have is the polish,
so opt for doing it explicitly instead of the weirdly looking no-op
assignment.

Change-Id: Ia80b3f60e3e513b68c2993ea8417966f9ab6721e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 23:24:25 +01:00
Tor Arne Vestbø 96d1d44279 Clean up QApplication::style default style construction
Change-Id: I9f01e7cc5fa90fd9b1f5d12c7ce694c231158c32
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 23:24:21 +01:00
Tor Arne Vestbø a9e628e7ec Ensure override style properly clears out previous style if set
QApplication::setStyle has quite a bit of logic to clean up from the
old style before setting a new one. If a style has been set before
the application is created, it's not enough to just delete the existing
style, we need to treat it like a normal style switch.

Change-Id: I2bcc2eb75567bf1bc8a32ac31467b22315a70a0b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 23:24:17 +01:00
Tor Arne Vestbø f6a2b81eab Update system palette on application init if needed
A style may have been set before the application was created, which
would have resulted in setting the system palette based on the style's
palette. Once the application is initialized and we have a platform theme
we need to reset the system palette.

Change-Id: Ia48f57d3983535c8633741d8027f75bc0c214018
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 23:24:11 +01:00
Tor Arne Vestbø 6b06f12da6 Unify system palette initialization during style change
We let initSystemPalette() do all the work, instead of leaving the first
time initialization of the system palette to the caller, which makes the
logic harder to follow.

This also means first time initialization of the system palette will
pick up a platform theme if available and resolve the palette using
that, which was missing from the original logic.

Change-Id: I84da557caf8ecedf6d96d87ebee93168ea9d73ba
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 23:24:07 +01:00
Tor Arne Vestbø 14071b5a8e Clarify call to initializeWidgetFontHash in QApplication::setStyle
The call was added in c49c96fbb1, "Reinitialize system palette
when setting a new style", but adding it along with the palette code
seems like a mistake. The potentially dirty widget font hash needs
to be reset for all style changes.

Change-Id: I411f56bb833819213c5485d7585fc5e3e9bd8983
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-12 17:22:18 +01:00
Thiago Macieira c496fee2a5 qSwap: suppress pedantic warning about noexcept being false
This warning is not in -Wall or -Wextra, but it happens in a single
place, so we can reasonably suppress it.

Fixes: QTBUG-79138
Change-Id: Ib5d667bf77a740c28d2efffd15ccb3f62cf8f431
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-12-12 00:26:06 -07:00
Nico Vertriest 5a660353ed Doc: Fix qdoc compilation errors qtbase
Task-number: QTBUG-79824
Change-Id: I6557de598de1931fc30556951d35783d02b83abe
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-12 07:14:50 +01:00
Michael Dippold 3162345670 Support both qrc and qml files for qmlimportscanner
Some projects can be configured to have both qrcFiles and qml-root-path
included in the deployment settings file. The addition to qrc scanning
prevented the qml root directory from being scanned.

Change-Id: Idadb62f5572be45d0083294440bdb29740c2c47e
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-12-11 11:14:47 -08:00
Fabian Kosmale c15d6a155c QVariant: introduce ShouldDeleteVariantData flag
This flag is used in QSequentialIterable and QAssociativeIterable to indicate
that the data pointer in VariantData should be deleted after the variant has
been constructed.

The use case for this is
https://codereview.qt-project.org/c/qt/qtdeclarative/+/284151, where we have
a proxy iterator and cannot easily return a pointer to already owned data, as
it is hard to manage its lifetime in the iterator. In contrast, it is clear
that we can release the memory in the QSequentialIterable functions, as it has
already been copied into the QVariant there.

Change-Id: I2b33497d991cd4f752153e0ebda767b82e4bb851
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2019-12-11 20:12:23 +01:00
Christian Ehrlicher 07838840e8 Doc/SQL: update sql driver creation instructions
Update the instructions on how to build and distribute the mysql and
postgresql drivers on windows.

Change-Id: Ie4d50c1c34820680d7496b9544eb00fcee17f8e7
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-12-11 18:11:56 +00:00
Andy Shaw a7108ec6cf Fix CVE-2019-19244 in SQLite
Fixes: QTBUG-80635
Change-Id: I718349e28ec76ea164dd50f2a985f2074dd6bdbd
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
2019-12-11 11:21:46 +01:00
Thiago Macieira a77fdc9847 Doc: remove the claim that zero timers execute after GUI events
This ties our hands on what we can do in our implementations. I don't
care if you've depended on this in your code. It was wrong.

Fixes: QTBUG-80600
Change-Id: I568dea4813b448fe9ba6fffd15de8865a27f0a35
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2019-12-10 20:24:29 -08:00
Thiago Macieira 6bef90f3cf QTest::toString(QBitArray): fix Mismatched free() / delete / delete []
==8015== Mismatched free() / delete / delete []
==8015==    at 0x483958B: operator delete[](void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8015==    by 0x48752D6: QTestResult::compare(bool, char const*, char*, char*, char const*, char const*, char const*, int) (qtestresult.cpp:356)
==8015==  Address 0x602eb30 is 0 bytes inside a block of size 12 alloc'd
==8015==    at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8015==    by 0x44AAE2: char* QTest::toString<QBitArray>(QBitArray const&) (qtest.h:98)
==8015==    by 0x44D212: bool QTest::qCompare<QBitArray>(QBitArray const&, QBitArray const&, char const*, char const*, char const*, int) (qtestcase.h:352)

Change-Id: Ia2aa807ffa8a4c798425fffd15dabfebfd63fdbd
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-12-10 20:24:14 -08:00
Robert Szefner 6ffedc07a7 PSQL: Optimize QPSQLResult::data() function for date and time types
Minor performance optimalizations:
- No need to check if the date and time are correct because the QDate,
  QTime and QDateTime parsing functions already perform these checks
- No need to add minute part to the UTC offset before parsing the date,
  because the QDateTime class can parse time zone offset both in form
  ±hh:mm and ±hh

Change-Id: Id74b7ae075135c5c8cf420247c49b5f12fe88899
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-12-10 21:21:34 +01:00
Lorn Potter 382f1a221b wasm: fix getOpenFileContent doc
The callback should be named the same as the function expects

Change-Id: I4ca73958313c93c0d68e7205d8641c4104247e0c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-12-11 06:06:51 +10:00
Edward Welbourne bf65c27789 Fix more mis-handling of spaces in ISO date format strings
ISO date format doesn't allow spaces within a date, although 3339 does
allow a space to replace the T between date and time. Sixteen tests
added to check this all failed. So clean up the handling of spaces in
the parsing of ISO date-time strings.

[ChangeLog][QtCore][QDateTime] ISO 8601: parsing of dates now requires
a punctuator as separator (it previously allowed any non-digit;
officially only a dash should be allowed) and parsing of date-times no
longer tolerates spaces in the numeric fields: an internal space is
only allowed in an ISO 8601 date-time as replacement for the T between
date and time.

Change-Id: I24d110e71d416ecef74e196d5ee270b59d1bd813
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-10 17:26:02 +01:00
Samuel Gaist 42aa740df7 rcc: Fix namespace handling for initializer
rcc currently always writes the namespace mangling macros in both the
initializer constructor and destructor. This patch add the missing
handling of the --namespace option for that part of the generated code.

[ChangeLog][Tools][rcc] rcc now generates correct code when using the
--namespace option.

Change-Id: I7e5e608eb0ad267d11d601fc69c1a87d3f655a6e
Fixes: QTBUG-80649
Reviewed-by: hjk <hjk@qt.io>
2019-12-10 13:30:31 +01:00
Andre de la Rocha b209270825 Windows QPA: Export "checkable" info for menu items through UI Automation
In order to allow screen readers to say checked/unchecked for checkable
menu items, this information has to be provided through UI Automation.
Checkable menu items should implement the "Toggle" UI Automation pattern.
The "checkable" state must also be supported by QAccessibleMenuItem, which
is being added by a separated change.

Task-number: QTBUG-80551
Change-Id: I661668310d1b6b4701d0c0efdb1dcfd15d0db729
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-10 05:46:45 +01:00
Andre de la Rocha e40e82ede1 Add "checkable" state to accessible menu item
The information about whether a menu item may be checked is necessary
to allow the platform code (in particular, Windows UI Automation layer)
to make this information available to screen readers.

Task-number: QTBUG-80551
Change-Id: Ibfcc4f2da1ebc68e7dc5df2cd46bbfc0a177da12
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-10 05:45:51 +01:00
Tor Arne Vestbø c3bd5ffdc8 Don't wrap feature detection macros with QT_HAS_FOO() variants
Using wrappers for these macros is problematic when for example passing the
-frewrite-includes flag to preprocess sources before shipping off to distcc
or Icecream. It will also start producing warnings when compilers implement
http://eel.is/c++draft/cpp.cond#7.sentence-2. See for example
https://reviews.llvm.org/D49091

Both https://clang.llvm.org/docs/LanguageExtensions.html and the SD-6 document at
https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
recommend defining '__has_foo(x) 0' as a fallback for compilers without the
macros, so that's what we go for.

Change-Id: I0298cd3b4a6ff6618821e34642a5ddd6728be767
Reviewed-by: Alex Richardson <arichardson.kde@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-10 00:48:07 +01:00
Eirik Aavitsland 03dc30acca Fix QPushButton style sheet style for overlay (content) image
Unlike comparable widgets like QLabel or QFrame, QPushButton would not
render a content image specified in the stylesheet, unless a border
style was also specified. Fix by explicitly rendering the content
image, if set, in the native-border codepath also.

Although the doc warns about the QPushButton border style having to be
set in order for the background styling to take effect (since the
native border painting otherwise hides it), the previous behavior does
seem unexpected.

Fixes: QTBUG-72029
Change-Id: I8b979b010515dab4dcf2f00344a187c87eeec096
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-12-10 00:38:39 +01:00
Edward Welbourne f16bd40189 Convert some uses of QStringRef to QStringView
There remain QStringRef uses where QString::splitRef() is used.
Requires converting some .count()s to .size()s, as QStringView lacks count();
and some .toInt()s need to be handled by QLocale::c().

Change-Id: If9a49e063d217671ea9335a82e4bf977b7b48be0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-09 19:48:07 +01:00
Edward Welbourne 8310981b80 Prefer QDate::startOfDay() over QDateTime(const QDate &)
The latter can be invalid if midnight is skipped by a spring-forward.

Change-Id: Ibf98d165557229f19622774ebf9a27bb0911c7a7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-09 19:47:55 +01:00
Christian Ehrlicher c27123d743 QAbstractItemView: add a note about ToolTipRole in dataChanged()
Qt::ToolTipRole is not honored by dataChanged() which may be a little
bit surprising. Therefore add a small note about this behavior.

Fixes: QTBUG-78726
Change-Id: Ic4361f55e55ab59d5bae2fdb98907a62055604c5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-09 18:49:53 +01:00
Christian Ehrlicher 46d21a3b34 QPushButton: fix icon + text layouting in RTL mode
The fusion style did not properly handle the text layouting for a
QPushButton in RTL mode. Also the menu indicator was not adjusted in
this case.
Fix it by calling the base class implementation as QCommonStyle does it
mostly right. Since Fusion does not handle State_On or State_Sunken but
QCommonStyle does, explicitly mask them out.

Fixes: QTBUG-80083
Change-Id: Ide7bf997b4f4a5b61fcb8ea4a1a152122daef1e2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-12-09 18:47:46 +01:00
Volker Hilsheimer baed8534bc Move the tooltip out of the way of very large mouse cursors
Users that have large mouse pointers configured in their settings
can not see tooltips, as they are obscured by the pointer.
Native applications on Windows and macOS have the same problem,
which includes the tooltips for the minimize/maximize/close controls
in the window frame of e.g. Explorer.

Introduce QPlatformCursor::size that returns a value that is based
on the user's settings, or a default value. We can then use that
value to move the tooltip out of the way.

On Windows, the calculation of the cursor size is based on
experimenting with the settings, which are in logical independent
pixels. The placement of the tooltip attempts to keep existing
behavior, and to not end up with a tooltip that's very far away
from the tip of the arrow even for very large mouse cursors.

[ChangeLog][QtWidgets][QToolTip] Make sure that the tooltip
is not obscured by very large mouse pointers on Windows and macOS.

Change-Id: I8e13b7a166bfe8b59cef4765c950f90fefeaef9d
Fixes: QTBUG-79627
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-12-09 17:43:22 +01:00
Alexander Volkov 5272c35073 Doc: Clarify ownership of added menu for QMenuBar::addMenu(QMenu *)
Change-Id: Iaafba9557ece36607c86d5be4fbb5e4ac2e459d3
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-09 19:43:22 +03:00
Alexander Volkov 8339ce2155 Avoid crash in menu that was previously shown as submenu
Reset sloppyState for the previous submenu, so that if it
will be shown as a menu, it will not use an incorrect pointer.

Fixes: QTBUG-80528
Change-Id: If2ba8c3a664983ee76eb90d2c9a8096e2bd0a4e6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-12-09 19:43:22 +03:00
Tor Arne Vestbø 009abcd7b6 QWidget: React to platform surface being created or destroyed
The platform window may create or destroy its surface from other entry
points than the QWidget API, in which case QWidget needs to sync up
its own state to match. In particular WA_WState_Created and the winId
needs to be recomputed.

Fixes: QTBUG-69289
Fixes: QTBUG-77350
Change-Id: I769e58ead3c2efcf8c451c363108848feade9388
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-12-09 17:43:22 +01:00
James McDonnell e0a43e348c Register the screen pulse event
Future versions of QNX will, by default, require the use of registered
events. Currently, event registration is supported but optional.

Change-Id: Ie45484d5ca9fa832a28ccf08cb1764cf24262dcc
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2019-12-09 11:43:22 -05:00
Laszlo Agocs 7be4bbcbc5 rhi: metal: Do not fail pipeline creation upon compiler warnings
Change-Id: I39384de56d74cf9f1d345a5d395cc07030c6a2ab
Fixes: QTBUG-80629
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-12-09 17:43:22 +01:00
Allan Sandfeld Jensen 4d391514b0 Fix crash on debug output of null QColorSpace
Change-Id: I7d1d20d7dc2c5ac10dbe8d0a0b4111e8198bfabf
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-12-09 10:32:29 +01:00
Christian Ehrlicher 10f39c908d PSQL: set correct empty QVariant in QPSQLResult::record()
Since the QSqlField used to retrieve the data is reused in the loop, the
default empty value of the QSqlField is not set for all except the first
field since it was implicitly set by QSqlField::setType() only when the
value is invalid. Therefore we have to call QSqlField::setValue()
directly.

Change-Id: I1d3abe4e3c46f6378f9ff25529a79bbe33bb7b74
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-12-09 06:32:39 +01:00
Ulf Hermann 2a887a517e QCalendar: Optimize std::vector access
As we assert on the size of the vector before accessing it, there is no
point in using the checked at() method over operator[]. Besides, if at()
throws, what are we going to do with the exception anyway.

Incidentally, this also works around a compiler bug causing binary
incompatibility in QtQml.

Change-Id: I460e7514429daecabc304eb2c5f96ed715008b0a
Fixes: QTBUG-80535
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-12-07 06:27:07 +00:00
Sona Kurazyan 29adc0eed9 Fix updating the text cursor position after editing
In some cases when editing the text (for example when removing the
selected text, or pasting a text block) the text cursor position is
updated, but its visual x position is not updated. This causes the next
cursor movements to start from a wrong position.

Force the update for those cases.

Fixes: QTBUG-78479
Change-Id: Ia496be62beec58660f5e1695e5aafae09c79684e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-12-06 15:52:35 +01:00
Edward Welbourne ca7033935a Tell the truth about QDateTimeEdit's range-of-values properties
There were factual errors.
Important details were omitted.
The \sa blocks were haphazard and cluttered.

Change-Id: I76ceb00830c36699c48529b64808844faf09391e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-06 14:47:58 +01:00
Edward Welbourne 6b5f848ebd Allow lower-case for the T and Z in ISO 8601 date format
Cite RFC 3339 as basis for allowing a space in place of the T, too.
The RFC mentions that ISO 8601 accepts t and z for T and Z, so test
for them case-insensitively. Add a test for this.

Change-Id: Iba700c8d74d485df154d27300aab7b1958e1ccef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-06 14:47:27 +01:00
Edward Welbourne 653c1aab18 Fix handling of trailing space at the end of an ISO date-time
If milliseconds were followed by a space, the space was included in
the count of "digits" read as the fractional part; since we read (up
to) four digits (so that we round correctly if extras are given), a
harmless apce could cause scaling down by too large a power of ten.

Since QString::toInt() ignores leading space, we were also allowing
interior space at the start of the milliseconds, which we should not,
so catch that at the same time.  Added tests, including one for the
rounding that's the reason for reading the extra digit, when present.

Fixes: QTBUG-80445
Change-Id: I606b29a94818a101f45c8b59a0f5d1f78893d78f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-06 14:46:48 +01:00
Edward Welbourne 187f442823 QTimeZonePrivate: remove some Q_LIKELY markers
Although the relevant conditions are indeed likely, we don't want to
push the less likely branch into hard-to-load pages; they're not
anomalous conditions, merely ones with lower probability.

Change-Id: Icc12a921d38d8c398cd832964e9d57d7648698b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-06 14:46:30 +01:00
Edward Welbourne 49063c34d6 Fix crash when a date-time has an invalid time-zone
QDateTime is a friend of QTimeZone, so can access its internals; but
it must check the zone is valid before doing so.

Expanded tst_QDateTime::invalid() and made it data-driven to catch the
failure cases.

Commented on a test-case that caught a mistake in my first attempt at
this, and on QDateTimeParser's surprising reliance on a quirk of
QDateTime::toMSecsSinceEpoch()'s behavior.

Fixes: QTBUG-80146
Change-Id: I24856e19ff9bf402152d17d71f83be84e366faad
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2019-12-06 14:44:18 +01:00
Volker Hilsheimer da94625f38 Fix sizeHint of QProgressDialog to have enough space for window margins
Some styles, notably QMacStyle, use different margins for widgets and
for windows. For these margins to be returned correctly, we have to
tell the style that we want them for a toplevel widget. This was
done correctly when laying out the dialog, but not when calculating the
sizeHint, leading to a default size of the dialog that was too small
to fit the text.

As a drive-by, change variable names in the sizeHint method to be a
bit more readable.

Change-Id: Ib4168c7be176fa816241ebcc5f9235db4a7f982f
Fixes: QTBUG-80272
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 13bbb1d9b9411e6eb65848efa8c0d481109b8868)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-12-06 12:14:19 +01:00
Leena Miettinen 5da34ac263 Doc: Update info about building tests
Task-number: QTBUG-63987
Change-Id: I4b6e8f35afc9d3ca10b393a0305bbb51bf81ec26
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-12-06 09:00:28 +01:00
Eirik Aavitsland 20266820a3 Item views: do not clip items horizontally in dragging icon
The dragging icon is created from the visible items in the
selection. It would be clipped to the parts visible in the
viewport. That meant that items on the edge could be rendered
illegible, even though they were part of what was being dragged.

Fix by dropping the horizontal clipping to the viewport. Items fully
outside the viewport are already filtered away, so this should at most
make a difference to the bottom and/or top items in the set.

Keep the vertical clipping, since items may easily be very wide, so an
unclipped icon would be unwieldy.

Done-With: Sona Kurazyan <sona.kurazyan@qt.io>
Fixes: QTBUG-77336
Change-Id: I2d29cb0ca69c1058635106aa0c67e9f7e140d1cd
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-12-06 08:25:17 +01:00
Sona Kurazyan 81459dd9c0 Copy formatting attributes when cloning an empty QTextDocument
When cloning a QTextDocument, the text fragment of the original document
is copied into the new one, which results into copying also the
formatting attributes. However, when the text document is empty, the
corresponding text fragment is also empty, so nothing is copied.

If we want to transfer the formatting attributes for an empty document,
we need to set them explicitly.

Fixes: QTBUG-80399
Change-Id: I382cd0821723436120af47c06ec7bfa849636307
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-12-05 17:34:02 +01:00
Thiago Macieira 1f592da7f1 QCborValue: fix replacing of elements with byte data with ones without
We forgot to reset the flags when replacing the element, so we ended up
with an integer with HasByteData after:

    testMap[0] = QStringLiteral("value");
    testMap[0] = 42;

Fixes: QTBUG-80342
Change-Id: Ia2aa807ffa8a4c798425fffd15dabfa066ea84b0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-12-05 07:59:07 -08:00
Friedemann Kleint 455e9e5be3 Windows QPA: Fix tray geometry not updating
The application does not update its screens when there are
no windows on which a WM_DPICHANGE could be received. Add a
check for it to the tray window procedure and trigger an
update from there if no top levels are present.

Fixes: QTBUG-79248
Change-Id: I0b1c4db560662ecf2b473304942da373be6fdc73
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-12-05 15:49:32 +01:00
Tor Arne Vestbø aabf4fbbe9 macOS: Improve QCocoaGLContext logging
Change-Id: I27d0abe0eb5b0f0ba64b8787b430484c48b131c0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-05 14:28:34 +01:00
Tor Arne Vestbø 35da2b87e3 macOS: Enable fullscreen for windows by default
This matches the default collection behavior of NSWindows.

Change-Id: I363ed211daf6c6c2e579eb11c7294ff509d53e91
Fixes: QTBUG-63829
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-05 14:28:22 +01:00
Allan Sandfeld Jensen c7fec68e19 Do not read Xft.dpi on platforms that shouldn't be using Xft settings
We only read this for desktop environments that have traditionally used
these to set settings for other toolkits.

Fixes: QTBUG-80323
Change-Id: Ifa8c2682301e69c2770d3734115080a0e6b4e85c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-12-05 14:08:09 +01:00
David Faure aa504fc2fa Optimize qLastIndexOf<QString> to not detach the QString
The call to data() on a non-const QString led to a detach(), which is
unexpected and unwanted from QString::lastIndexOf() const.

Found by looking at why QFileSystemEntry::fileName() was expensive, in
the hotspot profiler.

The solution is to instanciate QLastIndexOf with QStringView() rather
than QString(). I added a deleted QString overload to make sure nobody
ever instanciates it with a QString argument again.

Change-Id: I06a1b2f937425e83f0779eb215e099aef78c50a7
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-12-05 14:06:02 +01:00
Christian Ehrlicher 97ac281c1d QStyleSheetStyle: properly honor checkmark size when drawing a QMenu
When drawing a QMenu which is checkable but does not have an icon
somewhere, the width of the (possible) checkmark was not considered
during drawing and the text was drawn over the checkmark. Also the wrong
state was checked for drawing the checked icon (if one was given).

Fixes: QTBUG-80506
Task-number: QTBUG-78238
Change-Id: Icf8aa37aab424564054d3549defee93eb0d7c1a4
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-12-05 13:56:09 +01:00
Christian Ehrlicher 925b33bdaa QPlainTextEdit: update internal palette on QEvent::EnabledChange
QEvent::EnabledChange did not update the palette of the internal
QPlainTextEditControl which lead to a wrong text color when the
QPlainTextEdit was disabled e.g. due to a QGroupBox.
Fix it the same way it is done in QTextEdit - set the new palette also
to the internal control when QEvent::EnabledChange is received.

Fixes: QTBUG-80150
Change-Id: Icbeddf3d6cd4877a3d8d4a06b2da69383dd776d2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-12-05 13:56:03 +01:00
Jan Niklas Hasse 92cf38018a Quit application when QWindowsSystemTrayIcon receives WM_CLOSE
When an application only has a trayicon and is killed by `taskkill /IM
binary.exe` the trayicon's HWND will receive a WM_CLOSE message. If we
don't handle this, the tray icon will close anyway, but the app still
runs in the task manager.

Fixes: QTBUG-43855
Change-Id: I5f82a068df9c40360bd565a2681e1b37ff114e44
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-12-05 08:57:43 +01:00
Edward Welbourne dc7fa56948 QMacTimeZonePrivate: use .member rather than [- member] notation
Apparently this is our preferred style for Objective C member references.

Change-Id: I8b2bbaabadbea2cfa74f209372e77cee79e3c895
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2019-12-03 19:00:22 +01:00
Edward Welbourne deb166a5ff Make QMacTimeZonePrivate default constructor more efficient
Inline systemTimeZoneId() in it to save the need for init().
We thus save the lookup by name for a time-zone object, when that
object is what we took the name from anyway.

Do some minor tidy-up in the other constructors and add an assert to
systemTimeZoneId() to match the new one in the default constructor.

Change-Id: Ib70acf31bdb4a4fa1306eebd1fd5f00ad6b89bcc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-12-03 18:59:58 +01:00
David Faure 9f79ab360f Fix assert in QTextDocument CSS parser on "border-width: 1pt"
The code was assuming that if the parsing of the value worked,
then it must be a list of 4 variants. But in this case it's just
a single length.

This came from <td> using 4 values for border-width
while other elements use a single value. But the storage
is shared. So the fix is to use 4 values everywhere.
When reading 4 and there's only one, it gets duplicated,
so the caller can just use the first one in that case.

Task-number: QTBUG-80496
Change-Id: I682244b6e3781c4d673a62d5e6511dac263c58e8
Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-12-03 17:54:24 +01:00
Volker Hilsheimer e4d1a03df0 QMacStyle: correct placement of edit field in combobox
The dark edit field is now centered within the frame around it, with a
thin border on all sides, including between input field and button.

Change-Id: I27e853289e9048c21fdc81e45fadacba9665b49e
Fixes: QTBUG-63454
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-12-03 17:06:39 +01:00
Morten Johan Sørvig 4d796cbf17 Prevent emscripten_webgl_destroy_context from removing event handlers
The JavaScript implementation of that function has
the following code:

  if (typeof JSEvents === 'object')
    JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); // Release all
    // JS event handlers on the DOM element that the GL context is associated with since the context
    // is now deleted.

This breaks mouse/keyboard events, etc.

Disable this logic by temporarily setting the JSEvents object
to undefined, for the duration of the emscripten_webgl_destroy_context
call.

Fixes: QTBUG-74850
Change-Id: Ied3177b0ca6e63e8ea07143bf7d6a850b0bce35a
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-12-03 14:54:15 +00:00
Laszlo Agocs c625d92385 Fix depth in renderText()
Fixes: QTBUG-31156
Change-Id: I3cbb3f9c5dfbcb182dbe283b0bf0f05a031970a5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2019-12-03 13:51:28 +01:00