Now that the private ctor that calls this function is finally
out-of-line, this function need no longer be part of the ABI.
Task-number: QTBUG-123544
Change-Id: Ia4656bf8bfd4d68d6925f93ef150593cd2de6ddf
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
POSIX2008 demands that `stat` contains an `st_mtim` field of type `timespec`.
That field holds modification time with a nanosecond resolution.
VxWorks reports _POSIX_VERSION as 200112.
The `stat` struct does not contain `st_mtim`, but rather an `st_mtime` which
holds a `time_t` which contains seconds.
Because of that, when the test creates and modifies a file within one
second, the polling watcher does not detect any changes.
Fix the problem by postponing the watcher by 1s.
Pick-to: 6.7
Task-number: QTBUG-115777
Change-Id: Idfc1d7b2e111967a42c93c0adaffaa7d28ee20a7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
[ChangeLog][QtNetwork][QNetworkAccessManager] QNetworkAccessManager now
supports local connections using the uri schemes unix+http: or
local+http:.
Fixes: QTBUG-102855
Change-Id: I1f47b74ab42b51d97b3c555cc3afd6ccd272e1ed
Reviewed-by: Mate Barany <mate.barany@qt.io>
Accept tags between 8 and 12 bytes long, and move the check for 12
bytes to where it is needed.
Pick-to: 6.7 6.5
Fixes: QTBUG-125241
Change-Id: I1a46852a9ab60e7c63f8d74de1809d731912ab5b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
QDirSortItem contains three implicitly-shared members (two QStrings
and one QFileInfo), so the mere default-initialization of the
QDirSortItem[n] array with which we initialize the QScopedArrayPointer
will take quite some time.
Using QVarLengthArray, OTOH, delays construction until we have the
data to initialize the sort items, saving n default constructor and n
move assignment operator calls, plus the memory allocation for the
case where we have less than 65 elements to sort.
This code precedes the start of the public history, but the
emplacement won't work before 905bc62933
introduced the QDirSortItem ctor, so not picking back further than
that.
Pick-to: 6.7
Change-Id: I262217eabaded2a6aef08b87fc6369812bc8958a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Make the method handle all the different possible
paths in a more clean way.
Task-number: QTBUG-116955
Task-number: QTBUG-65567
Change-Id: If0ed1b529011b942c0fb67d0ad7a940896e03c85
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This adds new aar target, as we do with apk targets, and an option
to androiddeployqt, --build-aar, which builds an AAR instead of APK.
AndroidManifest.xml of an AAR does not include application or activity
nodes, so we add an AAR specific manifest. Also the plugin type in
build.gradle will be com.android.library when choosing to build an
AAR.
Task-number: QTBUG-116955
Task-number: QTBUG-65567
Change-Id: Id33ac236f44038a8411ebfecdcc4e404c976e277
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This allows to later change the plugin type based on the options
provided for the androiddeployqt, such as when building an AAR.
Task-number: QTBUG-116955
Task-number: QTBUG-65567
Change-Id: I6314c8ab9edccbf953ae48543d5a002a9f807581
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
AGP version 7.4 deprecated the use of "package" attribute in the
manifest to specify the unique package name, it's instead been
moved to build.gradle file and set using "namespace" property.
This patch adds support of that to androiddeployqt.
Removing the "package" attribute from the default manifest would
break Qt Creator 13 and below because Qt Creator would fail to
deploy apps without such attribute in the manifest. For that reason
we'll defer removing it until a later version, for example Qt 6.10,
to allow some buffer for a Qt Creator that can handle that to be
adopted by users to reduce breakage.
[ChangeLog][Android] Add support for namespace in build.gradle instead
of the package attribute in the manifest.
Pick-to: 6.7
Task-number: QTBUG-106907
Change-Id: Ib0f0d6a6fbb3b38f605aadfdcc497067daf90297
Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
Coverity found several FILE* leaks (since fixed) in the code, so make
sure that those can't happen anymore, by using unique_ptr to manage
the pclose() of the openProcess() FILE handles.
Keep the actual type of the unique_ptr instantiation local to
openProcess() so that creation and destruction are defined close
together, notwithstanding the occasional explicit pclose() calls to
capture the error code.
As a drive-by, port a naked popen() to openProcess(), make some
variables const and replace 0 with nullptr.
Pick-to: 6.7 6.5
Coverity-Id: 378357
Coverity-Id: 378442
Change-Id: I2b06b99cba1e4eb5b8963a9c5d2cb398eb25a8b3
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
The QWindowsScreenManager's m_displayChangeObserver window would still
be alive at the time ~QWindowsContext would unregister window classes,
resulting in a warning that was hidden by the default verbosity of
QWindowsContext::verbose. The result was that we would get a warning
when then trying to re-register the already registered window class.
We now do what we do for m_powerNotification and m_powerDummyWindow,
which is to destroy them explicitly before unregistering their class.
Fixes: QTBUG-125058
Pick-to: 6.7 6.5
Change-Id: Id3b02237fdd81f734a58a2314a157cad1289a82c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
SVG has special properties for stroke styling. Those are usually
supported by different browsers, because SVG documents can be
used inside HTML files. This kind of styling is already supported
by QPen and all need to be done is some plumbing to save and
retrieve those values in QTextDocument when it is stored as HTML.
Change-Id: I291efab5483ac5e852d117e762e203257c64b47f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Parse the -qpa configure argument as list and translate it to the
QT_QPA_PLATFORMS cmake variable. This variable is new to the Qt build
procedure. The QT_QPA_DEFAULT_PLATFORM variable supposed to get
multiple values, but this didn't work at all, since the variable value
then was used in the compile definition that is expected to be a single
value QPA platfrom definition. This inconsistency forced to introduce
a new variable.
The QT_QPA_DEFAULT_PLATFORM variable now controls the first-choice QPA
plugin for the GUI applications. The new configure argument
-default-qpa is now translated to the QT_QPA_DEFAULT_PLATFORM variable
instead the of -qpa one. The -qpa configure argument is now translated
to the QT_QPA_PLATFORMS variable, which is new one as well. The
variable contains the list of QPA plugins that are "default" for this
Qt configuration. The meaning of the "default" plugins is related to
the DEFAULT_IF argument of qt_internal_add_plugin command. Plugins
that are listed in the QT_QPA_PLATFORMS variable will be treated as
default by the build system and will be deployed within user
applications when using deployment API or linked statically when using
static Qt.
The QT_QPA_DEFAULT_PLATFORM falls back to the QT_QPA_PLATFORMS first
value in the list if it's not set explicitly and either
'-DQT_QPA_PLATFORMS' or '-qpa' arguments are specified.
[ChangeLog][CMake] Added QT_QPA_PLATFORMS variable which controls the
list of QPA plugins that will be deployed within the applications by
default.
[ChangeLog][CMake] The '-qpa' configure argument now is mapped to the
QT_QPA_PLATFORMS variable and has different functionality. It doesn't
control the platform plugin that the GUI application is using by
default, but controls the list of QPA plugins that will be deployed
within the applications by default.
[ChangeLog][CMake] Added '-default-qpa' argument which replaces the
'-qpa' one. The argument is translated to the QT_DEFAULT_QPA_PLATFORM
CMake variable and selects the default platform that should be used
by GUI application if QT_QPA_PLATFORM environment variable is not set.
Task-number: QTBUG-124265
Task-number: QTBUG-87805
Task-number: QTBUG-124449
Change-Id: Ibcebaccc535aaed6374f15ccfeddb3e6128f5ce0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The payload object is fully defined in the header file, so there's no
benefit in avoiding in-size use, which saves one memory allocation.
Amends 4a5a4245b7.
Change-Id: Iece2aed22ce525da940bd493b7009baeec6d06ba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This is in preparation of adding QT_NO_SCOPED_POINTER.
Change-Id: I040e2ce66590a8a3be48d6d69bbb2493c9fc81b9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
We do that for the other components of the URL, to distinguish a present
host or authority that happens to be empty from an absent one. We
already had partial support for this because QUrl does distinguish
between foo:/ and foo:///.
Change-Id: Ie30a3caf09ef4176bb36fffd17cddc20c47bb1a6
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Windeployqt deployed all the non Qt libraries in their x64
versions as it was not aware of the host it was running on. This
check needs to be done before any deployment happens.
Current support is limited for MSVC. mingw/clang might be done in
followup commits.
Pick-to: 6.7
Change-Id: I70fd6ad66c9cacfc6ff5b109f214a142b8b6d5f8
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
[ChangeLog][QtCore][QSizeF] Added qFuzzyCompare and qFuzzyIsNull
overloads for QSizeF
Drop the custom qFuzzyCompare() implementation from
tst_qgraphicsgridlayout.cpp
Task-number: QTBUG-120308
Change-Id: I32d11c1c81d0503914a8168b5e960a8c6ce943d9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Also explicitly add QSizeF vs QSize comparison. Previously such
comparison was implicitly converting QSize to QSizeF, and doing the
fuzzy comparison. We have to keep the old behavior to avoid
breaking user code, so use fuzzy comparison in the new operators
as well.
As a drive-by: put all the hidden friends in the private section.
Done-with: Ivan Solovev <ivan.solovev@qt.io>
Task-number: QTBUG-120308
Change-Id: Ia52adc97c557e475b19f5c16f9dd8c992637280e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
After the zip bomb checks were added the benchmark was not
adjusted.
Also move the QByteArray creation outside the loop, to not include
the time it takes to make a heap allocation.
Pick-to: 6.7 6.5
Change-Id: Ia958d497dd27fc61e0084b6f5c11d76886bb24c4
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
WinUI3 changed the behavior of Sliders by not using steps anymore but
by absolute change.
Fixes: QTBUG-125154
Pick-to: 6.7 6.7.1
Change-Id: I708f2584432b277b0c1fc0b2587137ce71714e69
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Some of our FindWrap scripts try to call find_package() once or more
to find a system package, and then fallback to a different source in
case if not found.
The side effect of this is that find_package() will append not found
packages to the global PACKAGES_NOT_FOUND property.
FeatureSummary feature_summary() will then list these as not found,
creating confusion.
For example while FindWrapSystemPCRE2 might be found, PCRE2 found will
be shown as not found, because we found the package via PkgConfig
instead of cmake Config file.
Manually remove these packages from the PACKAGES_NOT_FOUND property
in some of our Find scripts, to avoid the confusion.
Pick-to: 6.7
Fixes: QTBUG-96120
Task-number: QTBUG-96394
Task-number: QTBUG-111216
Change-Id: I4be825c810248202c34f446e3cebe66574d0531c
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Bridge the newly added QAccessibleAnnouncementEvent on macOS
by calling NSAccessibilityPostNotificationWithUserInfo with
param NSAccessibilityAnnouncementRequestedNotification [1] and
a dict containing the message and priority as data.
Post the notification on the application element, as the
comment for NSAccessibilityAnnouncementRequestedNotification
in the NSAccessibilityConstants.h header says:
"This notification allows an application to request that an announcement be made
to the user by an assistive application such as VoiceOver. The notification
requires a user info dictionary with the key NSAccessibilityAnnouncementKey and
the announcement as a localized string. In addition, the key
NSAccessibilityAnnouncementPriorityKey should also be used to help an assistive
application determine the importance of this announcement. This notification
should be posted for the application element."
This makes the announcement from the example app attached
to QTBUG-75003 work when using the VoiceOver screen reader
on macOS.
[1] https://developer.apple.com/documentation/appkit/nsaccessibilityannouncementrequestednotification
Task-number: QTBUG-75003
Change-Id: Iabd9acf8267b0fef00706004f17d48ebc3ecc161
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Bridge the newly added QAccessibleAnnouncementEvent to UIA
on Windows, by calling UiaRaiseNotificationEvent [1].
This makes the announcement from the example app attached
to QTBUG-75003 work when using the NVDA screen reader on Windows.
As described in commit d25d9f2c26,
implement the UiaRaiseNotificationEvent function for MingW
in qwindowsuiautomation as MingW doesn't provide that
itself yet (see the earlier MingW build failure without
that "kludge" in place: [2]).
[1] https://learn.microsoft.com/en-us/windows/win32/api/uiautomationcoreapi/nf-uiautomationcoreapi-uiaraisenotificationevent
[2] a2e63edda6/build_1714142084/log.txt.gz
Fixes: QTBUG-75003
Change-Id: Ia32d49276e0dd33cff5113b4169ee317869390e7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Forward the newly added QAccessibleAnnouncementEvent
to the AT-SPI level as a corresponding AT-SPI Announcement
event.
The AtspiLive enum to specify the priority/politeness
level was added in at-spi2-core/libatspi commit [1] which is
contained in libatspi versions >= 2.50, so define
the relevant values ATSPI_LIVE_ASSERTIVE and ATSPI_LIVE_POLITE
manually for older libatspi versions.
(Note that the mention of binary compatibility in above-mentioned
at-spi2-core commit only applies for ATK, not AT-SPI, so is not
relevant here.)
This makes announcement from the example app attached to QTBUG-75003
work when using the Orca screen reader on Linux.
[1] 32c9420ec8
Task-number: QTBUG-75003
Change-Id: I752aadca2abdda58b3869e17e74fcd9d7572f915
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The atspi.h header includes atspi-constants.h and other
libatspi headers.
Include the former here instead of manually including the latter,
in order to also implicitly include atspi-version.h added in
libatspi 2.50 commit [1]:
commit 927344a34cd5bf81fc64da4968241735ecb4f03b
Author: Mike Gorse <mgorse@suse.com>
Date: Thu Jul 20 15:02:03 2023 -0500
Add atspi_get_version() to return the runtime version of the AT-SPI library
Also adds ATSPI_MAJOR_VERSION, ATSPI_MINOR_VERSION, and ATSPI_MICRO_VERSION.
Fixes#129
This is in order to be able to use the new version defines for version-
specific code in upcoming commits.
[1] 927344a34c
Task-number: QTBUG-75003
Change-Id: If2d21c7dcff291c93fed2aa0d7c8f7acd7fae77d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Add a new QAccessibleAnnouncementEvent that
can be used to request the announcement of
a message by assistive technologies
(most prominently screen readers).
The priority/urgency of the message can
be specified using one of the values of the
newly added AnnouncementPriority enum.
As suggested by the maintainer of the Orca screen reader
in a similar merge request for GTK [1], add some
clarification that assertive priority should only be
used for things that are actually worth interrupting
the user's current task immediately rather than waiting
for the next graceful opportunity like the end of the
sentence currently spoken by the screen reader.
All of AT-SPI on Linux, UIA on Windows and NSAccessibility
on macOS have corresponding API:
* Linux/AT-SPI: Announcement event (initially added in
commit [2], possibility to set priority/politeness level
added in commit [3])
* Windows/UIA: UiaRaiseNotificationEvent [4]
* macOS/NSAccessibility: announcementRequested
function [5]
Bridging to the corresponding platform API in the
platform backends is left for separate upcoming
commits.
[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6461#note_1993454
[2] 26835da299
[3] 32c9420ec8
[4] https://learn.microsoft.com/en-us/windows/win32/api/uiautomationcoreapi/nf-uiautomationcoreapi-uiaraisenotificationevent
[5] https://developer.apple.com/documentation/appkit/nsaccessibility/notification/1530633-announcementrequested
[ChangeLog][QtGui][QAccessibleAnnouncementEvent] Added new
QAccessibleAnnouncementEvent that can be used to request
the announcement of a message by assistive technologies.
Task-number: QTBUG-75003
Change-Id: Ief60ae7c5a9c8bf8404ad9b2749e253acc5d77c5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The QNativeInterface::QVisionOSApplication interface allows opening
and dismissing an immersive space, as well as registering a compositor
layer implementation that can be used to configure the compositor
layer and render to it with Metal.
The compositor layer implementation is consulted both for immersive
spaces triggered explicitly, and when the default scene of the app
is set to CPSceneSessionRoleImmersiveSpaceApplication via the
UIApplicationPreferredDefaultSceneSessionRole in the Info.plist.
All of this requires that the application follows the SwiftUI app
lifecyle, so our application entrypoint is now a SwiftUI app. The
existing qt_main_wrapper used for the QIOSEventDispatcher handles
this transparently, so there is no change for the user, who will
still receive a callback to main() when the Swift app is ready
to build its UI hierarchy.
Change-Id: Ic295010d714e90cd4d3f66bd90f321438659f3a6
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Replace class operators operator==(), operator!=() of
QtPrivate::ResultIteratorBase to friend method comparesEqual() and
Q_DECLARE_EQUALITY_COMPARABLE macro.
Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of
current comparison methods and replace them with a friend.
Task-number: QTBUG-120304
Change-Id: Ib9a50a400df86d1dc034d2a0cfee804109a2b93f
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Replace public friend operators operator==(), operator!=(),
of QElapsedTimer to the friend method comparesEqual().
Add compareThreeWay() for the <=> operator.
Save friend bool Q_CORE_EXPORT operator<() method and
add defined(__cpp_lib_three_way_comparison) condition for the C++20
spaceship operator.
Task-number: QTBUG-120304
Change-Id: I575865403f4e333578ff174e8e6879e8925d4b09
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Add Qt::ContextMenuTrigger enum used with
QStyleHints::setContextMenuTrigger() to override default platform
behavior when to trigger context menu event.
The default is to show context menu on mouse press on
UNIX systems and on mouse release on Windows.
Give developer a possibility to override platform default behavior
to make cross platform application that behaves the same way on all
platforms
Task-number: QTBUG-93486
Change-Id: Ic832d3d8a7c355a8adb46868fff9cfd19988cf3c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Cleanup QPixmapIconEngineEntry:
- remove unneeded member 'size'
- remove default parameters - not needed
- use range-based for loop, qsizetype where appropriate
Change-Id: I58152035c6f808a83b61efff3b458d0f9362158e
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
The Q_OBJECT is in the header so it should use the moc_*.cpp form.
Change-Id: I1aa91d9fd0013d7270d551326334ed4ee35f3c64
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
It is including the full test, which we normally don't do, and
additionally included the main and the moc-include.
Change-Id: I651d71848f070a9d0fd62e56ebd204f4c1ae232c
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
The virtual function pixmap() and scaledPixmap() should be merged in Qt7
as they only differ in the additional 'qreal scale' argument which
should be passed every time nowadays.
Change-Id: I463250cdbf8ef81f8efa78665a52b0dd49f5c107
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Remove all \since comments predating Qt5.0 since they are of no value
anymore.
Change-Id: I76f56a88f7da97ff4b6cadd5fee6bd3cc5d93052
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
This test was removed in commit
eee4167a90.
Change-Id: Id42634450242a0658bac603d7973b8f1e0e5b6c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This fixes errors like this, with Clang, for 32 bit Windows targets:
src/network/kernel/qdnslookup_win.cpp:99:54: error: non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned long') to 'qsizetype' (aka 'int') in initializer list [-Wc++11-narrowing]
99 | if (!self->sendDnsOverTls(reply, { query.data(), dnsBufferSize }, replyBuffer))
| ^~~~~~~~~~~~~
src/network/kernel/qdnslookup_win.cpp:99:54: note: insert an explicit cast to silence this issue
99 | if (!self->sendDnsOverTls(reply, { query.data(), dnsBufferSize }, replyBuffer))
| ^~~~~~~~~~~~~
| static_cast<qsizetype>( )
Change-Id: If313e0910006f7556087f272123a0cfe1239f818
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
QDBusSignature holds a D-Bus value of type SIGNATURE, which is zero or
more signatures, not one or more. This changes the default constructor
to create a valid signature, which we denote by not being a null
QString. That means we need to use something other than the default
constructor in our tests for attempting to pass invalid signatures.
[ChangeLog][QtDBus][QDBusSignature] Fixed a bug that caused the class
not to accept an empty string as a valid D-Bus SIGNATURE value.
Fixes: QTBUG-124919
Pick-to: 6.5 6.7
Change-Id: I262c3499666e4f4fbcfbfffd17cb3793dcf2eae3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Found this when the DNS server replied with no errors, no answers, and
no EDNS0 tail.
Amends eb51454b90
Pick-to: 6.7
Change-Id: Ie30a3caf09ef4176bb36fffd17cdf0916ac31545
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This is only used in Q_ASSERT(), so no big deal.
Change-Id: Ie30a3caf09ef4176bb36fffd17cdebefeff5cf34
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Internal QPropertyBindingPrivatePtr, QArgumentType classes
also have been updated;
Replace class operators operator==(), operator!=() of
QRegularExpression to friend method comparesEqual() and
Q_DECLARE_EQUALITY_COMPARABLE macro.
Task-number: QTBUG-120304
Change-Id: I010617cbcb8bd6afb7c21ee4345398648821f72c
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
`<future>` is explicitly excluded for VxWork, because enabling it causes
compilation error when building tests (and causes some serious issues
when trying to naively work-arond this compilation problem). When
forcing `QT_FEATURE_cxx11_future` on VxWorks, failure occurs:
```
qtbase/src/corelib/thread/qthread.h:125:19: error: no matching function for call to 'invoke'
125 | (void)std::invoke(std::move(f), std::forward<decltype(largs)>(largs)...);
| ^~~~~~~~~~~
[...]
qtbase/tests/auto/corelib/thread/qpromise/snippet_qpromise.cpp:32:45: note: in instantiation of function template specialization 'QThread::create<(lambda at qtbase/tests/auto/corelib/thread/qpromise/snippet_qpromise.cpp:32:52), QPromise<int>>' requested here
32 | QScopedPointer<QThread> thread(QThread::create([] (QPromise<int> promise) {
| ^
VSB/usr/h/public/type_traits:2720:7: note: candidate template ignored: substitution failure [with _Callable = remove_reference_t<(lambda at qtbase/tests/auto/corelib/thread/qpromise/snippet_qpromise.cpp:32:52) &>, _Types = <QPromise<int> &>]: no matching function for call to '_Call'
2720 | auto invoke(_Callable&& _Obj, _Types&&... _Args) noexcept(noexcept(_Invoker<_Callable, _Types...>::_Call(
| ^
2721 | _STD forward<_Callable>(_Obj), _STD forward<_Types>(_Args)...)))
2722 | -> decltype(_Invoker<_Callable, _Types...>::_Call(
| ~~~~~~~~
```
Instead of excluding cxx11_future on VxWorks explicitly, replace
condition with actual check which should pass in non-VxWorks 24.03 (or
older) standard libraries.
VxWorks in version 24.03 fails this test due to std::async improperly
forwards argument type to lambda, which causes compilation error when
argument type is a non-copiable value type. This is a problem in VxWorks
standard library, which could be fixed in future versions of this OS, so
keeping this as a test should unlock `<future>` header once it's fixed.
Pick-to: 6.7
Task-number: QTBUG-115777
Change-Id: Ic67df9be2e95dce999689eaea146f113017ab4f3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Like with the QLine(F) case, we have to use QT_CORE_REMOVED_SINCE to
remove the old member operators, but also need to guard the new friend
functions with !(QT_CORE_REMOVED_SINCE), because QEasingCurve is also
one of the core types, and on Windows the metatype interface for it is
instantiated in removed_api.cpp.
Task-number: QTBUG-120308
Change-Id: I1bd66f7230afd3eba868d05fd496ab13a0331178
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
Also explicitly add QMarginsF vs QMargins comparison. Previously such
comparison was implicitly converting QMargins to QMarginsF, and doing the
fuzzy comparison. We have to keep the old behavior to avoid
breaking user code, so use fuzzy comparison in the new operators
as well.
Task-number: QTBUG-120308
Change-Id: Ic82f64078cd991859b851f24aa7017ef0b91a4e1
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>