Commit Graph

38787 Commits

Author SHA1 Message Date
Christian Ehrlicher
8cba096c2a QtBase: compile examples with QT_DISABLE_DEPRECATED_BEFORE=0x050d00
Replace deprecated functions to be able to compile examples with
QT_DISABLE_DEPRECATED_BEFORE=0x050d00

Change-Id: If6b8de31f526320d6a0e2a20bb5f8e26c77f2353
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:46 +00:00
Christian Ehrlicher
d493f676a3 QToolBarLayout: replace deprecated calls to QLayout::margin()
Replace QLayout::margin() with QLayout::contentsMargins() and add two
new helper functions to get the correct margins.

Change-Id: I3ad24747e7c6323eaf4386c00c47029009d64f8c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-13 05:55:40 +00:00
Christian Ehrlicher
3c907d0f4a Replace QWidget::margin() with QWidget::contentsMargins()
Replace deprecated QWidget::margin/setMargin() calls with
contentsMargin/setContentsMargins().

Change-Id: I7fe8056196d73d1be97446d40a438cd0b1a13817
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:36 +00:00
Christian Ehrlicher
7c254024f3 QtWidgets: compile with QT_DISABLE_DEPRECATED_BEFORE=0x050d00
Don't call or implement functions which are not available when compiling
with QT_DISABLE_DEPRECATED_BEFORE=0x050d00

Change-Id: If427e20774b358dc16fa1c7d7ba8c0feba3e144b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:31 +00:00
Christian Ehrlicher
ee845dfc39 QtGui: compile with QT_DISABLE_DEPRECATED_BEFORE=0x050d00
Don't call or implement functions which are not available when compiling
with QT_DISABLE_DEPRECATED_BEFORE=0x050d00

Change-Id: I763a1c60d7cc080677736447dc358299d8f7ab04
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:29 +00:00
Joni Poikelin
64fab8f7e2 Add faster path for scaling QRegion with multiple regions
Fixes: QTBUG-72821
Change-Id: Ic4fa349087239337a77b0e280be551b46c75af71
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2019-02-13 05:12:05 +00:00
Lorn Potter
960af0d64d wasm: remove EM_ASM calls in wasm platform plugin
Change-Id: I8453836b6730d18eaaa4ffe1fb9cb3933079ebee
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-13 04:12:53 +00:00
Lorn Potter
078cc302cb wasm: fix build with emsdk 1.38.26
emscripten removed their fake SSE support, which removed x86intrin.h

Task-number: QTBUG-73657
Change-Id: I77094fc77be3e685adf9e16d8c3e6aebde9b0687
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-02-13 04:11:16 +00:00
Alessandro Portale
6c9b17d446 Fix: "Emit keyword being used with non-signal"
[-Wclazy-incorrect-emit]

Change-Id: I21f69d7f6b161d70a687ab17b2821a595c113ec7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-02-12 21:56:56 +00:00
Liang Qi
93bcd488af Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-02-12 18:13:34 +00:00
Christian Ehrlicher
0e82e1bd23 QComboBox: deprecate signal currentIndexChanged(const QString &)
QComboBox has two overloaded signals currentIndexChanged(). This results
in a need to use QOverload<>::of or similar when using the new
signal/slot syntax.
Since there is already a signal 'currentTextChanged()' which is
emitted too, deprecate 'currentIndexChanged(const QString &)'.

Change-Id: Iadac8930de1721b042fa1daea097c8ab5378738e
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-12 17:12:55 +00:00
Christian Ehrlicher
a7123de6c9 QFontComboBox: fix layouting in RTL mode
QFontComboBox did not work very well in RTL mode. The text was not
aligned right and the icon was not painted on the right side as it is
done for a normal combobox.
Fix it by using QStyle::alignedRect() for the icon position calculation
and passing the correct alignment when drawing text.

Fixes: QTBUG-19722
Change-Id: I47c5864519e78e0833ef4c07a1385e45ce4479f8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-12 17:12:44 +00:00
Christian Ehrlicher
afc7b26313 QtWidgets: mark QFileDialog functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - QFileDialog::setConfirmOverwrite()/confirmOverwrite()
 - QFileDialog::setReadOnly()/isReadOnly()

Change-Id: I3cc1df76c8e40e95b8e9893ae06ef488fad26fb6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-12 17:12:41 +00:00
Friedemann Kleint
652075d1e0 Add missing \since to QList<T>::swapItemsAt()
Amends 7f4d0405b4.

