aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitem_p.h
Commit message (Collapse)AuthorAgeFilesLines
...
| | * Get rid of most QT_NO_FOO usagesLars Knoll2016-11-291-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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 branch remote-tracking branch 'origin/dev' into wip/pointerhandlerShawn Rutledge2016-11-171-5/+12
|\| | | | | | | | | | | | | | | | | We no longer have any hope of getting this into 5.8. Change-Id: I2decfa47e589ba7ae2d6b951c6517a2c311d0192
| * | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-181-3/+10
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+1
| | |\
| | | * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-101-3/+1
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+1
| | | | |\ | | | | | | | | | | | | | | | | | | Change-Id: I48764527fa1ab6d8d59c24552394459b1cdc58ee
| | | | | * Fix crash with window-less QQuickItemsSimon Hausmann2016-09-301-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+9
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+0
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4qobjectwrapper.cpp Change-Id: I1a125b2334532ec5de4af39c0d6628890f4d0587
| * | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-211-2/+0
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4isel_moth_p.h Change-Id: I8e86a649d1ef8ad27dc66cc8c290093b2faabc69
| * | | | | 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>
* | | | | | Merge remote-tracking branch 'origin/5.8' into wip/pointerhandlerShawn Rutledge2016-10-071-1/+0
|\ \ \ \ \ \ | | |_|/ / / | |/| | | | | | | | | | Change-Id: I22cb14c061dc1738fd711756a6bcabd4a25be915
| * | | | | Remove unused notifier for parent accessorSimon Hausmann2016-09-271-1/+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 wip/pointerhandlerShawn Rutledge2016-08-301-2/+0
|\| | | | | | | | | | | | | | | | | | | Change-Id: If4ab5ae16d7a7cba6bfe4c0938e21c63551901fe
| * | | | QML: Obliterate QQmlAccessorsErik Verbruggen2016-08-301-2/+0
| |/ / / | | | | | | | | | | | | | | | | Change-Id: I70a080feb401cf23aef1bde44a19a11e27642f30 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* / / / Introduce QQuickPointerHandler: base class for nested event handlersShawn Rutledge2016-08-151-0/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | They will be Tech Preview in 5.8, so they shouldn't be available unless you explicitly import them. Task-number: QTBUG-54824 Change-Id: I290854a4e2b76e2cdfef5c216c7fdeb47fbcd390 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* | | QML: Pass the kind of geometry change aroundErik Verbruggen2016-07-111-19/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents re-calculation of what actually changed, and removes the now unused parameter newGeometry. Other than this change calculation, the only place where oldGeometry was used is QQuickListViewPrivate::itemGeometryChanged. To get rid of oldGeometry too, QQuickListViewPrivate now stores the current (i.e. last known) geometry, and updates it in itemGeometryChanged. Change-Id: I8a5286d08a04132c9a4c81de7ce221f5676946e6 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | Fix incorrect determination of cursor state in some casesRobin Burchell2016-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Porting the same fix applied to similar code (but for hover) from Shawn in f7e462ba153ff33a02cad903efc8662f1eacd225. We match the rename to make this easier to understand. Change-Id: I660ae77b1d0e3b735b8c39002109e133d2297f06 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Unify ShaderEffect property settingLaszlo Agocs2016-06-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rendererInterface() should not require isSceneGraphInitialized() to be true - the API and language queries like graphicsApi() have no need for the scenegraph, they only need the plugin to be loaded, i.e. that the QQuickWindow is constructed. This is the key to be able to make GraphicsInfo report graphicsApi and shaderType with the correct values as early as possible - meaning as soon as the item is associated with a window. The initialization of the scenegraph (the exact timing of which varies backend to backend) does not matter here. The fragment and vertex shader property setting is now unified in the two ShaderEffect implementations: - If the component is complete, the shader is attempted to be processed right from the setter. - Otherwise the item will trigger processing once the component is complete. - If there is no window when processing is trigerred, it is deferred via polish. To implement item polish handling we need a new virtual in QQuickItemPrivate since we cannot intrdouce virtuals into the public classes. This way one can write a condition (and later potentially use file selectors) like this: fragmentShader: GraphicsInfo.shaderType == GraphicsInfo.GLSL ? "..." : ... without having to worry about getting an unintended value processed due to GraphicsInfo not yet reporting an up-to-date value. parseLog() forces, for GL at least, shader processing to prevent autotests from breaking. Change-Id: If55c69d746c29cd07348ddad2d6b0f2b5dd7f3a2 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-06-211-3/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickflickable_p_p.h src/quick/items/qquickpathview_p_p.h tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp Change-Id: I77664a095d8a203e07a021c9d5953e02b8b99a1e
| * | Fix QQuickItem change listenersJ-P Nurmi2016-05-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All listeners should get invoked, even if they remove themselves while iterating the listeners. An index-based loop would skip the next listener in the list. This change replaces the QPODVector with a QVector, so we can make a cheap copy before iterating the listeners. Change-Id: I2430b3763184a40ad1c5c3a68d36fecafcadb3ee Task-number: QTBUG-53453 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | fix incorrect propagation of hover events in some casesShawn Rutledge2016-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both the item itself and its descendants need to be considered together when deciding whether or not it is interested in hover events. A correction to f728a514abdf59e2ac556eef027a69d9f21db4b2. Rename it while we're at it, to make the new meaning clearer. Task-number: QTBUG-54019 Change-Id: I1fe9f4a7f71d037a542ffefd0f3aff6f52a80a40 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | Merge remote-tracking branch 'origin/dev' into scenegraphngAndy Nichols2016-05-311-0/+2
|\ \ \ | | | | | | | | | | | | Change-Id: I35715e07b6f837f21cd8e8898f19d97af92c6b69
| * | | QML: re-use event objects across signal emissions.Erik Verbruggen2016-05-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change creates a single key/mouse/wheel event for use in signals, and re-uses that event across emissions. This prevents allocating a new event (and it's QObjectPrivate data) for every key press / mouse move / wheel spin. Change-Id: I395f6ce3ed8588157e4175c8481351b330793fac Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-05-241-3/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickopenglshadereffectnode.cpp src/quick/items/qquickshadereffect.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h src/quick/scenegraph/qsgdefaultglyphnode_p.h Change-Id: I3d6874b4e4231a89d2836c04fe8e7f2ef2d698c4
| * | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-131-3/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsapi/qjsengine.cpp src/qml/qml/qqmlengine_p.h src/quick/items/qquickanchors.cpp src/quick/items/qquickanimatedimage_p_p.h src/quick/items/qquickitem_p.h tests/auto/qml/qqmlecmascript/testtypes.h tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp tests/benchmarks/qml/creation/tst_creation.cpp Change-Id: I65861e32f16e8a04c7090a90231627e1ebf6ba6f
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-271-3/+2
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickimagebase.cpp src/imports/layouts/plugin.cpp Change-Id: I5f48474df4034a1347ec74795c85d369a55b6b21
| | | * QML: Remove baselineOffsetValid flag from QQuickItem.Erik Verbruggen2016-04-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag was only used to return 0.0 when false, and baselineOffset when true. So initializing the baselineOffset to 0.0 does the same thing. Change-Id: Ia92b05761ea3a03175ae0078bf950a1b4da2d356 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | | | Prefix GL-specific shader effect codeLaszlo Agocs2016-04-131-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename the C++ sources and classes. The QML type name remains the same. No changes in functionality. The shader effect, node, material (and uniform animator and particles and bits and pieces here and there...) are highly interconnected and do not follow the usual design practices for Quick and the scenegraph and the adaptation layer. Therefore while we aim for keeping full compatibility for GL apps, other backends will likely get a different ShaderEffect item implementation. The C++ class QQuickShaderEffect itself is currently a dummy with an unchanged API. It is not in use for now but forms the basis for the implementation for other backends. This will be covered in future commits. Change-Id: Ia39ce4b303f8f33e2f241d11e35fa62423e43127 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | | | Enable building Qt Quick module with QT_NO_OPENGL definedAndy Nichols2016-03-221-1/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the Qt Quick module depends on either the OpenGL or OpenGLES headers being available at build time. Since we are adding support for adaptations that do not depend on OpenGL, it should be possible to build Qt Quick in environments that do not have OpenGL development headers. This does present many challenges though because in some cases GL types, and classes that require OpenGL are part of the public APIs. However since these classes were never available when QT_NO_OPENGL was defined, it should be possible to redefine the function signatures under this scenario, since it's not possible to break binary compatibility if there never were any binaries to break compatibility with. One of the bigger changes that was necessary to facilitate this change is creating interfaces out of QSGContext and QSGRenderContext. Here the default behavior was usage of OpenGL directly, even though subclasses could override all OpenGL usage. Making them interfaces should bring QSGContext and QSGRenderContext more in line with the other classes present in the adaptation layer. Change-Id: Iaa54dc0f6cfd18d2da1d059548abf509bd71f200 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* / / QQuickItem: Provide cheaper hover event delivery.Robin Burchell2016-03-101-0/+2
|/ / | | | | | | | | | | | | | | | | By keeping track of whether an item in the child hierarchy has hover enabled, we can make delivery significantly cheaper: now, if an item doesn't have hover on a child, it will simply stop trying to deliver. Change-Id: I7730e3319cf17a1ec23953f6e6d574b73b99b258 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-191-14/+20
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Add support for mapping between item's and global screen coordinatesNikita Krupenko2015-12-101-0/+2
|/ | | | | | | | | | | | | | | | | | Added to Item mapToGlobal() and mapFromGlobal() methods, that maps from item's coordinate system to global screen coordinates and vise versa and accessible from QML. This allow to align window (which is a global object) in relation to Qt Quick item object. For example, this may be helpful to add a popup to a Qt Quick component. [ChangeLog][QtQuick][QQuickItem] Added support for mapping item's coordinates to global screen coordinates and vise versa. Task-number: QTBUG-28668 Change-Id: I0a90838f26c53b16d7a76953577492a942674572 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QQuickItemPrivate: added a accessibleRole()Liang Qi2015-10-211-0/+4
| | | | | | | Which is used in QAccessibleQuickItem. Change-Id: Ie9c9d59783c4af0c53a3ffe88046132fb6b5c0fd Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Don't send delayed mouse presses to ancestors of the replaying Flickable.Andrew den Exter2015-10-121-0/+1
| | | | | | | | | | | | | If a Flickable delayed a mouse press event and then replayed it later, ancestor items of that Flickable would receive the press twice: once when filtering events of the Flickable, and again when the event was replayed to a descendent of the Flickable. Extend the protection against a Flickable receiving that repeat event to all ancestor items so this doesn't happen. Change-Id: I438c146130c24a7d47e9e8712a1ab08f3d915a06 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com> Reviewed-by: Martin Jones <martin.jones@qinetic.com.au>
* Add isTabFence private flagGabriel de Dietrich2015-08-211-0/+8
| | | | | | | | | | | | When an item has this flag set, the user can't tab-navigate either out of it, or enter it. We use this flag to implement QQuickPanel as an item for platforms that only support one single top-level window. Change-Id: I1f4313912ae1c70217af0d4d21064932b50a9438 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Add possibility to mirror ShaderEffectSource generated texturesMiikka Heikkinen2015-08-201-0/+6
| | | | | | | | | | | | | Using textures generated by ShaderEffectSource items (or Item.layer) with custom OpenGL code was non-intuitive due to mismatching coordinate systems, so added a possibility to control the generated texture orientation. [ChangeLog][QtQuick][ShaderEffectSource] Added possibility to mirror generated OpenGL texture. Change-Id: I7c03d8b6fbfc43d69812c15d244200fb8e7c7bb9 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Add EnterKey attached propertyKai Uwe Broulik2015-08-031-0/+25
| | | | | | | | | | | This adds an attached property EnterKey allowing to manipulate the Enter key appearance. [ChangeLog][QtQuick][Item] Added EnterKey attached property that allows to change the appearance of the Enter key on an on-screen keyboard Change-Id: Ic9a01b0217c317e4ed3a9eef1fa01f2f113f0294 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Port from Q_ENUMS to new macro Q_ENUM.Friedemann Kleint2015-06-191-4/+2
| | | | | | | | | | | Remove Q_ENUMS in favor of the new Q_ENUM macro which provides registration as meta enum and a debug stream operator. QQuickXmlListModel::Status is left unmodified as porting it creates a link error in tst_qquickxmllistmodel. Change-Id: Id5e6192c9f85e7c94332508fbd91873ddda31e1a Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix usage of QtQmlDevTools private headers on OSX with framework buildsSimon Hausmann2015-03-161-1/+1
| | | | | | | | | | | | | | | | Previously this module borrowed its private headers from QtQml, so that when writing QT += qmldevtools-private, you'd get the private headers from QtQml. This doesn't work when QtQml is built as a framework. A cleaner solution is to give this module its headers proper by letting syncqt create the forwarding headers correctly (and consequently also include them in make install). In order for this to work, the included headers themselves cannot include any headers from QtQml, which this patch also takes care of, through a centralized inclusion of qv4global_p.h. Change-Id: I9bb8337956a2774cfaca6b338369face6c6ee785 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Use TabFocusBehavior in QStyleHints in QtQuickLiang Qi2015-02-121-1/+0
| | | | | | | | * QQuickItemPrivate::qt_tab_all_widgets was removed. * qt_tab_all_widgets in test was updated. Change-Id: I418d7a3edae0a4782a91289f6c0494ff5874d071 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devLars Knoll2014-10-301-2/+2
|\
| * Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-291-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickaccessibleattached_p.h src/quick/items/qquickwindow.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: I8bf07487a75f9d1b0d6efa5914dd06875fc9654d
| | * Support Accessible.ignored on non-leaf itemsJan Arve Saether2014-10-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignoring items with children will make the children appear as children of the parent of the ignored item. Since setAccessibleFlagAndListener now only sets the flag we also rename the function to just setAccessible Change-Id: I79fc311509a3e454b4698274c63ad0e879fb93e3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
| | * Export QQuickKeyNavigationAttached as a part of the private APIOleg Shparber2014-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This change fixes linking problems when QQuickKeyNavigationAttached is used through private headers. Change-Id: I176a9551718d9ba25c160a3b1caa8872c88d39f3 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* | | Move from a count of cursors, to storing whether or not a subtree has a cursor.Robin Burchell2014-10-291-3/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calculation of this is going to be slower (of course) as we have to recurse the children, but this only happens when unsetting a cursor or removing a child item from a tree that had a cursor. On the other hand, wasting 4 bytes per ExtraData plus padding is quite a large concern, and it was also forcing allocation of ExtraData for an entire tree that had a cursor set. This also reduces the size of ExtraData from 152 down to 144 bytes through reordering of members on x86_64. Change-Id: Iab14ee71c762285bf4448fc86399070263eb118d Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Remove the "groupNode"Gunnar Sletta2014-10-171-19/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We originally had the groupnode to simplify adding and removing clip / effect / opacity nodes to the item tree at a time when the renderer was a bit more trivial and only did a single pass over the tree during rendering. The runtime cost at the time was negligible. The QSGBatchRenderer has a bit more logic, so the extra node now costs a bit more. In addition to extra memory, we need to allocate shadow nodes for it and put those into the renderer's internal shadownode hash. This removal increases the performance of adding / removal of simple items by ~10% in addition to reducing the number of nodes in the scene graph by up to 1/3. Change-Id: I8cd64984f868d75820e25d33dfdbebd4d20651fe Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Resolve QQuickItemPrivate::beforePaintNode dynamically.Gunnar Sletta2014-10-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | It will be the 0 unless the item has a direct child with negative z, which occurs very rarely. Its presence complicates the algorithm used to solve QTBUG-34255 and it wastes 8 bytes per visual item. No difference could be noted in a benchmark animating 6000+ sprites. Task-number: QTBUG-34255 Change-Id: Id0a78a246f0d621a51c8caad23da02b55d59b9bb Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>