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>
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>
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>
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>
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>
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>
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>
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>
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>
Add missing include removed by 13426aff24.
Fixes: QTBUG-80163
Change-Id: I6b81f399a3abf637a2023700baac09b631d652d5
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
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>
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>
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>
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>
It's unlikely, since we do 64-bit RDRAND on 64-bit machines.
Change-Id: I8d95fbaf90e842b9b44dfffd15cd684a98a7ff50
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Workaround for libpng bug in GCC 8.1.0.
Task-number: QTQAINFRA-3303
Change-Id: Id7668e795cb4ab16de3199fc3727d844aa31bfad
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Task-number: QTBUG-74953
Change-Id: I9a630c9245d8b0afe40ade9199cf4f1d358275da
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
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>
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>
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>
The reader uses int variables, so use the same in the writer.
Change-Id: I1496b069cc534f1a838dfffd15c94c7cacd3dd93
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
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>
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>
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>
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>
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>
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>
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>
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>