Change-Id: I4de38428ea4a0e448e2930d19d94821884f7331e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-02-12 16:41:29 +00:00
Tor Arne Vestbø
1a36cf5ea1 Deduplicate QWidgetPrivate::invalidateBuffer
Now that MSVC (presumably) supports templates, we can merge the QRect
and QRegion versions of the functions into one.

The function has been renamed to invalidateBackingStore to better
reflect what it's doing.

Change-Id: I0e94a0cabd286cf97f2ba718a42ee0425f59d3ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-12 13:32:14 +00:00
Andy Shaw
a3c3330b6f Update SQLite to 3.27.1
[ChangeLog][Third-Party Code] Updated bundled SQLite to version 3.27.1.

Change-Id: I816a78bff07e5cde52fb7ff60b528924f22b1b80
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2019-02-12 13:24:35 +00:00
Jean-Michaël Celerier
cbbf7ddd3d Fix detection of libraries when linking against static builds with CMake
This patch is a follow-up to eda28621f6.
It adds a translation of the $$[QT_INSTALL_LIBS] variable into
a path that CMake understands.
Without this, CMake finds the system libraries if there are any
instead.
It also handles the case where the .prl file contains absolute paths to
libraries, as it happens for instance on Debian systems.

Task-number: QTBUG-38913
Change-Id: If68373efee22bc00172e8fead3e2c12ea440787f
Reviewed-by: Kyle Edwards <kyle.edwards@kitware.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
2019-02-12 13:09:38 +00:00
Nicolas Fella
2c60844bad [platform/android] Add native file dialog
Add basic native file open dialog on Android. Not all features of QFileDialog can be mapped to the
Android file dialog.

Most notably there is no "Save" dialog. The dialog returns a content:// URL. Patch 251038 adds
support for those to QFile.

Change-Id: I13d02103edcd9a089afcce8193432f24b2e0fe43
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-02-12 13:03:17 +00:00
Michal Klocek
3fe9f245e8 Add platform native interface to offscreen plugin
Adds trival support for querying "display" and "glxconfig" in case
offscreen plugin is compiled with xlib support.

This is required so this plugin could work with webengine.

Taks-number: QTBUG-63346
Change-Id: Ie0f29385cb44429ddf383ad459e0c9f3263ccffe
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2019-02-12 12:57:26 +00:00
Qt Forward Merge Bot
d3b3be6865 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iad53d4f21263718b8ecf15fd2d1170d24c7b675d
2019-02-12 13:53:22 +01:00
Eric Lemanissier
fd88c152db configure: use proper separator for mingw libraries
Change-Id: Ic328691fe2f08e918c1bb67910521d85b274a8fd
Fixes: QTBUG-73466
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-02-12 05:48:58 +00:00
Yuhang Zhao
3b87ecc06a Win32 makefile for qmake: Use proper linker
Use xilink for ICC and lld-link for Clang.

Change-Id: I13c74339ae9e3e5c97210afd20a53c7e474b873b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-11 23:27:57 +00:00
Tor Arne Vestbø
9f22ac0aa0 macOS: Don't send redundant geometry change events for top level windows
Top level windows already get their geometry changes via windowDidMove
and windowDidResize.

Change-Id: Ie6370aa290ef48c8b3ac770e77adb57ce43cbb47
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:42:04 +00:00
Tor Arne Vestbø
17e5158570 macOS: Treat default swapInterval (-1) as vsync-enabled display-link
Change-Id: I6d3d241d3813bfac36155ad219d4a338cb1ef6f7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:41:56 +00:00
Tor Arne Vestbø
21e25ff38b macOS: Simplify mouse tracking
We don't need to react to updateTrackingAreas, as we only have a
single tracking area that we can add once and forget. By asking
AppKit to track all events in the visible rect, we can also pass
a zero-rect for the tracking area.

Change-Id: I2545712adc49b51904d5adc11f1faca36901b49d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-11 01:41:51 +00:00
Tor Arne Vestbø
4697467e98 macOS: Explain QNSViewMouseMoveHelper for future generations
Change-Id: I61f38ee38d5afb657cd8b76b2b9dba1dac7167b4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-02-11 01:41:44 +00:00
Tor Arne Vestbø
6f9e444c28 harbuzzng: Remove assumption about Core Text working in 96 DPI
Core Text doesn't actually have a concept of DPI internally, as it
doesn't rasterize anything by itself, it just generates vector paths
that get passed along to Core Graphics.

