The test was using the same tags twice each, giving no clue to the
difference between the two test-cases for each.
Change-Id: I645b01c0c4008a766e505047cb05cc22640ee129
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
It's not clear why this test repeats each test-case five times, but
give the duplicates distinct names, at least.
Change-Id: I4a098d90c3fe6f61842745c1d5f62047fe13a9b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There were simply two copies of the same row-adding code.
Change-Id: I12240dedf2649c314ad32984f4de9d6b9bf280d8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Two rows named "hex" were a collision we should avoid.
The two "showpos" rows could be better distinguished.
Change-Id: I43727041eb00e6883ce8b34b346de5e2a63f1a34
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Now I can read it and work out how to rename the duplicated data tag.
Change-Id: I78f2b3f38f955fa6e6a88cb87cfca6e4f755a177
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The test-case for 0.0001 with precision 0 has the same expected text
as that for 0.0 with the same precision; which lead to QBA's test of
it getting a duplicated data tag. Add an optTitle for the one that
isn't precise to deduplicate.
Change-Id: I03600e2af43f6d11b53e05e8027924c92ed4db89
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
It first added a column, then some rows, then called
prependExtended_data(), which expects to be called first in a data
function and starts by adding the same column. So put that first and
drop the duplicate addition of the column.
Change-Id: Ia5cf86f821608e78f0e4872db2b3167ef81cc59e
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Having the same test tag for two rows of a data table makes the report
less useful. We also intend to forbid doing that.
Change-Id: I67ec32514b6550f4f97610a2140f1383d0d85b23
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
So we can have Q_ENUM.
Change-Id: If4c23ea3719947d790d4fffd17152a37d0fe551b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The whole point of QPrivateSignal is to forbid anyone but the class
itself from emitting a certain signal. This is a "workaround" introduced
in Qt 5.0, due to the fact that the PMF syntax for connections requires
users to take the address of a signal, and that is only possible if the
signal itself is public. (In fact, signals were protected in Qt 4.)
The Q_OBJECT macro defines the private QPrivateSignal class. A QObject
subclass that wants to "protect" its signal emissions can declare a
signal carrying an argument of type QPrivateSignal:
signals:
void aSignal(int, QPrivateSignal);
If the class itself wants to emit the signal, it can do so:
emit aSignal(42, QPrivateSignal());
But if "someone else" wants to, they can't use the QPrivateSignal type
because it's private.
emit obj.aSignal(42, SomeClass::QPrivateSignal()); // ERROR
Here's a hair in this soup: list initialization. If a braced-init-list
is used, [over.ics.list] simply *ignores* access control. This allows an
"untyped" initializer-list to match QPrivateSignal and perform aggregate
initialization:
emit obj.aSignal(42, {}); // works!
This kind of defeats the whole purpose. Therefore: make QPrivateSignal
not an aggregate and give it an explicit default constructor, disabling
copy-list-initialization for it. This means that using `{}` will fail to
compile (class is no longer an aggregate, a constructor must be
selected, and copy-list-initialization will not select an explicit
constructor).
This isn't a complete fix by any means. There's always the possibility
of using enough template magic to extract QPrivateSignal's type (e.g. as
a local alias) and then create an object of that type; but that sounds
extremely unlikely to be happening "by accident" (whilst it's super-easy
to just type {} as the argument and not realize that you were not
supposed to do so).
[ChangeLog][QtCore][Potentially Source-Incompatible Changes] It is no
longer possible to use `{}` to construct a QPrivateSignal object
(specifically, QPrivateSignal's default constructor is now explicit).
This means that emitting a signal that carries a QPrivateSignal argument
(i.e. a "private signal") cannot any longer be done by using something
like `emit aSignal({})`; instead, such usages must be ported to
`emit aSignal(QPrivateSignal());` or equivalent.
Change-Id: Iac379aee3a8adca5a91d5db906a61bfcd0abc89f
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The typeSignature for a type T[] is always "[" + typeSignature<t>, so we
can just implicitly support arrays of any known type. To prevent support
for multi-dimensional arrays, make sure that the underlying type is not
also an array.
By adding a QJniTypes::isArrayType in addition (that is true for any
type with a signature starting with '['), methods like
QJniObject::callMethod could then return a special QJniArray type that
provides array-specific functionality.
As a drive-by, and since all lines need to be touched to add braces,
replace std::is_same<>::value with std::is_same_v.
Change-Id: Iccadf03cfceb8544381a8f635bb54baeddf46c99
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
For some reason it has become extremely flaky.
Blacklist to unblock most patches.
Pick-to: 6.4 6.2
Task-number: QTBUG-107500
Change-Id: I11c3ff5e018981be46c20282fa171bce687596b2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
So we can gather statistics on whether it is still failing
Pick-to: 6.4 6.2
Change-Id: I1f4080f4d96f31ce2b689cda175af3a35563e232
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
QStyleHintsPrivate::setAppearance was only called when the theme
changes, and up until then the reported QStyleHints::appearance()
was Unknown. To fix, the QGuiApplication should set the
appearance once the platform theme is created.
Change-Id: I5353031628d1f1a8b1e23bed0b2fb0bc0622cbe8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Set the theme's appearance based on the UIScreen's, which follows the
app's or system's configuration, if no UIWindows are created yet.
The UIWindow and UIScreen will have the same appearance (the
traitCollection change is propagated hierarchically from screen to
window) unless UIWindow's overrideUserStyleInterface is explicitly
set to differ from that of the screen. In that case,
traitCollectionDidChange will be called for the window (but not the
screen) and when we update the palette calling the UIColor API, the
colors will be resolved based on
UITraitCollection.currentTraitCollection property, which follows the
window's appearance. That is why we need to set the theme's appearance
based on the window's.
Change-Id: I43207f351559fb82efc2f281eafb3cd1c96bbf75
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
error C2220: the following warning is treated as an error
warning C4018: '>': signed/unsigned mismatch
Pick-to: 6.2 6.4
Change-Id: I4ba59f3aa6bbd7b37fe469e6271df207a7d11c99
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Since all tests can now be run by the batched test runner, rename the
main resource to a more suitable {_target_output_name}.html
Change-Id: Icda80ce95ac9ae51851d52ebb4b1ce668c528324
Reviewed-by: David Skoland <david.skoland@qt.io>
I don't know which platforms qpoll.cpp is still used and if in those
there's even a way to increase the file descriptor limit above
FD_SETSIZE's. But this is an easy change and protects against buffer
overruns.
Pick-to: 6.4
Change-Id: I810d70e579eb4e2c8e45fffd1718ca1aac8e6bef
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
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>