Commit Graph

64512 Commits

Author SHA1 Message Date
Assam Boudjelthia
510cc564c0 Android: add missing extras native methods impls and registration
This should have been done when the extras where moved to qtbase,
it went under the rug and was forgotten.

Pick-to: 6.6 6.5 6.2
Fixes: QTBUG-114971
Change-Id: Id7831a8bab8bedc1f869b9fc8bfc72acc3cca7a2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-11-03 18:16:38 +02:00
Kalle Viironen
e51cd47ed3 Make checkBlackLists() return bool
Make checkBlackLists() return true if the test is blacklisted and false
otherwise.

Change-Id: Ief400a10a47ec7c21ea1d37fe75c7dc08739e06c
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2023-11-03 16:31:57 +03:00
Anton Kudryavtsev
90e1e1ee86 qhttpnetworkreply: remove unused findChallenge method
This method is part of private API, so it's safe.

Change-Id: Idc7464a825841db2fa9dddd47d6dbda82668601d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-03 14:44:54 +03:00
Samuli Piippo
99cec50f56 tests: skip setPermissions test if running as root
Running this test as root doesn't make sense, and it is the reason
why QNX is failing.

Pick-to: 6.6 6.5
Change-Id: Ibbdce9090882cb9dd87d7fcd0802a481f9e7883c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-03 11:00:11 +02:00
Shawn Rutledge
83b592346b Modify the MDI manual test to allow multiple views of same document
- editing same document in different views is possible? yes
- resizing one QTextEdit calls QTextDocument::setTextWidth(), which
  affects the width in the other view too. You can resize either one,
  but you can't have two views with different layouts, of course.

Added a categorized log message in QTextDocument::setTextWidth()
for a sanity check.

Task-nunber: QTBUG-35688
Change-Id: I59c4d10143fda3a66b946237832274d67f9d9d45
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-11-02 20:49:32 -07:00
Thiago Macieira
a0a29695ab QProcess/Unix: also ban vfork() under TSan
Complements 94ec17436c for the ASan logic
(52ed6af527 for the code change).

Fixes: QTBUG-117533
Pick-to: 6.6
Change-Id: I09c3950e719e4b259bc7fffd1793d59dbdbfe82a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-11-02 20:49:17 -07:00
Lisandro Damián Nicanor Pérez Meyer
ac6af2f322 Be verbose on plugin inclusion, easy patch point for distros
TL;DR: This creates two changes:

1. Makes the plugin inclusion status more visible for builders for both Qt
   itself and applications.
2. Allows a simple patch-point for distros to change the default
   (perhaps not ideal, but good enough).
3. Does not changes the current behavior.

As discussed both in the mailing list and privately with
Alexandru Croitor and Joerg Bornemann this makes a lot os sense for Qt
on static builds and when trying to find where the plugins are so they
can be easily packaged up in order to distribute a build with all the
dependencies on it.

But at the same time it makes no sense for distributions building the
libraries in dynamic mode as it forces unnecesary build time
dependencies for for both Qt and applications like QML modules or even
PostgreSQL! [0].

[0] <https://sources.debian.org/src/martchus-qtutilities/6.10.0-1/cmake/modules/QtConfig.cmake/?hl=35#L35>

Other approaches have been considered like not shipping specific CMake
files, but this depends on the packager finding the right ones at the
right time, and does not allows end users to change the behavior if they
happen to need it.

Change-Id: Id32fbc0cf0f289edd4426fb703cf1195288aacb4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-11-02 18:04:56 -03:00
Alexey Edelev
c861f9acef Mention QT_FORCE_FIND_TOOLS in QT_HOST_PATH
Document requirement of setting the QT_FORCE_FIND_TOOLS option to
ON to reuse the pre-installed Qt version when not cross-compiling.

Task-number: QTBUG-118211
Pick-to: 6.5 6.6
Change-Id: Ia02abeaede583ca01f10187158da0f4bc86f9d1a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-11-02 21:14:10 +01:00
Ivan Solovev
02c42b26e1 QSharedMemory: fix semaphore creation in legacy mode
The legacy mode was using the new nativeKey to create a semaphore.
As a result, on macOS the name of the semaphore key file was the same
as the name of the shared memory key file.
This lead to a situation when the file was mistakenly deleted when
destroying any instance of the shared memory, not only the one that
created it.
Fix it by using QSystemSemaphore::legacyNativeKey() in legacy mode.

Add a test to verify that we cannot re-create a shared memory with the
same key. The test was failing on macOS without the fix.

