In the current case they can be inline and constexpr.
Pick-to: 6.4
Task-number: QTBUG-100485
Change-Id: I8c200c0a756edbff914c4be8ba08fe6afbd61114
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
The workaround was added to fix a bug in glibc prior to 2.25, which was
released on 2017-02-05. Since the supported platforms of Qt6 at least
have glibc 2.26 (SUSE Linux Enterprise Server 15 SP2), it's time to
remove the workaround.
See also: http://sourceware.org/bugzilla/show_bug.cgi?id=11941
Pick-to: 6.4
Change-Id: Ia2aab5b0a512c44d4a4312877a0177b6b5df6428
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The qforeach.h header was extracted in
ffcf4f4001, so this is not a new header.
Still, it does not have any usages in Qt itself (except for the include
in qglobal.h), and the influence of the user code should also be
minimal, considering that Qt is built with QT_NO_FOREACH by default.
[ChangeLog][QForeach][Potentially Source-Incompatible Changes] The
qforeach.h header no longer includes qglobal.h. If you relied on the
transitive include, you may have to include qglobal.h explicitly.
Task-number: QTBUG-107046
Change-Id: I2588b2e774c456d926b6a63d0377e0a7991bf973
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Orca only accepts string or list type for
object:property-change:accessible-name and
object:property-change:accessible-description events. This fixes
NameChanged and DescriptionChanged not being announced by Orca.
This also adds check for accessible interface and will ignore events
from invalid interfaces on name/description changed.
See also: https://gitlab.gnome.org/GNOME/orca/-/issues/255
Pick-to: 6.4 6.2
Change-Id: Iaaa50678e7223951e0f3af99c5e04aa7458e4d0d
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
- detect the M68k architecture (Motorola 68000) and define
Q_PROCESSOR_M68K
- set the right machine type in QElfParser for M68k ELF files
Change-Id: Ie5694abbe1ae2bfeb5692defba0ca6062c1d60ac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Amends 14090760a8.
I tried to find a linkable definition of valid-but-unspecified on
en.cppreference.com, but failed, so I'm using partially-formed like
everywhere else in Qt docs.
Ideally, we'd have the discussion of partially-formed (and
valid-but-unspecified) in some extra page and simply link to
it. Created QTBUG-106251 to track the issue.
Pick-to: 6.4 6.3 6.2
Change-Id: I04c60cf903b2617c89467d1d040d5aebb7eccd53
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
In C++17, std::exchange() is unconditionally available, so focus
attention on the missing constexpr and noexcept.
Pick-to: 6.4 6.3
Change-Id: I5eb466b784bd741a7313a1554d8b7b67711d2cbc
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
In C++17, std::exchange() is unconditionally available, so focus
attention on the missing constexpr.
Pick-to: 6.4 6.3 6.2
Change-Id: Ia09bf6da7bd62e5a41083cfc5253e30a0298099f
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The default menu item will appear in bold font, and calling
SetMenuDefaultItem() can do the job for us. Use it instead of
calling SetMenuItemInfo() to save some typings.
Change-Id: Ifa834adc45f3aafd67077c089fb4e7b5d3fd3e02
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Replace the legacy MF_ constants with the new MFS_ constants,
MFS_ENABLED is the same (0x0), and MFS_GRAYED is equal to
(MF_DISABLED | MF_GRAYED)
Change-Id: Ib0bf166d9c7f09d38026c9bf01d8bf05982f88c4
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Replace the macro use with the expansion of the macro as it appears in
both libc++ as well as libstdc++.
Fixes Clang 15 C++20 warning-turned-error:
forkfd.c:157:39: error: macro 'ATOMIC_VAR_INIT' has been marked as deprecated [-Werror,-Wdeprecated-pragma]
static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);
^
forkfd_c11.h:51:37: note: expanded from macro 'FFD_ATOMIC_INIT'
#define FFD_ATOMIC_INIT(val) ATOMIC_VAR_INIT(val)
^
/d/llvm/15/bin/../include/c++/v1/atomic:2671:43: note: macro marked 'deprecated' here
# pragma clang deprecated(ATOMIC_VAR_INIT)
^
Matching OpenDCDiag pull request:
https://github.com/opendcdiag/opendcdiag/pull/159
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I0204f7fcd6039624ed75d414daf9b6a771bfd9d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Hotfix for disappearing zlib symbols caused by QTBUG-104972
and QTBUG-106542 fixes, to be merged later on.
Pick-to: 6.4 6.3 6.2
Change-Id: I21e0bf13c866fa7bb45c7587c81e7fddddad90f9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
- detect the HPPA architecture (PA-RISC) and define Q_PROCESSOR_HPPA
- set the right machine type in QElfParser for HPPA ELF files
Change-Id: I5214ce64ef1fdd0ecca3d6c1694c5db9b2852a22
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We aim to allow building Qt for Android on one host, and make it
usable on any host.
Previously when built on a Windows host, we embedded windows style
paths into the android -dependencies.xml files, which caused
androideployqt to fail deployment when building a project on a unix
host.
In Qt 5, the dependencies xml files for Windows Android packages had
unix style paths. Thus switch to always using unix styles paths on
all platforms.
Amends a9d2c5b6d7.
Fixes: QTBUG-107249
Change-Id: I851d3e0b08415b4c7f0d22baf43c10c715879ee7
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
None of these users require C++20 constexpr or C++23 noexcept, the
only remaining difference between std::exchange and qExchange.
This leaves a single qExchange() user, in QScopedValueRollback, that
requires the constexpr version, only available from C++20, and thus
remains unported.
Task-number: QTBUG-99313
Change-Id: Iea46f6ed61d6bd8a5b2fd9d9ec4d70c980b443a2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Instead of using the overly-generic qSwap() monster, use
- qt_ptr_swap() for swapping raw pointers
- member-swap for swapping smart pointers
- std::swap() for swapping scalars
In QtCore, this has proven to give a nice reduction in compile time
for Qt users, cf. b1b0c2970e.
Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-97601
Change-Id: Iad8e6c11ebcc3ff822479c36f5faff88992b1165
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
It just adds constexpr to it (we're ignoring the range version).
Apply it to QOffsetStringArray, where it replaces the copyData()
function.
Pick-to: 6.4
Change-Id: I6caf3b5fd2e60f4fcb0b116684c3ad6a8043f38e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
All they do is add constexpr.
Use them in QOffsetStringArray where they replace a custom
implementation, except, as usual, the custom implementation does one
tiny thing more, so not all uses can be replaced.
Explicitly not use it in QStaticByteArrayMatcher to not cause
conflicts with the introduction of QStaticLatin1StringMatcher.
Pick-to: 6.4
Change-Id: I3c102a7e934a1d7d5fae4cbc629a4fabf2c47c92
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Otherwise, context menu can be resized.
Pick-to: 6.4 6.2
Task-number: QTBUG-106925
Change-Id: I409d0113fd92ca89b14f068c391dd9c0ddb79ce7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
- Skip tests that depend on programmatic window activation on platforms
where this is not supported, such as Wayland.
- Change tests that don't rely on the window being activated to use
qWaitForWindowExposed() instead.
Task-number: QTBUG-107153
Pick-to: 6.4 6.2
Change-Id: Ieb4280343a725a2cbdc46a8ac5c657beeb2e7e57
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
There is no clear path to generating WGSL shaders, but that
should not prevent QShader from being able to contain such
shaders.
Change-Id: I819e1c67c38d675971907a3a80885ddec78da0f6
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Makes it easier to navigate to the offending file.
Change-Id: Ie2de5d6a0735952e72444b0ac8710fc44311eace
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
The module name is already clear from the build rule, e.g:
[17/451] Running syncqt.cpp for module: QtCore
WARNING: qtconfigmacros.h includes qconfig-bootstrapped.h when it should include QtCore/qconfig-bootstrapped.h
Change-Id: I9f306768e4f415dbdc20e58a93898cb7bdd83298
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
The QSharedMemory backend build system machinery does not currently
support multiple backends, so the choice has to be made at configure
time.
Pick-to: 6.4 6.2
Fixes: QTBUG-106910
Change-Id: I4b814ca1c131a2860467e96cc5a6dd7cd03fc8b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
These escapes were documented but not used until the version 15.0.0
of Unicode.
Task-number: QTBUG-106810
Change-Id: If48dcd80acf32989e3f47676ca3d41848a325c0e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Several new headers were extracted from qglobal.h in scope of
QTBUG-99313. This commit makes sure that none of them actually includes
qglobal.h.
As those files are new, it should be safe to introduce this change, as
it shouldn't have any impact on the user code.
This patch also modifies the autogenerated module exports header to
include qglobal.h before the include guard. This is needed to prevent
circular dependencies which result in Q_<MODULE>_EXPORT being
undefined.
Task-number: QTBUG-107046
Change-Id: I8d998792fd8129173d9ec811557e7d7604282813
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Previously the code was relying on the includes in qglobal.h, but now
when we try to get rid of qglobal.h we can end up in a situation when
qconfig-bootstrap.h was first included before qglobal.h (__GLIBC_PREREQ
not defined), and also included once again after qglobal.h
(__GLIBC_PREREQ defined, at least on linux). This resulted in
redefenition of Qt features dependent on __GLIBC_PREREQ.
This patch fixes it by explicitly including the stdlib.h header which
will provide __GLIBC_PREREQ definition when it is available.
Task-number: QTBUG-107046
Change-Id: Idbf7a11151c5f81723131daf25c06ef454ff5cbb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Don't mention the macros, functions and types that are moved to other
headers. Descriptions for most of these were moved to docs of
corresponding headers. Update the <QtGlobal> docs to only mention what
is currently there.
Task-number: QTBUG-106154
Change-Id: I693b7665c75d9b7c129e0646a4202e6d3e4e8499
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This was the last function left in qglobal.h.
Task-number: QTBUG-106154
Task-number: QTBUG-99313
Change-Id: I6b16744b2811b7ca9837742610d72b85da7c76b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We had only three macros left in QtGlobal:
* QT_STRINGIFY
* Q_UNUSED()
* Q_UNIMPLEMENTED()
There is no obvious existing header for them, so a new header is
created.
As a drive-by: add documentation for QT_STRINGIFY.
Task-number: QTBUG-106154
Task-number: QTBUG-99313
Change-Id: I2d051dd3e69f13602893a0f0d6968419479b6c23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It's the least worst place we could think of.
Add the qttypetraits.h include to qforeach, because otherwise
the tests fail to build.
Task-number: QTBUG-106154
Task-number: QTBUG-99313
Change-Id: I841f22e887f351146589377ec2376957e2adfd5e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
A recent change fixed headerscheck complaining about missing std::min.
But <limits> was also missing, so included that, too. Added a comment
on <algorithm>, because I, too, thought std::min was in <utility>,
instead.
Change-Id: Ib22e78349c79673f7013a2ed26cd64b06e159ed0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reintroduced by qtmultimedia/ccdc369cb82180bc12c3a6b00d33afad2848ba02.
Pick-to: 6.4
Fixes: QTBUG-105984
Change-Id: Iaca5ac6ad360c78542f20922803bac3375cbe58a
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
We can get rid of the `control` member variable since it's unused (after
the switch to C++17). We can also get rid of the move operations as we
can use guaranteed elision. Move operations have always been a bit
finicky in their definition, as they wouldn't carry over the logical
positions of the iterators (but would always reset them to begin/end).
Change-Id: I7971ea92c5c23e98ca8a4951b54c4ec8133eff1c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>