summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tst_qapplication: Prevent desktopaware test from deactivating main testTor Arne Vestbø2021-02-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Applications on macOS are automatically activated (put into the foreground), when launched from the Finder, or via 'open' on the command line. But when launched from the terminal, e.g. foo.app/Contents/MacOS/foo, the application will launch in the background (inactive). In Qt we override this behavior, activating the app even when launched from the terminal, as a convenience, as long as the application is a GUI application. Unfortunately this means that when tst_qapplication launches a subprocess that is a GUI app, it will steal activation from tst_qapplication, which in turn will break tests that later try to activate a window and check that the window is then active. The window will not be active until the application is active. We can work around it by preventing Qt from activating the application, but ideally we'd find a better solution to this, as we don't want to sprinkle overrides all over our tests. Fixes: QTBUG-90699 Pick-to: 6.1 6.0 5.15 Change-Id: If53a86548002b739df0c0a7153d6244924a4a205 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Run headers_clean check with C++20 (gcc, clang)Kai Köhne2021-02-151-2/+2
| | | | | | | | | | | | | | | | The headers are already somewhat tested with C++17 in the regular build. So let's try in the headers_clean check with C++20 instead. Using C++20 with MSVC 19.28 doesn't work yet though: corelib/tools/qalgorithms.h(247): error C2039: 'popcount': is not a member of 'std' corelib/tools/qhashfunctions.h(311): note: see declaration of 'std' corelib/tools/qalgorithms.h(247): error C3861: 'popcount': identifier not found ... Task-number: QTQAINFRA-4242 Change-Id: I1b48bcb9656fe1587fe03d3a17e3484c693aa295 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix QTimer::setInterval to remove existing bindingsAndreas Buhr2021-02-152-0/+8
| | | | | | | | | | A recent change ( a7ca8b1a2864e47cacd530f6b10d2b415c5193f7 ) led to failure of binding removal in setInterval(). This was fixed by introducing setterScope. This patch add unit tests for this regression. Change-Id: Ic8da1f2d82ad6c8ccd81c9b1eff72d42cf75f28a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Do some miscellaneous tidy-up in util/cmake/Edward Welbourne2021-02-152-10/+5
| | | | | | | A typo-fix, a simplification and a trivial restructuring. Change-Id: I434457c4eb83eebfb9b472c6914659199fe5be71 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use newlines more consistently in generate compile-test codeEdward Welbourne2021-02-159-232/+126
| | | | | | | | | | | The generated code contained many repeated blank lines. Most main()s were preceded by one, but not all. Only include blank lines for actual empty entries in lists, where configure.json specified them, plus one before main if anything else precedes it. Change-Id: I6e6c34940e08712a1aa848a3c9ad1b0fb5806d77 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Drop parsing of antique TextDate formatEdward Welbourne2021-02-152-70/+50
| | | | | | | | | | | | | | | | | | | | | | Apparently we used to have (back in 2007, only on Windows, incompatibly with what we were then using on Unix) a TextDate format (only for QDateTime, QDate used what it still uses) that put the day-of-month number, with a dot after it, before the month's short name. We have retained parsing of this format, on all platforms, ever since. It no longer matches the format we now use (since 5.2, in 2013, commit 61b56a89a1cf8a388ff925492700e5eef019c3aa, which harmonised the format with Unix and QDate); now seems like a good time to stop complicating our parser for its sake. [ChangeLog][QtCore][QDateTime] The parsing of Qt::TextDate in QDateTime::fromString() no longer supports the old TextDate format used (only) on Windows by Qt < 5.2 ("ddd d. MMM yyyy" with an "HH:mm:ss" time either appended or inserted before "yyyy"). Change-Id: I73a798ab78f187543e415119cc4a11f1cfd73820 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDateTime::toString(): use UTC-offset as time-zone suffixEdward Welbourne2021-02-152-14/+4
| | | | | | | | | | | | | | | | | | | Since fromString() can't parse the (ambiguous at the best of times; also backend-dependent and thus potentially system-locale-dependent) abbreviations currently produced (since 5.9) and can parse UTC-based offsets, the OffsetName of the zone is a more robust format for the zone-suffix. This also makes it possible to consistently use the C locale, compatibly with everything else about post-6.0 date-time serialization. [ChangeLog][QtCore][QDateTime] When spec is Qt::TimeZone, the offset-suffix now used for the toString(Qt::TextDate) format is now a UTC-based offset string, compatible with the parsing (now) supported by fromString(). The zone-abbreviation suffix in use since 5.9 was not parseable. Change-Id: I4024ae87980c6d3590c68a67b8d1c8f433e36855 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Prepare TextDate to use UTC-offset rather than GMT-offset zone suffixesEdward Welbourne2021-02-153-25/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are GMT-offset zones whose convention for the sign of the offset is the reverse of what we are (still) using, which is the usual convention for UTC-offset zone: for example, the Olson Database's Etc/GMT+3 has offset -3 hours in the UTC-based system we use, so we give it suffix GMT-0300. The UTC-based suffix is also what we use as the abbreviation for OffsetFromUTC() in toString(). For now this only adds support for parsing a planned future form: the old form using GMT is retained, to give client code some chance to prepare for a backwards-compatible transition. Although the GMT prefix is matched case-insensitively, only match UTC if fully upper-case; there is no meaningful precedent for case-insensitive usage here. [ChangeLog][QtCore][QDateTime] The Qt::TextDate format now recognizes UTC-based offset suffixes in addition to suffixes based on the deprecated alias GMT. This prepares for toString() to use such UTC-based suffixes for time-zones (fromString() cannot parse the present abbreviation suffix). A future release of Qt shall use UTC-based suffixes in place of the present GMT-based suffixes (which conflict with GMT-based IANA zone names) for Qt::LocalTime and Qt::OffsetFromUTC time-specs. Client code is encouraged to use and recognize UTC-based zone suffixes in preparation for that transition, unless compatibility with versions before 6.2 is required. Change-Id: I5a42a488f1232a30f4b427b7954759283423b9b3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Simplify test-snippets in configure.cmakeEdward Welbourne2021-02-159-242/+121
| | | | | | | | | The main(void) signature obviates the need for unused parameters and has existed since (at least) C89; so use that instead of the old-fashioned argc/argv arguments we don't use in any of these tests. Change-Id: Ibfe850a1fce378673c9781011475ea623fd75ad4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add some special case markers that seem to have been neglectedEdward Welbourne2021-02-153-2/+81
| | | | | | | | At least, running util/cmake/configurejson2cmake.py changes these lines. Adding them has provoked the script to add a .prev_configure.cmake file. Change-Id: Idc123d1dee2ce51cd640c090c7910ecc1f0fc5a4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update two .prev_configure.cmake files that seem to be out of dateEdward Welbourne2021-02-152-5/+5
| | | | | | | | Running the script updated them, without updating the configure.cmake files they relate to. Change-Id: I050d2131fa575811ae9ff4b51ef786a073c554c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* cmake: Do not hard-code test argumentsTor Arne Vestbø2021-02-151-5/+0
| | | | | | | | | Tests should follow their default output of txt as when run directly, and any output configuration should be handled by the CI system. Change-Id: Id0d72318df5edad1c58ac637e827d6043884e829 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Toni Saario <toni.saario@qt.io>
* QRectF/Documentation: Fix malformed tableFriedemann Kleint2021-02-151-1/+1
| | | | | | | | The colspan should be 2. Manifests as error in the Qt for Python documentation. Pick-to: 6.0 5.15 Change-Id: Idec8a2b62a3495e00b7f2b31e8ed9d04b551f22e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* MinGW: fix warning in QMatrix4x4::map functionsMårten Nordheim2021-02-151-5/+5
| | | | | | | | | | | | | | | | The definitions get the following warning (treated as error): redeclared without dllimport attribute after being referenced with dll linkage [-Werror] I take it to mean that because they are labelled 'inline' the compiler disregards the 'dllimport', but that makes it inconsistent with the declaration. So we label the declaration inline as well. Pick-to: 6.1 6.0 5.15 Change-Id: I87bb42141a1086b2c565db881077f33acb4aab64 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix deprecated API in network/torrent exampleJoerg Bornemann2021-02-151-1/+1
| | | | | | Pick-to: 6.1 Change-Id: Ie4493f0d93cdeff281c3826d2ca3beb4e68d7a0f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Doc: Fix warning on undocumented enum valueNico Vertriest2021-02-151-0/+1
| | | | | Change-Id: Ia917b86a24bdb621b1040f1e1a9fe4946a1e57ae Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Schannel: Fix incomplete downloads with read buffer restrictedMårten Nordheim2021-02-153-1/+5
| | | | | | | | | | | | | | | | | | | When the read buffer has a max size we do our best not to exceed it. Usually there's no problem and we just read more when the next tcp frame arrives. However if there's data leftover after the last tcp frame arrived then we won't receive any more data. To counter this QSslSocket would try to invoke QSslSocketPrivate::transmit indirectly if there were any bytes available on the plain socket. The problem is that with Schannel the last few remaining bytes would not be in the plain socket, but in the 'intermediateBuffer'. So let's make QSslSocket aware of that. Fixes: QTBUG-90625 Pick-to: 5.15 6.0 6.1 Change-Id: If56e4cce558f99c9a08a1f6818e005a887712ef2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Norbert Pfeiler <norbert.pfeiler+git@gmail.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix minor documentation typos in bindable propertiesJuha Vuolle2021-02-152-2/+2
| | | | | | Change-Id: I4f8474820db613a675950a858438337558f1c88f Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Fix attribution for tinycborKai Köhne2021-02-151-1/+1
| | | | | | | | Amends cbdf2ba46aed53d002b90d4d9683c28306f8e0a9 Pick-to: 6.1 Change-Id: Ie1a89ec9367ecc2d674b5f8b27ab3d9bc5a16eca Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Implement futexes for WindowsThiago Macieira2021-02-135-207/+162
| | | | | | | | | | | | | Windows 8 added this pair of functions that can be used to implement the same functionality as we have on Linux. For ease of understanding, I'm calling them "futex" on Windows too. From Qt 6 our minimum platform is Windows 10 so we can use this unconditionally. Change-Id: Ifea6e497f11a461db432ffff1448c6806ecfc36c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* dirview example: Show file icons on WindowsFriedemann Kleint2021-02-131-0/+2
| | | | | | | | | Use QFileIconProvider from QtWidgets. Pick-to: 6.0 Task-number: QTBUG-66177 Change-Id: I22db2f8671c64d90c45ff7160af9a6925d1cecea Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Extend colorspace testing and fix bug it uncoveredAllan Sandfeld Jensen2021-02-133-1/+122
| | | | | | | | | | When changing transferfunction the look-up-tables needs to be regenerated. Pick-to: 6.1 6.0 5.15 Change-Id: I83ca5fe570f85d478a374f52c0a82db84e70c3b8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Move QEMU emulation detector to QTestSamuli Piippo2021-02-1326-67/+58
| | | | | | | | | The emulation detection has been usable only on qtbase tests, move it to QTest so that it can be used in other modules as well. Pick-to: 6.1 Change-Id: I4b2321b7856414d7b1cfd5e6b1405a633c6bb878 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Disable warnings from using deprecated QScopedPointer::takeVolker Hilsheimer2021-02-131-0/+6
| | | | | | | | It's the QScopedPointer test, so we want to test deprecated APIs. Change-Id: I029103b3150c576cba9b395aafc571b9fccc914a Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Android: set minimum recommended android SDK to 29Assam Boudjelthia2021-02-132-2/+2
| | | | | | | | | | | comply with the api version used by default with androiddeployqt and in docs. Google play also requires api 29 as minimum. Task-number: QTBUG-90943 Pick-to: 6.1 6.0 Change-Id: I05e2a90b4d7f2120b0198e3fb7b8b1b2398eba93 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Fix Wacom Art Pen detection on xcbShawn Rutledge2021-02-123-4/+10
| | | | | | Fixes: QTBUG-91102 Change-Id: I6cd7af26153457609c1fa8fb0a9e167939d592fc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix QImage::fill with semi-transparent QColorAllan Sandfeld Jensen2021-02-122-18/+41
| | | | | | | | | A few formats were not treating the input QColor correctly. Fixed and added more exhaustive test. Pick-to: 6.1 6.0 5.15 Change-Id: I872aeeb45e518f9a34b4ac35642264821f9927f2 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QHeaderView: pass sectionSize to createSectionItems()Christian Ehrlicher2021-02-122-8/+5
| | | | | | | | | | | | .. instead complete size for the affected range. The complete size was calculated before for every call of createSectionItems() and then the function calculated the size per section back for no reason. Passing the sum of all sections is therefore not needed and may lead to an integer overflow for big datasets. Task-number: QTBUG-88728 Change-Id: I8af0b0c3e97021ff0637fe1ee3ca3adfa23a2d0e Reviewed-by: David Faure <david.faure@kdab.com>
* Update QDateTime::timeZoneAbbreviation docsEdward Welbourne2021-02-121-14/+14
| | | | | | | | | Include Qt::TimeZone as a possible spec, use a \list for the spec values. Incidentally use the public QTimeZone::abbreviation() instead of digging around in its privates to achieve the same effect. Change-Id: Ibabbeac9b085b4d09de46bda911356c20faadae8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rework tst_QDateTime::toString_isoDate() to eliminate an XFAILEdward Welbourne2021-02-121-16/+17
| | | | | | | | | | | | | | | Instead of an XFAIL, actually test what we expect will happen for the test, namely that the milliseconds will be lost. In the process, verify that milliseconds since epoch also matches what was expected, change an "expecting empty" condition to check for the "invalid" test-case to which it's actually relevant and note that this test-case shall need amended when we update our ISODate support to the 2019 update, which extends the year range. Task-number: QTBUG-56552 Pick-to: 6.1 6.0 5.15 Change-Id: I680aa31ee0dcc8fadabb5d4cd6c083a8afd48573 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix tst_QDateTime::systemTimeZoneChange() for 32-bit systemsEdward Welbourne2021-02-122-21/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test verified that a LocalTime's time since Epoch changes when the system time-zone changes. This works when the QDateTime object is in short form and recomputes its offset from UTC every time it is needed, but fails with a pimpled QDateTime, as this caches its offset from UTC when it is created, saving the recomputation which - in the far more usual case where the system time-zone does not change in the lifetime of a QDateTime object - would normally produce the same result. Changed the test to use a newly-created QDateTime constructed with the same parameters, which doesn't have the cached out-of-date knowledge of its zone offset. Removed the XFAIL. Made the test data-driven and added test-cases: one so close to the Epoch that it should be short even on 32-bit systems, one so far that it's pimpled even on 64-bit systems (used in reproducing the issue in order to debug it). This then revealed that Android 5 doesn't seem to support the POSIX zone IDs used by this test, so it now verifies that LocalTime has the expected offset from UTC after zone changes, QSKIP()ping if not. Documented that the behavior of LocalTime is undefined after a change to the system time-zone. Cleaned up the existing doc of Qt::TimeSpec in the process. Fixes: QTBUG-89889 Pick-to: 6.1 6.0 5.15 Change-Id: I1058f47a1ff3ee1c326f3579ac80bd8bab242e28 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Revert "Remove the qmake project files" for snippetsNico Vertriest2021-02-127-0/+24
| | | | | | | | | | | This reverts a limited part of commit ad2da2d27a590333fc89a56fc58700a09c3017b3 that deleted .pro files for snippets compilation. Some .pro files which contain snippets used in the documentation itself should be restored. Task-number: QTBUG-90483 Change-Id: I1b03833c8ff17b5fca43a5b6c5417e8545b1711b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix compilation with system double-conversionMårten Nordheim2021-02-1222-21/+22
| | | | | | | | | | | | | | A recent patch made it so we don't need to keep patching the includes of the sources. However it changed how we use double-conversion ourselves which meant that system installs would no longer work. Keeping an extra directory and adding another INCLUDE_DIRECTORY fixes both of our problems. Amends dca74b45a33de3ec098b936b087a112c7112241b Fixes: QTBUG-90961 Change-Id: If17aa1670535867343374eec846055441592f36b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add build.gradle to easily modifying Java project with Android StudioAssam Boudjelthia2021-02-124-1/+61
| | | | | | Pick-to: 6.0 6.1 Change-Id: Ie030ff0a3569caa0eacfa331d21f59e5455c90ed Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix docs misuse of escape character \Assam Boudjelthia2021-02-121-2/+2
| | | | | | | | | Use {} instead of \, this fix a badly generated block of text. Task-number: QTBUG-89632 Pick-to: 6.1 Change-Id: Ia4aad4c06285eb016a092f4340669fcbef1a6780 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* remove friend class of QClassFactory for QCoreApplicationJiDe Zhang2021-02-111-1/+0
| | | | | | | from this commit: 38be0d13830efd2d98281c645c3a60afe05ffece Change-Id: I3c1cbdf793f321febfda0c3b5a931eb1190e9195 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Replace QScopedPointer with std::unique_ptrVolker Hilsheimer2021-02-121-7/+7
| | | | | | | | Fix compile warning from QScopedPointer::take being deprecated. Change-Id: I7f86e08a5a1021263ee57898cbc1d5942ea3113b Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMatrix4x4: deprecate operator*(QVector3D, QMatrix4x4)Giuseppe D'Angelo2021-02-112-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The operation is sketchy for a number of reasons: 1) Mathematically, it doesn't make sense. The code interprets the QVector3D as a point, extending it with w=1, and uses it as a row vector. But similarly, the vector could be intepreted as a directional vector, with w=0. No semantic is "better" than the other. 2) QMatrix4x4 is not meant to be post-multiplied. Granted, one could use a QMatrix4x4 as arbitrary storage for 16 floats, but QMatrix4x4 builds itself to be always *pre* multiplied (e.g. translate changes the 4th column, not the 4th row). We can keep post multiplication for the general case if we do it against a QVector4D, but I don't feel that we should support it also for QVector3D. [ChangeLog][QtGui][QMatrix4x4] The multiplication operator (operator*) between a QVector3D and a QMatrix4x4 has been deprecated. User code needs to extend the QVector3D to a QVector4D first (by specifying the intended w coordinate), and then multiply the QVector4D by the matrix. Pick-to: 6.1 Change-Id: I41b64d8ab7eb6126dc4c49fe29cf3f1b7afc7987 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix compiler warning: don't mix signed and unsigned int in comparisonVolker Hilsheimer2021-02-111-1/+1
| | | | | Change-Id: Ib6609d70900a0c26dd88bbfd16e886773ae67420 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compiler warning: initialize variableVolker Hilsheimer2021-02-111-2/+2
| | | | | | | The initialization happens outside the bechmarking loop. Change-Id: Id661fa2f995e964277a5c388b8fac13ff8687d92 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNetworkInformation fixupsMårten Nordheim2021-02-118-5/+14
| | | | | | | | | | | | Addressing feedback that came after the reviews ended from both bot and people. Added CLASS_NAME to the CMakeLists files for the plugins so that cmake can generate the correct import. Fixes: QTBUG-91061 Change-Id: Ib3f1e863100c1c421a6c0a4081b1d40696d67b23 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix mingw compiler warningsMårten Nordheim2021-02-115-34/+24
| | | | | | | | Mark overridden functions with override. Remove unused static function. Change-Id: I06bd52c66ac7b970dfced0e553eac9c4a4d44d79 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add a shortcut in QDateTimeParser::findTimeZone for UTCMårten Nordheim2021-02-111-1/+8
| | | | | | | | | | | | | | In a small example program using HTTPS (on Windows with Schannel) >40% of the time was spent initializing the backend, attempting to find the time zone used in various certificates. By adding an early check to see if the requested time zone is UTC (or an alias ('Z')) we can skip most of the lookup that was required. In the example program this cut away ~200ms of a total of ~550ms. Change-Id: I4d29568653e02b64feebbf329469899eb7be1494 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTimeZone: Avoid creating quite as many QByteArraysMårten Nordheim2021-02-111-4/+21
| | | | | | | | Cuts off 1 second from the timezone test locally Change-Id: I184728e97bcd65ca0362df4c26a3407576e12dfb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QMatrix4x4: deprecate operator*(QMatrix4x4, QVector3D/QPoint(F))Giuseppe D'Angelo2021-02-112-3/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | The operation does not make sense at the "fundamental" level for these classes (algebraic, in this case), so it shouldn't exist. It's also a semantic trap: * it interprets a _vector_ as a _point_ instead (the vector gets 1-extended in 4D) * after the multiplication, it gets perspective divided. These semantics do not belong to operator*. operator*(QVector3D/QPoint(F), QMatrix) will be tackled in a next commit; we don't have a straightforward replacement for it. Drive-by, document that map() interprets vectors as points. [ChangeLog][QtGui][QMatrix4x4] operator* between a QMatrix4x4 and a QVector3D, QPoint, or QPointF has been deprecated in favor of map() and mapVector(). Pick-to: 6.1 Task-number: QTBUG-89708 Change-Id: Iad78d6eb68cc8cdc3ac16b1635c4d3b522c95213 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Refactor duplicate code for clearing JNI exceptions before returningAssam Boudjelthia2021-02-111-80/+43
| | | | | | | | | | Add a private function to handle checking/clearing and deleting the local reference to jobject before returning a QJniObject. Task-number: QTBUG-89633 Pick-to: 6.1 Change-Id: I0ea28c8ba4da0bfc1e341c6b4c1f61fecfec87a6 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Fix registerNativeMethods for goodAssam Boudjelthia2021-02-114-3/+83
| | | | | | | | | | | | | | | | | The initial implementation and the commit c00ab6f8eaa3cdc9a29dd103c91b2eaf212cac9f was wrong: * env->findClass() in fact returns a global reference, and in any case we shouldn't be calling that, instead QJniObject would be enough. * The size param provided to env->RegisterNatives was wrong. * A test for registerNativeMethods() is added to ensure such break is not repeated again. Task-number: QTBUG-89633 Pick-to: 6.1 Change-Id: I4d3a6a9270755f465c40add25521fb750dd4de0a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Android: take JavaVM() from QJniEnvironment and not QtAndroidPrivateAssam Boudjelthia2021-02-112-4/+5
| | | | | | | Task-number: QTBUG-89482 Pick-to: 6.1 Change-Id: Idfd442afc90c00e672b28b43c78c789813f46c7d Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* iOS: Disable three-finger-tap editing interaction menu when there's no focus ↵Tor Arne Vestbø2021-02-111-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | object A typical Qt application, such as a QML application, is a single full screen QUIView, containing all of the granular controls of the UI. The view accepts first responder status, so that we can pass on text input to a possible text field inside the UI. That however triggers iOS to bring up the editing interaction menu whenever the user taps with three fingers, as iOS can't know that only parts of our view is suitable for interaction. To mitigate that we override the editingInteractionConfiguration getter of the view, as documented, and dynamically report the correct enablement based on whether we have an active focus object that accepts input. This works because iOS queries the getter from the three finger tap gesture recognizer, before showing the menu. Change-Id: I0874340c42e437e1d7251896993f2eafe122f09e Fixes: QTBUG-89735 Pick-to: 6.0 6.1 5.15 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* testlib: Don't abort on unrecognized -AppleFoo command line argumentsTor Arne Vestbø2021-02-111-1/+6
| | | | | | | | Allow passing command line arguments such as -AppleLocale, that override user preferences for the test process. Change-Id: I9e58e91fcb01a36f9d6c64ef52369308be5e95b5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>