Fixes: QTBUG-111855
Pick-to: 6.6
Change-Id: Ib0bc41791e889b1888bbb8aa9044c6b053b63a5a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-02 21:14:10 +01:00
Assam Boudjelthia
742f45f7cf JNI: pass same QJniEnvironment object to QAndroidPlatformClipboard
... registerNatives() call.

Change-Id: I42539846249880ed4a215522bdcafb3a2ffa4d14
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-11-02 21:46:32 +02:00
Assam Boudjelthia
bc8f0911a9 Android: make System.load() error logs use Log.e() instead of Log.i()
Make the logs visible as errors as they should be.

Task-number: QTBUG-115016
Change-Id: Idfaddbc3bdd3b218ae961b1a5cce9540a4710c39
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-11-02 21:46:32 +02:00
Alexey Edelev
e38eef345e Replace the specific gcov compile and link options with generic --coverage
Follow up commit fixing review comments.

Amends 42d2944191

Task-number: QTBUG-86223
Change-Id: Ia1353fd9855d6811e58ae8b706e932f01fdeec28
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-11-02 19:49:34 +01:00
Yuhang Zhao
8842391e5c windeployqt: improve MSVC runtime detection
MSVC runtime dlls also include vccorelibXXX.dll, concrtXXX.dll,
beside these traditional dlls, it's also possible to link against
the new UCRT runtime, the ucrtbase.dll (and possibly including
the API Set dlls), so we need to add some more checks to make
windeployqt more robust. I've tested a custom Qt build locally,
which I managed to make it link to ucrtbase.dll only, and this
code works fine.

Pick-to: 6.6
Change-Id: I00bc8666d8850aac279b8747465879e39348ba02
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timothée Keller <timothee.keller@qt.io>
2023-11-02 16:49:40 +00:00
Eskil Abrahamsen Blomfeldt
c5b3fd134b Skip mixedScript test on platforms with no Hangul font
This test depends on the system actually supporting Korean
text, otherwise it will just return a single glyph run with
the digit and the missing glyph symbol.

Pick-to: 6.5 6.6
Fixes: QTBUG-118649
Change-Id: I54e55414ae4ba0a6328c7c3a57ae8840d3b123b1
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-11-02 17:41:14 +01:00
Assam Boudjelthia
58c7249ee8 Android: move display and screen management to new QtDisplayManager
Have all or most of Android code dealing with displays in
QtDisplayManager. Also, simplify setApplicationDisplayMetrics()
call and avoid caching any uneccessary members.

Task-number: QTBUG-118077
Change-Id: I943069c24bb40ae3016db5896e553b501e700a6b
Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
2023-11-02 16:13:22 +02:00
Yuhang Zhao
7b77a1c2a6 QOSV: Add Win11 23H2
Windows 11 23H2 (10.0.22631) will be released publicly soon,
it's better add it to Qt now.

Pick-to: 6.6
Change-Id: I1bcec19d3a15e778f2c5e504d1e5cf678753f5a2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-02 12:26:59 +00:00
Friedemann Kleint
d7ebe91781 uic: Port enumeration lookups to QLatin1StringView
This makes string operations on them easier.

Pick-to: 6.6 6.5
Task-number: PYSIDE-2492
Task-number: PYSIDE-1735
Task-number: QTBUG-118473
Change-Id: I92922b701fd72f5521eee7f6d3ef63492e03be9b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-11-02 11:50:43 +01:00
Anton Kudryavtsev
4fad57e750 QStringView: add isLower and isUpper
[ChangeLog][QtCore][QStringView] Added isLower() and isUpper()

Change-Id: Ie6cd20bd375d42cbdfb17953b2307d025c31ec77
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-02 13:50:42 +03:00
Bartlomiej Moskal
d10d76f9f2 Android: Hide text handle when it is out or covered
The text handle should not be visible in case when it is out of
the text-object, or when it is hidden by other object. That is why we
should call updateSelectionHandles() method after touch only in case
when cursor position fits to clipped input item rectangle.

Fixes: QTBUG-115005
Pick-to: 6.6 6.5
Change-Id: I35c083acd8fd4d5240e3bb15afa1afbec4ea0b26
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-11-02 10:16:32 +01:00
Mike Chen
9161f66a49 xcb: unset states and set new ones as need
Should not unset all the old state and set the new ones.
Only unset the state that needs to be unset.

If states changes from maximized to minimized, there is no need to
unset the maximized state and set the maximized states again.
(minimized and maximized can exist simultaneously :)

