summaryrefslogtreecommitdiff
path: root/examples/declarative/listview
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative/listview')
-rw-r--r--examples/declarative/listview/dynamic.qml108
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() }
}
}