aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Inherit base type access semantics in QQmlJSScopesAndrei Golubev2022-06-023-9/+7
| | | | | | | | | | | Group scopes may be value types so they require access semantics different from a default value Ordinary scopes and attached scopes seem unaffected, only groups are thus covered with an extra logic Change-Id: Ia9012548a602ca7ca07296491d27a295f4455f91 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Address extension types in qmltcAndrei Golubev2022-06-0217-24/+770
| | | | | | | | | | | | | | | | | | | | | Whenever working with properties (reading, writing, aliasing, etc.) of the type that has extensions, prefer the same-named properties from extension objects over type-owned properties (this is the internal QML mechanism) To achieve that, we need to query the extension object: * for Q_GADGETs use a dummy model of assuming we can cast the object to the extension type and use that * for Q_OBJECTs use a qmlExtendedObject() with additional logic of figuring out which extension should be picked in each specific case Create QQmlProxyMetaObject via a custom dynamic meta object API for qmltc-compiled objects that are derived from base types with extensions Task-number: QTBUG-91956 Change-Id: I5e783768ae2abdb9dddf894de7e79960244352bd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Document that QML_EXTENDED properties are practically FINALAndrei Golubev2022-06-023-0/+14
| | | | | | | | | | | This is de-facto how it always was before ff0b9ec6bf817f741e3c9fefbfcd55592e9b2542. As we plan to revert back to the "original" behavior, document the FINALity of the properties so that users know how it behaves (and we could not be held responsible for this mess) Change-Id: I4afed215fd66875821b7ce8d824b81782388324b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qqmllanguage: Test extended group property caseAndrei Golubev2022-06-022-0/+46
| | | | | | Task-number: QTBUG-103881 Change-Id: Id5e0925f479ee638cc4db7fad18cc6d951b07f98 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* FileDialog: make selectedFile writableMitch Curtis2022-06-0214-51/+387
| | | | | | | | | | | | This allows setting an initially selected file. [ChangeLog][QtQuickDialogs] FileDialog's selectedFile property can now be set to an initially selected file. Fixes: QTBUG-101975 Pick-to: 6.3 Change-Id: I399f9379e1ac54917edbc31f9029d5522a914340 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQmlChangeSet: don't leak nospace() from operator<<Mitch Curtis2022-06-021-4/+6
| | | | | | | | Save the state with QDebugStateSaver. Pick-to: 6.2 6.3 Change-Id: Ie25f92dd72e480f5976a4230409ebea29635ef8f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* DialogButtonBox: test item deletion orderMitch Curtis2022-06-022-0/+89
| | | | | | | | | | Ensure that items declared before and after the control itself do not cause heap-use-after-frees due to deletion order. Task-number: QTBUG-100396 Pick-to: 6.2 6.3 Change-Id: I3989bf1b9fc64b4ec86f241de2cb8bcd05c2f89d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_container.qml: fix "Unsuitable arguments" warningMitch Curtis2022-06-021-1/+1
| | | | | | | | | | | | The full warning was: QML Component: Unsuitable arguments passed to createObject(). The first argument should be a QObject* or null, and the second argument should be a JavaScript object or a QVariantMap Pick-to: 6.2 6.3 Change-Id: Iaf81a6fc622d11cd6d6de22e931c2fb922ea9ec0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Container: test item deletion orderMitch Curtis2022-06-021-0/+82
| | | | | | | | | | Ensure that items declared before and after the control itself do not cause heap-use-after-frees due to deletion order. Task-number: QTBUG-100396 Pick-to: 6.2 6.3 Change-Id: I0735f57f9bed26bd9e506a02543de35646c0391f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Control: test item deletion orderMitch Curtis2022-06-021-0/+82
| | | | | | | | | | Ensure that items declared before and after the control itself do not cause heap-use-after-frees due to deletion order. Task-number: QTBUG-100396 Pick-to: 6.2 6.3 Change-Id: I8c080f7c3d4f2a58085dc5387677783d45fc093d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQuickTest: add API for checking for polish at window levelMitch Curtis2022-06-0220-307/+459
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a qIsPolishScheduled(QQuickWindow *) overload of qIsPolishScheduled(QQuickItem *) (added in 40d6072bc8a4df0fe1a16025fe30fe653463a446) and deprecates qWaitForItemPolished() (added in 7a3cad0619662b992154e075ec6b840bfc8a46a7) in favor of qWaitForPolish(), which has QQuickItem* and QQuickWindow* overloads. The existing functions that take QQuickItem are useful, but testing Qt Quick applications can be made even easier by allowing users to check if a window has any items that need to be polished. This information is already present (in QQuickWindowPrivate::itemsToPolish), so it's very efficient to check for. This is especially useful now that Qt Quick Layouts using polishing for their layouting, for example, as it's no longer necessary to find individual polishable items in complex hierarchies before proceeding to interact with child items. [ChangeLog][QtQuickTest][QQuickTest] Added QQuickTest::qIsPolishScheduled(QQuickWindow *) and QQuickTest::qWaitForPolish(QQuickWindow *) functions for verifying that updatePolish() was called on one or more items managed by a window. [ChangeLog][QtQuickTest][QQuickTest] Deprecated QQuickTest::qWaitForItemPolished(QQuickItem *). Use the new QQuickTest::qWaitForPolish(QQuickItem *) function instead. Fixes: QTBUG-93757 Change-Id: I95b6e051b3c9fd2fa93604f4d9ccda486bb29f9d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix URI of i18n exampleUlf Hermann2022-06-021-1/+1
| | | | | | | | It shouldn't be "dynamicscene" as that URI is already used by a different example. Change-Id: I35ac6b7ea70703f24304f640252f922d6a5b2371 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Allow retrieval of sequences from QJSValueUlf Hermann2022-06-028-452/+495
| | | | | | | | | | | | | | As we can store sequence types in QJSValue, we should be able to retrieve them, too. Move the declaration of the QV4::Sequence struct into a header to make it less of a hassle to identify sequences. Change-Id: I3e45bfe193c669107f90cd6c502765c0c9f60fb0 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qqmldebug.h: Wrap the QML debugging enabler into an unnamed namespaceUlf Hermann2022-06-022-3/+25
| | | | | | | | | | This way compilers will hopefully not complain about the use of global constructors anymore. It's clear now that we want a separate QQmlDebuggingEnabler for each CU. Change-Id: Ief8e748a87612c04a8ca9a8535f10d905675b918 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* GCC std::optional whack-a-mole [2/N]: qmllsMarc Mutz2022-06-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a patch in a series (of as of yet unknown length) to fix GCC's -Werror={maybe-,}uninitialized relating to std::optional use. In this case, using reset() instead of moving from a default-constructed optional fixes the following warning-as-error: In function ‘constexpr std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = QDateTime::ShortData]’, inlined from ‘void QDateTime::Data::swap(QDateTime::Data&)’ at qt5/qtbase/src/corelib/time/qdatetime.h:296:20, inlined from ‘void QDateTime::swap(QDateTime&)’ at qt5/qtbase/src/corelib/time/qdatetime.h:321:50, inlined from ‘QDateTime& QDateTime::operator=(QDateTime&&)’ at qt5/qtbase/src/corelib/time/qdatetime.h:318:5, inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_move_assign(std::_Optional_payload_base<_Tp>&&) [with _Tp = QDateTime]’ at /d/gcc/12/include/c++/12.1.1/optional:194:19, inlined from ‘constexpr void std::_Optional_payload_base<_Tp>::_M_move_assign(std::_Optional_payload_base<_Tp>&&) [with _Tp = QDateTime]’ at /d/gcc/12/include/c++/12.1.1/optional:189:7, inlined from ‘constexpr std::_Optional_payload<_Tp, true, false, false>& std::_Optional_payload<_Tp, true, false, false>::operator=(std::_Optional_payload<_Tp, true, false, false>&&) [with _Tp = QDateTime]’ at /d/gcc/12/include/c++/12.1.1/optional:420:22, inlined from ‘constexpr std::_Optional_payload<_Tp, false, _Copy, _Move>& std::_Optional_payload<_Tp, false, _Copy, _Move>::operator=(std::_Optional_payload<_Tp, false, _Copy, _Move>&&) [with _Tp = QDateTime; bool _Copy = false; bool _Move = false]’ at /d/gcc/12/include/c++/12.1.1/optional:436:26, inlined from ‘constexpr std::_Optional_base<_Tp, <anonymous>, <anonymous> >& std::_Optional_base<_Tp, <anonymous>, <anonymous> >::operator=(std::_Optional_base<_Tp, <anonymous>, <anonymous> >&&) [with _Tp = QDateTime; bool <anonymous> = false; bool <anonymous> = false]’ at /d/gcc/12/include/c++/12.1.1/optional:550:23, inlined from ‘constexpr std::optional<QDateTime>& std::optional<QDateTime>::operator=(std::optional<QDateTime>&&)’ at /d/gcc/12/include/c++/12.1.1/optional:705:11, inlined from ‘void QmlLsp::QmlLintSuggestions::diagnose(const QByteArray&)’ at qtdeclarative/tools/qmlls/qmllintsuggestions.cpp:166:47: /d/gcc/12/include/c++/12.1.1/bits/move.h:205:7: error: ‘*(QDateTime::ShortData*)((char*)&<unnamed> + offsetof(std::optional<QDateTime>,std::optional<QDateTime>::<unnamed>.std::_Optional_base<QDateTime, false, false>::<unnamed>))’ may be used uninitialized [-Werror=maybe-uninitialized] 205 | __a = _GLIBCXX_MOVE(__b); | ^~~ qtdeclarative/tools/qmlls/qmllintsuggestions.cpp: In member function ‘void QmlLsp::QmlLintSuggestions::diagnose(const QByteArray&)’: qtdeclarative/tools/qmlls/qmllintsuggestions.cpp:166:47: note: ‘<anonymous>’ declared here 166 | lastUpdate.invalidUpdatesSince = {}; | ^ cc1plus: all warnings being treated as errors Upstream bug reports: - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86465 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100115 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102801 - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105749 IOW: they don't seem to care much. New code in 6.4, so no pick-to. Task-number: QTBUG-103924 Change-Id: Icd2a106bd43eb5597fd9087ef8a324b8027e3180 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Cleanup tst_qquickanimators CMakeLists.txt fileAndreas Buhr2022-06-021-1/+0
| | | | | | | QT_QMLTEST_DATADIR was defined twice, leading to a warning. Change-Id: I084d8350182513c03d062df49294eae4a872512b Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QV4::CompiledData: fix GCC 12 -Werror=uninitialized errorsMarc Mutz2022-06-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-default ctors tried to call m_data.set(), where m_data uninitialized. Says GCC 12: In member function ‘QSpecialIntegerAccessor<S, pos, width, T>& QSpecialIntegerAccessor<S, pos, width, T>::operator=(Type) [with S = QLittleEndianStorageType<unsigned int>; int pos = 0; int width = 5; T = unsigned int]’, inlined from ‘void QSpecialIntegerBitfieldUnion<S, Accessors>::set(typename A::Type) [with A = QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>; S = QLittleEndianStorageType<unsigned int>; Accessors = {QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 5, 27, unsigned int>}]’ at qtbase/src/corelib/global/qendian_p.h:214:21, inlined from ‘QV4::CompiledData::RegExp::RegExp(quint32, quint32)’ at qtdeclarative/src/qml/common/qv4compileddata_p.h:187:31, inlined from ‘int QV4::Compiler::JSUnitGenerator::registerRegExp(QQmlJS::AST::RegExpLiteral*)’ at qtdeclarative/src/qml/compiler/qv4compiler.cpp:198:34: qtbase/src/corelib/global/qendian_p.h:179:40: error: ‘<unnamed>.QV4::CompiledData::RegExp::m_data.QSpecialIntegerBitfieldUnion<QLittleEndianStorageType<unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 0, 5, unsigned int>, QSpecialIntegerAccessor<QLittleEndianStorageType<unsigned int>, 5, 27, unsigned int> >::storage.QSpecialIntegerStorage<QLittleEndianStorageType<unsigned int> >::val’ is used uninitialized [-Werror=uninitialized] 179 | UnsignedType i = S::fromSpecial(storage->val); | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~ qtdeclarative/src/qml/compiler/qv4compiler.cpp: In member function ‘int QV4::Compiler::JSUnitGenerator::registerRegExp(QQmlJS::AST::RegExpLiteral*)’: qtdeclarative/src/qml/compiler/qv4compiler.cpp:198:90: note: ‘<anonymous>’ declared here 198 | regexps.append(CompiledData::RegExp(flags, registerString(regexp->pattern.toString()))); | ^ Fix by calling the default ctor (which initialized m_data) before calling m_data.set(). Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103924 Change-Id: I44ff404e5509e24601893e539639f213defdc80d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: QQuickTextInput: Mark all readonly properties as suchIvan Tkachenko2022-06-011-3/+20
| | | | | | Pick-to: 6.3 6.2 5.15 Change-Id: I5fa12286ac594bafff89a56358bdda4051733e05 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* tst_snippets: different snippets location for webOSJanne Juntunen2022-06-011-1/+17
| | | | | | | | | | | | The stock test tried to access snippets from a path relative to the source directory, which didn't work for webOS emulator. The correction is to copy the snippets under ./data so that they get included in yocto-generated emulator image. Fixes: QTBUG-103915 Pick-to: 6.3 Change-Id: I85b735eb3f6dadea0f9691dbb553e6008d000045 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* iOS Style: Add StackView controlDoris Verria2022-06-012-0/+72
| | | | | Change-Id: I450c81c884a012aad8188912875ace3f160f1a1e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* iOS Style: Add SwipeDelegate controlDoris Verria2022-06-012-0/+96
| | | | | Change-Id: Ice980682e8221f8a83754e2978e48010fbb0b8a3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* iOS Style: Add CheckDelegate controlDoris Verria2022-06-012-0/+112
| | | | | Change-Id: I1d5b76b9c420302c1551622635842921ca047ae8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* iOS Style: Add RadioDelegate controlDoris Verria2022-06-018-0/+112
| | | | | Change-Id: I573fe81d393debe0bf4ee139d3069a13e1c965c3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* iOS Style: Add SwitchDelegate controlDoris Verria2022-06-012-0/+139
| | | | | Change-Id: Ie1eb22b99402c408fc0c16eeddd500020d889f0d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Use the unified check for the DEPFILE supportAlexey Edelev2022-06-011-2/+2
| | | | | | | Task-number: QTBUG-99354 Change-Id: Ib87d3a3a1b234346f61c7d78efcb1b61a8e705e9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove unused constant definitions for GL texture importLaszlo Agocs2022-06-011-252/+0
| | | | | | | | | Amends 1df2cf6bad7207f16ddca17344cc1324e50f287e Change-Id: I6fd6504bf42a37f8bed2d4d8f200ddfa657d6a33 Reviewed-by: JiDe Zhang <zhangjide@uniontech.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Clean up overload docs in QQuickRenderTargetLaszlo Agocs2022-06-011-24/+92
| | | | | | | | Amends 1df2cf6bad7207f16ddca17344cc1324e50f287e Change-Id: Ica7142c5efa29f222a828bd672d60503f54f3822 Reviewed-by: JiDe Zhang <zhangjide@uniontech.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* scenegraph: Use a lock file when saving/loading pipeline cacheLaszlo Agocs2022-06-011-12/+33
| | | | | | | | | | | | | | | | | ...using the undocumented environment variables. This allows safely having multiple windows, while specifying just one cache file, or running multiple processes concurrently with the same cache file specified. Both load and save will now lock using a filename+".lck" lock file. Of course, one of the windows / processes will win and all others lose upon saving, i.e. the one that manages to write its content out last will overwrite the data from all others. But at least the load/save attempts will now be serialized via QLockFile. Task-number: QTBUG-103802 Change-Id: I62ebad07e3b24b2426e4533a0ffbc490e73a4aba Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove qmltc compilation command in favor of qt_add_qml_module()Andrei Golubev2022-05-3110-142/+120
| | | | | | | | | | | | [ChangeLog][CMake] The qmltc compilation functionality provided by qt6_target_compile_qml_to_cpp() is merged into qt6_add_qml_module() command and is available through ENABLE_TYPE_COMPILER argument. The qt6_target_compile_qml_to_cpp() function does nothing and is left only to highlight that users must migrate away from it. Fixes: QTBUG-100215 Change-Id: Ie7d6b82564dff86176194fce35039ba0d93c0977 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* iOS Style: Optimize imagesDoris Verria2022-05-31120-0/+0
| | | | | | | Run optipng tool Change-Id: I56454e43e4f4e292f428063177a5757a64f906dc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix race condition on QQmlEnginePrivate::qml_debugging_enabledMarc Mutz2022-05-314-4/+6
| | | | | | | | | | | | | C++11 allows static dynamic initialization from different TUs to happen concurrently, which means the QQmlDebuggingEnabler ctor must be re-entrant and synchronized with other users of qml_debugging_enabled. Thankfully, this is just a flag, so the fix is to simply make it atomic<> and use relaxed loads and stores on it. Pick-to: 6.3 6.2 5.15 Change-Id: I0305ab55be86a0e286016a3d1d97ee9bc0e28070 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlDebug: reliably print the debugger warningMarc Mutz2022-05-311-1/+10
| | | | | | | | | | | | | | | | | | | | | | When an executable contains some TUs that pass printWarning and some that don't, the warning could have been lost if static initialization first initialized one that had printWarning=false and only then moved to initializing one that had printWarning=true. Typically, a DLL might pass false here, in which case the user application, initialized later, wouldn't have a say in whether the warning was printed. Use an atomic_flag to independently track whether the warning was printed, so that we reliably print the warning when at least one TU in the final executable requested it. [ChangeLog][QtQml][QQmlDebug] The warning about enabled debuggers is now printed when at least one translation unit in the final executable requests it, independent of the order in which translation units are linked/initialized. Pick-to: 6.3 6.2 5.15 Change-Id: I10af0a46ecb82a8b1a1373eb9332d913c03b20f3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* iOS Style: Add ItemDelegate controlDoris Verria2022-05-3115-0/+97
| | | | | Change-Id: I06dcade2d41079e32b2e310dc20472cb03bf3e63 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add ColorDialog to QtQuick.DialogsOliver Eftevaag2022-05-3141-1/+5423
| | | | | | | | | | | | | | [ChangeLog][QtQuickDialogs] Added ColorDialog. This is a native dialog on platforms that support it, and a non-native Qt Quick ColorDialog on platforms that don't. The supported styles are Basic, Fusion, Imagine, Material and Universal. Fixes: QTBUG-87796 Change-Id: I7146ca0571c84c9878a4010798e083ee249f273c Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2022-05-311-5/+5
| | | | | Change-Id: I850e00ee5e7abe5c9a8b0f5633bea148be0ec0f3 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Revert "Revise QQmlProxyMetaObject and extension chain creation"Jani Heikkinen2022-05-317-166/+80
| | | | | | | | | This reverts commit ff0b9ec6bf817f741e3c9fefbfcd55592e9b2542. Reason for revert: QTBUG-103881 Change-Id: I7e333ec854e81fb06f1f84b77125edc78bb181e6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQuickTableView: ensure we use the correct margins during key navigationRichard Moe Gustavsen2022-05-312-4/+55
| | | | | | | | | | | | | Ensure we use the correct margins when navigating with the arrow keys at the beginning and end of the table. When e.g navigating to the first column in the model, we want to flick the view all the way to the start, margins included. It should already have worked like this, but must have broke after earlier copy/pase operations. Change-Id: I438b20518602e4cc5b49e137f633a7f550a9dec8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QQuickTableView: add a 'subRect' argument to the positionViewAtCell() functionsRichard Moe Gustavsen2022-05-314-268/+513
| | | | | | | | | | | | | | | By providing a sub rectangle, TableView will position the view on the rectangle instead of the bounding rectangle of the whole cell. This is useful for large cells, where you either want to make sure that a specific part of the cell is visible, or you want to avoid any unnecessary scrolling if that is already the case. [ChangeLog][Quick][TableView] A new argument 'subRect' has been added to positionViewAtCell(). Change-Id: I03dce1cae050700c6c6d2165c6e975e35cbc9927 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Correctly include test data in tst_qquicktextAndreas Buhr2022-05-312-14/+16
| | | | | | | Pick-to: 6.2 6.3 Task-number: QTBUG-101865 Change-Id: I6aefdb489bedb9836e4d7725c88fbeec36d9cb70 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QQmlDebugProcess: Crash if we cannot kill the debuggeeUlf Hermann2022-05-311-1/+2
| | | | | | | | | | | If the debuggee somehow manages to ignore our kill signal, the QProcess dtor will hang. Let's rather crash in this case, so that we see when it happens. Task-number: QTBUG-101678 Change-Id: Idc72412925244acfdb1dfdeec07369d5fb271080 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Fix and test edge cases of QQmlFile's local file detectionUlf Hermann2022-05-317-51/+358
| | | | | | | | | | | | | | | URLs with two slashes after the colon are generally _not_ local as they contain an authority. However, file URLs with two slashes are interpreted as "special" paths by QUrl::toLocalFile(). Therefore, we accept them. URLs without slashes after the colon can be local files. They denote relative paths or special android resources then. Pick-to: 6.2 6.3 Fixes: QTBUG-102944 Change-Id: Iaab3d7501b631e88ee8c1d93f1de8149ba60a5c4 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Allow specifies the native format on QSGPlainTextureJiDe Zhang2022-05-316-3/+50
| | | | | | | | Added a nativeFormat argument in QSGPlainTexture::setTextureFromNativeTexture. Fixes: QTBUG-103216 Change-Id: I9506a03b7a6d807af8de9d675bdc1a11fa94c9d3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Allow specifies the native texture format on QQuickRenderTargetJiDe Zhang2022-05-317-13/+1116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some overloaded function. If you need to use VkImage correctly, Must know the format it corresponds to the VkImage. In the QQuickRenderTarget, It's use the QRhi::newTexture get a QRhiTexture object, and use the QRhiTexture::createFrom to create texture use VkImage and VkImageLayout, on default, it's presume the texture format is QRhiTexture::RGBA8, but the VkImage is source from user, its format is indeterminate, so we should allow to specifies the format of VkImage from user. [ChangeLog][QtQuick] Added an overload for QQuickRenderTarget::fromOpenGLTexture to allow specifying the format of the OpenGL texture. [ChangeLog][QtQuick] Added an overload for QQuickRenderTarget::fromD3D11Texture to allow specifying the format of the D3D11 texture. [ChangeLog][QtQuick] Added an overload for QQuickRenderTarget::fromMetalTexture to allow specifying the format of the Metal texture. [ChangeLog][QtQuick] Added an overload for QQuickRenderTarget::fromVulkanImage to allow specifying the format of the Vulkan texture. Fixes: QTBUG-103216 Change-Id: I3b90be9bbd37439f906351782cf08c060d98cded Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* qmltc: Handle missing command line arguments in a more friendly wayJonah Brüchert2022-05-301-0/+9
| | | | | | | | | | qmltc now shows a helpful error message if no C++ file or no C++ header file argument was passed instead of hitting internal assertions. Change-Id: I859426f95001b22aff41f391cddf1327e31425b8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Fix \relates for Q_IMPORT_QML_PLUGINFabian Kosmale2022-05-301-1/+2
| | | | | | | | | | | Refer to the class instead of trying to refer to the header. The latter does not associate it with the actual page and creates a proxy page instead. As a drive-by, mention that the macro only exists from 6.2 onwards. Pick-to: 6.2 6.3 Change-Id: I531ee92257e6631a5b7830d881b1ef42a7ea61b1 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Doc: clarify when SpinBox's valueModified signal is emittedMitch Curtis2022-05-301-0/+3
| | | | | | | Task-number: QTBUG-103205 Pick-to: 6.2 6.3 Change-Id: I0450c0218c5a3e14d373c0a39c29749c8bf958d5 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Implement support for passive grabbers with mouse/touch eventsVolker Hilsheimer2022-05-285-30/+242
| | | | | | | | | | | | | | | | | Send mouse and touch events through passive grabbers. With support for passive grabbers, the drawer can now make itself a passive grabber for the mouse when it is pressed inside the margin area. It will then see the update events that are delivered to the exclusive grabber, and can try to grab the mouse when the e.g. move has progressed enough. Then the earlier grabber gets an ungrab event that allows it to cancel the action. Done-with: Doris Verria <doris.verria@qt.io> Fixes: QTBUG-59141 Change-Id: Ie8e79c2ec2aa1f5a00056f23856bd0bed19af2d6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QQuickSelectionRectangle: ensure we start the selection where the drag startedRichard Moe Gustavsen2022-05-272-4/+5
| | | | | | | | | | | We should start the selection in TableView at the position where the user started the drag, and not where the centroid at the time when the dragging gets active (which is an offset equal to the mousePressAndHoldInterval property in QStyleHints). Pick-to: 6.3 6.2 Change-Id: Ibe330d31c1e2c8022006a56b7119b1dcb3e0e5b9 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QQuickTableView: add a new 'alternatingRows' propertyRichard Moe Gustavsen2022-05-277-3/+66
| | | | | | | | | | | | | | | | Add a new property 'alternatingRows' that informs the delegate that it should alternate between rows. This is merely a hint, the delegate is free to ignore it. But our own internal delegates, like TreeViewDelegate, should not. [ChangeLog][Quick][TableView] Added a new property 'alternatingRows', which is a hint to the delegate to alternate between rows. Change-Id: I3f10e7280332b652d393348ff0d71cd73ce6fa4d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2022-05-271-5/+5
| | | | | Change-Id: I016b60e64b9f4f9be2b8932e6d857bc04fc233fe Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>