diff options
| author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-08 03:24:44 (GMT) |
|---|---|---|
| committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-08 03:24:44 (GMT) |
| commit | e7cf5fc921c00286846ac552b51a37fe2f51ff3e (patch) | |
| tree | af7c5cade70dfd740b11434a1a5cd7f3ff53ed35 /examples/declarative/dynamic/qml/itemCreation.js | |
| parent | 03f8f1df0d88f5ffe0b3120cffce614cbeefdb70 (diff) | |
| parent | 3ad6f3b1f4d2252e2a004acc8156a1fd308265cf (diff) | |
| download | Qt-e7cf5fc921c00286846ac552b51a37fe2f51ff3e.zip Qt-e7cf5fc921c00286846ac552b51a37fe2f51ff3e.tar.gz Qt-e7cf5fc921c00286846ac552b51a37fe2f51ff3e.tar.bz2 | |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (131 commits)
Avoid many unnecessary allocations, so so that paint engines attached to pixmaps
Doc
Fix autotests
Fix autotests (remove import Qt.widgets)
Add missing qml file to qdeclarativemousearea
Doc fix
Clean up example code, add white background behind text
Update mouse area qmlvisual test to follow change QTBUG-10162
Fix autotest bug in MouseArea
Avoid emitting release when the mouse is ungrabbed
Resize qmlruntime window to new dimensions when orientation changes
Compile with opengl enabled.
Avoid repeated create/destroy at top list boundary with sub-pixel movement.
Call QDeclarativeItem::geometryChanged() base implementation
qdoc fixes.
Avoid warnings as delegates with bindings to parent are created and destroyed.
qdoc fixes
TextInput echoMode doc.
Make sure to call base class implementation.
More cleanup
...
Diffstat (limited to 'examples/declarative/dynamic/qml/itemCreation.js')
| -rw-r--r-- | examples/declarative/dynamic/qml/itemCreation.js | 65 |
1 files changed, 24 insertions, 41 deletions
diff --git a/examples/declarative/dynamic/qml/itemCreation.js b/examples/declarative/dynamic/qml/itemCreation.js index 98d48a8..59750f3 100644 --- a/examples/declarative/dynamic/qml/itemCreation.js +++ b/examples/declarative/dynamic/qml/itemCreation.js @@ -1,80 +1,63 @@ var itemComponent = null; var draggedItem = null; var startingMouse; -var startingZ; -//Until QT-2385 is resolved we need to convert to scene coordinates manually -var xOffset; -var yOffset; -function setSceneOffset() -{ - xOffset = 0; - yOffset = 0; - var p = itemButton; - while(p != window){ - xOffset += p.x; - yOffset += p.y; - p = p.parent; - } -} +var posnInWindow; function startDrag(mouse) { - setSceneOffset(); + posnInWindow = paletteItem.mapToItem(null, 0, 0); startingMouse = { x: mouse.x, y: mouse.y } loadComponent(); } -//Creation is split into two functions due to an asyncronous wait while +//Creation is split into two functions due to an asynchronous wait while //possible external files are loaded. function loadComponent() { - if (itemComponent != null) //Already loaded the component + if (itemComponent != null) { // component has been previously loaded createItem(); + return; + } - itemComponent = Qt.createComponent(itemButton.file); - //console.log(itemButton.file) - if(itemComponent.isLoading){ - component.statusChanged.connect(finishCreation); - }else{//Depending on the content, it can be ready or error immediately + itemComponent = Qt.createComponent(paletteItem.componentFile); + if (itemComponent.status == Component.Loading) //Depending on the content, it can be ready or error immediately + component.statusChanged.connect(createItem); + else createItem(); - } } function createItem() { - if (itemComponent.isReady && draggedItem == null) { - draggedItem = itemComponent.createObject(); - draggedItem.parent = window; - draggedItem.image = itemButton.image; - draggedItem.x = xOffset; - draggedItem.y = yOffset; - startingZ = draggedItem.z; - draggedItem.z = 4;//On top - } else if (itemComponent.isError) { + if (itemComponent.status == Component.Ready && draggedItem == null) { + draggedItem = itemComponent.createObject(window); + draggedItem.image = paletteItem.image; + draggedItem.x = posnInWindow.x; + draggedItem.y = posnInWindow.y; + draggedItem.z = 3; // make sure created item is above the ground layer + } else if (itemComponent.status == Component.Error) { draggedItem = null; console.log("error creating component"); console.log(component.errorsString()); } } -function moveDrag(mouse) +function continueDrag(mouse) { - if(draggedItem == null) + if (draggedItem == null) return; - draggedItem.x = mouse.x + xOffset - startingMouse.x; - draggedItem.y = mouse.y + yOffset - startingMouse.y; + draggedItem.x = mouse.x + posnInWindow.x - startingMouse.x; + draggedItem.y = mouse.y + posnInWindow.y - startingMouse.y; } function endDrag(mouse) { - if(draggedItem == null) + if (draggedItem == null) return; - if(draggedItem.x + draggedItem.width > toolbox.x){ //Don't drop it in the toolbox + if (draggedItem.x + draggedItem.width > toolbox.x) { //Don't drop it in the toolbox draggedItem.destroy(); draggedItem = null; - }else{ - draggedItem.z = startingZ; + } else { draggedItem.created = true; draggedItem = null; } |
