aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* webOS: Allow to have activeFocus for each windowElvis Lee2020-09-141-1/+25
| | | | | | | | | | | This makes multiple windows focused if there is a single window per screen assuming that windows across screens don't compete the keyboard focus. Pick-to: 5.15 Task-number: QTBUG-83361 Change-Id: Id6f6fd0c95747b03d56c5e535f1313c27d67ab24 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Privately export QQuickItemLayerLaszlo Agocs2020-09-131-1/+1
| | | | | | | Required by Quick 3D. Change-Id: I0da6aa8163da71b2d27cb0e358473aa5ecc85a1f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Doc: Fix qdoc warningsPaul Wicking2020-09-113-5/+13
| | | | | | | | | | * Use correct qdoc markup commands. * Add replacement snippet to make up for snippet file removal in a7a88483c61150f7b7d78dc97f4a521ef9f04899. * Correct file name capitalization in snippet. Change-Id: I1fe30834292f8536c97b2bc4df0a654649431675 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix up beforeSynchronizing signal docsLaszlo Agocs2020-09-091-0/+6
| | | | | | | | | Unlike afterSynchronizing, this one forgets to mention the important distinction between these two signals and other signals emitted on the render thread. Change-Id: I1527e16436fd94c4e128bba123f5ab4c53365d1d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Output the thread and window in the render loop timing printsLaszlo Agocs2020-09-093-24/+55
| | | | | | | | Also fixes a plain bug in the basic render loop: using static to measure elapsed time is broken in a multi-window setup. Change-Id: Ie81fd9f4ec274f8ef095a8be7f280173f143de04 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* threaded renderloop: Remove unused variableUlf Hermann2020-09-081-1/+0
| | | | | Change-Id: Ib68ddb664cee1ef1530d8d0bfb59e8d97a7d2f27 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Propagate focusObjectChanged signal (second attempt)Eskil Abrahamsen Blomfeldt2020-09-082-0/+14
| | | | | | | | | | | | | | | | When the focus object is updated from inside the Qt Quick scene, the signal needs to be propagated from the offscreen window to the widget's window, otherwise the input methods will not react to it. Also, we need to propagate the FocusAboutToChange event, otherwise the contents of the editor will not be committed when the focus object changes, and the input method can get into an invalid state. Fixes: QTBUG-61475 Change-Id: I44ba171c0e78ef8b2e0127cba8991f1f1cf13571 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* threaded renderloop: Do not abort with sleep when no changes after syncLaszlo Agocs2020-09-071-17/+10
| | | | | | Task-number: QTBUG-86089 Change-Id: If1b3369d49b5088b78f683d7512b156af3765bce Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Shapes: only call update() when something changedLaszlo Agocs2020-09-076-10/+22
| | | | | | | | | | | | Shapes has an unusual setup where changing properties (or properties of the Path objects) does not lead to calling update() on the Shape item. That's why it was done in updatePolish() but that can be made less heavy by only doing it when the shape found that something got changed. Task-number: QTBUG-86089 Change-Id: I74f708a960a29f26eb003ac160d2b1258b9ae50f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Render loops: ignore update reqs during the main polish stepLaszlo Agocs2020-09-073-0/+20
| | | | | | | | | | | | The classic example is Shape, which needs to dirty the QQuickItem in updatePolish() in order to get it picked up in the synchronize step. That part is fine, but we do not want maybeUpdate() to issue a requestUpdate() then since we are effectively in progress of doing an update, so having another full round of polish/sync/render is a waste. Task-number: QTBUG-86089 Change-Id: Ie41563b34da17e7134631791ed024b31e87e21e3 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Document internally the animation handling in the threaded loopLaszlo Agocs2020-09-072-13/+44
| | | | | | | | | | Also rename the incomprehensibly named maybePostPolishRequest(), because it is just a call to QWindow::requestUpdate() nowadays. postUpdateRequest() makes it clear what it is. Task-number: QTBUG-86089 Change-Id: I4c9ca1336c26d163772368067eda0f1ef84b9d97 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Follow up on move of resolveMask into QPalettePrivateVolker Hilsheimer2020-09-051-1/+3
| | | | | | | | | | | | | | | | | | The old QPalette move constructor and assignment operators only exchanged the d-pointer, but left the resolveMask of the moved-to palette instance untouched. This was clearly wrong. With the move of the resolveMask to the private in 556511f9f39ddc887481e0cd5a877134ceb0da6b, the resolveMask is moved, as one would expect. However, this broke the inheritance of palettes in QtQuickControls2, as QQuickPaletteColorProvider::inheritPalette did not restore the mask of the resulting palette to the mask of the palette that inherited from. Change-Id: I7436d3e493e06b8619102212ac7b707daa973b2a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Vitaly Fanaskov <vt4a2hqt@gmail.com>
* Fix TapHandler so that it actually registers a tapJan Arve Sæther2020-09-043-5/+5
| | | | | | | | | | | | | | | | | | This bug caused all quick examples that used the shared\LauncherList.qml to be broken. In QtGui, QSinglePointEvent will construct itself with a point id of 0 if there is a valid point, and with a point id of -1 if the point is invalid (the default constructor does the latter). However, QQuickSinglePointHandler::wantsPointerEvent() did not agree with that, because it assumed that a point id of 0 meant uninitialized/invalid point. The fix is to change QQuickSinglePointHandler::wantsPointerEvent() and QQuickHandlerPoint so that it assumes that the id -1 is now an invalid point, (instead of 0) Change-Id: I8c9683dfe06ebb77c5342a26f08174b67e7cbd90 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add QQuickHandlerPoint::device propertyShawn Rutledge2020-09-042-0/+7
| | | | | | | | | | | | The HandlerPoint type is used as the memory of an event or TouchPoint that a handler has already handled. Maybe in the future we'll store a copy of a QEventPoint instead. But for now, it's nice to have the device pointer available for binding properties, instead of only in QQuickEventPoint, which was only exposed in signals like TapHandler.tapped(). Change-Id: I314fc8c76311dc2620f1d97d4cadacf2e9869274 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Adjust to qtbase changesFabian Kosmale2020-09-046-19/+25
| | | | | | | | | | | | | - isQProperty has been renamed to bindable - QNotifiedProperty is no more - Bindable properties have a function to obtain the QBindable; store that information in the qmltypes files. Task-number: QTBUG-86434 Task-number: QTBUG-86435 Change-Id: I2ba593af1e197d04d2c30cfb9e6904a3d2059e4b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QJSEngine::evaluete: fix documentationFabian Kosmale2020-09-031-2/+2
| | | | | | Change-Id: Ie0e6d975079e4cbedad2dd4f17d3efe8aee553bc Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
* QJSEngine: provide a way to check if an exception was thrownFabian Kosmale2020-09-022-6/+28
| | | | | | | | | | | [ChangeLog][QML][QJSEngine] QJSEngine::evaluate gained an optional stackTrace parameter. It can be used to check if the returned QJSValue comes from an uncaught exception, and to retrieve the backtrace of the execution leading to the error. Fixes: QTBUG-54925 Change-Id: I2b5ada1f0c33c335b4b9d0d1268e70ca63a1fad1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Follow up on change to QWidget::enterEvent signature in qtbaseVolker Hilsheimer2020-09-023-3/+4
| | | | | | | | | The QEvent instance received by the event handler is a QEnterEvent, so safe to forward it either way. InspectTool doesn't override enterEvent from QWidget, so that signature can be anything. Change-Id: I0c685ac7e53013cdefdffb1e0c99518276204ebc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Revert "QQuickWidget: Propagate focusObjectChanged"Eskil Abrahamsen Blomfeldt2020-09-021-1/+0
| | | | | | | | | | | | | | | | This reverts commit 9bfa722bc0b67e01f35d78e1165602e174ae3b02. During clean up of the patch, a bug was introduced which actually causes it to have no effect (except print out a warning), because the focusObjectChanged() signature is wrong. When the bug is fixed, it turns out that it actually breaks the QQuickWidget autotest. So this may have been a bit hasty. Reverting it and returning to the drawing board. Task-number: QTBUG-61475 Change-Id: Iac4507ee4c92d94b0db5b996dfa2206be564cfb3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Use QDate::startOfDay() rather than assuming midnight existsEdward Welbourne2020-09-011-1/+1
| | | | | | | | | When converting a QDate to a QDateTime, startOfDay() takes care of avoiding any gaps in time at the start of the day, where naively asking for QTime(0, 0, 0) can produce an invalid date-time. Change-Id: I24f3d230eb1ee7396600b030ad1305e060215cbd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* V4 Date: pass QDate, QTime by value, not by const referenceEdward Welbourne2020-09-014-4/+4
| | | | | | | They're value types, packaging qint64 and int respectively. Change-Id: I78a0097f77238751ac3ef9f928537f719a6d05d6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickImageProvider: Remove reliance on RTTIFabian Kosmale2020-09-013-2/+4
| | | | | | | | | | | | | Using staticCast is unsafe, because in theory you can derive from QQmlImageProviderBase instead of QQuickImageProvider. But using dynamicCast runs into issues, because while Qt needs to be compiled with RTTI, user code does not. We thus turn the baseclass into a QObject so that qobject_cast does work. Fixes: QTBUG-84127 Change-Id: Id40d8a13eaa0101d80bd5742a23996354d70c72a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Re-generate configure CMake filesJoerg Bornemann2020-08-313-0/+14
| | | | | | | This generates the qt_cmdline.cmake files needed for the CMake-based configure script. Change-Id: I0f6ee452453b0cf11813d1e6d7d3659487d74c50 Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* QQuickWidget: Propagate focusObjectChangedEskil Abrahamsen Blomfeldt2020-08-311-0/+1
| | | | | | | | | | | | | | | When the offscreen window focuses an item, make sure we set keyboard focus to the QQuickWidget in the widget chain. [ChangeLog][QQuickWidget] Fixed an issue where virtual keyboards and other input methods would not react to input fields inside a QQuickWidget. Fixes: QTBUG-61475 Pick-to: 5.15 Change-Id: Ice2905a33ab0f4669622367ddae2c0ed3a1f841c Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix qt.scenegraph.time.renderloop time logjiu2020-08-312-11/+5
| | | | | | Fixes: QTBUG-86209 Change-Id: Iea09d22f09df3b50ebdf55d1c72affb5603bdcda Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove deprecated QQmlListProperty constructorFabian Kosmale2020-08-311-8/+0
| | | | | | | | | | [ChangeLog][QML][QQmlListProperty] Removed deprecated QQmlListProperty constructor taking a reference. Use the overload taking a pointer instead. Change-Id: I8942026d1bb1c88065659d96d648a4b256d7d427 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlImageProviderBase: Address Qt 6 TODOFabian Kosmale2020-08-311-4/+3
| | | | | | | | | Reorder the enum entries to make Invalid the zero value, so that we can extend it in the future. Change-Id: I6903d25c8f5d84c88bcfbfdbff55723da6c21eb9 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Revive QQuickWidget renderingLaszlo Agocs2020-08-313-0/+15
| | | | | | | | | | | Follows 3d03f4e989e0ae53569a1a2e390d71c41d91f329. After that patch nothing guaranteed that qt_registerDefaultPlatformBackingStoreOpenGLSupport() got called in QQuickWidget applications (unless they also use QOpenGLWidget, which is rare). This is now corrected. Fixes: QTBUG-86335 Change-Id: I0420bbf97ca6c72227aa58a1d083fef04f86a1f8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove superfluous namespace and exportsFabian Kosmale2020-08-313-52/+8
| | | | | | | | | [ChangeLog][QtQml] The functions qmlExecuteDeferred, qmlContext and qmlEngine are no longer available in the QtQml namespace. Use their counterparts in the global namespace. Change-Id: Ife1ea83ca1d474420c9ee697772b7115247cc400 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix format specifier error after sizetype changeFabian Kosmale2020-08-311-2/+2
| | | | | Change-Id: I8cf053270a7d2c17cb3c4313ff129610aeded59a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Doc: Capitalize "GUI" correctlySze Howe Koh2020-08-305-12/+12
| | | | | | Pick-to: 5.15 Change-Id: I2230e2dcb7bc2497b5dbe71a22c21d84176b5e57 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Doc: Fix minor typosSze Howe Koh2020-08-303-3/+3
| | | | | | Pick-to: 5.15 Change-Id: I4c51c40697e410d56b6a2d2446ed9f8ae218576d Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Doc: Clarify DelegateModelGroup::setGroups() descriptionSze Howe Koh2020-08-301-7/+2
| | | | | | | | The previous description had an awkward structure and was duplicated. Pick-to: 5.15 Change-Id: I46dbc804e1c907198364f441fd46eb853db97e6a Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Use OpenType font weightsJonas Karlsson2020-08-287-18/+14
| | | | | | Task-number: QTBUG-42248 Change-Id: Ib26d4945307b630b054e270b3213e1c9ad0d5357 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Do not incorrectly leave srcAlpha and dstAlpha set to the defaultsLaszlo Agocs2020-08-281-2/+2
| | | | | | | | | | | | TargetBlend defaults to One, OneMinusSrcAlpha, One, OneMinusSrcAlpha when it comes to srcColor, dstColor, srcAlpha, dstAlpha. When setting a blending different than our standard premultiplied alpha, srcAlpha and dstAlpha must be set too. Otherwise what we get is something that is not equivalent to Qt 5's glBlendFunc() call. Change-Id: Ied03669edae9dcf3ec4c9c5b560195511db8d00b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Do proper memory management on the metatype interfaces we createLars Knoll2020-08-285-21/+86
| | | | | | | | | | Those interfaces are always registered in pairs. Add an external refcount to CompositeMetaTypeIds, and do registration and de-registration through this class. Change-Id: I4f3a53ad935a43a734d6506ffc768f507b48ee1f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix QtQml after QMetaType/QVariant changes in Qt CoreLars Knoll2020-08-287-107/+106
| | | | | Change-Id: I2a983cf8188e88d80d3b7726208d821427eb8f3c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix a bunch of compiler warningsLars Knoll2020-08-283-2/+3
| | | | | | Taks-number: QTBUG-86234 Change-Id: I4c945edecdbe55bc5587c18599d49dfb82ade1eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use QPalette::resolveMask() and setResolveMask() where necessaryShawn Rutledge2020-08-283-5/+5
| | | | | | | This is needed after qtbase b77a3f47c9d6f4fd68a687e3bdb38e550d2810ad. Change-Id: I41cf66d51dad7209c21d9e4049497a1f911e132a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Always group the metaType and listType togetherLars Knoll2020-08-285-20/+16
| | | | | | | | They are always created and destroyed together, so grouping them makes the required memory management of them easier. Change-Id: Ia1980f31f9bdff6a1accd229bc8380ae153edf67 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove deprecated registration functionsFabian Kosmale2020-08-271-42/+0
| | | | | | | | | | | | | | [ChangeLog][QML] Removed qmlRegisterType overload taking no arguments, use qmlRegisterAnonymousType instead, or switch to declarative type registration with QML_ANONYMOUS. Removed overloads of qmlRegisterExtendedType and qmlRegisterInterface which did not take a version argument. Use the overloads providing a version, or swtich to declarative type registration with QML_EXTENDED and QML_INTERFACE. Change-Id: Iadcc53d7ebe5cae40856b69efc33293fd0208c1f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Document QML_FOREIGN_NAMESPACE() macroFawzi Mohamed2020-08-271-1/+20
| | | | | Change-Id: I5793df82849f06e2d870335c3c17902e452399a4 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* new builtins.qmltypesFawzi Mohamed2020-08-271-1614/+826
| | | | | | | | | | | manually mantained qmltypes files with the builtintypes (as defined in ECMA-262) This is a best match effort, unfortunately we cannot (yet?) express all the semantic of ECMAScript, but we try to be close to it. Fixes: QTBUG-83815 Change-Id: I0572114ff9f2d5a0855c62def824551cba8be655 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* import Qt namespace in QtQmlFawzi Mohamed2020-08-273-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | Introduces and uses the QML_FOREIGN_NAMESPACE to declare the Qt namespace in QtQml, and exports all the enumerations in the Qt namespace, and makes them available also in QtQml/plugins.qmltypes Please note that this does *not* remove the special QV4::QtObject as it contains much more than the enumerations. Having two object registered as Qt (the complete QV4::QtObject added to the global properties in ExecutionEngine::initializeGlobal, and QtInQml registered by the qmltyperegistrar) gives problems, if the partial one overrides the complete one. For this reason the classinfo QML.ManualRegistration (no public macro until shown to be more generally useful) is introduced and used to ensure that QtInQml generates only documentation (plugins.qmltypes), and no registration that might conflict with QtObject. This makes the current builtins.qmltypes redundant. Fixes: QTBUG-84897 Change-Id: Iffc96cd3e1d9f9d7d047ee60221a4b0928f53005 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Follow layoutMirroring in Layout marginsDavid Edmundson2020-08-263-1/+15
| | | | | | | | | | | | | | | If a layout is laid out left to right using the layoutDirection property, we want left Margins on the left, and rightMargin still on the right However, if a layout is mirrored, not only should the layout direction change but also the left margin should now be on the right and vice versa. Task-number: QTBUG-62989 Pick-to: 5.15 Change-Id: Iaae4bc436fd1eb7f1947869563ac325f3d6b79bb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Remove deprecated QQuickWindow::sendEventFabian Kosmale2020-08-262-60/+0
| | | | | | | | | | | [ChangeLog][QQuickWindow] Removed the obsolete QQuickWindow::sendEvent function. Use QCoreApplication::sendEvent instead. Change-Id: I583ea8f87b870b136315efa4e1105de484e5f1ab Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove deprecated function QJSValue::engineFabian Kosmale2020-08-262-22/+0
| | | | | | | | | [ChangeLog][QJSValue] The deprecated function QJSValue::engine() has been removed. Change-Id: I2be35379e0a9e51f5371a2c98b955282955b7147 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: Use strict C++ (no GNU extensions) when compiling qml modulesAlexandru Croitor2020-08-261-0/+1
| | | | | | | | Uses the new function exposed by qtbase, to mimic CONFIG += c++_strict from qmake. Change-Id: I972cd899f8e4c7b51e792e0e20433d016d4ac4b6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Make sure that header is self-containedKai Koehne2020-08-261-0/+1
| | | | | | | | | Since qtbase commit f741a12de11c9 qimage.h doesn't include qobject.h anymore. Task-number: QTBUG-82615 Change-Id: I9422bcc049bc34271c91e341017881a18857d155 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* [Fix] Use the sourceDir if specifiedAssam Boudjelthia2020-08-261-5/+6
| | | | | | | | | | Android is passing the test path via QUICK_TEST_SOURCE_DIR but it was set to ":/" no matter what. Pick-to: 5.15 Change-Id: If0e6615999019cf1869a237056d41e35b5be12f1 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>