In practice this means Core Text operates in the classical macOS
logical DPI of 72, with one typographic point corresponding to one
point in the Core Graphics coordinate system, which for a normal
bitmap context then corresponds to one pixel -- or two pixels for
a "retina" context with a 2x scale transform.

Scaling the font point sizes given to HarfBuzz to an assumed DPI
of 96 is problematic with this in mind, as fonts with optical
features such as 'trak' tables for tracking, or color glyphs,
will then base the metrics off of the wrong point size compared
to what the client asked for.

This in turn causes mismatches between the metrics of the shaped
text and the actual rasterization, which doesn't include the 72
to 96 DPI scaling.

If a 96 DPI is needed, such as on the Web, the scaling should be
done outside of HarfBuzz, allowing the client to keep the DPI of
the shaping in sync with the rasterization.

The recommended way to do that is by scaling the font point size,
not by applying a transform to the target Core Graphics context,
to let Core Text choose the right optical features of the target
point size, as described in WWDC 2015 session 804:

https://developer.apple.com/videos/play/wwdc2015/804/

GitHub-PR: https://github.com/harfbuzz/harfbuzz/pull/1484
Change-Id: I830f0cd7a82552422bbe09226e2d571e246fe3f4
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-02-11 01:41:32 +00:00
Samuli Piippo
7472415f3f tst_QMenu: skip part of menuSize_Scrolling test
Test fails on minimal and offscreen platforms.

Task-number: QTBUG-73522
Task-number: QTQAINFRA-2630
Change-Id: I6260454be35a8bbac1ab683d89fb7b262d3b69ab
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2019-02-09 13:48:16 +00:00
Lars Knoll
035d80407b Fix two smaller bugs in the BiDi engine
Remove wrong code changing the Bido level of line separators. This
lead to wrong ordering of the string in case the line separator was
meant to be ignored and the string should be rendered in one line. Line
breaks are anyways already reset to the paragraph level by the algorithm
and reordering is done on a line by line basis, so this will work
correctly when doing proper line breaking.

Secondly fix a small bug found while testing the above change, where
we wouldn't set the correct levels for boundary neutrals and explicit
embedding chars because we did that processing before we were fully
done with the BiDi algorithm.

Change-Id: Id88f91cd58d2ab29be864aef34ca1727c1586611
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-02-09 08:01:26 +00:00
Lars Knoll
79f2a9e666 Fix an assertion in the BiDi algorithm
The algorithm has been treating DirB inconsistently so far.
initScriptAnalysisAndIsolatePairs was treating it differently
than generateDireationalRuns leading to assertions.
It wasn't visible in our test data, as DirB is in almost all cases the
paragraph separator, where we split strings anyway.

Change-Id: I7dc0e7bbcf30ee84d8781ea06097da023e371f05
Fixes: QTBUG-73238
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-02-09 08:01:16 +00:00
Lars Knoll
4247d7c5a0 Fix QTextTable:insertRows() for tables with spanning cells
Don't resize the height of cells spanning several columns
multiple times.

Fixes: QTBUG-36713
Change-Id: I5eb45892f2008e6a4f85745b56efd04323e25673
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-02-09 08:01:08 +00:00
Christian Ehrlicher
1b5a17632e Fix deprecation warnings in widget autotests
Fix all deprecation warnings within tests/auto/widgets

Change-Id: I854f54c0a1dc0a0086f626b93cd39f63cb1b6033
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-08 18:00:51 +00:00
Friedemann Kleint
4ce485a2eb Fix some QPainter-related deprecation warnings
text/qtextdocument.cpp:2666:48: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
text/qtextdocumentfragment.cpp:545:87: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
text/qtextdocumentfragment.cpp:546:68: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3321:34: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3342:48: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3366:47: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainter.cpp:4233:49: warning: ‘void QPainter::drawRoundRect(const QRectF&, int, int)’ is deprecated: Use drawRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainter.cpp:8349:27: warning: ‘void QPainter::setMatrixEnabled(bool)’ is deprecated: Use setWorldMatrixEnabled() instead [-Wdeprecated-declarations]
painting/qpdf.cpp:1545:28: warning: ‘void QDataStream::unsetDevice()’ is deprecated: Use QDataStream::setDevice(nullptr) instead [-Wdeprecated-declarations]
widgets/qtabbar.cpp:2096:17: warning: ‘void QPainter::initFrom(const QPaintDevice*)’ is deprecated: Use begin(QPaintDevice*) instead [-Wdeprecated-declarations]

