aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitem.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-071-37/+54
|\ | | | | | | Change-Id: I61ab3d0bd8cc02f640c60c037226eace09ec09ba
| * Merge remote-tracking branch 'origin/5.9.0' into 5.9Liang Qi2017-05-311-37/+53
| |\ | | | | | | | | | Change-Id: I3f77593ca944114534fff5df26bbb09150ee4400
| | * Revert "QQuickItem: Port a number of manual loops to range-for"Robin Burchell2017-05-191-37/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8d92e595e0e8cf19f60db2fce4a543265c9130e9. This is broken in a few places, e.g. setEffectiveVisibleRecur emits, which means that it may run uncontrolled code, so we can't be sure the list isn't altered underneath us. Change-Id: I58b8b62e74581207c1b14902ea7b8b552761de8a Task-number: QTBUG-58811 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | Document the default value of x, y, width & heightJesus Fernandez2017-05-231-0/+1
| |/ | | | | | | | | | | | | | | The default values of the coordinates and size variables were missing. Change-Id: I1bba77b3db68d3f726c1211c6a0090e97f687b51 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLars Knoll2017-05-021-0/+2
|\| | | | | | | Change-Id: I71275a2076c3d32ee2896571be882067320a2e9e
| * Run includemocs in qtdeclarativeThiago Macieira2017-04-261-0/+2
| | | | | | | | | | Change-Id: I84e363d735b443cb9beefffd14b8c023a37aa489 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-211-0/+2
|\| | | | | | | Change-Id: Ibed6ee74d36b4ce37391c82db00a0abd30d09e7a
| * Fix warning for -no-feature-cursorStephan Binner2017-04-181-0/+2
| | | | | | | | | | Change-Id: Idc2ab95d0ea1e556995e7bcd29b5cbcd82bc28f6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQuickContents: Use QRectF rather than reinventing itRobin Burchell2017-04-171-15/+15
| | | | | | | | | | | | | | | | | | No major impact on benchmarks -- if anything, this improves the new delegates_item_childrenRect by 2-3 frames. Change-Id: I50fef6f0bc9531eabd1d42079886dca754e1ce2a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Separate the stack used for GC from the regular JS stackLars Knoll2017-04-071-4/+4
| | | | | | | | | | | | | | | | This is required to be able to implement concurrent or incremental garbage collection. Change-Id: Ib3c5eee3779ca2ee08a57cd3961dbcb0537bbb54 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Expose QQuickItem::size() and document QQuickItem::setSize()Gunnar Sletta2017-03-201-2/+21
| | | | | | | | | | | | | | [ChangeLog][QtQuick][QQuickItem] Add QQuickItem::size() and document QQuickItem::setSize(). Change-Id: I6f4d531e046758eb062111d656cc2e0be1624da3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-021-4/+6
|\| | | | | | | Change-Id: I6cbd83b61fac34c2ba6936711289ec09a490719a
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-241-4/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4ssa.cpp src/quick/accessible/qaccessiblequickview_p.h src/quick/items/qquickmousearea.cpp src/quick/util/qquickanimatorjob.cpp tools/qmlplugindump/main.cpp Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
| | * Fix build without features.cursorStephan Binner2017-02-201-2/+4
| | | | | | | | | | | | | | | Change-Id: I20821e5fd4d2154aa49ef90015d512dd09c134f3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Minor wording issues and typo fixes in docsFrederik Schwarzer2017-02-151-2/+2
| | | | | | | | | | | | | | | Change-Id: I60af106607dca02fafc1df2d21d16053d64742b6 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | | Add samples property for Item.layer and ShaderEffectSourceLaszlo Agocs2017-02-231-0/+40
|/ / | | | | | | | | | | | | | | | | | | [ChangeLog][Qt Quick] Added the properties ShaderEffectSource.samples and Item.layer.samples to allow requesting MSAA rendering of an item subtree, without enabling multisampling for the entire scene. Task-number: QTBUG-58945 Change-Id: I9102cfabba10d4dc1e7ad2aa0b258ada6d9a5a47 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Quick: Remove last foreach, and mark QT_NO_FOREACHRobin Burchell2017-01-161-1/+1
| | | | | | | | | | | | | | | | Longer term, we should QT_NO_FOREACH .qmake.conf, but a number of other parts of the codebase still use foreach. Change-Id: I105cdbe2a64ae40ffa53d3aaa8765b09195af841 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Port existing qmlInfo callers to qmlWarningRobin Burchell2017-01-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Now that qmlInfo actually reports info messages, we want to change existing callers to use warning-level messages to preserve the original message level. This was done through: perl -p -i -e "s/qmlInfo\(/qmlWarning\(/" **/*.{cpp,h,qdoc} .. with a little care taken to only add the hunks that should be changed. Change-Id: I511cee11ce0a26ec1048cd2b84c7536b812a0d89 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Keys: add shortcutOverride signalMitch Curtis2016-12-181-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows an item to accept the shortcutOverride event, preventing e.g. Shortcut from stealing key events. The original use case that prompted the creation of this patch was using a Popup from Controls 2 to create a keyboard shortcut editor. When the user wanted to cancel the shortcut that they were editing, they could press escape, but Popup would grab the shortcut and close itself. As the test case demonstrates, the same problem occurs with the Shortcut type in Qt Quick. [ChangeLog][QtQuick][Keys] Added shortcutOverride signal to Keys attached object to allow prevention of e.g. Shortcut from stealing key events. Task-number: QTBUG-57098 Change-Id: I594e4ea17ec417d8c7d93c6cf347c1a1a2e62b93 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-141-34/+34
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp src/qml/qml/qqmlimport.cpp src/quick/items/context2d/qquickcontext2dtexture_p.h tools/qmleasing/splineeditor.h Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
| * Get rid of most QT_NO_FOO usagesLars Knoll2016-11-291-34/+34
| | | | | | | | | | | | | | | | Instead use QT_CONFIG(foo). This change actually detected a few mis-spelled macros and invalid usages. Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-231-74/+94
|\| | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4object_p.h Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
| * Quick: Do not calculate the difference in a geometryChangeErik Verbruggen2016-11-101-9/+5
| | | | | | | | | | | | | | | | | | | | | | This difference is only used by the ListView, so calculating it and storing it (on the stack) introduces a penalty for all items. As the new geometry is already applied, the old geometry is passed along. This has the added advantage that the ListView does not have to re-calculate that either. This fixes a performance regression. Change-Id: Id5e67bb663a5b11a55ec15ff24ca5b213d1fcef5 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Quick: Hint that a reparent action will most probably work fineErik Verbruggen2016-11-091-1/+1
| | | | | | | | | | | | | | | | | | When assigning an item a new parent item, a check is done if it is already part of the children tree below that parent. This is an unlikely case, so hint the compiler that it can optimize the loop that way. Change-Id: Ic9f1810aa4b83d84be88f0049e61d21c4add7767 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Quick: Only take a copy of changeListeners when there are someErik Verbruggen2016-11-081-64/+88
| | | | | | | | | | | | | | | | | | | | In the case where there are no change listeners, there is no need to do an ref() operation (which involves atomic loads) only to find out that it's an empty vector (!isSharable). Better still: the whole loop start-up can be skipped. Change-Id: I94fd22029a321a5dbef571145007071a54f5b04b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devJ-P Nurmi2016-11-031-2/+2
|\| | | | | | | | | | | | | Conflicts: tools/qmljs/qmljs.cpp Change-Id: Ifa9e74bdb780eaff22fbc9ba1c514d0078a3fb29
| * Quick: allow NaN check to be inlinedErik Verbruggen2016-11-021-2/+2
| | | | | | | | | | Change-Id: Ia4a935e1da82106954b661264e7a630befd80cc6 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-221-10/+80
|\| | | | | | | Change-Id: I171c7dbb6a74fe743c2eec63e86e9c0bef7c7dfd
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-201-10/+80
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickitemsmodule.cpp tests/auto/quick/rendernode/tst_rendernode.cpp Change-Id: I90582df69feb95a4e4aafb0b9793c23714654f19
| | * QQuickItem: eliminate repeated access to QQmlV4Function::v4engine()J-P Nurmi2016-10-131-10/+10
| | | | | | | | | | | | | | | Change-Id: Ifc33c17d125ca794a157a87dc5cc1be51c2aaefb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Item: sort out mapFromGlobal() and mapToGlobal()J-P Nurmi2016-10-131-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit message of 08327da, and the change log of Qt 5.7.0 promised that mapFromGlobal() and mapToGlobal() were available in QML. But since the revision 7 of QQuickItem was not registered, this was not entirely true. Due to a little quirk in the QML engine's handling of revisioned methods, mapFromGlobal() and mapToGlobal() were only accessible via an identifier or property, but not directly: // works MouseArea { id: ma; onClicked: console.log(ma.mapToGlobal(Qt.point(mouse.x, mouse.y))) } // ReferenceError: mapToGlobal is not defined MouseArea { onClicked: console.log(mapToGlobal(Qt.point(mouse.x, mouse.y))) } Furhermore, this is inconsistent with how mapFromItem() and mapToItem() are exposed to QML. Even though the C++ versions of these methods take QPointF and QRectF, the QML versions take 2-4 number specifying x, y, width and height: object mapFromItem(Item item, real x, real y) object mapFromItem(Item item, real x, real y, real width, real height) object mapToItem(Item item, real x, real y) object mapToItem(Item item, real x, real y, real width, real height) Therefore the signature of mapFromGlobal() and mapToGlobal() should be: object mapFromGlobal(real x, real y) object mapToGlobal(real x, real y) This change implements the QML versions of these methods using QQmlV4Function, and adds the missing documentation for the QML API. NOTE: This is QML-only API. Change-Id: I2ced4836d274c7d1e644ea29fc25dbdd2045001b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-181-10/+59
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4variantobject.cpp src/qml/types/qquickworkerscript.cpp src/quick/scenegraph/util/qsgdefaultpainternode_p.h tools/qmljs/qmljs.cpp Change-Id: I876242714ec8c046238d8fd673a5ace2455b2b59
| * | Merge "Merge remote-tracking branch 'origin/5.7' into 5.8" into refs/staging/5.8Liang Qi2016-10-101-9/+31
| |\ \
| | * | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-101-9/+31
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/quick/quickwidgets/quickwidget/main.cpp src/qml/jsruntime/qv4jsonobject.cpp src/qml/jsruntime/qv4qobjectwrapper.cpp src/qml/jsruntime/qv4qobjectwrapper_p.h src/qml/qml/qqmlengine.cpp src/qml/qml/qqmlpropertycache.cpp src/qml/qml/qqmlpropertycache_p.h src/quick/items/qquickanimatedsprite.cpp src/quick/items/qquickitem.cpp src/quick/items/qquickitem.h src/quick/items/qquickitem_p.h src/quick/items/qquickview_p.h src/quick/scenegraph/qsgcontext.cpp src/quick/scenegraph/qsgdefaultrendercontext.cpp Change-Id: I172c6fbff97208f21ed4c8b6db3d1747a889f22b
| | | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-041-9/+32
| | | |\ | | | | | | | | | | | | | | | Change-Id: I48764527fa1ab6d8d59c24552394459b1cdc58ee
| | | | * Fix crash with window-less QQuickItemsSimon Hausmann2016-09-301-9/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mark QQuickItem visual children directly in QQuickItem instead of relying on the item being a (grand) child of a window. [ChangeLog][QtQuick] Fix crash with QQuickItems created via JavaScript being garbage collected sometimes when they're not assigned to a window. This may happen even in qmlscene when between the creation of the root item and the assignment to the QQuickWindow the garbage collector runs. The previous approach of a persistent in QQuickView marking the visual item hierarchy relies on the existence of a view. The only thing left to do in the view and qml window implementation is enforcing the CppOwnership policy set on the content item in QQuickWindow by ensuring the presence of the JS wrapper, replacing the persistent with a weak value. This also introduces a new internal mechanism for QObject sub-classes to provide their own V4 JS wrapper types. Task-number: QTBUG-39888 Change-Id: Icd45a636a6d4e4528fc19165b13f4e1ca7967087 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
| * | | | Make shader effects configurableLars Knoll2016-10-101-1/+28
| |/ / / | | | | | | | | | | | | | | | | | | | | Change-Id: I4e7fd5e9781dec7ee6ed8807ca1a51c937f6f9f3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Mark some methods as constAnton Kudryavtsev2016-10-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These methods do not modify objects. Change-Id: I4909f382cc19c5ce6f07e0421fef68a63cfe518f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-011-2/+15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4qobjectwrapper.cpp Change-Id: I1a125b2334532ec5de4af39c0d6628890f4d0587
| * | | Add some notes to mouse and touch ungrab docsFrederik Gladhorn2016-10-011-0/+15
| | | | | | | | | | | | | | | | | | | | Change-Id: Ifb58158cd8b9662b35fab6781a7844ce44ca546d Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
| * | | Remove unused notifier for parent accessorSimon Hausmann2016-09-271-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the removal of the property accessors this notifier is not used anymore. Change-Id: I63f984cada529231cc735a4001fa593c7a81d3cd Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-211-37/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4isel_moth_p.h Change-Id: I8e86a649d1ef8ad27dc66cc8c290093b2faabc69
| * | | Make LayoutMirroring work with WindowJ-P Nurmi2016-09-121-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtQuick][LayoutMirroring] Made it possible to attach LayoutMirroring to a Window. Task-number: QTBUG-55517 Change-Id: I3bc5960bf2a9c28b0edc801722dbd6499b803ff3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | | QML: Obliterate QQmlAccessorsErik Verbruggen2016-08-301-34/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: I70a080feb401cf23aef1bde44a19a11e27642f30 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | QQuickKeysAttached: drop const from keyToSignal() result typeAnton Kudryavtsev2016-09-201-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Let the compiler use the result as rvalue. Also mark this method as static, it does not use members. Change-Id: I3711b1a99c6b1a10ee491cdbc14419a62fd545ec Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Quick: fix incorrect usage of 'range for' with Qt containersAnton Kudryavtsev2016-08-201-1/+2
| | | | | | | | | | | | | | | | | | | | | Also port remaining foreach to 'range for'. Change-Id: I20296bb3bb6d63f144ebddaba02cabeb16b7d734 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Quick: replace 'foreach' with 'range for'Anton Kudryavtsev2016-08-181-1/+2
| | | | | | | | | | | | | | | Change-Id: I3493b16a184fc811289db9e98eff37bb987113a3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge branch 'dev' into wip/pointerhandlerFrederik Gladhorn2016-08-041-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickwindow.cpp: we need the fix for QTBUG-31861 but now using QQuickPointerMouseEvent src/quick/items/qquickwindow_p.h: hover events need timestamps (e4f7ab42) tests/auto/quick/qquickwindow/tst_qquickwindow.cpp: added test for QTBUG-31861 Change-Id: Ic120513b69b318df3ba62d8174c276cbf6b7b55e
| * | | Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-08-021-0/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickshadereffect.cpp 5.7 had a bug-fix in code dev has replaced wholesale. src/quick/items/qquickwindow.cpp src/quick/items/qquickwindow_p.h One side changed a method's signature; the other side renamed a method declared adjacent to it and changed some code using it, moving some from the public class to its private partner. tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp One side added a blank line before a comment the other re-wrote. Kept the re-write, killed the stray blank. .qmake.conf Ignore 5.7's change to MODULE_VERSION. src/qml/compiler/qqmltypecompiler.cpp src/qml/compiler/qqmlpropertyvalidator.cpp 5.7 changed code in the former that dev moved to the latter. Reflect 5.7's changes there, adapted to dev's form. src/qml/qml/qqmlobjectcreator.cpp One side added new QVariant types; the other changed how it handled each type of QVariant (without git seeing any conflict); adapted the new stanzas to work the same as the transformed ones. tests/manual/v4/test262 dev had a broken sha1 for it; so used 5.7's 9741ac4655808ac46c127e3d1d8ba3d27ada618e Change-Id: I1fbe2255b97d6ef405cdd1d0cea7fab8dc351d6f
| | * | Doc: Added definition of enum value ItemAntialiasingHasChangedNico Vertriest2016-07-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error message: Undocumented enum item 'ItemAntialiasingHasChanged' in QQuickItem::ItemChange Change-Id: I0ea7bf4ba9cdf7fb69a9794694113c6501066d75 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>