Commit Graph

58667 Commits

Author SHA1 Message Date
André de la Rocha
31e7790102 Windows QPA: Remove tablet->mouse synth and fix Drag&Drop with touch/pen
This patch avoids synthesizing mouse messages in the QPA for touch/pen
input, and lets the GUI do mouse event synthesis for unhandled touch/pen
events, if required, like in other platforms. This requires a workaround
to avoid breaking drag and drop with touch/pen (or making it worse). DnD
on Windows is based on the DoDragDrop() Win32 API, which does not work
with touch/pen input, which in some cases cause a DnD operation started
with touch/pen to hang until the mouse is moved. To avoid it we process
pointer messages for touch/pen and generate mouse input through
SendInput() to trigger DoDragDrop(), which then seems to work as
expected.

So now we inform QtGui that the Windows platform no longer sends
synth-mouse events after tablet events (unsetting the flag added in
f931e5e72d); this completes what was
attempted in 8ada0633cd.

Fixes: QTBUG-106368
Fixes: QTBUG-57577
Fixes: QTBUG-100788
Task-number: QTBUG-77414
Task-number: QTBUG-104594
Pick-to: 6.4 6.3 6.2
Change-Id: I46db3c74be2a95cf2d94ba930398e58dc930d2db
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-10-28 10:27:11 +00:00
Yuhang Zhao
32774f13d9 QWinRegistryKey: Fix how we handle the default value, take 2
It seems the value name correction is not needed at all,
and we must not do such correction.

Amends commit 738e05a55a

Task-number: QTBUG-107794
Change-Id: I903a762aafab4b55275beb8438e6769285821567
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-10-28 09:27:13 +00:00
Yuhang Zhao
19857fda75 Windows QPA: suppress warning message when not needed
We have done the same thing when calling SetProcessDpiAwareness(),
but it's also needed for SetProcessDpiAwarenessContext(), otherwise
there will always be a warning message when the user uses a manifest
file to set the DPI awareness mode for the application (which is highly
recommended by Microsoft).

Pick-to: 6.4
Change-Id: I31894d41c89581b6edd7826cb3dabad492f6c2a8
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-10-28 13:47:33 +08:00
Yuhang Zhao
8b98b8c836 Win32: Add a W version entry point
Currently we have a narrow version entry point, add a wide
version entry point as well, make them share exactly the same
implementation. The linker can choose the appropriate entry point
during linking.

The linker will always try to use wWinMain as the entry point
function if the UNICODE/_UNICODE macros are passed to it and
this will cause compilation failures without a wWinMain
implementation. This patch fixes such issue, though it usually
won't happen in most cases.

Change-Id: I7bc22d5bdc1cf35514a335a280a9f18732531b25
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-10-28 12:00:01 +08:00
Ahmad Samir
4f8202c239 QString: return early in remove() if any precondition is false
Change-Id: I80c6d76def30b0a573db6a24f3f76b02b8da5373
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-10-28 04:34:44 +02:00
Ahmad Samir
6c7099d27a QString: in remove() use d->erase() for all code paths
Use the minimum of "len" and "size() - pos", logically we'll only ever
remove characters up-to the end of the array.

This eliminates one if branch, and d->erase() can handle all the use-cases.

After making this change I looked at QByteArray::remove() and it has
similar logic, so it should be correct™.

Change-Id: Ife6c552f8a3f3dda1d5a1da12b80a60790f3bae4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-10-28 04:34:43 +02:00
Johannes Kauffmann
6707b881cf qlogging: avoid C-style casts
Amends e38a48200b.

Pick-to: 6.2 6.4
Change-Id: I053cb676398ae3ebc2ba68f0bf7359a0870303bc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-10-28 01:31:31 +02:00
Timothée Keller
61a4880cb3 Windeployqt command line module expansion
Added command line option for passing core5compat module in windeployqt

Task-number: QTBUG-104845
Pick-to: 6.2 6.4
Change-Id: I6a0e13532edac4580e03d83be79f7db4ac54e3bf
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-10-27 19:34:58 +02:00
Timur Pocheptsov
a43845b75a QMacStyle: paint PE_PanelScrollArea differently
To make it look more natural (without outline and with proper colors).
Otherwise this thing looks bad in both Aqua and Dark themes -
can be seen if scrollbars always shown (this option is set in "General"
settings).

