diff options
author | Yann Bodson <yann.bodson@nokia.com> | 2009-10-27 15:02:39 +1000 |
---|---|---|
committer | Yann Bodson <yann.bodson@nokia.com> | 2009-10-27 15:02:39 +1000 |
commit | 7333e6bf09c64fc8c895068bf17a8fc891477976 (patch) | |
tree | 797e11665b5ea13c1e821894239861d41393008d | |
parent | 174b95702dac03866f684426f84dfdf882293b0b (diff) | |
download | qt4-tools-7333e6bf09c64fc8c895068bf17a8fc891477976.tar.gz |
listview/dynamic improvements
-rw-r--r-- | examples/declarative/listview/dynamic.qml | 108 |
1 files changed, 52 insertions, 56 deletions
diff --git a/examples/declarative/listview/dynamic.qml b/examples/declarative/listview/dynamic.qml index f48cc4e660..78346f33d7 100644 --- a/examples/declarative/listview/dynamic.qml +++ b/examples/declarative/listview/dynamic.qml @@ -1,54 +1,48 @@ import Qt 4.6 import "content" -Item { - width: 320 - height: 500 +Rectangle { + width: 640; height: 480 + color: "#343434" ListModel { id: fruitModel ListElement { - name: "Apple" - cost: 2.45 + name: "Apple"; cost: 2.45 attributes: [ ListElement { description: "Core" }, ListElement { description: "Deciduous" } ] } ListElement { - name: "Banana" - cost: 1.95 + name: "Banana"; cost: 1.95 attributes: [ ListElement { description: "Tropical" }, ListElement { description: "Seedless" } ] } ListElement { - name: "Cumquat" - cost: 3.25 + name: "Cumquat"; cost: 3.25 types: [ "Small", "Smaller" ] attributes: [ ListElement { description: "Citrus" } ] } ListElement { - name: "Durian" - cost: 9.95 + name: "Durian"; cost: 9.95 attributes: [ ListElement { description: "Tropical" }, ListElement { description: "Smelly" } ] } ListElement { - name: "Elderberry" - cost: 0.05 + name: "Elderberry"; cost: 0.05 attributes: [ ListElement { description: "Berry" } ] } ListElement { - name: "Fig" - cost: 0.25 + name: "Fig"; cost: 0.25 attributes: [ ListElement { description: "Flower" } ] @@ -59,83 +53,85 @@ Item { id: fruitDelegate Item { width: parent.width; height: 55 - Text { id: label; font.pixelSize: 24; text: name; elide: "ElideRight"; anchors.right: costText.left; anchors.left:parent.left } - Text { id: costText; font.pixelSize: 24; text: '$'+Number(cost).toFixed(2); anchors.right: itemButtons.left } - Row { - anchors.top: label.bottom - spacing: 5 - Repeater { - model: attributes - Component { - Text { text: description } - } + + Column { + id: moveButtons; x: 5; width: childrenRect.width; anchors.verticalCenter: parent.verticalCenter + Image { source: "content/pics/go-up.png" + MouseRegion { anchors.fill: parent; onClicked: fruitModel.move(index,index-1,1) } + } + Image { source: "content/pics/go-down.png" + MouseRegion { anchors.fill: parent; onClicked: fruitModel.move(index,index+1,1) } + } + } + + Column { + anchors { right: itemButtons.left; verticalCenter: parent.verticalCenter; left: moveButtons.right; leftMargin: 10 } + Text { + id: label; font.bold: true; text: name; elide: Text.ElideRight; font.pixelSize: 15 + width: parent.width; color: "White" + } + Row { + spacing: 5 + Repeater { model: attributes; Component { Text { text: description; color: "White" } } } } } + Row { id: itemButtons - anchors.right: parent.right - width: childrenRect.width - Image { source: "content/pics/add.png" + anchors.right: removeButton.left; anchors.rightMargin: 35; spacing: 10 + width: childrenRect.width; anchors.verticalCenter: parent.verticalCenter + Image { source: "content/pics/list-add.png" ClickAutoRepeating { id: clickUp; anchors.fill: parent; onClicked: fruitModel.set(index,"cost",Number(cost)+0.25) } - scale: clickUp.isPressed ? 0.9 : 1 + scale: clickUp.isPressed ? 0.9 : 1; transformOrigin: Item.Center } - Image { source: "content/pics/del.png" + Text { id: costText; text: '$'+Number(cost).toFixed(2); font.pixelSize: 15; color: "White"; font.bold: true; } + Image { source: "content/pics/list-remove.png" ClickAutoRepeating { id: clickDown; anchors.fill: parent; onClicked: fruitModel.set(index,"cost",Math.max(0,Number(cost)-0.25)) } - scale: clickDown.isPressed ? 0.9 : 1 - } - Image { source: "content/pics/trash.png" - MouseRegion { anchors.fill: parent; onClicked: fruitModel.remove(index) } - } - Column { - width: childrenRect.width - Image { source: "content/pics/moreUp.png" - MouseRegion { anchors.fill: parent; onClicked: fruitModel.move(index,index-1,1) } - } - Image { source: "content/pics/moreDown.png" - MouseRegion { anchors.fill: parent; onClicked: fruitModel.move(index,index+1,1) } - } + scale: clickDown.isPressed ? 0.9 : 1; transformOrigin: Item.Center } } + Image { + id: removeButton; source: "content/pics/archive-remove.png" + anchors { verticalCenter: parent.verticalCenter; right: parent.right; rightMargin: 10 } + MouseRegion { anchors.fill:parent; onClicked: fruitModel.remove(index) } + } } } ListView { - model: fruitModel - delegate: fruitDelegate - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: buttons.top + model: fruitModel; delegate: fruitDelegate + anchors { top: parent.top; left: parent.left; right: parent.right; bottom: buttons.top } } Row { - width: childrenRect.width + x: 8; width: childrenRect.width height: childrenRect.height - anchors.bottom: parent.bottom + anchors { bottom: parent.bottom; bottomMargin: 8 } + spacing: 8 id: buttons - Image { source: "content/pics/add.png" + Image { source: "content/pics/archive-insert.png" MouseRegion { anchors.fill: parent; onClicked: { fruitModel.append({ "name":"Pizza Margarita", "cost":5.95, "attributes":[{"description": "Cheese"},{"description": "Tomato"}] - }) + }) } } } - Image { source: "content/pics/add.png" + Image { source: "content/pics/archive-insert.png" MouseRegion { anchors.fill: parent; onClicked: { fruitModel.insert(0,{ "name":"Pizza Supreme", "cost":9.95, "attributes":[{"description": "Cheese"},{"description": "Tomato"},{"description": "The Works"}] - }) + }) } } } - Image { source: "content/pics/trash.png" + Image { source: "content/pics/archive-remove.png" MouseRegion { anchors.fill: parent; onClicked: fruitModel.clear() } } } |