This amends f61b140482 .

Pick-to: 6.6 6.5 6.2
Change-Id: Ic93122b92fafcdba973b885e299b282408da7a1c
Reviewed-by: Liang Qi <liang.qi@qt.io>
2023-11-02 05:59:49 +00:00
Liang Qi
78272c667f xcb: implement QXcbCursor::size()
A follow up of baed8534bc .

Fixes: QTBUG-118612
Pick-to: 6.6 6.5 6.2
Change-Id: I7b4a2276c6e6a14d5413f6cd64d801de11cc8c3e
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-11-01 23:52:23 +01:00
Anton Kudryavtsev
3c80e88924 qnetworkcookie: remove parseCookies
that takes QBA in favor of QBAV version

Change-Id: I56bbe5cc5c7fa3e31e6b6e71d97211de3eb1ab26
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-02 00:19:07 +03:00
Christian Ehrlicher
7b96f3934c QDockWidget: use pmf-style connect syntax
Use pmf-style connect syntax for the three connections within
QDockWidgetPrivate.

Change-Id: I091a210d6a822903f0cc183f9090e03b124875e6
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-11-01 21:58:13 +01:00
Edward Welbourne
1940f0c7be Rework documentation of the serialization converter example
The documentation was previously code-heavy and short on exposition,
while focusing almost entirely on the CBOR converters. Prune most of
the CBOR code quotes, shuffle some snippet markers, add and remove
others and rewrite the main text.

Shift focus to the base-class for converters and how it's used by
main(). Retain relative focus on the CBOR converters, as they are
relatively full-featured hence illustrate more than the others do, and
replace the sequence of single-line sections about the others with a
section collecting all into a table and saying some general things
about them.

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: I8d41f25c165eb1a7ba20cb68aee6ab6b2fd050f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 21:28:55 +01:00
Edward Welbourne
1022b0d111 Eliminate duplicate overrides of Converter methods in example
The Out-only converters shouldn't need to implement loadFile(), as it
shouldn't be called - a converter is not used for input unless it says
it supports input. At the same time, provide the "ground state"
implementations for optionsHelp(), outputOptions() and probeFile() to
save the trivial implementations the need to duplicate one another.

In the process, make the handling of loadFile()'s outputConverter more
consistent among those that do implement it.  Always set
outputConverter if it's initially null (the caller does assert this).

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: I856d12c791d1f8e0accdb7dd1412d493117b2302
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 21:28:55 +01:00
Edward Welbourne
8b8fc42f2c Move Converter class, in eponymous example, to a file of its own
There's more details coming and it's good hygiene anyway.

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: Ief3acf6e508bc93eaa8490f6c49300b25c1d3556
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 21:28:55 +01:00
Edward Welbourne
d57a78657e Break out the list of available converters to a static method
Mostly to pave the way for moving the class code to a file of its own,
but this incidentally saves the need to std::as_const() every use.
Moving the underlying object to a local static of a private method
also saves the need for heap allocation (which was leaked).

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: I30f4bf3c46d39e04d0ac4e3e9ba431945ebb9193
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-11-01 21:28:55 +01:00
Edward Welbourne
0b1670134b Replace confusing member variable with a predicate
The Converter class, in the eponymous example, had a null member
variable that wasn't a nullptr - it pointed to an instance of
NullConverter - so that other converters could test whether a
Converter * they'd been passed was null (in the sense of pointing to a
NullConverter). This, however, was susceptible to misreading - I
misread one such comparison as a nullptr check and thus thought it
redundant with an earlier actual nullptr check. To spare future
readers similar confusion, replace the public static member variable
with a protected (since only other derived classes need it) static
predicate, to at least give the reader a clue that this is using the
word null in a class-specific sense.

Pick-to: 6.6 6.5
Task-number: QTBUG-111228
Change-Id: I1e4f494b303d1bf90107f8c6fa3a4a22f6d81b90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 21:28:55 +01:00
Edward Welbourne
0de55973d3 Amend #if-ery to exclude MS QTZP backend declaration when not in use
Since 2017 we've been using the ICU backend in preference to the MS
one, so there's no point declaring the MS one when it's not being
compiled.

Pick-to: 6.6 6.5
Change-Id: Ia7b770ec27bb627caace814b972967c4f7d63330
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 21:28:55 +01:00
Anton Kudryavtsev
ec8e3e535d qurlidna: port some internal functions to QSV
Change-Id: If9c0090589cd58738165f2fe71701dba6958575c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 23:05:39 +03:00
Anton Kudryavtsev
d0b90663a4 qarraydatapointer: use use std::exchange more
to simplify code

