When a TCP connection timed out a QAbstractSocket::NetworkError was set.
To enable a more precise error handling for timeouts
QAbstractSocket::SocketTimeoutError is now set instead.
Separated ETIMEDOUT from other errors in nativeRead() and take over
responsibility for setting the error, which was previously handled by read().
Change-Id: Iccd45bdbb3d944cd160ae50c257d3256e05b1ae5
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Foreign windows do not have Qt backingstore content,
and are also not capable of accepting Qt content.
Change-Id: I959c7cdc32e6f4322497e132a436ce7d610a4106
Fixes: QTBUG-71183
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This removes the need for specifying "-nomake examples"
on the configure line.
We are using static builds; building all of the examples
is too space and time consuming (especially time).
Change-Id: Iff23239ca7304b1d1cf734c8bf69ad3f8ef31844
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Commit 17b73b0d2b introduced a regression where the
grab rect position was added to the size when bounding
to the display size. This is incorrect.
Change-Id: I11d7ba7f53b96badfdead190ef9ddb525ed4ba99
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This matches the behavior of QScreen::grabWindow(),
and gives the caller direct access to the scale factor.
Change-Id: Ia3ed165a62eaa0f386f8b508ea6b1128ba6be604
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The devicePixelRatio on the returned pixmap should
be the product of the Qt and platform scale factors.
This handles the corner case of setting QT_SCALE_FACTOR
on macOS with a high-dpi display.
Change-Id: I3600165d47c03c4e043bcc5e375932cc3fc0c544
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Allows a qt build to be configured to target arm64 desktop apps cross
platform and build them with nmake.
Change-Id: I99fed12047b45a504a1644201bcc19b18c69f3e6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Output URL string and file system name, too.
Task-number: QTBUG-67932
Change-Id: Ic5d1927d70d98f7c081bee06af85b9f3a2a09812
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Assert on receiving double clicks which are currently not implemented.
Task-number: QTBUG-71263
Task-number: QTBUG-70999
Change-Id: I85cd21665ecaf118584053de63745044728d8f5b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The assert still happens on MSVC 2015 64 bit when running
qmake -tp vc -r.
This reverts commit f4169a633b.
Fixes: QTBUG-71228
Change-Id: I05bd3e0677414edb970f07e0555cdc95ce32f592
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Makes clang-tidy not trip over generated code while running the
modernize-use-auto checker. In theory clang-tidy just shouldn't look at
generated code of course; but in this case just modernizing the
generated code is easy, so let's do it.
Example:
.../moc_kastentoolviewwidget.cpp:78:9: warning: use auto when initializing with
a cast to avoid duplicating the type name [modernize-use-auto]
KastenToolViewWidget *_t = static_cast<KastenToolViewWidget *>(_o);
^~~~~~~~~~~~~~~~~~~~
auto
Change-Id: I10c287320e1d5b5b8e66da3e0a22d517d0275dd1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The input validation did not check for unreasonable use of the group
separator character.
Fixes: QTBUG-65024
Change-Id: If9d70d990fc6d5b298f3bde5b1604bf7e16dce24
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
QTBUG_7714_fullUpdateDiscardingOpacityUpdate2() would fail when
it moved to another screen if there is one to the left.
Change-Id: I3f8edc04c31dffc5a3bd005d9e5170dd68151df7
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
When calling setDocument (directly or through the constructor) a delayed
rehighlight is initiated. Previously, if any text was changed before
this rehighlight could run it would cancel the rehighlight, even if the
changed text only caused a new block of text to be highlighted.
Fixes: QTBUG-71307
Change-Id: Ib09b664d90906f5b4427105f0e45469806f3a779
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
%p just prints a pointer. The operator<<(QObject*) member will print the
class type and object name.
Change-Id: Iba4b5c183776497d8ee1fffd1564951da0c6bebc
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
This check, which was only done once, was wrong:
const int bytes_per_line = ((width * depth + 31) >> 5) << 2;
// sanity check for potential overflows
if (std::numeric_limits<int>::max()/depth < width
If width*height overflows, then it's already UB and checking afterwards
with a division is pointless and slow.
The other instances weren't properly guarding against overflows.
Change-Id: I343f2beed55440a7ac0bfffd1563350d4cfa639c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Instead of doing byte comparisons, let the compiler do 16- and 32-bit
comparisons on its own.
Change-Id: If7e743cf8476463880ccfffd155f8629991b0b87
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
It can detect the standard UTF codecs, but not non-standard like
UTF-7[1], UTF-9 or UTF-18[2].
[1] https://tools.ietf.org/html/rfc2152
[2] https://tools.ietf.org/html/rfc4042
Fixes: QTBUG-67188
Change-Id: If7e743cf8476463880ccfffd155f853dc947421a
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The number of instructions is the same. But if the CPU can issue
32-byte-wide loads, this will be faster. For CPUs that would do two
16-byte loads, this is no worse than current code.
Change-Id: I8f261579aad648fdb4f0fffd1553d060b4fc852f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
GCC 4.8 is complaining about perfectly valid (and recommended) code but
we still support it, so...
qcborvalue.h:74:25: warning: missing initializer for member ‘QCborError::c’
Fixes: QTBUG-71222
Change-Id: If7e743cf8476463880ccfffd155e8775b6b95469
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
The unit tests weren't running into this problem because the every
setDevice() was preceded by the object being initialized with the exact
same data, so there was never a previous error state. I've only changed
a couple of tests, left the other setDevice() unchanged so we test both
behaviors.
Fixes: QTBUG-71426
Change-Id: I1bd327aeaf73421a8ec5fffd1561a590e3933376
Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Needed in qHash(QCborValue).
Change-Id: If7e743cf8476463880ccfffd155eeca91369b356
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Amends a952fd7d5b.
The mentioned commit started to skip QObjectPrivate::isSignalConnected() call if
the connectionLists are dirty, which lead to tst_qqmllanguage::receivers() test
inside qtdeclarative breaking.
Declarative signals were not checked if that function was not called. It
previously also wasn't called for signals higher than 64. Fix that by checking
for declarative signals after the connectionLists search is unsuccessful.
Fixes: QTBUG-71550
Change-Id: Ifcb5fdd0dc9a6b14b9f448a016fd09356a55b985
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
On Linux the correspondence between cursor functions and names
of cursors has never been standardized. Projects have either
assembled their own cursor function-to-name lookup table or
borrowed the table from other projects. The origins of our table
is described in QTBUG-71423.
On Ubuntu the default theme is called Adwaita. Before
bd72950fbe, we would not find a
cursor for 'openhand' and would fall-back to QXcbCursor::
createNonStandardCursor(). Which was sub-optimal, because the
cursors created by the fall-back path don't look like the
themed ones. But the situation was worse after bd72950fb (hence
the regression) - the 'openhand' fall-back name 'fleur' is a
symbolic link to 'grabbing', so we would get into a situation
where Qt::OpenHandCursor displays the same as Qt::ClosedHandCursor.
This patch adds a correct fall-back name for 'openhand' on Adwaita,
which is 'grab'. 'grab' actually is a symbolic link to 'hand1', but
'hand1' with other theams is a pointing hand cursor, that is why we
use the symbolic link's name in this case.
The lookup table still appears to be incomplete when comparing e.g
with KWin. Eventually we need to revise the table and put in a common
place so it can be shared between X11 and Wayland, but is out-of-scope
for this patch (see QTBUG-71423).
Fixes: QTBUG-71296
Task-number: QTBUG-71423
Change-Id: I247ed4b346c2cd3fe1c7fd0440d3763e0033346b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
The engine used to send a UDP datagram to the local address to check
the proxy setup, but the check fails in case of the proxy hosted in
WAN and the local address hidden behind a NAT. In other words the
check fails because a public proxy hosted somewhere in internet has
no access to local addresses such as 192.168.1.2.
Remove the check to fix the issue; we still have other means to
detect network errors.
Change-Id: Ib6df263c87ebd7d6e88a0b5e024e78a559995234
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
When a popup is active, we set the receiver of mouse events to
be the active popup widget. But when we send a mouse event to
the popup, the receiver might start a new QEventLoop (e.g by
executing a new dialog). And in the meantime, the popup will
be destroyed. This will cause a crash in the line after the
event delivery (where we sat "qt_last_mouse_receiver = receiver"),
since at that point, "receiver" would be a dangling pointer.
This patch will use a QPointer instead of a raw pointer to
store "receiver", to ensure that it's set to null for
such cases.
Fixes: QTBUG-71062
Change-Id: Ie017cfa97370513ecfdd62c056fcb0e6c991f9f6
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Also clean up QTextCodec usage in qmake build and some includes
of qtextcodec.h.
Change-Id: I0475b82690024054add4e85a8724c8ea3adcf62a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
By accident, when we erroneously tried testing TlsV1_3 on macOS with
SecureTransport (which does not support TLS 1.3) we hit this quite
subtle problem: it can happen that a server-side socket is never
created but a client (after TCP connection was established) fails
in TLS initialization and ... stops the loop preventing
SslServer::incomingConnection() from creating its socket. Then we
dereference nullptr.
Task-number: QTBUG-71638
Change-Id: I8dc5a4c53022a25aafe2c80a6931087517a48441
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
For this we can use whatever the current NSColor.gridColor contains.
While this is mostly needed by the 'Dark' appearance, it also affects
the 'Light' theme, since the color QCommonStyle returns is different.
Let's use whatever Apple suggests.
Task-number: QTBUG-71048
Change-Id: I084414bad546755e9e67792484fe4601826ed0fa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
[ChangeLog][Documentation] Fixed the icons for the "file save" action
that were inaccurate representations of a 3.5-inch floppy disk (the cut
edge was on the wrong side). Now all floppy representations are
physically accurate.
Change-Id: Ia3b27ae12a1a4fefa3b7fffd155bb86fee5271c3
Fixes: QTBUG-71012
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The issue we had has been fixed for years, but was unfortunately in
libxcb which we can't check at runtime. Instead assume very recent
Mesa drivers works.
Change-Id: I5fdd726b480b77edbedc0f369ae82ab4acbb77c9
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
When the environment variable QT_QPA_FB_HIDECURSOR is set to 0,
the two class members mCursorImage and mDeviceListener are nullptr
but this was not checked in the functions afterwards.
Task-number: QTBUG-64844
Change-Id: Ic0fd6a09851777643e59bedf2c006a6bb9a36801
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
AR and NM have different tools when LTCG is used,
override those also when cross compiling.
Fixes: QTBUG-71595
Change-Id: I5347bd1874688dd89395c50ff6dd08fb1c0ebab1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This part was accidently left disabling after testing the
fallback still worked.
Change-Id: Ic2df939753641a9771e68bc8857c570d356cff44
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Configuration 'compile' is obsolete and has been replaced with
'implementation' and 'api'.
It will be removed at the end of 2018. For more information
see: http://d.android.com/r/tools/update-dependency-configurations.html
Task-number: QTBUG-71570
Change-Id: I6f498d8cb3ff01ad641aee697496e3dc56059a72
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Opt out of switching between the normal and OpenGL based flush paths.
Once a QOpenGLWidget or QQuickWidget becomes visible in a window, the
window contents will be composed using OpenGL from that point on, even
if said widgets become invisible afterwards. Now that Qt Creator does
not rely on QQuickWidget the issue is less burning anyways.
Task-number: QTBUG-68329
Change-Id: I177e6e6094ee06ea26d8d0343bd3d84aadfa5913
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>