For HTTP/1 it's done when no data expected and response headers received -
protocol handler emits channel->allDone which handles the status code and
sets (if needed) a redirectUrl. HTTP/2 protocol handler cannot emit allDone
(it has many requests multiplexed and actually cannot say allDone yet).
So we set a redirect url if we have the corresponding status code and
found 'location' header.
Task-number: QTBUG-63471
Change-Id: Ibd3438ef918c245a46b8c0128910a89b9a418448
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
The highlighted examples list for QQC2 is maintained separately.
Task-number: QTBUG-60647
Change-Id: Ib64ff7a44c6fcaf99058422d76ef6680df310911
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This reverts commit 9e268185bb.
Reasons: must go into 5.9 + the logic in this patch needs fixing, not good as
it is now.
Change-Id: I92516ddb1d2661d85ce77c54a1307f45df1ab635
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
- new screenshot with more up-to-date graphical look
- deleted itemviews-editabletreemodel.png from old folder
doc/src/images
- deleted unnecessary item in qtwidgets.qdocconf
Task-number: QTBUG-60635
Change-Id: I9b82fa027347fb0fd7adb86038abd32853e68c3a
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
access\qnetworkdiskcache.cpp: In member function 'virtual qint64 QNetworkDiskCache::expire()':
access\qnetworkdiskcache.cpp:540:44: warning: 'QDateTime QFileInfo::created() const' is deprecated: Use either birthTime() or metadataChangeTime() [-Wdeprecated-declarations]
cacheItems.insert(info.created(), path);
^
Change-Id: I5705de5cb4b490ef2bd788fb94ceac0e5b6c0d05
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This guarantees that we have proper version checks in place for APIs on
Apple platforms that are not necessarily available on the deployment
target.
Change-Id: I10060f8b910f2bb790aa4a9c6f8c5cdc14d7cf06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Convert QSysInfo/QOperatingSystemVersion to __builtin_available where
required or possible, or to QOperatingSystemVersion where
__builtin_available cannot be used and is not needed (such as negated
conditions, which are not supported by that construct).
Change-Id: I83c0e7e777605b99ff4d24598bfcccf22126fdda
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Unlike client, this needs a bit more changes:
- remove redundant (and outdated) stdlib.h includes
- use QRandomGenerator (instead of qsrand/qrand pair)
- replace QStringList with QVector<QString>
- Q_NULLPTR->nullptr, ExplicitType * -> auto
- fix some weird indentation
Task-number: QTBUG-60628
Change-Id: I12eed12711b1e622407bd8ecd1afdf56a2cf2097
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
For HTTP/1 it's done when no data expected and response headers received -
protocol handler emits channel->allDone which handles the status code and
sets (if needed) a redirectUrl. HTTP/2 protocol handler cannot emit allDone
(it has many requests multiplexed and actually cannot say allDone yet).
So we set a redirect url if we have the corresponding status code and
found 'location' header. Before it's too late.
Task-number: QTBUG-63471
Change-Id: Icfa871fb999e676650d62c45a20e689596da4028
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
When Cmd+W is used to close a window, check if m_platformWindow is still valid
before accessing window property.
Task-number: QTBUG-63389
Change-Id: I9abda19b8482e7a1fd07b07d8981b6a768e96c2e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Otherwise QWindow::setFilePath() before create() would have no effect.
Change-Id: Ia2171054aa13e21316d525193d330efaf4653dbf
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
QWindowContainer assumed that a widget could never change from
native to non-native. This is not a fact when the window container
is reparented to toplevel and back. In this case, usesNativeWidgets
would be stuck at true, and parentWasChanged() would go down the
native widget path, triggering an assert.
The solution is to always recalculate the usesNativeWidgets bool.
Task-number: QTBUG-63168
Change-Id: I88178259878ace9eb5de2ee45ff5e69b170da71c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Copy into the intended array elements, not into the start of the
array.
Change-Id: I05c4ece2450583c9358aa1eddfd702262e995146
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Most linux distribution uses libjpeg-turbo as a replacement for libjpeg.
Since Qt will be linked against -turbo more frequently than the "original"
libjpeg we should use it for the bundled copy, too.
Also add an import script.
[ChangeLog][Third-Party Code] Replaced bundled libjpeg by libjpeg-turbo 1.5.2
Change-Id: I41081db74f194cbc288820fc783c9fef16545efd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
... as soon as we updated multicastsender. Changes are minimal and mostly
cosmetic - use 'explcit' and 'nullptr' where appropriate, make a socket
data-member and not a pointer, move the 'datagram's declaration outside
of a loop.
Task-number: QTBUG-60628
Change-Id: Icfa46e6d2844c40a605f2f4066847594943a8ea8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Problem was for 32 bit macOS, or if QT_COORD_TYPE was configured
to be float.
Change-Id: I0a3d3d305f2e8a0f9be7c40f4fef7eabf4643d05
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Use the new configure system consistently.
Task-number: QTBUG-63429
Change-Id: I6668ba9fde09492f3e60e614103e18e88783d0c4
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Swapping from RHEL 7.2 to 7.4 produces new autotest failures.
Task-number: QTBUG-63433
Change-Id: I3e59aa73b5874cfec06e166f521e06b0c7829743
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This is mostly relevant for Apple platforms, where we can use the new
unguarded availability warnings to guarantee that proper version checks
are present when using APIs that are not necessarily available on the
deployment target.
Change-Id: Ie408704b2924e1220491a9ea30f0141dfa4867d9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
... as soon as we updated the 'sender' example. Changes are purely cosmetic
though - 'explicit', nullptrs and local variables instead of redundant
data-members (QPushButton).
Task-number: QTBUG-60628
Change-Id: I572219da9d2a0ced07d94efb6f52f00b5a9c546d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
GCC 7 and other compilers compile this code just fine. GCC 6 fails, so
this is clearly a compiler bug. So revert the implementation of the
qWait() function back to the original, to make the problem disappear.
qtestsystem.h:58:42: error: ‘bool QTest::qWaitFor(Functor, int) [with Functor = bool (*)()]’ used but never defined [-Werror]
Change-Id: I0b48fc8e90304e0dacc3fffd14e8110138cc9f45
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
If you're using GCC 7 or Clang 4, Q_REQUIRED_RESULT expands to
[[nodiscard]] that must appear in as specific place on the line.
qcompilerdetection.h:1182:29: error: attribute ignored [-Werror=attributes]
qtestsystem.h:58:12: note: in expansion of macro ‘Q_REQUIRED_RESULT’
static Q_REQUIRED_RESULT bool qWaitFor(Functor predicate, int timeout = 5000)
^~~~~~~~~~~~~~~~~
Change-Id: I0b48fc8e90304e0dacc3fffd14e80ede168d5c6b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Apparently it's all meant to be in alphabetic order by feature name
(except for where it isn't). So move my new addition to it to where
that would put it, re-order everything else to follow that rule and
add a comment documenting it.
Change-Id: I6f00d3d18fc8c492992e9f701520f3e8731739b5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This definition causes a build error if concrt.h is included.
According to Microsoft [1], this macro is unsupported. It was added in
f5908363 to silence compiler warnings that are generated when exceptions
are turned off and certain STL headers are included.
We specifically disable the warnings in question now.
[1] https://blogs.msdn.microsoft.com/vcblog/2015/07/14/stl-fixes-in-vs-2015-part-2/
Task-number: QTBUG-63409
Change-Id: I567d5d46292fbd7898394e217bb0987fbcdca9de
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
In case connectToHostByName() returns 'true', we should fetch the
connection parameters and emit connected() signal.
Change-Id: Id36b6d71005b8cec070a1b12e7bb0caf8bf0bcb9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
glXGetVisualFromFBConfig according to documentation can return NULL [1].
This may result in a crash when running Qt applications using ARGB windows
with XLIB_SKIP_ARGB_VISUALS defined.
Also guard QXlibScopedPointerDeleter against illegally calling XFree(nullptr).
[1] https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glXGetVisualFromFBConfig.xml
Task-number: QTBUG-58910
Change-Id: Ie076a1e906ed632543bdab03ef365f699533a61a
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
_a[1] was reinterpret_casted twice in a row, which triggers
clang's warning undefined-reinterpret-cast:
"dereference of type '_t *' (aka ...) that was reinterpret_cast
from type 'void **' has undefined behavior "
only the last reinterpret_cast is kept
Change-Id: I71d52c5ff08c674003aec29f8a907c90905c0d4c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This avoids looping prior to the main 16-byte loop, by performing one
load that may include bytes prior to the start of the string. This is
guaranteed not to fault, since str points to a valid character, but it
may cause Valgrind to print warnings.
Change-Id: I6e9274c1e7444ad48c81fffd14dcae854bba24b2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
By the time we call setKeyboardMode(true), the menu may
already have taken focus. This change sets keyboardFocusWidget
before opening the popup, and makes sure that keyboardFocusWidget
is not set to the popup. (We cannot remove the assignment from
setKeyboardMode(), since it's called from several places.)
[ChangeLog][QtWidgets] Fixed widget losing focus after showing
menu second time.
Task-number: QTBUG-56860
Change-Id: Ic01726bf694e6f365dd7b601ad555156e0fdf6c5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Child QWindows (or in the case of QWindows embedded in native applications:
top level QWindows where the corresponding NSView is a child of another
view, so not being the contentView of its window), still need some of the
NSWindow notifications to e.g. update their exposed state when the window
becomes visible.
We make sure to send the notification to all QCococaWindow children of
the relevant NSWindow, and let each callback decide if it should only
apply to content views.
This fixes an issue where a QWindow would never be exposed if the window
was a child NSView and added to a NSWindow that was yet to be shown.
Change-Id: I7f7df8bc5f4ca3ac553a2c146f8c3229b197c059
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Otherwise the deletion of the platform window may result in platform events
that then conclude the QWindow has a valid platform window and calls into
it, when it's been half-way destroyed.
Change-Id: If9eaad1b4e6aa414ba0f96475756a2146e0c01d5
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
From: https://tronche.com/gui/x/xlib/events/exposure/expose.html
"The circumstances in which the X server generates Expose events
are not as definite as those for other events."
On windows with XCB_GRAVITY_NORTH_WEST flag set we should not get
expose events according to e2665600c0,
but as stated earlier this might not always be true.
Nevertheless, sometimes we get expose event from X server when shrinking
window, but most of the time we don't. Make the test not flakey by
checking that we get at least 1 expose event, instead of exactly 1.
Now running test 500 times in a loop does not fail.
Task-number: QTBUG-63424
Change-Id: I8004e622020cc09e11b7d592faf6d9ee1b9cfee2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
QGuiApplicationPrivate::processExposeEvent updates the QWindow's exposed
state, so we need to call QWindowSystemInterface::handleExposeEvent()
when going from non-exposed to exposed.
Change-Id: I461b2fb27cd8fd4bdb250d05d47f9af6cb3eb15c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
When the range to work on is empty just continue to next span.
Task-number: QTBUG-63412
Change-Id: Ic5cb77ed438eb9c218f482095aa0cd4e3c2fc6e6
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>