Change-Id: I7fc6dd92922eb30a16260544223c1dbfc3162188
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 23:05:39 +03:00
Anton Kudryavtsev
f331171dd7 QString::fill: port to char16_t
Change-Id: If91ea7b7ceedbf9ed109b064ea5ea5572e7c9b14
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-11-01 23:05:39 +03:00
Anton Kudryavtsev
ebbd9ddf88 qhttpnetworkreply: use QBAV more
to reduce allocations

Change-Id: I89879a68626631970d34bbc0357528dcbb8b1c17
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 23:05:39 +03:00
Anton Kudryavtsev
d3ec9fd359 qhttpnetworkreply_p: port parseStatus and parseHeader to QBAV
Change-Id: Ib3bb2d29460827f9dfceb51975ce822d8a41aba0
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 23:05:39 +03:00
Anton Kudryavtsev
8f6b30ec8d QNetworkReplyHttpImplPrivate: de-duplicate literals
While touching code, use CaseInsensitive compare more to avoid needless tmp allocation

Change-Id: I4fe8496133925887df6879b48c730c36f486fa9c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 20:05:38 +00:00
Anton Kudryavtsev
0bd9265867 network: use CIS compare more
to reduce allocations

Change-Id: I648518fd152a834bbdc6afcedb693f02c1b13af1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 23:05:38 +03:00
Friedemann Kleint
fcab2b88af QtDBus: Fix unity build on Windows
Exclude qdbusconnectionmanager.cpp which includes qt_windows.h,
clashing with the "interface" parameter name in qdbusinterface.h.

Task-number: QTBUG-115352
Pick-to: 6.6 6.5
Change-Id: Id41910857cb203ec5a1b784fa171eeb189ca4eca
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-11-01 21:05:38 +01:00
Ivan Solovev
f5a5c59918 Extend QTestPrivate property tests - actual implementation [2/2]
This patch provides the actual implementation to detect binding loops
in property setters.

These test will help to catch all the existing binding loops that were
introduced when migrating to new bindable properties.

The logic of the new tests is taken from
tst_QObject::objectNameBinding(), but generalized to be applicable to
all bindable properties.

The original code from tst_QObject can now be removed.

The patch effectively reverts f791570b86
because a lambda returning a nullptr now means that the binding loop
test should be skipped, which is not a good default behavior.
Now when all the existing bindable properties are fixed, it's fine to
give a compilation error when adding new tests, if the class is not
default-constructible.

Task-number: QTBUG-116345
Pick-to: 6.6 6.5
Change-Id: I059d444d4bb023c050a22e5b1974565e4f581b5c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2023-11-01 22:05:38 +02:00
Anton Kudryavtsev
457309c9fa QHttp2ProtocolHandler: optimize updateStream
Use QBAV more to reduce allocations

Change-Id: I009144156fafa64dd241c446bd4081fe197aa2bf
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-11-01 22:28:24 +03:00
Michal Klocek
567e9b2026 Doc: Fix QTest::createTouchDevice docs
After the introduction of QInputDevice class the returned
QPointingDevice object from QTest::createTouchDevice()
call is no longer automatically deleted when the
QCoreApplication is deleted. Moreover, this function does
not really go thorough qpa but simply registers the device with
QWindowSystemInterface::registerInputDevice() (which is
actually also used from qpa plugins when new device is plugged)

Pick-to: 6.6 6.5
Change-Id: I3a0400288d76b7c95659d6b6ea260eff3233ebf1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-11-01 20:28:24 +01:00
Eskil Abrahamsen Blomfeldt
38ce08aa8e Update Harfbuzz to version 8.2.2
Pick-to: 5.15 6.2 6.5 6.6
Task-number: QTBUG-118615
Change-Id: Ifdf6023781c7202bc07f7cfb821c8cfefd2720a8
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-11-01 15:00:13 +01:00
Volker Hilsheimer
a20d9a5700 Fix warning for 32bit builds
When building for 32bit platforms (e.g. Android armv7a), then printing
qsizetype value using printf's %lld format generates a warning because
qsizetype is just an int. This breaks the build, and can't be fixed
by using another placeholder without producing a warning on 64bit
builds. So fix it by casting the qsizetype always to 64bit signed int.