Change-Id: I76d98ea8146e7586d3763a5610781c7736d37204
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-08 16:41:54 +00:00
Mårten Nordheim
c41efe7373 Schannel: slightly optimize memory-usage for encryption
Change-Id: I0f4b372ad3a0cd5e6730ed2e23e738fb06b2aad5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-02-08 14:37:50 +00:00
Liang Qi
26ebdeff75 Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-02-08 14:27:19 +00:00
Edward Welbourne
c066656aff Avoid read-outside-array error by QStringRef over-reach
Constructing a QStringRef directly from the string, offset and a
length is UB if the offset + length exceeds the string's length.
Thanks to Robert Loehning and libFuzzer for finding this.
QString::midRef (as correctly used in both changed uses of QStringRef,
since 432d3b6962) takes care of that for us.  Changed one UB case and
a matching but correct case, for consistency.

In the process, deduplicate a QStringList look-up.
Added tests to exercise the code (but the one that exercises the
formerly UB case doesn't crash before the fix, so isn't very useful;
the invalid read is only outside the array it's scanning, not outside
allocated memory).

Change-Id: I7051bbbc0267dd7ec0a8f75eee2034d0b7eb75a2
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-08 13:56:25 +00:00
Morten Johan Sørvig
b611eb81c8 Fix QDeadlineTimer::Forever case in QWaitCondition
The timeout will never be larger than numeric_limits<quint64>::max(),
especially on platforms with 32-bit longs.

Instead, test if the timeout is exactly numeric_limits<unsigned long>::max(),
which matches the ULONG_MAX value which is documented
to indicate no timeout.

Change-Id: Ib663eddb5703797c50c04fd4eae60bd64f379d1c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-02-08 13:48:32 +00:00
Oliver Wolff
30178a22ff Windows configure: Make dynamic opengl the default option
Most people expect dynamic opengl the default, when configuring Qt on
Windows and are not too happy if they have to reconfigure and rebuild when
they they find out, that the default is ANGLE.

Dynamic OpenGL is the way to go as the user can easily decide what to use
by setting the QT_OPENGL environment variable. Besides that, our packages
are built using dynamic OpenGL on Windows

[ChangeLog][configure] The default OpenGL configuration changed from ANGLE
to dynamic OpenGL.

Change-Id: Ia5688249e6d0a4d3ebe8cbe22e02fe290d9f0a4c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-02-08 13:20:07 +00:00
Liang Qi
fbfacd33be Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/android/templates/AndroidManifest.xml
	src/network/ssl/qsslsocket_mac.cpp
	src/widgets/styles/qstylesheetstyle.cpp
	tests/auto/corelib/kernel/qtimer/BLACKLIST
	tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
	tests/auto/testlib/selftests/expected_blacklisted.lightxml
	tests/auto/testlib/selftests/expected_blacklisted.tap
	tests/auto/testlib/selftests/expected_blacklisted.teamcity
	tests/auto/testlib/selftests/expected_blacklisted.txt
	tests/auto/testlib/selftests/expected_blacklisted.xml
	tests/auto/testlib/selftests/expected_blacklisted.xunitxml
	tests/auto/testlib/selftests/expected_float.tap
	tests/auto/testlib/selftests/expected_float.teamcity
	tests/auto/testlib/selftests/expected_float.txt
	tests/auto/testlib/selftests/expected_float.xunitxml

Done-With: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: If93cc432a56ae3ac1b6533d0028e4dc497415a52
2019-02-08 12:31:02 +01:00
Oliver Wolff
bf7458c76f winrt qpa: Remove last windows phone leftovers
WINAPI_PARTITION_PHONE_APP is defined for all our winrt mkspecs nowadays
so the code can be used unconditionally.

Change-Id: I4f2b60a0b9bba5b407ebbc213c44a0e5b4057855
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-02-08 08:59:56 +00:00
Oliver Wolff
5f384bd39c winrt: Warn if OpenGL ES version is set to a value > 3.0
Our bundled ANGLE library only partially supports OpenGL ES > 3.0 so warn
users that there might be dragons.

Change-Id: I16711fe9f449e85dd8b2369e1fcec6c9f81d5ae0
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:55 +00:00
Oliver Wolff
932b13d3ec windows: Support OpenGL ES versions > 3.0 with ANGLE
Even though our ANGLE versions only partially supports OpenGL ES > 3.0,
there are users who want to use functionality that is available. By
setting major and minor version we can support this use case.

