Commit Graph

41779 Commits

Author SHA1 Message Date
Ville Voutilainen
7bb0d5379d Make transferTimeout getters const
Change-Id: I84c7e830ed9cf58c05ff06052c3df3beb74bb723
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-11-22 13:59:22 +02:00
Timur Pocheptsov
b455e45ab2 Deprecate TlsV1SslV3
Since we anyway deprecated SslV3.

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

Change-Id: I4bc592151c255dc5cab1a232615caecc520f02e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-20 19:43:38 +01:00
Friedemann Kleint
8bc4ea1e97 Windows QPA: Fix deprecation warnings
Fix warnings introduced by
qtbase/72f57cc84244633ca69ede9a1fd510b9b1881c1d:

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

Change-Id: Ie33f8b0e1e742f972d2a8065eba9e16a13ec43ee
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-11-20 14:59:04 +01:00
Friedemann Kleint
c355602595 Windows QPA: Port from QList to QVector
Use a QVector where possible. Otherwise, try
to introduce auto to make migration easier.

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

Change-Id: I99b3e285e06fb37fd5fe7412749fa87f4cf2ee9a
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-11-19 18:13:37 +01:00
Kari Oikarinen
315c2c468e tst_QScopeGuard: Remove unused lambda capture
qt5/qtbase/tests/auto/corelib/tools/qscopeguard/tst_qscopeguard.cpp💯38:
      warning: lambda capture 'caught' is not used [-Wunused-lambda-capture]
        auto cleanup = qScopeGuard([&caught] { s_globalState++; });
                                    ~^~~~~~

Change-Id: I0d9b85896594f3ea35c8003846d4ac7ab5e33d16
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-19 18:33:43 +02:00
Christian Ehrlicher
d7cb21ac08 QDom: use QLocale::C when converting a double to a xml attribute
QDomElement::setAttribute(QString, double) did not use QString::setNum()
but qsnprintf(). This is wrong because qsnprintf() is using the current
locale instead QLocale::C. It was also inconsistent to
QDomElement::setAttributeNS() which was already using QString::setNum().

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

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

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

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

Change-Id: I5c7a3c19aad48847f0b965b5eb69b492d6263f51
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-19 08:56:44 +01:00
Yuhang Zhao
9567103f38 qmake: Remove /O3 from win32-icc
Use O3 causes warnings when combined with O2, so just remove it.

Partially revert commit 11111c5a7d

Change-Id: Ifbf6e024e35933ecc3610d6efc3423589dab9a38
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-11-19 13:48:09 +08:00
Qt Forward Merge Bot
587f1cbc5d Merge remote-tracking branch 'origin/5.14' into 5.15
Change-Id: I4e5c8a1fcef443c3383e207102f21d41000ff322
2019-11-19 01:00:12 +01:00
Samuel Gaist
6a7a4aac0a Doc: add warning for binding values in QSqlQuery
Not all SQL operations support binding values like the PRAGMA
instruction of SQLite. This patch adds a warning for the developer to
make it clearer that binding values cannot be used for everything.

Task-number: QTBUG-80082
Change-Id: Ie1d33815d74a0759a3593df9410b8bad448f6fe9
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2019-11-18 23:52:36 +01:00
Friedemann Kleint
d17094df60 Sub-Attaq: Fix compilation with -no-opengl
Add missing include removed by 13426aff24.

Fixes: QTBUG-80163
Change-Id: I6b81f399a3abf637a2023700baac09b631d652d5
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-11-18 15:45:41 +01:00
Mitch Curtis
17ec21e824 Android: remove remaining reference to -android-toolchain-version
This amends 65dfc485ad.

Change-Id: I5e0ec7632befe0650138d1977d42313dc0acf3bf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-11-18 14:13:32 +01:00
Eskil Abrahamsen Blomfeldt
e193459877 Fix kerning with fractional pixel size
Since most of our APIs for pixel size are integer-based, we
would assume it was when passing it to Harfbuzz. But QRawFont
(and the internal APIs in Qt and Harfbuzz) support floating
point pixel sizes. The result would be that setting e.g.
pixel size 20.25 would give the same glyph positions as 20.75,
but the glyphs would be some fraction of a pixel larger.

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

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

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

Task-number: QTBUG-79827
Change-Id: I349dbb85cd9b6a3bedac329c0707fc07057cd64b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-11-18 12:34:32 +01:00
Joerg Bornemann
52c8e9dc99 Fix precompiled headers on macOS
Since commit 059172c6 precompiled headers did not work anymore on
macOS, because the ${QMAKE_PCH_ARCH} string was suddenly appearing in
locations where it was not replaced with the actual architecture, e.g.
the directory where the PCH files are written.

Fix this by replacing the whole file path and not just portions of it.

Fixes: QTBUG-79694
Change-Id: I925d4ee8980a0de3205a0e387a516a5c6f8cfa4b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-11-18 10:46:56 +01:00
Edward Welbourne
4218c3044d Revert "[macOS] Skip test that triggers a buffer overflow in CoreFoundation"
Allegedly Apple has fixed the bug that made this necessary, so we
should be able to include these two test-cases once more.

This reverts commit ba9585bd02.

Fixes: QTBUG-69875
Change-Id: I5ac6019c0d647691eda6cdbb2a53e7471859d4a3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2019-11-18 10:15:39 +01:00
Thiago Macieira
8e8b50b061 RDRAND test: also disable if RDRAND produced only three samples
It's unlikely, since we do 64-bit RDRAND on 64-bit machines.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-79924
Change-Id: I3ef7ad0ce928546399443f21452f0b6deadf8036
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2019-11-14 16:13:30 +01:00
Robert Loehning
6e42ed217c configure: Add sanitizer "fuzzer-no-link"
Adds instrumentation for fuzzing to the binaries but links to the usual
main function instead of a fuzzer's. The similar sanitizer "fuzzer"
should then be used only for building the test itself.

Requires clang 6 or higher.

Change-Id: I24ee1f018b0b97f2977dc86fbdc29a164d7c4e01
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-11-14 15:45:02 +01:00
Edward Welbourne
ad11cab484 Allow longer time-zone components on Android
Android uses its own time-zone naming, which includes a zone called
"Canada/East-Saskatchewan", whose second component is 17 characters
long. This violates a rule in the IANA naming scheme for zones, that
limits components to 14 characters each. So tweak the isValidId()
check to allow Android its long names.

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

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

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

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

This also fixes a crash in threaded wasm

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

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

Change-Id: I4694ab1d82c13cb4e3886c1722a03255d14b7f29
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-11-13 15:26:03 +00:00
Ulf Hermann
63dae62b7f In prefix builds, copy metatypes JSON to MODULE_BASE_OUTDIR
Otherwise we cannot find them when building further projects within the
same module. For example, qmlmodels needs the metatypes of qml in order
to build its plugins.qmltypes file, but the QML metatypes would only be
available after installing.

Change-Id: Ic2cdfa5b57fd3e5977eea16f2a9b192386737a1f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-11-13 16:25:53 +01:00
Laszlo Agocs
5bd48047de eglfs: kms: Make threaded atomic drm work
The atomic modesetting support was not prepared for page flips being
issued from different (per-screen) threads.

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

Make the atomic request and related variables thread local.

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

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

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

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

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

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

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

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

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

Fixes: QTBUG-79766
Change-Id: Ib9370ef300089af2c4d6070e545c5470f32833a8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-11-13 13:51:22 +00:00