Tried so far:

- not to draw this element at all - gives a visible hole in the corner

- ask the horizontal bar to render its knob track a bit longer (resetting
  a clip properly) - gives a weird side-effect when scrolling in Dark
  mode + unfortunately outline of a track is still visible (it overlaps
  the vertical bar's track).

Alas, good old hardcoded colors/alpha values as a last resort.
PE_Frame had -1,-1 adjustment, making a frame line visible in the
corner below scrollbars, giving another strange effect.

Fixes: QTBUG-106927
Change-Id: Ie0367c3bd6f40b3fa4ca6afac09f27e446fc007d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-10-27 17:14:51 +02:00
Alexey Edelev
433d711670 Add NO_HEADERSCLEAN_CHECK flag to qt_internal_add_module
Some modules may have header files that do not pass headersclean check
under some conditions. It's nice to have an option in the
qt_internal_add_module function to disable the check for the modules of
this kind. At the moment this flag is useful for the ActiveQt module,
since it syncs and installs header files that don't belong to it.

Amends b89d63515b

Task-number: QTBUG-103196
Change-Id: I21a82d50d50bdac225ed483ab0cc50339c2a4873
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-27 16:49:42 +02:00
Amir Masoud Abdol
626ebf4738 Fix a bug in detecting system
Since QtAutoDetect is called before the project, we still don't have
access to our IOS, WATCHOS, TVOS variables, and we must use
CMAKE_SYSTEM_NAME variable instead.

Pick-to: 6.4
Change-Id: I61afe216baec85b3fcd489957f4b6774134f8078
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-27 15:14:29 +02:00
David Redondo
17ab4045ca Add QNativeInterface::Private::QWaylandScreen
Change-Id: Ib18c95fa64ab9176195f591e8ffd45177be510b9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-10-27 12:03:00 +02:00
Rob De Reycke
e39ca06dbc xcb: Fix segmentation fault on destruction of QXcbConnection
The same screen was detected twice.

Fixes: QTBUG-104319
Pick-to: 6.4 6.3
Change-Id: Id1f93d68de0306604f2e6a9104962a1d3b0db366
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jonas Kvinge <jonas@jkvinge.net>
2022-10-27 08:27:42 +02:00
Thiago Macieira
9968efb3cf QStringConverter/AVX2: fix build with MSVC 2022
It doesn't like 0x80 passed to a char, causing a warning

qstringconverter.cpp(196): warning C4309: 'argument': truncation of constant value

Pick-to: 6.2 6.4
Change-Id: I07ec23f3cb174fb197c3fffd17215b6f83476ebf
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2022-10-26 11:51:05 -07:00
Bartlomiej Moskal
b4a9bb1f6a Android: Handle light/dark mode changes
Update Theme's style according to current UiMode.

New style.json file for dark mode was added (stored in separate
subdirectory 'darkUiMode/'). Theme_DeviceDefault_DayNight[0] is used for
extraction for API 29 or higher. Style is updated each time when UiMode
is changed.

[0]https://developer.android.com/reference/android/R.style#Theme_DeviceDefault_DayNight

Task-number: QTBUG-83185
Pick-to: 6.4 6.2
Change-Id: Id26059231f41761d822d494ac6c641bf3cba3322
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-10-26 17:13:44 +02:00
Amir Masoud Abdol
f157e223c2 Cleanup the watchOS and tvOS References from CMake files
In addition, I simplified some of the routines as we don't need the
extra check for them.

Task-number: QTBUG-107903
Pick-to: 6.4
Change-Id: Idaf6ab1338a54bc1a9f242fcc8400ae200174beb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-26 17:12:26 +02:00
Paul Wicking
7943cdcde7 Doc: Fix typo in container documentation
Pick-to: 6.4
Change-Id: Ia36cdff5554955e5193a10b9f0e4aab3c61e5f09
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-10-26 16:34:35 +02:00
Michael Weghorn
f408944598 a11y atspi: Clean up logging a bit
Based on the discussion on logging style in the
Gerrit change for commit
5145d3899d
("a11y atspi: Support AT-SPI table cell interface"),
clean up the logging in AtSpiAdaptor a bit:

* convert uses of qCDebug to qCWarning where the
  log message contained "WARNING"/"warning"
  or it seems worth that severity.

* drop extra prefixes of "Qt AtSpiAdaptor:"
  in the log messages, since the logging
  category is already named "qt.accessibility.atspi"
  and only used here

* more consistently start log messages with
  uppercase letter and drop unnecessary extra spaces

The switch to qCWarning implies that these log
messages are output by default.

Change-Id: I1665a8ee8d64e4eab33a3b15906a7cb7357fd73c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-10-26 16:34:35 +02:00
Mårten Nordheim
a4f2298d84 QOperatingSystemVersion: Change since-version for Ventura to 6.4
It's not in 6.4.0, but realistically people who look at the docs now
will be using 6.4.(x>0).

Change-Id: If176c0daee11a6cc13d64255e398f767896f01a4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-10-26 16:34:35 +02:00
Laszlo Agocs
eac32e5e95 vma: Revise disabled warnings
Change-Id: I92f62022329ded94778b1385e72336ef9376baee
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-10-26 14:53:13 +02:00
Laszlo Agocs
06a5118a4a rhi: gl: Make sure stencil write is enabled when clearing
If the last pipeline had a different stencil (write) mask, that
would affect the clear. That is not ideal.

Exercised by the upcoming stenciloutline manual tests.

Pick-to: 6.4 6.2
Change-Id: I925e85a2b7fb884e5ae9ed327b4b05c9bf36484b
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
2022-10-26 12:53:13 +00:00
Wojciech Błaszak
fbf586db2c QGuiApplication on Android can now detect multiple displays
- Extending QtNative.java with access to DisplayManager and get
  details about available displays
- Extending Android Platform Integration with display's list
  handling
- Change QAndroidPlatformScreen to initialize itself from QJniObject
  representation of an android Display object
- Move initialization of Primary display from QAndroidPlatformScreen
  to QAndroidPlatformIntegration

Change-Id: I3d8f97f5cf9f81bbecc8716c25ff323097e57a15
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-10-26 15:32:52 +03:00
Assam Boudjelthia
c7b93d471d Android: delete dead code for tst_android under tests/auto/other/android
This amends 23780891a5 which moved the.txt
test to tets/auto/corelib/platform/android and kept the old location
mistakenly.

Pick-to: 6.4 6.2
Change-Id: If58422f9a94cfe4d6a941cc5453d8f0506057dcb
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2022-10-26 14:57:40 +03:00
Mårten Nordheim
6c83273130 QWindowsFontDatabaseBase: Override both fontEngine functions
MinGW-clang gives warning(-as-error) because the overridden function
which is there shadows the other overload, making it inaccessible.

Pick-to: 6.4 6.2
Change-Id: Ie5684b60a13d71966b9741fcfcdacbd37fe0df85
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2022-10-26 12:30:09 +02:00
Mårten Nordheim
4c7524cbe8 QSctpSocket: Update windows-note to specify 'class'
When we say 'this feature', it can be misunderstood to mean
the subject of discussion in the immediately preceding paragraph.

Pick-to: 6.4 6.2
Fixes: QTBUG-107720
Change-Id: I726c7a591f01e59c3c36c802abeb17b51abf0777
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2022-10-26 12:30:09 +02:00
Samuel Mira
98a9c38437 Fix crash on access clipboard on Android
A case where the accessing the clipboard is done when the application
does not have the input focus. Android does not allow access in this
case and returns null on the getPrimaryClip. This happens on some
examples like Analog Clock. Does not happen on autotests.
Fix was adding a test for null.

Fixes: QTBUG-107926
Change-Id: I685594545e5ae8102c257c033fffbcc4f20cef9a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-10-26 09:27:42 +03:00
Thiago Macieira
11cc74b066 Bootstrap: fix MinGW build with -maes
In bootstrap mode, we don't build qsimd.cpp and don't check for CPU
features, but specifying -maes in the compiler command-line can still
enable the AES hash support in qhash.cpp. This has probably been broken
since Qt 6.4 with commit 4be85491e0.

qhash.cpp:(.rdata$.refptr.qt_cpu_features[.refptr.qt_cpu_features]+0x0): undefined reference to `qt_cpu_features'

Pick-to: 6.4
Change-Id: I07ec23f3cb174fb197c3fffd17216241cfd1ab19
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2022-10-25 18:33:14 -07:00
Thiago Macieira
c2445aeadb tst_QFile: remove unused variable on Windows
Removes a warning in the build.

Pick-to: 6.4
Change-Id: I07ec23f3cb174fb197c3fffd17215c40b40333cb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-10-25 18:33:14 -07:00
Thiago Macieira
d18d341341 Tests: fix namespaced build on Windows
Amends 371214dea7.

tst_qfile.cpp:401:9: error: reference to ‘QTest’ is ambiguous
qttestglobal.h:27:11: note: candidates are: ‘namespace TestNamespace::QTest { }
filesystem.h:28:11: note:                 ‘namespace QTest { }’

Pick-to: 6.4
Change-Id: I07ec23f3cb174fb197c3fffd17215c1eeeadf7fd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-10-25 18:33:14 -07:00
Thiago Macieira
089bbfc307 QLocale: merge the code for some system locale queries
QSystemLocale is now defined for QT_NO_SYSTEMLOCALE builds (bootstrap),
but no implementation will be present. That's just to get the enum
declarations.

Pick-to: 6.4
Change-Id: I3c79b7e08fa346988dfefffd171fa00fde8ab080
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-10-25 16:21:56 -07:00
Thiago Macieira
209adad078 QBenchlib/Perf: remove the handling of attributes in -perfcounter
I don't think I understood what this does when I coded it. It wasn't
needed with the Linux kernels of the era.

[ChangeLog][QtTest] Specifying attributes with the -perfcounter command-
line option for Linux performance counters is deprecated. QtTest will
ignore the colon and any attributes listed there, though future versions
of QtTest may reintroduce attributes if needed.

Change-Id: I3c79b7e08fa346988dfefffd17202684fc2cf650
Reviewed-by: David Faure <david.faure@kdab.com>
2022-10-25 15:13:57 -07:00
Thiago Macieira
e1089e0520 QBenchlib/Perf: don't try to benchmark the kernel
The kernel has become more paranoid since 2013, when I originally wrote
this code. The kernel.perf_event_paranoid sysctl controls the paranoia
level[1]:

===  ==================================================================
 -1  Allow use of (almost) all events by all users.

     Ignore mlock limit after perf_event_mlock_kb without
     ``CAP_IPC_LOCK``.

>=0  Disallow ftrace function tracepoint by users without
     ``CAP_PERFMON``.

     Disallow raw tracepoint access by users without ``CAP_PERFMON``.

>=1  Disallow CPU event access by users without ``CAP_PERFMON``.

>=2  Disallow kernel profiling by users without ``CAP_PERFMON``.
===  ==================================================================

Since the default is 2, we QBenchlib has been failing with EACCESS:

PASS   : tst_MyClass::initTestCase()
QBenchmarkPerfEventsMeasurer::start: perf_event_open: Permission denied

[ChangeLog][QtTest] Fixed support of Linux performance counters for
QBENCHMARK, which used to fail with "Permission denied" errors in
default configurations. Now, QtTest will automatically fall back to
profiling only userspace, like the perf(1) tool does.

[1] https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/sysctl/kernel.rst#perf-event-paranoid

Pick-to: 5.15 6.2 6.4
Change-Id: I3c79b7e08fa346988dfefffd171f897be7794935
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2022-10-25 15:13:57 -07:00
Amir Masoud Abdol
5fcfacdb7f Use CMAKE_MESSAGE_CONTEXT for Better CMake Output Messages
Each module now identifies its actions during the configuration by a
prefix, e.g., `[QtBase]`. In addition,

- I have slightly modified some of the `message()` commands to get
  a more coherent output.
- `syncqt.cpp` prints its output as WARNING if any

Change-Id: I3922d75a668d94f402068f4121751b7fcb6522b4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-10-25 23:24:30 +02:00
Mårten Nordheim
71e1393bb5 QOperatingSystemVersion: Test Qt7 path in bootstrap builds
Just to make sure it is not broken and will not break.

Change-Id: I947f8225027d6b6744eb8b774058b7e4d923b61d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-10-25 23:24:30 +02:00
Mårten Nordheim
486651db3c QOperatingSystemVersion: Add macOS Ventura (13.0)
Pick-to: 6.4
Change-Id: I9504b41b743b9874fcc6324d98b66a9c5160e845
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-10-25 23:24:29 +02:00
Ahmad Samir
997713283e QFile: remove unconditional QTest::qWait calls
The whole unittest still passes on my machine.

Before:
tests/auto/corelib/io/qfile/tst_qfile    =  19.30 sec*proc (1 test)

After:
tests/auto/corelib/io/qfile/tst_qfile    =   4.28 sec*proc (1 test)

Change-Id: I46fd51abeaecacd44cac1c56e76871fde2a44a52
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-10-25 21:18:17 +02:00
Thiago Macieira
feb6463772 QBenchlib: force the warmup to run a single iteration
The purpose of warming up is to get all code paths executed, so any lazy
function resolving is processed, statics are allocated, etc. There's no
reason to run it more than once -- if you're trying to train the Branch
Predictor Unit, you'd want to do it another way anyway. This is useful
when benchmarking with -iterations N, because QBenchlib currently runs
2*N iterations because of the warm up. That just wastes time.

Change-Id: I3c79b7e08fa346988dfefffd172030c889b31a1f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-10-25 11:14:35 -07:00
Amir Masoud Abdol
10d5c0adaf Remove the Unnecessary CMake Module, include(CMakeParseArguments)
From CMake 3.7 both flavors of `cmake_parse_arguments` are natively
available in CMake, and loading the
`CMakeParseArguments` module is not needed anymore.

Fixes: QTBUG-107574
Pick-to: 6.4
Change-Id: I7c8a6c5871cdb2f92a4aa43932b6f2ee99e1f57f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-10-25 20:14:35 +02:00
Amir Masoud Abdol
ef822cf03d Sync CMake Version with .cmake.conf
As stated in `QtBuildInternalsConfig.cmake`, `cmake_minimum_required`
versions should be synced with `qtbase/.cmake.conf`, but it wasn't at
the moment.

Change-Id: I8100370778707d46abe973b681fd4aba182a7513
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-25 18:14:35 +00:00
Alexey Edelev
d90935f2c2 Fix issues in qt_internal_add_headersclean_target
Avoid using top-level ${target} variable in the function. Align the
module's '_header_check_exceptions' file name, so it should use
_qt_module_interface_name property, but not the qt_module_include_name
proeprty as the prefix.

Amends b89d63515b

Task-number: QTBUG-87480
Change-Id: I1a3ceee1a29f2f4a7cb727310b4fdac63d8144e1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-25 18:56:09 +02:00
Alexey Edelev
97007e1ace Specify source and build directory explicitly for multi-ABI external projects
When building Android multi-ABI application in source tree the
ExternalProject_Add call generates a ninja rule that looks as
follows:
  cd <BINARY_DIR> && cmake <CMAKE_ARGS> <SOURCE_DIR>
In general case the rule works correctly unless SOURCE_DIR contains
CMakeCache.txt. In this case the cmake call uses the existing
CMakeCache.txt as the reference and tries to reuse the build directory
of the main ABI. It leads to the inconsistency for multi-ABI builds
and rewriting CMakeCache.txt. Passing both '-B' and '-S' arguments
explicitly avoids using CMakeCache.txt from a main build/source
directory and fixes in-source multi-ABI builds.

Fixes: QTBUG-107843
Pick-to: 6.4
Change-Id: I010b47bff81052401aebe459e7893838a9b99bc1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-25 18:56:08 +02:00
Mårten Nordheim
6d46788e43 FontEngine[DirectWrite]: Mark interface functions noexcept
MinGW-clang warns(-as-error) that the overridden functions are not
marked noexcept like in the original class.

Pick-to: 6.4 6.2
Change-Id: I7c5663b82e0f4449e27fd3842f7b37015fd5f4ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-10-25 18:56:08 +02:00
Patrick Stewart
7979665362 Use consteval in QT_PROPERTY_DEFAULT_BINDING_LOCATION
Adds a consteval QPropertyBindingSourceLocation::fromStdSourceLocation
to make sure the QPropertyBindingSourceLocation is created at compile
time.
This is a workaround for what seem to be bugs in MSVC 2019 and 2022,
which otherwise don't regard
QPropertyBindingSourceLocation(std::source_location::current()) as a
constant expression.

Fixes: QTBUG-106277
Pick-to: 6.4 6.2
Change-Id: Ic2379987b278cc0c43c1eb929120c99f5cd95fdf
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-10-25 15:39:25 +01:00
Amir Masoud Abdol
2625e5f050 Make the PREFIX Parameter of the qt_add_resources Optional
The `rcc_PREFIX` will be set to `/` if it is not passed to the
function and it is not defined in `QT_RESOURCE_PREFIX`.

I also removed an unnecessary check of the `rcc_PREFIX`.

[ChangeLog][QtCore][CMake] The `PREFIX` parameter of the
`qt_add_resources` is now optional. If not passed, and
`QT_RESOURCE_PREFIX` is not defined, `/` will be used as the path
prefix.

Fixes: QTBUG-104938
Change-Id: I6524ab5dc54f035272e4c2e3154eb67591efb650
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-10-25 16:39:25 +02:00
Johannes Kauffmann
30eac4a4f9 benchmarks: fix configuring with -no-feature-sql
With -no-feature-sql, CMake would error out because the target Qt6::Sql
didn't exist. Fix this by checking if the target exists.

Task-number: QTBUG-102480
Pick-to: 6.2 6.3 6.4
Change-Id: I411631acfd336ea699833954f86711067d160c04
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-10-25 16:39:25 +02:00
Johannes Kauffmann
60de00cb2f qfilesystemengine: port to qsizetype
Task-number: QTBUG-103525
Pick-to: 6.2 6.4
Change-Id: If17227630d48f8170c5ec08ba6bed6baaad5582b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-10-25 16:39:25 +02:00
Johannes Kauffmann
e38a48200b qlogging: use qsizetype to fix Wconversion warnings
While the strlen() calls don't raise warnings themselves, it seems like
they were artifacts of indexOf() returning int instead of qsizetype.

Task-number: QTBUG-103527
Pick-to: 6.2 6.4
Change-Id: I32fbf69feca38a5977dde084bef9993f24843ccf
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-10-25 16:39:25 +02:00
Morten Sørvig
4711f078b7 wasm: disable run-time check for specialHTMLTargets
Recent versions of Emscripten may abort if module_property()
is used to look up specialHTMLTargets, which makes run-time
checking impossible. The abort is implemented on the JS property
getter on the Module object, which means that it's not possible
to bypass this by using e.g. EM_ASM instead of the C++ API.

Disable usage of specialHTMLTargets on emsdk > 3.1.14 for now,
until we can add API (or find some other means) for opting in.

This commit also adds functions for comparing Emscripten
versions.

Pick-to: 6.4
Change-Id: Ibe5d1a82f267fa95dd62cdfc66595bc23036933f
Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2022-10-25 14:39:24 +00:00
Alexey Edelev
683936d3cb Move install paths from CoreConfigExtras.cmake to a separate file
Move install paths from CoreConfigExtras.cmake to a separate file
for the easier usage. This specifically can be useful to detect
read required paths for android deployment in multi-ABI builds.

Change-Id: Iacdf3a8d3ae7615ac6669a067e6f12bdf5043d5a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-10-25 16:05:11 +02:00
Laszlo Papp
faeeb42b85 Add a shortcut editor example
Many applications offer shortcuts for quick interaction with the
application. It is also common in such applications to offer a shortcut
editor in the preferences or separately in a dialog.

However, even though this is a fairly common use case for applications
with more than a couple of shortcuts, there is no good and comprehensive
official Qt example how this could be achieved.

This change is an attempt to bridge the gap.

Change-Id: Ic01a404e6157bda1b0a75a0b792cbfe5d910d48f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2022-10-25 14:38:46 +01:00