Change-Id: Ie7c0fa8b3a0fe6366ce6fd5b2947f42a3e67c381
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
2023-11-01 15:58:47 +08:00
Volker Hilsheimer
daf15a4aaf Android: clean up error handling and native methods registration
Emit log output and return false immediately if we fail to get both the
Activity and the Service objects. Standardize the registerNative methods
to return bool and take a QJniEnvironment, and adjust the macros
accordingly.

Simplify the startup routine to use QJniEnvironment.

Change-Id: I11be35426520dc803f5a07bbb495e908592f254e
Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
2023-11-01 15:58:45 +08:00
Volker Hilsheimer
6735aa868f JNI: add a static getter for a JNIEnv pointer to QJniEnvironment
This further helps reduce the creation of temporary QJniEnivronment
instances (with allocated d-pointer) for cases where we simply need to
get the JNIEnv for the current thread.

Change-Id: I2eda238124be51c755d8910de9dbc9ca8eb92288
Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Petri Virkkunen <petri.virkkunen@qt.io>
2023-11-01 15:58:42 +08:00
Volker Hilsheimer
e21d35b9f7 JNI: don't implement a signature for 'long' C++ type
On Android, `long` has the width of the system, while `jlong` is always
64 bit. If we support `long` as a signature type equivalent to `jlong`,
then it becomes possible to write code that fails to compile, or in the
worst case crashes at runtime, on a 32bit system.

Instead, support quint64, which is always the same size as jlong.

Change-Id: I60432ec7411e697b5f6e1f153216ceee0af7e0f1
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-11-01 15:58:40 +08:00
Andreas Eliasson
45c6ef02e7 Doc: Revise QWidget docs
Reviewing and improving the docs for QWidget is part of the objectives
for the 2023 Q4 OKRs.

Most of the work in this patch is fixing grammatical errors and typos.
It is tempting to move much, if not all, of the Detailed Description content from the QWidget class reference page (qwidget.cpp) into its own overview/explanation page, which would be more in line with the diátaxis framework. But I think that should be a different patch.

Fixes: QTBUG-117758
Pick-to: 6.6 6.5 6.2 5.15
Change-Id: Ibb3f367c4677f7e6615bc0cd39d0ffe921862cb9
Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2023-11-01 07:58:02 +00:00
Safiyyah Moosa
48c6f7250a Doc: Improve the QCombobox Documentation
The purpose of this commit is to improve the QCombobox documentation.

The following updates were made:
- The Combobox image was udated with a better quality image.
- The brief was updated to make it more understandable.
- The detailed description was updated with subsection titles.
- Full stops were added to the sentences that were missing them.

Fixes: QTBUG-117748
Pick-to: 6.5 6.6
Change-Id: I417a720299ac0eb2be3f080f2fc0f76a27242423
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2023-10-31 19:20:12 +01:00
Anton Kudryavtsev
5e158ee177 qvulkanwindow: use qimage rvalue overalods more
Pick-to: 6.6
Change-Id: I71bb0df5dbf1993284ec907f637a8696898dddb1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2023-10-31 21:20:12 +03:00
Anton Kudryavtsev
9548118443 qpixmap_win: use qimage rvalue overalods more
Change-Id: I363b40ad8c797e0e554eca249347b5764d7dcfe8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2023-10-31 21:20:12 +03:00
Laszlo Agocs
aa4fe3286d Fix alpha channel logic in QRhiBackingStore
Mirror what other platforms such as Windows or xcb do.

Those all unconditionally upgrade a non-alpha format such as RGB32 to
something like ARGB32_Premultiplied (or whatever
qt_maybeAlphaVersionWithSameDepth returns).

Without this, there is a discrepancy between macOS and the other
platforms when using QOpenGLWidget or QQuickWidget (which trigger
the usage of QRhiBackingStore).

For example, attempting to have semi-transparent raster widget content
over the RHI-based widgets will render incorrectly. This is visible in
6.7 (dev) with the cuberhiwidget example as well: the red
semi-transparent overlay is rendered incorrectly on macOS since
QRhiBackingStore sticking with a QImage of RGB32 has far-reaching
consequences.

Upgrading to an alpha format is also required by the "hole punching"
mechanism the texture-based widget system relies on, although there is
a suspicion that that just happens to look correct with RGB32 as well
since there is an alpha channel technically with that format, and alpha
writes may not be masked out, depending on painting internals, ending
up with RGBA content in practice.
But in other cases, like in the report and the one mentioned above
this clearly breaks down.

Fixes: QTBUG-118553
Pick-to: 6.6 6.5
Change-Id: I4b5b7a4f720377d64903e948b866f8d1c443a2d2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-10-31 20:20:11 +02:00