I don't know when conversion through sequential and associative
iteratables was added, probably some time in the 5.x. QString and
QByteArray got conversions to sequential iteratables for Qt 6.1 with
commit c9a1102269. Since that was
intentional, I'm just documenting reality.
Fixes: QTBUG-107246
Pick-to: 6.2 6.3 6.4
Change-Id: Id8d5e3999fe94b03acc1fffd171b863b1a0ead68
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
- We don't support HPUX any more, so no need to talk about it
- Clarify that it's the QSharedMemory destructor that releases the
resources on Unix systems
- Explain the System V and POSIX backends and how to detect them
- Add a note about Android not being supported.
- Add a section about using QFile for shared memory
Change-Id: I413ea647c2a5453b8307fffd17174c8083416529
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
- a signal does not need to be marked const; but fixing it would be BIC,
so has to wait until Qt 7
- QPointingDevice::GrabTransition should be fully qualified
- wrap the long line while we're at it
Amends 2692237bb1
Change-Id: I5d518bbbcb62d336bae0d59647b16018d83b9479
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
In case antialiasing is disabled the QFontEngine::Format_Mono is used
to render in the glyph cache.
In this format the padding needs to be 8-bit aligned.
Fixes: QTBUG-107038
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Icf69150b6b446099ad05d706ddcab0a57f8fe0c0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This corresponds to Unicode version 15.0.0.
Added the following scripts:
* Kawi
* Nag Mundari
Full support of these scripts requires harfbuzz version 5.2.0,
this version adds support for Unicode 15.0:
https://github.com/harfbuzz/harfbuzz/releases/tag/5.2.0
Fixes: QTBUG-106810
Change-Id: Ib06c526e49b0f01ef9f21123bcf875c6b19f2601
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Currently, emrun will pick the browser to run tests on somewhat
arbitrarily. For predictability and stability, we should use one
browser as a basis, and Chrome seems to be a good fit as wasm features
are generally in good shape on it and it has good support for launching
from command-line.
Change-Id: I1d06a5916ad24ab9df9b0826c0773c652e6d3fcd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
qttestrunner.py needs special logic to handle wasm
tests, which is not implemented yet. Disable the
coin testrunner until that is implemented.
Change-Id: Idfd001df5f6dcf44904940ace9adef5a355886cf
Pick-to: 6.4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
If an error is returned from qt_safe_poll inside the event dispatcher
the error is currently printed and ignored.
For most cases this behavior seems to be fine, but when used in critical
systems e.g. automotive or medical, a error might indicate a more severe
problem and the application should be stopped instead.
The system can then decide itself what to do e.g. restarting the
application using a watchdog.
Change-Id: Iaf5abb20bb3941eaeff19d14e41c395c88fa088d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There were two data8 rows; and no data9, so that was easy to fix.
Change-Id: I8191de142e1a3be57bf1ad97e63d5780f2859fea
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Two test cases were called "base 2, negative"; one of them use -1 as
value, so s/negative/minus 1/ for it.
Change-Id: Ia5da3952d93976262cc8423d4e75ec19dab9a088
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Using simply the pattern didn't work so well when some patters are
used repeatedly, on different haystacks. So include the haystack
in the tag name. Remove one straight up duplicate row.
Change-Id: Ib46364581f23c493e83d75e6d04ab09e4329a3a5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
One "empty" test was base ten, the other left the code to work out the
base. Change the latter's name to reflect that difference.
Change-Id: I4918eb0d293420df315d86e532787950b8f05be8
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
The addCommonCborData() helper had two identical rows named simple255.
It only needs one.
Change-Id: Ie934c31f373069788c3ef774fde8956b54814e67
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Two of the uuidA test cases had an open-brace for the string and no
close; one of them ended with a space (which, apparently, is valid).
Since the data-tag was constructed by formatting the string in a
fixed-width field, padding with spaces, these two cases coincided.
Fortunately the only uuidB test-case had closing as well as opening
braces, so we can just switch the test for "trailing space is not an
error" to use it, instead.
Change-Id: I7068d40145c6b6b3b72777b029282850b1d1ea81
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mate Barany <mate.barany@qt.io>
The first "test1 text" test-case related to a file called test1.txt;
but the second related to a file called test2.txt; I suspect a
copy-and-paste with incomplete post-edit. In any case, change the
latter's data tag to reflect the difference.
Change-Id: I8354a3d1bd18715d6717dfd0962aa70faefbee90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>