Fixes: QTBUG-72762
Change-Id: I9a1d3009355693baa971deb3c4bbf14c595edf0b
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:54 +00:00
Oliver Wolff
1036c45086 Revert "winrt: Skip context validation in ANGLE"
Our current ANGLE version (chromium/3280) relies on validation to be done
when doing the rendering, as the validation at the same time completes the
caching. Skipping the validation caused asserts and rendering issues.

The part of the validation that failed before is now deactivated in Qt's
copy of ANGLE as it is not relevant for our use case, so that validation
can be re-enabled now.

This reverts commit a1dec825f9.

Fixes: QTBUG-73317
Change-Id: I5fd176eaa0bc28d93ca93019b7092211fe5bcce5
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-02-08 08:59:53 +00:00
Oliver Wolff
86cf366a30 winrt: Use ES3 ANGLE code path when blitting widgets
We run into validation issues when using the ES2 code path when blitting
widgets on winrt. By using ES3 we not only avoid this issue, but there
might also be performance gains.

We now call window()->format() instead of window()->requestedFormat as the
latter will not respect the values that were set on initialization of the
native window (which is done in QWinRTWindow's constructor).

Change-Id: I5ed7a9326691375f9c9cb5d8d22ee8d1b643fbd0
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
2019-02-08 08:59:51 +00:00
Morten Johan Sørvig
c1f4286a5c Wasm: Implement QThread::idealThreadCount()
Read the navigator.hardwareConcurrency property.

Task-number: QTBUG-64625
Change-Id: I2ad582b67e4b0ddac3e3c21febab55543b2e1d6d
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 16:14:31 +00:00
Morten Johan Sørvig
de4f256d48 Wasm: enable thread support
configure.json: Make the “thread” feature be allowed
for wasm but disabled by default.

Change qmake.conf and wasm.prf to enable Emscripten
pthreads mode:
- Add USE_PTHREADS=1 linker flag
- Add PTHREAD_POOL_SIZE linker flag with a default pool size (4).
- Add TOTAL_MEMORY linker flag to set available memory (1GB)

It is possible to override options such as PTHREAD_POOL_SIZE
from the application .pro file using QMAKE_WASM_PTHREAD_POOL_SIZE
To change TOTAL_MEMORY, use QMAKE_WASM_TOTAL_MEMORY

Make qtloader.js work in pthreads mode:
- The Module.instantiateWasm callback must provide the module
  in addition to the instance to Emscripten.
- Set Module.mainScriptUrlOrBlob so that the pthreads web workers
  can access the main script

Task-number: QTBUG-64625
Change-Id: I1ab5a559ec97c27c5fc24500ba5f863bcd275141
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 16:13:26 +00:00
Morten Johan Sørvig
6e7a7d5fb9 Wasm: enable source map support for debug builds
The source map location can be configured by setting
QMAKE_WASM_SOURCE_MAP_BASE in the .pro file. Fall back
to “http://localhost:8000” if not set.

Task-number: QTBUG-72002
Change-Id: I9da80dacdefc272f267e5db4caac274d93ba4479
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 16:11:23 +00:00
Allan Sandfeld Jensen
60addee938 Improve ARGB32ToRGBA64 conversions
Improves the precision so 255 values map to 65535 exactly.

Change-Id: I366f408e8c6047d52acbed35e9d665249bbaba2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-07 14:27:47 +00:00
BogDan Vatra
74e04d6ace Android: follow official android flags for cmake
Update our cflags and lflags with the ones found in android.toolchain.cmake

Fixes: QTBUG-73274
Change-Id: Id9fd9bf04df959239abd3100090a1485e872b2f0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-02-07 09:02:17 +00:00
Morten Johan Sørvig
928cab5ff1 wasm: add public API for local file access
The web sandbox restricts access to the local file system,
which means Qt needs new public API to provide such
access to applications.

This adds a new static, asynchornous getOpenFileContent()
function to QFileDialog, which will show a file dialog,
read the file contents once a file has been selected, and
finally call the user-provided callback with the selected
file name and file data.

  auto fileReady = [](const QString &fileName, const QByteArray &fileContents) {
    // Process file
  }
  QFileDialog::getOpenFileContent("*.*", fileReady);

This API can be expanded in at least two ways in the
future: allow reading multiple files, and allow file
streaming by returning a QOIDevice.

Change-Id: I011b92fbcf21f0696604e66b7f9eb265c1a07aaa
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 06:49:31 +00:00