aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickcanvas.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QQuickCanvas renamesAlan Alpert2012-07-171-2657/+0
| | | | | | | | | | | | | | | | QQuickCanvas is now called QQuickWindow QQuickCanvas::rootItem is now QQuickWindow::contentItem QQuickItem::canvas is now QQuickItem::window QQuickItem::ItemChangeData::canvas is also renamed window QQuickCanvas::grabFrameBuffer is now QQuickWindow::grabWindow The functions related to the color property have dropped the clear from their names. The first three changes have interim compatibility measures in place to ease the transition. Change-Id: Id34e29546a22a74a7ae2ad90ee3a8def6fc541d2 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Change Quick docs to refer to "types" rather than "elements"Martin Jones2012-07-161-2/+2
| | | | | | Task-number: QTBUG-24785 Change-Id: I223479b879514abaacb123852323c1cfada7a5e1 Reviewed-by: Bea Lam <bea.lam@nokia.com>
* pressed and pressedButtons don't work when multiple buttons are pressedMartin Jones2012-07-111-7/+7
| | | | | | | | | | | | | | | The pressed property would react to any mouse event, regardless of whether it was in acceptedButtons, or there were other buttons still pressed. It will now remain true while any button in acceptedButtons is pressed. The pressedButtons property could contain buttons not in the acceptedButtons mask. It will now only contain buttons that are in the acceptedButtons mask. Task-number: QTBUG-26458 Change-Id: I6b25cc36a58c113de062d530761dc179d7ef4a5a Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Fix various QtQuick.* submodule docsBea Lam2012-07-051-1/+15
| | | | | | | | | | | | | | | - Create module index pages for QtQuick.Window, QtQuick.XmlListModel and QtQuick.LocalStorage. - Fix references to module names in docs so that docs for properties and methods are actually generated e.g. use "QtQuick.Window2" instead of "QtQuick2.Window". There's no easy way to document Module APIs at the moment so the QtQuick.LocalStorage documentation has been updated in a hacky way to generate the correct method documentation. Change-Id: I7b34e4b4ac794acffc6d198b98e2115ccf0fa9a6 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Improve wheel event handling.Michael Brasser2012-07-041-1/+8
| | | | | | | Use new angleDelta() rather than deprecated event data. Change-Id: I28d0a1ff1bc99b35e1ce3d553e5cb9bdc9362f4c Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Allow mouse interaction with 0 opacity items.Andrew den Exter2012-07-041-10/+1
| | | | | | | | | | | Don't filter event delivery to items with 0 opacity, and update the documentation the for opacity, visible and enabled properties and how each affects event delivery. Task-number: QTBUG-19193 Change-Id: Id48e4af763c9a7bbcc13b303342d303155dcadc9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fix some commented issues from the refactor merge.Michael Brasser2012-07-031-5/+2
| | | | | Change-Id: Ied56bdfc93162b7668be7b07841948b8b5968a70 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Propagate synthesized mouse events in parallel with touch.Shawn Rutledge2012-06-281-214/+381
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old way of event propagation inside QQuickCanvas was to send the touch event through all elements, and if it was accepted along the way, stop. Otherwise generate a mouse event and propagate it through the items in the same way. With this patch the behavior is changed instead to do the propagation in parallel. The idea is to first send a touch, then a mouse event to each QML item (in paint order) that can potentially handle the events. When items filter their child elements, the same logic applies. Other changes/clarifications: - mouse events no longer get synthesized for more than one touch point - TouchPoints can be distributed to multiple Items - if an item accepts a touch point, it always gets updates, even if the point is stationary - events containing only stationary TouchPoints are discarded - PinchArea must accept any initial single TouchPoint in order to receive subsequent updates, even though it's not pinching yet. This means if PA is on top, items underneath don't get touches. New unit tests showing this behavior were added. This patch was written by Frederik Gladhorn, Laszlo Agocs and Shawn Rutledge. Due to the complexity of the logic some refactoring was done. QQuickMouseEventEx has been removed because it inherently relied on using the QEvent d pointer. Change-Id: If19ef687d7602e83cc11b18d2fecfbbdb4e44f5c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Make qtdeclarative compile with QT_NO_DRAGANDDROPTasuku Suzuki2012-06-241-0/+6
| | | | | | Change-Id: Ie92455495979b065b574f013d95fac17739fa40e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
* Create new documentation structureChris Adams2012-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | The documentation currently has no clear separation between Qt QML and Qt Quick. With recent commits like: 6c8378eaf1edbbefe6aaa3672b0127816a004fd7 and ab1e510121c8a679fdaca12ccd30e0f7ac12a26b the separation between the language definition and implementation, provided by Qt QML, and the standard library for the QML language, provided by Qt Quick, is clear. This commit creates a new documentation structure that is more navigable and separates concepts into logical categories, with clear separation between QtQML and QtQuick. It also provides a more generic QML Application Developer Resources page which contains links to information for QML application developers. Change-Id: Ia807ccfbfd24ffa0e1c7f0a51ed9d2ed3aa6a733 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Cleanup SG properly in QQuickCanvasAlan Alpert2012-06-201-0/+2
| | | | | | | | | | The scenegraph renderer and root node were not cleaned up when all other SG nodes are. This leads to a possible case where the SG nodes regenerate for the canvas without being properly linked to the renderer. Task-number: QTBUG-23571 Change-Id: I19084af998cb7482bfddc87770ee9b5e0aad3a6c Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Improve on scenegraph documentation.Gunnar Sletta2012-06-081-2/+5
| | | | | | | Change-Id: Ib584a45454f6fd2a3c0bfb32a76b19839e4a2a09 Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com> Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Utilize StartDragVelocity style hint in FlickableLaszlo Agocs2012-06-061-0/+16
| | | | | Change-Id: I96924b08aede57a0622ea3f7419e8f73a9f18f5d Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Doc: Grouped Qt Quick types into several groupsJerome Pasion2012-06-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -created new groups and converted some overviews into group pages -edited type documentation and added \ingroup -articles still need title fixes and link fixes Groups: qtquick-visual-types qtquick-item-graphics qtquick-shaders qtquick-canvas qtquick-text qtquick-text-validator qtquick-interaction qtquick-positioners qtquick-transformations qtquick-states qtquick-animation-define qtquick-animation-properties qtquick-animation-control qtquick-animation-modifiers qtquick-images-sprites qtquick-images qtquick-models qtquick-containers qtquick-views qtquick-paths qtquick-utility Task: QTBUG-25685 Change-Id: I81d4df3320bf5daad5cabb5e42408013fb24f464 Reviewed-by: Bea Lam <bea.lam@nokia.com> Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Remove unused performance flags.Michael Brasser2012-06-061-5/+0
| | | | | | Change-Id: I9a9111703e2480af02b1af7033ea6bb12e7a75a5 Reviewed-by: Glenn Watson <glenn.watson@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Do not lose timestamps in mouse press eventsLaszlo Agocs2012-06-051-0/+1
| | | | | Change-Id: Iaa7953cd2ea21f43a98f984b6aea43feb0c2fbed Reviewed-by: Martin Jones <martin.jones@nokia.com>
* doc: Fix typoGirish Ramakrishnan2012-06-011-1/+1
| | | | | Change-Id: Ie693d28515e3d524024ef79377ade5a030c8b147 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Uses new batching API to potentially speed up glyph cacheEskil Abrahamsen Blomfeldt2012-05-301-0/+8
| | | | | | | | Give the cache information that a burst of requests/releases are coming, so it can potentially optimize this. Change-Id: Icfb591a63075c2f1e93bf269402649116de9e5be Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Improve QQuickCanvas::createTextureFromImage() docs a bitGunnar Sletta2012-05-291-1/+12
| | | | | Change-Id: I7be40edeee8bfca2a2725e998f64922388b97f64 Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Doc: Sanitized QML typesNico Vertriest2012-05-241-1/+1
| | | | | | | | | | -modified \brief -checked QML modules -added qml directory to the qdocconf file -added particles directory to the qdocconf file Change-Id: I589e32d3106cda37c7fa4d55a941afd9876fc2b2 Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
* Add QQuickCanvas::update()Gunnar Sletta2012-05-221-0/+13
| | | | | | | | | | | | | | | We would like to make a distinction between QQuickItem::update() which triggers updatePaintNode() to synchronize the scene graph and requesting the toplevel QQuickCanvas to be repainted. If we have this distinction in place it is possible for the scene graph to detect that the scene is unchanged and avoid rendering unless the user has explicitely asked for the canvas to be repainted, which is often the case when hooking into QQuickCanvas::beforeRender(). Change-Id: Ibe77f58423593deb217ef9f8082fa12009f45daf Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add hooks for declarative memory profiler.Glenn Watson2012-05-151-0/+3
| | | | | | | | | | | These macros effectively do nothing if the profiling library has not been preloaded. However, if the library is loaded they provide some additional context for each heap allocation, by tagging each subsequent allocation with the QML file that caused the allocation to occur. Change-Id: Ib1f56d0df0664e118e04e53e22a6942317b1baed Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Do not send double click when neither mouse nor touch was acceptedLaszlo Agocs2012-05-101-1/+1
| | | | | | | | | | | The original fix in change Ief4de360203e55e56f83179075e050f717a12108 worked fine for mouse-based components. However when mixing with components that handle touch too, the event->isAccepted() condition gets problematic: It might be true because the touch was accepted, it does not guarantee the mouse press was accepted. Change-Id: I00bfff2bd700da84f8cc12cf36430ed381ea320b Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Do not send double click when press was not acceptedLaszlo Agocs2012-05-091-1/+1
| | | | | | | | | | Sending the double click does not make sense in this case. In the worst case something accepts the double click, leaving the mouse grabber set, which results in blocking all further input due to having everything delivered to that one item. Change-Id: Ief4de360203e55e56f83179075e050f717a12108 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Keep polishing until there is nothing left to polish.Gunnar Sletta2012-05-031-6/+14
| | | | | | | | | | | | | | | Some items will trigger changes in updatePolish() which again trigger property changes which needs polish to be executed again. If we do not polish until the set is fully cleared, we will end up with some items being in an unpolished state. To avoid polishing from going on indefinitely, we have a countdown that spits out a warning if polishing goes on forever. Change-Id: I4da6e884ca0d52b9b2701082ecf13e8c65508524 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
* Remove QSGEngineGunnar Sletta2012-05-031-25/+0
| | | | | Change-Id: Iaab0d9f607b1f4ca6dfb13495a456d1b31bb980a Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Transform the velocity taken from touch eventLaszlo Agocs2012-05-021-1/+3
| | | | | | Change-Id: Ib90531f4526fad0c51b2f2e1e7c5ebcff4f5dec8 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Improved scene graph docsGunnar Sletta2012-04-301-13/+40
| | | | | Change-Id: I013e8eba2c13bd7abb01d2116af2e72c99ea5921 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Make touch event delivery in the canvas reentrantLaszlo Agocs2012-04-251-3/+8
| | | | | | | | | | | At the moment the unlikely case of spinning the event loop from a QQuickItem event handler for TouchBegin is not handled properly: It will end up not delivering the subsequent TouchUpdate and TouchEnd events to the item, leaving it in a state that should not normally happen. Change-Id: I668d065c9cf1a299bfd9268a9125d7a7e32f6786 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Doc FixAlan Alpert2012-04-231-0/+7
| | | | | | | More emphasis on what imports are needed for specialty elements. Change-Id: Ia24ac97bb77ed57c313a5120b0fbd02b6fcaa4a8 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Avoid losing mouse events when the event loop gets spinnedLaszlo Agocs2012-04-201-9/+13
| | | | | | | | The touchMouseId value has to be updated to its potential new value before delivering the events. Change-Id: I47ac5b3aad63293e19985b7b242b56db258fe786 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Add contains method to QQuickItem public APIAdriano Rezende2012-04-191-12/+11
| | | | | | | | This method can be overwritten in order to provide fine grained control over the mouse events handled by the item. Change-Id: I23cb61958d3ac0b2f5091c47fa9e0ed07dc5e5d0 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-04-171-2/+2
|\ | | | | | | Change-Id: I39905acde16ba6bb0ba39401cb73082a73dd9167
| * Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-111-4/+13
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/v4/qv4bindings.cpp src/quick/items/qquickshadereffect.cpp src/quick/particles/qquickcustomparticle.cpp src/quick/qtquick2.cpp Change-Id: Ia9c6517035ae912fa75e77473a452bd3383def56
| * \ Merge master into api_changesKent Hansen2012-03-271-11/+16
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlenginedebugservice.cpp src/qml/debugger/qqmlprofilerservice_p.h src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp src/quick/util/qquickimageprovider.cpp Change-Id: I0609aa5ed54c7769f1e2773a96a7cd43a69f133c
| * \ \ Merge master into api_changesKent Hansen2012-03-231-34/+132
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp Change-Id: I5193a193fa301c0b518291645bf626a5fa07118f
| * \ \ \ Merge master into api_changesKent Hansen2012-03-191-2/+6
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qqmlenginedebugservice.cpp src/qml/qml/v8/qv8qobjectwrapper.cpp src/quick/util/qquickimageprovider.cpp tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp Change-Id: Ie78ba2fabd32f4812bcae9dbdd66ed289dc11dcb
| * \ \ \ \ Merge branch 'master' of git://gitorious.org/qt/qtdeclarative into merge-masterMatthew Vogt2012-03-131-9/+15
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Change-Id: Iaefec13503dadfa200539b8de7a2d80fc5bb3bcf
| * \ \ \ \ \ Merge branch 'master' of git://gitorious.org/qt/qtdeclarative into api_changesMatthew Vogt2012-03-121-1/+10
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I578b1e2f1bb374da6194e6ba04a0fd459b2632fe
| * \ \ \ \ \ \ Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-03-071-2/+15
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I121cb9c9316b5e47476dcb982bc28b6f3f358f78
| * | | | | | | | Added QQuickItem::clipRect().Kim Motoyoshi Kalland2012-03-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I0f468dfea6f4ee3bdf8836dcdb15817584c55736 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
* | | | | | | | | Set rootItem'ownership as CppOwnerShipCharles Yin2012-04-171-0/+1
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rootItem should not be deleted until the QQuickCanvas itself has been deleted. Set the rootItem's object ownership to CppOwnerShip can prevent it being destroyed by javascript destroy() method or v8 garbage collection. Change-Id: I7d83fec8ffcb8062d143b1b050a38368a2af800f Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com> Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
* | | | | | | | Properly copy all event parameters in deliverMouseEvent()Laszlo Agocs2012-04-051-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Timestamp and capabilities were missing. One of the very special flick test cases needs to be fixed, because setting the proper timestamp will now generate correct velocities. A potentially dangerous, legacy implementation of flick() has also been updated to match how QTestLib works in Qt 5. Change-Id: Ibc99f7212ba21d41a419eaadac2fdda730658dc6 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* | | | | | | | Fix crash when changing the grandparent of an item with focus.Andrew den Exter2012-04-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an item was reparented it's sub focus item was cleared and those of it's children were cleared along with those in the tree the item was removed from. Since we now rely on the focus state of an unparented tree to be correct we need to restore the sub focus items of the unparented tree. Change-Id: I236c512751b99092c7e9a39194f4680304bfacc5 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* | | | | | | | Fix compiling qtdeclarative without accessibilityJerome Leclanche2012-03-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds two missing QT_NO_DECLARATIVE and conditionally compiles the accessible plugins. Change-Id: I3ae43b1e38cff0e64fea5cc06146be519ff2713d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* | | | | | | | Replace usage of QCursor, and update hoverVisible test.Michael Brasser2012-03-281-2/+1
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCursor::pos() doesn't work well with mouse events generated by the test framework. Change-Id: I62ee2228c194f21cf17f6271c662056a90c5ef2d Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | | | | | | Remove tentative commit from editorsPekka Vuorela2012-03-261-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Feature to be reimplemented simplified. Now using new FocusAboutToChange event for using input method to commit stuff when window is losing focus. Change-Id: I81c96c36d9f0a1b38adb4324f3b892c33547cb50 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
* | | | | | | Correct double, triple click handling in canvas when in touch modeLaszlo Agocs2012-03-261-9/+10
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The correct MouseArea signal sequence for a triple click is press, release, click, press, doubleclick, release, press, release, click. However QQuickCanvas sent the doubleclick before the press and did not reset the timestamp of the last press, resulting in a sequence with multiple doubleclicks and missing press signals. Change-Id: Ied5f3ea93d3ad28128ce7db5c8190ab48961da6d Reviewed-by: Martin Jones <martin.jones@nokia.com>
* | | | | | Check for null pointer dereferenceAlan Alpert2012-03-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Standard defensive programming Change-Id: Ic2b89cacf06812441a2b8f02c6b22de431c50b4a Reviewed-by: Chris Adams <christopher.adams@nokia.com>
* | | | | | Free ShaderEffectSource FBOs when no longer needed.Kim Motoyoshi Kalland2012-03-211-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit also fixes handling of texture provider deletion in ShaderEffect. Change-Id: Ib22a9308a35325972bc545cf29de11bd625b22b2 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>