create() for D3D11 performs a smoke test with creating a vertex shader
to ensure the created graphics device is actually usable for Qt's
purposes. When this fails, create() returns false. Qt Quick
automatically retries with the PreferSoftwareRenderer flag which
causes picking up the WARP device ("Microsoft Basic Render Driver").
Synchronize this behavior to the QRhi-based backing store so that
widget apps using QQuickWidget (or anything running QT_WIDGETS_RHI=1)
get this same behavior out of the box.
Pick-to: 6.5 6.4
Change-Id: Idff795401dbed8ba465102d075808010d421d34e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
The implementation of the stream-based XML parser resides in
coreslib/serialization. Moving the rsslisting example there.
Task-number: QTBUG-110647
Pick-to: 6.5
Change-Id: I862909e767301250750b6ee0d8ac7e20d6bad2b1
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This example does not use libQt6Xml, remove dependency.
Task-number: QTBUG-110647
Pick-to: 6.5 6.2
Change-Id: Ida8c4df0e274cbc2e0a5f7151f18693d7e1c2401
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This example does not use libQt6Xml, remove dependency.
Task-number: QTBUG-110647
Pick-to: 6.5 6.2
Change-Id: I40e5976121ddc97a78b540d17784b3357b87adf7
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Play Store now accept only app with target
SDK version set to 31 or above
Change-Id: I7f7fb677798c3f2d3ce327226ac13a69f0bab442
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
When talking about QMake project files we now refer to ".pro files"
instead of "profiles".
Pick-to: 6.5
Change-Id: Ia8d20a6a03b9076e97f45da272bb3f883febc796
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Qt requires them and will fail to build if it isn't met, so we don't
need to check for its support. These were public CMake and qmake
features, so to keep compatibility with existing they're hardcoded now
(only done for the C++ editions and for qmake only, as that's what Qt 5
did).
Change-Id: I7f354474adce419ca6c2fffd174814724f45f90b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
...the image to RGBA8888. Just mirror the first null check that is
done for the user-provided QImage. The same should be done for the
result of convertToFormat().
Pick-to: 6.5 6.5 6.2 5.15
Fixes: QTBUG-68884
Change-Id: I77091d7a2bc6e32d2aa292dc7650c1af091fcec1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Does what 711c55b632 did for
Vulkan, i.e. removes the there-is-more-than-one-swapchain
condition.
Fixes: QTBUG-109971
Pick-to: 6.5 6.4 6.2
Change-Id: If631748c50482389a3ef894823a1aaf1ebb38bee
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
The previous example finished way too quickly and provided no real
value in regards to API understanding. Previously, QtConcurrent::map
was used, which was also used in other examples. We are now using
QtConcurrent::filterReduce to demonstrate other functionality.
Task-number: QTBUG-111165
Pick-to: 6.5 6.5.0
Change-Id: Ibd6eb119d0711cddfe8b211d460e9d67d6ce95c3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Allows sharing tracepoints between modules so that they can share one
trace group.
Pick-to: 6.5
Change-Id: I8de6da6beef02b34700cc2ecb1fad0e72a00b7e0
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
A coming change to support streaming requires networking so having it
in corelib is dubious.
Pick-to: 6.5
Change-Id: Idc25abe23b5ed07823d749294796c9f318ef1744
Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
[ChangeLog][QtCore][QProcess] Fixed a bug that would cause
systemEnvironment() to produce corrupted entries (mojibake) on Windows
if the environment contains characters outside of the ANSI character
set.
Pick-to: 6.2 6.5
Change-Id: Idd5e1bb52be047d7b4fffffd174db6c1024318dd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
It'll be used by another struct in a subsequent commit.
Change-Id: Ia94c6ae3506f9ba6cba6b71a5839bff8b3a2ab1f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
[ChangeLog][Corelib][QTimeZone] On Unix (other than macOS and
Android), the TZ-DB backend has long accepted any well-formed POSIX
zone description as a time-zone ID. This is now reflected in
QTimeZone::isTimeZoneIdAvailable(), which previously claimed not to
accept these IDs. However, avaliableTimeZoneIds() still does not
attempt to construct all possible POSIX descriptors to include in its
return.
Change-Id: I1df8df0a4acaca9e70d72f13200b4c31305732f3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The constructor, via findEntry(), does allow a POSIX rule as a valid
ID, so reflect that in the implementation of isTimeZoneIdAvailable(),
even though we can't sensibly enumerate all possible POSIX rules in
availableTimeZoneIds().
Change-Id: I7fd21d23ce8ce40c7f423b02e18d2e8df30fb952
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The only consumer outside of gui is the autotest target
Change-Id: I2c6b41029ed5c53a2fd5f31f542128616620ddcf
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
The height of the selection was adjusted for high-dpi screens by a fix
for QTBUG-98372. But the height of the cursor was forgotten. This is
only visible with a very high device pixel ratio.
Pick-to: 6.5
Change-Id: I3ae9a2df0a160b50593931828cdd69c0a8d4b5c4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Added a QFileDialog to let the user select a path. Before, the path
was statically assigned with "../../" , which is not optimal.
I also modified the findFiles function to check for text files in
general and not only *.cpp and *.h files. Lastly the result of the
word counting is now displayed on the console, as I think this is an
informative output from this example.
Task-number: QTBUG-111165
Pick-to: 6.5 6.5.0
Change-Id: Ie27c6acb4f79a78e3bef141edb92de08901fde71
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Focus the phrasing on what it teaches - how to use the stream reader -
more than the example application of that, displaying it.
Update docs:
* Changed name to conform to modern guidelines.
* Consistently mark \c cbodrump as code.
* Fix mentions of CborDumper and CborTagDescription to match code.
* Say how the tagDescriptions table is used.
Pick-to: 6.5
Task-number: QTBUG-111228
Change-Id: Ic12e77cf34caadc9f60527e886f94c76cb8cfeaf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
I got tired of being told off by the inanity 'bot for faithfully
reflecting existing #if-ery in new #if-ery. Retain only the
documentation and definition of the deprecated define.
Change-Id: I47f47b76bd239a360f27ae5afe593dfad8746538
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
In so far as we support Darwin on tvOS or iOS, it surely makes more
sense to use the same code as on macOS for them. This will also avoid
further grumbles from the inanity 'bot about the use of the old define.
As a drive-by, make the #if-ery on newBackendTimeZone() consistently
use parentheses with defined.
Change-Id: I6099adfedfc42bba057c8cbfbb38574e2e5d80d7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
If Qt was configure with QT_NAMESPACE set, store that in the module
information files under 'built_with.namespace'.
Task-number: QTBUG-111158
Change-Id: I273309cb263c64f801dbb7238440336d7afa635e
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
When a window-modal window has a transient ancestor, Qt treats this
ancestor window as modally blocked by the modal window, as if it had
been a true non-transient parent of the modal window.
Unfortunately, this is not how macOS natively behaves. Window-modal
windows only block their direct parent, and AppKit will happily
send events to any other top level window. This is different from
how application modal windows work, where NSApplication will filter
many events (but not all) in [[NSApplication _modalSession:sendEvent:].
Note that NSWindow.worksWhenModal has no effect in this situation,
as that property is only considered by AppKit for application
modal session are active (and NSApp.modalWidow returns non-nil).
Instead of trying to replicate the event filtering that AppKit does,
which would be fragile, we disable some of the effects these events
could potentially have, by for example preventing modally blocked
windows from becoming key, and temporarily disabling the close
button in the title bar.
One remaining issue is that, unlike with application modal windows,
the modally blocked transient parents can still be ordered above
the modal window. Fixing this requires informing the window server
about the modally blocked state of the window, which we can't do
using public APIs. Even returning NO from [NSWindow _allowsOrdering]
is not sufficient.
Task-number: QTBUG-104905
Pick-to: 6.5
Change-Id: I7e764a354f397ae6ef61304ca5442a4e1bb7589c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The typical way to set up menus on macOS, which we follow, is to create
NSMenuItems with an action selector set (copy:), but without a target.
This will result in AppKit finding a target dynamically, starting with
the first responder, walking the responder chain, and then moving on
to other NSWindows, before ending up in the NSApplication and its
delegate.
Unfortunately, we don't have a mechanism in Qt to forward generic
actions, such as the cut/copy/paste, or selectAll, so we rely on
mapping the actions back to QCocoaNSMenuItem that we can trace
back to a QPlatformMenuItem that we in turn emit activated() for.
Normally this works fine, but in the case where the Qt app is embedded
in a native UI, which has its own menu items with cut/copy/paste,
we'll get callbacks into QNSView for actions triggered by a generic
NSMenuItem.
In that case, we need to bail out, but we must do so without calling
[super forwardInvocation:invocation], as that will just try to invoke
the action on ourselves again.
It's unfortunately too late to try to redirect the action to another
responder, that might have handled the action, and it's questionable
whether that would be the behavior we'd want, as that would possibly
result in e.g. pasting text into another window than the Qt one that
currently has an active cursor in a text entry.
Fixes: QTBUG-111916
Pick-to: 6.5
Change-Id: I56318e4f7efd779cd20bf577aec8c2de04a6a142
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The machinery is quit fragile, so any logging will help here.
Pick-to: 6.5
Change-Id: I1906c0e33b4afbf649a20bfe2aa7210b6822087e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This reverts commit 9286d46ee2.
Reason for revert: Should be fixed by 5c6814fb18760f65bab0f8b9cd623ee5c874a58d
Change-Id: I3a161df445af8dcbb61138d57e931a093a319027
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
It is shared between car and controller executables.
Task-number: QTBUG-111366
Pick-to: 6.5
Change-Id: I5f98a09664671c55bfad68ebf88c9f0c734511fa
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This allows building of all the example executables at once.
Task-number: QTBUG-111366
Pick-to: 6.5
Change-Id: I1fa372ec9725bfeb1f123305aa7324b7820eb593
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
We test setKey() in repeated_setKey() these days, so speed up the test
of the test suite ever so slightly by passing the key to the ctor
instead of an explicit setKey() call.
Pick-to: 6.5
Change-Id: Ia2378c0f59cbfa9d95a0f3665b06655332247e2c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
QMessageAuthenticationCodePrivate::result always mirrored
QCryptographicHash's, so we only need one, greatly reducing
sizeof(QMessageAuthentcationCodePrivate) and avoiding unnecessary
copies.
Pick-to: 6.5
Change-Id: I56365b29bd9e096a4582b1764b6fef4c5243735b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Currently we render shadow and default background-color even for
frameless windows with transparent content.
This behavior is not consistent comparing to other platforms.
An example of such window is InputSelectionHandle from
VirtualKeyboard module.
This commit disables shadow-box and provides transparent
background-color for QWasmWindow which are frameless.
It also provides distinction between "frame" as logic property
of window and "border" as visual decoration.
Change-Id: I902692ea561a2e88e2e6ab7faad8e3eeb536a26b
Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Maintain one central place - .cmake.conf - for information
about Qt's copyright.
Pick-to: 6.2 6.5
Change-Id: Ibcbce4313eba9660d459061b0ad00307e267b8f7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
...it's the same as messageHash.method, so we don't need to store it
twice.
Pick-to: 6.5
Change-Id: I926dbfa177c25e9bc3ebed9149da5ce8bad8cf2f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QMessageAuthenticationCode operates the embedded QCryptographicHash in
an unshared way, in which QCryptographicHashPrivate::finalizeMutex is
never used. So kick QMessageAuthenticationCodePrivate::finalizeMutex
out and use QCryptographicHashPrivate::finalizeMutex instead.
The only effect it the reduction in QMessageAuthenticationCodePrivate
size by sizeof(QBasicMutex).
Pick-to: 6.5
Change-Id: I02208eb42f8247939619f74ad3e040cb0d34b5ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
- isAsciiPrintable: borrowed the logic from isPrintable(uchar) in
qdebug.cpp, now isPrintable(uchar) calls isAsciiPrintable
- Replace ::isspace() with ascii_isspace() from qlocale_p.h
Functions from ctype.h have a couple of issues:
- they're locale-dependent, which isn't what's required here, the code
is only interested in ASCII
- their args should be representable as uchar or EOF otherwise it's
undefined behavior
An Early-Warning could use something like:
grep -rP "\b(isalnum|isalpha|isblank|iscntrl|isdigit|islower|isgraph|\
"isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper)\b"
Pick-to: 6.5
Task-number: QTBUG-111262
Change-Id: I1f47f41bd56735297078ff0d0ddc2ebf999abf8b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Cleanup tst_databases.h: fix identation, replace qGetHostName() with
QSysInfo::machineHostName(), use QSqlTableModel::EditStrategy instead
int for submitpolicy data to avoid casts.
Change-Id: I4917ca23c4b39ab15bc0e006e6111baefb82d278
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Fix some tests so they will correctly work with Interbase (Firebird 3.x)
Change-Id: Ib3c8ceaf31fa01af3a00a9772350b49cee8b2342
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
A table name or identifier must not be longer than 30 (< Oracle 12.2) or
128 bytes (sadly not characters).
Change-Id: I49192afaf908e12f5cfd20c754640b6117b03a71
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Misc cleanup of the IBASE driver - use qsizetype and range-based for
loops.
Change-Id: I69fe8ed3303fb352b59989c625de5a51239cf604
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
QColorDialog supports entering hex rgb values only with a leading #.
That makes copy/paste impossible whenever the copy source has plain
hex, without the leading #.
This patch automatically adds a leading # character, when missing.
As a drive-by, QObject::connect statements are altered to PTMF syntax,
amending 9eb1b9e86ce3d1004e39e8ab7c7ecb6796d6df1a.
The patch also adds an autotest for the new functionality.
Fixes: QTBUG-111742
Pick-to: 6.5
Change-Id: I4ced29dc8b543457f411a3fa0ac756b550cdb09f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>