summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't create ${target}_qml_files target any moreCraig Scott2021-07-191-8/+3
| | | | | | | | | | | | | | | The qml files should now always be added via dedicated functions provided by the qtdeclarative repo. Those functions take care of adding the files to targets so that they will show up in IDE file lists, so we should not add them to a separate target as well. This will also remove one unnecessary build target, which will reduce visual noise in some IDEs. Change-Id: I79bf1ea8fb8a2f15643e052d50ac582a91bdff1a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit a1229a5aa1fb8c7d7e7047ce4c1769d9dae00aec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* locale_database: Use argparse module to parse command line argumentsIevgenii Meshcheriakov2021-07-173-72/+71
| | | | | | | | | | | | arparse is the standard way to parse command line arguments in Python. It provides help and usage information for free and is easier to extend than a custom argument parser. Task-number: QTBUG-83488 Change-Id: I1e4c9cd914449e083d01932bc871ef10d26f0bc2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 5ef5dce53bb9f25b79275d1a2d7087b3eabfa792) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* locale_database: Use f-strings in Python codeIevgenii Meshcheriakov2021-07-176-140/+131
| | | | | | | | | | | | Replace most uses of str.format() and string arithmetic by f-strings. This results in more compact code and the code is easier to read when using an appropriate editor. Task-number: QTBUG-83488 Change-Id: I3409f745b5d0324985cbd5690f5eda8d09b869ca Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 41458fafa0996660890099d8527756c3582282cf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add note about precision of QNativeGestureEvent::delta; fix in Qt 7Shawn Rutledge2021-07-172-5/+19
| | | | | | | | | | | We keep QVector2D storage Qt 6 BC (to avoid making QNativeGestureEvent larger), but in Qt 7 we should return exactly the same value as given (for what it's worth, in spite of this being overkill for panning a reasonable distance). Change-Id: Iecbd4c9b60ad9ae5e0466c7027b038ddb85b8c8b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 1e9e6c6e70a213cb0ba4e58049b7ad48aef8e48b)
* Use member function instead of template function to resolve native interfaceTor Arne Vestbø2021-07-1710-66/+53
| | | | | | | | | | | | | | | The use of a freestanding function is not needed now that the name doesn't alias the nativeInterface accessor function, and was just adding complexity to the machinery. People not familiar with the code will have an easier time following the flow through the helper member function, and we no longer need to declare our own export macros. Change-Id: I17530b7e89939cfc19ab8ffaa076b7129ae02dcf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0e7212460ba7fab19a47f960b09a011973a7c475) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix generated pri and prl filesLi Xinwei2021-07-165-6/+17
| | | | | | | | | | | | | | | | Quote the paths after "-L". Get MSVC’s implicit link directories from $ENV{LIB}. Fix some issues cause by Inconsistent case. Amends 2c49f85380d7ad79d9473e0f42e7afaa36d31af9 Fixes: QTBUG-95198 Change-Id: Ie82f10b088e2764396377726340509f24a4ae8e7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 2915921ad2a79a4ce1651dc7297f6571788d1413) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Handle single- and multi-config differences more robustlyCraig Scott2021-07-161-6/+7
| | | | | | | | | | | | | | Projects sometimes set both CMAKE_CONFIGURATION_TYPES and CMAKE_BUILD_TYPE regardless of what CMake generator they are using. They shouldn't, but it is common enough that we should protect against it. The GENERATOR_IS_MULTI_CONFIG global property is the only robust way to know which type of generator we are using, so switch to that for how we detect this. Change-Id: If5d6568da0d2adb3275bbaf9a7d3bd3e033dc636 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit b30ac93a3737628da118f2137d96c7773ea9e239) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Clean up and simplify qt6_extract_metatypes implementationAlexandru Croitor2021-07-163-75/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove copying of json files in non-prefix builds. Previously, this was done to mimic the directory layout of prefix builds in a non-prefix build, but the extra complexity is not worth it. Keeping the files in the build directories of each repo in a non-prefix build should be good enough. As a result, we don't need to distinguish which file path should be passed in INTERFACE_SOURCES. Now we have only 2 paths to consider, the BUILD_INTERFACE one and the INSTALL_PREFIX one, rather than 3 different paths. Move the code that handles installation closer together. Rename the internal COPY_OVER_INSTALL option to ___QT_INTERNAL_NO_INSTALL. We might want to expose it as a public option later, but it depends on whether we will disable default installation for user projects. Remove assignment of some properties that are not used anymore. Amends c431e2d33c2b13dee8b43a08c267c20ec1ae9654 Task-number: QTBUG-94942 Change-Id: I3a26d1988987b2ce7c7d01d2311c13b3da3175a8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit fb9cbd3b2a12dfcddb8ef66d39ed4475ff1d56a7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix qt6_extract_metatypes json file generation ruleAlexandru Croitor2021-07-161-39/+23
| | | | | | | | | | | | | | | | | | | | | | | | | Change the copying of ${CMAKE_CURRENT_BINARY_DIR}/${target}_metatypes.json to ${prefix}/lib/metatypes/${target}_metatypes.json to happen as part of the command generating the file, rather than copying the file as part of a separate custom target or POST_BUILD event. This ensures that the custom commands in qt6_qml_type_registration that use those files as dependencies will cause them to be generated before the qml type registration happens, thus eliminating errors like Error 5 while parsing qtbase/lib/metatypes/qt6quick_metatypes.json: illegal value Fixes: QTBUG-94942 Change-Id: Idddd73786d1a622984965c60ac9b4c3bc2c13ab5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit bcca14a1933de9f188950a9a2d3a450a0772d479) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QListView: don't scroll if selected items are removedVolker Hilsheimer2021-07-162-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | For SingleSelection, removing the selected item will select the nearest item and, if autoScroll is enabled, ensures that the newly selected item is visible in the viewport. This may result in scrolling. For Multi- or ExtendedSelection, this should not happen, as having no selection is perfectly fine in those modes. However, QListView still tried to scroll to the current item in response to the currentIndexChanged signal. Since the currentIndex is at this point already hidden, the rectangle for it became invalid, and the attempt to scroll resulted in a one-pixel up-movement of the viewport (since the invalid rectangle has width == height == -1). Fix this by not scrolling if the rect for the index is invalid. Note that the index is still valid at this point, so we can't shortcut the call stack earlier. Add test that exercises the different combinations of ViewMode and SelectionMode, and demonstrates the one-pixel movement without the fix. Fixes: QTBUG-94788 Change-Id: I1f36973eadb46e8c9b8b8068bc76ee09e9f490dd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 26bebd2037eb69f7c939c899e3238a3e0f0a2376) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Apply bitcode flags to internal plugin object lib initializersAlexandru Croitor2021-07-163-4/+12
| | | | | | | | | | | | | | | | | | | | | | | All internal libraries, plugins, object libraries (resources, plugin initializers) need to be built with bitcode flags when targeting iOS. Internal here means all libraries added by qt_internal_add_X functions or associated with internal libraries. We didn't do that for plugin initializers, which were added not too long ago. Extract the logic that links to Qt::PlatformModuleInternal into a separate function to be used for object libraries. Use it for resources and plugin initializers. It will also be used in qtdeclarative for qml plugin initializers. Task-number: QTBUG-95208 Change-Id: I366996078f5e9d1c2d2797f6b81c522ee99529e3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit e0a010129059634ce6e63199081b2e2d401a4e96) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Don't propagate -fapplication-extension to user projectsAlexandru Croitor2021-07-165-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | Both the compiler and linker -fapplication-extension flag should only be applied when building Qt's libraries (not executables). It's up to the user project whether their code will be restricted with application-extension-only APIs. In qmake that can be achieved by adding to the qmake project CONFIG += app_extension_api_only In CMake it can be achieved by either adding the compiler and link flags in the project directly (using target_X_options) or by setting the appropriate setting in the Xcode project when using the Xcode generator. Amends e189126f1ae1d2fa2ad0f95ee2c4aa72c770a97b Task-number: QTBUG-95199 Change-Id: Ie7a764d460a89c7650391abff0fcc5abfcabef64 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 3595613a0a285120b1c475e7c350a0de871e89aa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix bitcode linker flags not to be added on iOSAlexandru Croitor2021-07-161-1/+0
| | | | | | | | | | | | | | | | | | | | We shouldn't force add the bitcode linker flags to user projects. And we don't link anything when building Qt for iOS itself, we only archive object files into static libraries. The final decision whether bitcode should be used is up to the Xcode project. That is controlled by Xcode's ENABLE_BITCODE option. Bitcode compile flags are still added when building Qt itself. Amends a0468331761b497992e9d554c210583781308272 Task-number: QTBUG-95199 Change-Id: I04c77f659b82269bb8010ea262b2e51f36e9def3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 616c32be04b8cee16354283d22dfe5cef890d435) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Change QCollator's default locale to QLocale().collation()Edward Welbourne2021-07-161-4/+8
| | | | | | | | | | | | | | | | | | | | | | This replaces QLocale::system().collation(), which left client code with no way to change this default. Since QLocale's default is the system locale initially, the old behavior is retained until the first call to QLocale;:setDefault(). Addition of a separate collation locale in 5.14 changed from using the default locale to using the system's collation locale; the present change restores the ability to override this. [ChangeLog][QtCore][QCollator] The default locale used by QCollator is now the collation locale of the default QLocale. This restores the ability (lost at 5.14) to control the locale used by QString::localeAwareCompare(), while retaining the use of a collation locale when the default is the system locale. Task-number: QTBUG-95050 Change-Id: I232772bb8f23fffd74573174de70ef2deae372a9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 973ca1fac680d8c593645058fae3fe7c84a7fa16) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qdbusperformance and qprocess benchmarksEdward Welbourne2021-07-163-6/+12
| | | | | | | | | | | | | | | | The tests failed because they couldn't find the servers they needed to run. The dbus server wasn't being built, due to mis-configured CMake config; fixed dbus server CMake config. Once built, the servers werent at the paths relative to the test binaries that were given in the test source files, because the test binary was in the test/ sub-directory. The dbus test just needed a ../ on its path; the qprocess one also needed its path wrapped in QFINDTESTDATA(), and a ".exe" suffix on MS. Task-number: QTBUG-91713 Change-Id: I5ace23a5815575bbf88ea88e0b16afc7b8ba6a08 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit bf99c2b62bc3bc2dc10ba8f98bea0496b2026801) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMultiMap: extend unit testsIvan Solovev2021-07-161-143/+581
| | | | | | | | | | | | | | Extend tests to explicitly check the behavior of empty default-constructed container. Also add some missing tests to increase the code coverage. Task-number: QTBUG-91736 Change-Id: Ib3c3f5bcb967cd1031cb24ffceaa77a146212ffd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit ed9effb62dd2f0d0a283ed783ba1e7c90e33e9d3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMap: extend unit testsIvan Solovev2021-07-161-4/+301
| | | | | | | | | | | | | Extend tests to explicitly check the behavior of empty default-constructed container. Also add some missing tests to increase the code coverage. Task-number: QTBUG-91736 Change-Id: I5b418265fc7cb3e56e44782be7704d642923a8e9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 935861e91a68c49414d8fc5fdb035f32991c135b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve error reporting when requesting unsupported native interfaceTor Arne Vestbø2021-07-1610-26/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By switching out the static_assert for an enable_if we end up producing a clearer error, at the call site: /qt/qtbase/examples/gui/rasterwindow/main.cpp:69:9: error: no matching member function for call to 'nativeInterface' app.nativeInterface<QNativeInterface::QCocoaGLContext>(); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /qt/qtbase/src/gui/kernel/qguiapplication.h:176:5: note: candidate template ignored: requirement 'NativeInterface<QNativeInterface::QCocoaGLContext>::isCompatibleWith<QGuiApplication>' was not satisfied [with NativeInterface = QNativeInterface::QCocoaGLContext, TypeInfo = QNativeInterface::Private::NativeInterface<QNativeInterface::QCocoaGLContext>, BaseType = QGuiApplication] QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QGuiApplication) ^ By using SFINAE for the TypeInfo we can also ensure that it works for types that are not native interfaces, such as if the user tries to call nativeInterface<QString>(). Since we can no longer use decltype(*this) to resolve the base type we need to change QT_DECLARE_NATIVE_INTERFACE_ACCESSOR to take the type as an argument, as we do for other QT_DECLARE_FOO macros. Change-Id: Ie3f7e01ab7c3eb3dcc2ef730834f268bb9e81e0c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 1ef305de158498ba58063b19a02e40c9f6348857) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add test for native interface machineryTor Arne Vestbø2021-07-163-0/+129
| | | | | | | Change-Id: I76acd54039dcc7c662ca7a6e859f21d75dcf4dc4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 149b5425d8a4fe809fcabddda09859116e29c2ff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Don't give plugins PUBLIC usage requirements part 2Alexandru Croitor2021-07-1513-19/+16
| | | | | | | | | | | | | | Plugins shouldn't have public usage requirements. Amends 434ada8dcb6132b3a597ea56b57a66c627f51728 Task-number: QTBUG-90819 Change-Id: Iffb3def07ea428b1c3c5b9873e259a4d5168b7a1 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 5c150862dd032b84d67f8e9a075d5f9cbb343cdc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Force Integrity to be a static Qt buildAlexandru Croitor2021-07-151-16/+24
| | | | | | | | | | | | | | This was the case in Qt 5.15 as well. The CMake toolchain file that Qt's CI is using is already setting BUILD_SHARED_LIBS to OFF, but it's better to be explicit like we are with WebAssembly and iOS. Change-Id: Ief17259c15690a97337e9df451663718601c2a52 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit ba0d5ab5554243b0764bf3834c6faa9b98992389) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename QNativeGestureEvent::deltas() to delta(); clarify docsShawn Rutledge2021-07-157-28/+52
| | | | | | | | | | | | | | | | | | In QPanGesture this is called delta(). OTOH we have QWheelEvent::pixelDeltas(). Delta is a vector, and there's only one (with two components). Native gestures hold incremental values: e.g. the pinch gesture event provides an incremental amount of either zooming or rotation (so most events have QNativeGestureEvent::value() very close to 0). It's the same with the pan gesture's delta(). Add better docs for swipe and pan gestures. Change-Id: Ia147c7c9a22e084c3700b1620dec46427d792bd1 Reviewed-by: Povilas Kanapickas <povilas@radix.lt> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit de540c283d96630c189df9c9be37f68ad8285056)
* QCryptographicHash test: remove the moreThan4GiBOfData(SHA512) check from the CIMarc Mutz2021-07-151-2/+5
| | | | | | | | | | | It timed out the other day on the CI. Even the SHA-1 check took 137s (with a 300s timeout). Skip the SHA-512 test on the CI, but keep it for manual runs. Change-Id: I49792ac9bcab6512e1803f66cd986b2830e634c0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit c6e092a5f84b7fc72556897b50c7697152967925) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* locale_database: Don't use u prefix for strings in python filesIevgenii Meshcheriakov2021-07-154-188/+188
| | | | | | | | | | | This prefix is useless with Python 3. Task-number: QTBUG-83488 Change-Id: Ic008d53fe506865759e9a5003f439f7ac107b9e6 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 53382b7b07b136c6550b0c74a0c5769b8158d4ab) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* locale_database: Use super() to call base class methodsIevgenii Meshcheriakov2021-07-152-10/+5
| | | | | | | | | | | | This is the standard way to call base class methods in Python 3 and it is shorter than the custom one used now. Task-number: QTBUG-83488 Change-Id: Ifaff591a46e92148fbf514856109ff794a50c9f7 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 2f4868548be8b3821cdbec047892b7d940c04908) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Convert CLDR scripts to Python 3Ievgenii Meshcheriakov2021-07-158-30/+23
| | | | | | | | | | | | The convertion is moslty done using 2to3 script with manual cleanup afterwards. Task-number: QTBUG-83488 Change-Id: I4d33b04e7269c55a83ff2deb876a23a78a89f39d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit b02d17c5c0f01a6c24cacaea2a3a41bfcc37490f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTranslator: Fix loading of meta catalogs from absolute .qm pathKai Köhne2021-07-152-3/+22
| | | | | | | | | | | | | | | | In case of QTranslator translator; translator.load("somedir/file.qm"); and file.qm being a meta catalog file, the sub-catalogs in somedir couldn't be located, unless "somedir" was set as second argument. Fixes: QTBUG-95013 Change-Id: I06103244ce2ff9800c2c64cb0c17f9bc7ef0e8de Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> (cherry picked from commit 85eaae36f6951f03c4aeac50ca826fea5cc088bd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qtranslator: Simplify extraction of test dataKai Köhne2021-07-154-45/+5
| | | | | | | | | | This makes it easier to further extend the test. The overhead this causes is negligible. Change-Id: I42941879f55337268bb2914e122a5f573ab7e6f9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> (cherry picked from commit 841ce1f938219cb975099a28b720abeb95eea19d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve support for saving QImage to QSaveFileEirik Aavitsland2021-07-152-5/+60
| | | | | | | | | | | | | When saving to a QIODevice, QImage and QImageWriter will automatically deduct the file format from the filename if it determines that the device is a QFile. That did not work for a QSaveFile device. Fix by using the common ancestor, QFileDevice, in the implementation. Fixes: QTBUG-89022 Change-Id: Ie01d80df4f29ca0d4ff30bf7e1b77605293c070e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit f0510d5bd2f1ed1dc76f6f89fb24566045d9ade7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: Fix unnecessary clipboard data accessMike Achtelik2021-07-151-12/+7
| | | | | | | | | | | | | | Android 12 introduced a notification which is shown to the user each time the app accesses the clipboard via getPrimaryClip. Currently this notification is triggered, even if we just want to check, if some clipboard data exists. So lets not get the actual data and instead use getPrimaryClipDescription to check for the existence of the correct mime type in the clipboard. Change-Id: I4800f5545ab46b7f6cade0ce9d78c04b50ae96cf Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 5a7f4c1f4964a4bf6595002478fbcd474cedd8a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Change QNativeGestureEvent::deltas() to QPointFShawn Rutledge2021-07-155-6/+6
| | | | | | | | | | | | | | It came up during 6.2 API review that we prefer all floating-point API to be double-precision on 64-bit platforms, despite the awkwardness of representing a displacement vector with something called a "point". The docs for QPointF explicitly state "A QPointF object can also be used as a vector: Addition and subtraction are defined..." Amends 31f90e99b8f04d9a228c5a0b01319b3f112c1490 Change-Id: I01029661f2586640cbf846f49df164c176d17f7a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit e3aa45006dc883adb92b4c94a0108d3b75012dce)
* Point out that QTreeView's expandAll/expandToDepth don't fetch dataVolker Hilsheimer2021-07-151-2/+11
| | | | | | | | | | | | They will only expand what's currently in the model. As a drive-by, remove superfluous : after the \warning macro. Fixes: QTBUG-94981 Change-Id: I85d38373fb7edf5a5407622b32870e7bcd5d9aeb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit f6bca6261156e8f648bf7d41ba1728ef17cd6889) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Respect style sheet rules for checked and selected menu itemsVolker Hilsheimer2021-07-151-1/+1
| | | | | | | | | | | | | | | | | With a stylesheet that defines a rule for checked:selected menu items, the rule was never rendered. Instead, the checked rule was used. The 'act' variable was initialized based on State_Selected being set, but that state flags was never set on the temporary QStyleOptionMenuItem used to render the PE_IndicatorMenuCheckMark. Note: QStyleSheetStyle falls back to QWindowsStyle for this draw path. Task-number: QTBUG-73966 Change-Id: I3044dbe8f60f1896f79af1afdb26094971704616 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 70e4a70265d6066ef04c7ed5700dadade72ef44c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLocalSocket/Win: destroy the pipe before emitting final signalsAlex Trotsenko2021-07-152-4/+27
| | | | | | | | | | | | | | | | | Both readChannelFinished() and disconnected() signals should be emitted after closing the pipe. Otherwise, these signals do not correspond to the state of the socket and may even be resent, if a slot connected to one of these signals processes events. [ChangeLog][QtNetwork][Important Behavior Changes] QLocalSocket on Windows now emits both readChannelFinished() and disconnected() signals after closing the pipe and emitting stateChanged(UnconnectedState), which is consistent with the behavior on Unix. Change-Id: I1cc551b7897fdba3cec1fd6705f5396790818c7d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 6c1bc7798bec6bc48439b297e55d14a9da0a3673) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix IMPORTED_IMPLIB to be set for shared libraries on WindowsAlexandru Croitor2021-07-151-1/+1
| | | | | | | | | | | The correct variable to check is WIN32, not WINDOWS. Amends 85e25d93b3b99fbeae8541586252df2cb099081d Change-Id: I4570eb5a124bcaa0bd38135dd7c7f48345c40c9d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit b5a0f88029f9abe1a1259633605da1d9892450d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* fix wrong argumentLi Xinwei2021-07-151-1/+1
| | | | | | | | | amends 5b136abd21803988f96b9b66c992822efbef97ec Change-Id: I8dee597c4ba41ecd07289b724f5e2b52ba705a9f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit c9db5eed5490f38af90014cb76c469b713e94fb6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename QPermission namespace to QApplicationPermissionAssam Boudjelthia2021-07-149-113/+122
| | | | | | | | | Task-number: QTBUG-94407 Change-Id: Ie9c05dbe498cd372c015b5125e6cb8d59ca96b59 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 07d4ecd73465fba946047610bc2736daa641b8f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Report multi-arch targets in the configure summaryAllan Sandfeld Jensen2021-07-141-2/+7
| | | | | | | | | Otherwise it will confusingly only list the host arch Change-Id: Ic6d080f1fd9ebfa260ce7c35bd5e5b4ee686f083 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit f3e006a6985573a0b89772979fe7cb870576f4d7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Convert python comparison function to key functionEdward Welbourne2021-07-141-40/+17
| | | | | | | | | | | | | | | | | | | | | | Instead of implementing all the intricacies of a cmp for the python sort-function, support for which is due to be dropped at Python 3 in any case, implement a much simpler key function that achieves the same result. In the process, eliminate the ugly kludge of setting an attribute on a function to, in effect, communicate with it via a global. Instead, instantiate a class, that wraps the value previously given to the attribute and whose instance provides the key-function. Thanks to Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> for pointing out that a key function is the way of the future - and sorted() is a nicer way to sort. Change-Id: Icf1ed5597fedf420d054fbc860e3e7fc6615875c Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit a37c0ef55f2725e7d8db43cac78fca9efe9a1ebf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make locale ordering transitiveEdward Welbourne2021-07-145-71/+80
| | | | | | | | | | | | | | | | | | | | | | | | The ordering function used to sort the locale data generated for QLocale attempted to sort the default territory for a given language and script before other territories, but was too tangled for it to be obvious this is what it was doing. The result turned out to be non-transitive. Replace with code that implements the same preference but only applies it where the result is compatible with transitivity. This leads to a shuffling of the order of the Serbian-language locales, which sorts the Cyrillic ones before the Latin ones. This is consistent with my reading of the CLDR data, which fills in Cyrillic and Serbia for Serbian; Serbian/Cyrillic/Serbia did previously sort before all other Serbian variants. Thanks to Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> for discovering the non-transitivity. Change-Id: I0ce9f78e620e714f980f32b85b7100ed0f92ad74 Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> (cherry picked from commit 7dec56c6a5ee985f91dd2197225131c028b33650) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use base style when drawing item view item with only indicator styledVolker Hilsheimer2021-07-141-5/+9
| | | | | | | | | | The base style should still draw the item and the selection highlighting. Fixes: QTBUG-83619 Change-Id: I1cd8c4fce48cb5543337415918fc99ffb5e19e00 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 1d48572b4ea765cb8d81bf227eabaf907a91e7de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Support styled menu icons in otherwise unstyled menu itemsVolker Hilsheimer2021-07-142-30/+48
| | | | | | | | | | | | | | | | | | | | | For a style sheet that defines a rule for the menu icon, but not for the item itself, we ignored the icon rule. Implement a separate rendering path for menu items with an icon. That rule takes precedence over a rule for menu item check indicators, as almost all styles reuse the icon for that. Factor the icon positioning and rendering code out into a private member function that we can reuse. Reduce amount of local variables to make the list of arguments for that member reasonable, the bit checks are cheap enough. Fixes: QTBUG-73966 Change-Id: I64b6f5181e35527d0a163d9633a7414b50319829 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 1ef8188a086c96722f4546ca015cefbe69d7693e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qdoc warning: signal is not constVolker Hilsheimer2021-07-141-1/+1
| | | | | | | | | | Amends fa664e0b2ad748a5b56de8ca0fd9ee3ed1966e7d. Change-Id: I386ce27d4daf0679d40032e8b8bfbbf81adfb3a2 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> (cherry picked from commit 7bb464554a8d86d2874e6d01fb6d5e911447c475) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: port reserve() from int to qsizetypeMarc Mutz2021-07-131-1/+1
| | | | | | | | | Was missed in the int -> qsizetype port for Qt 6.0. Change-Id: I1ae8190601f2e1a1bc02a736c12230a9c71acb18 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit fcfc854def12500658d5d863797169279b698498) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: reserve() for at least Prealloc elementsMarc Mutz2021-07-131-2/+3
| | | | | | | | | | | We have space for so many elements, so reserve()ing anything less makes no sense. Change-Id: I84d692b10a6a491c37661f84aa3fdd9af43d71e5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 16db1d21659793909bd1719805d7ff8de6906f88) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use module interface name as OUTPUT_NAMEAlexey Edelev2021-07-131-1/+4
| | | | | | | | | | | For internal modules we should keep the name of the file in file system consistent with previous Qt versions. Fixes: QTBUG-95077 Change-Id: I02e4fced0fc3172e60f07bc7d1515e23744db567 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 0ae2537ad44eb427dfaaa254d9b838a2cb5a2ac5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLineEdit: don't change layout direction on keyboard inputVolker Hilsheimer2021-07-131-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLineEdit was the only widget in Qt that flips the widget's layout direction if a key press changes the document's layout direction. This resulted in inconsistent behavior: setting text to RTL content programmatically didn't set the widget's layout direction to RTL, but the first key press (even if just a cursor key or a latin1 character) did. Clearing the text with keyboard shortcuts changed the layout direction, doing the same using the clear button or context menu actions didn't. In addition, the automatic changing overrode whatever the UI developer set, or what Qt detected as the global layout direction based on the active translation. Remove the automatic flipping. [ChangeLog][QtWidgets][QLineEdit] QLineEdit used to change the layout direction on each key press, based on the text content. This feature resulted in an inconsistent and erratic user experience, and has been removed. Fixes: QTBUG-95011 Change-Id: Ib653350d35e25ce431cca1abe9b45bdf33d035fe Reviewed-by: Fan RuiJie <fanruijie@uniontech.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit e08f6d601de4faea869dcfd05a7e133366328981) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: fix the static buffer size calculationMarc Mutz2021-07-131-1/+7
| | | | | | | | | | | | Instead of just sizeof(T), we, of course, also need to take the support structure into account, to wit: the bucket list and, in the node, the next pointer and the stored hash value. Change-Id: I8227a95c49e316aacf3d4efd8f6170ea3bea1cf0 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 3c88e12beb22d8ea11b8a7006a71ba9773c6d183) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't use a deprecated function if built/linked with OpenSSL v3Timur Pocheptsov2021-07-132-1/+20
| | | | | | | | | | | SSL_get_peer_certificate was deprecated in OpenSSL v3 and can be 'compiled-out' using OPENSSL_API_COMPAT. Use SSL_get1_peer_certificate instead. Task-number: QTBUG-94596 Change-Id: Iedb2e06e673e981cab79d4bf0147ac6f5f90089a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit ae6590e360fbb04d93940b2651f70df44a28943e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTableView: fix selection with rows and cells in ExtendedSelection modeChristian Ehrlicher2021-07-133-5/+76
| | | | | | | | | | | | | QTableView stored the current row/column selection start in an own variable instead using currentSelectionStartIndex. This leads to an inconsistent behavior when the selection is done with a click on the header and then in a cell (and the other way round) Fixes: QTBUG-92561 Change-Id: I4c8bda3a938de451b6eff2819141e86a6870fbef Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit e8b3d35a18e7e4cf6543868d89d6060c90314f39) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>