summaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
authorIan Walters <ian.walters@nokia.com>2009-05-08 00:45:30 (GMT)
committerIan Walters <ian.walters@nokia.com>2009-05-08 00:45:30 (GMT)
commitbbf6d8ecaa896881f111be731a0718a124b6d21b (patch)
tree2786df04a033f87bd1d757c3719f047fbac6a4c3 /demos
parent6cfefeac5db91186027fc203cf9f8f354a0eedac (diff)
downloadQt-bbf6d8ecaa896881f111be731a0718a124b6d21b.zip
Qt-bbf6d8ecaa896881f111be731a0718a124b6d21b.tar.gz
Qt-bbf6d8ecaa896881f111be731a0718a124b6d21b.tar.bz2
Add the ability to remove whole contacts.
Diffstat (limited to 'demos')
-rw-r--r--demos/declarative/contacts/Contact.qml69
-rw-r--r--demos/declarative/contacts/ContactField.qml2
-rw-r--r--demos/declarative/contacts/RemoveButton.qml6
-rw-r--r--demos/declarative/contacts/contacts.qml22
4 files changed, 70 insertions, 29 deletions
diff --git a/demos/declarative/contacts/Contact.qml b/demos/declarative/contacts/Contact.qml
index 7297fa6..50c9d1c 100644
--- a/demos/declarative/contacts/Contact.qml
+++ b/demos/declarative/contacts/Contact.qml
@@ -16,41 +16,53 @@ Item {
id: updateContactQuery
connection: contactDatabase
query: "UPDATE contacts SET label = :l, email = :e, phone = :p WHERE recid = :r"
- bindings: SqlBind {
- name: ":r"
- value: contactId
- }
- bindings: SqlBind {
- name: ":l"
- value: labelField.value
- }
- bindings: SqlBind {
- name: ":e"
- value: emailField.value
- }
- bindings: SqlBind {
- name: ":p"
- value: phoneField.value
- }
+ bindings: [
+ SqlBind {
+ name: ":r"
+ value: contactId
+ },
+ SqlBind {
+ name: ":l"
+ value: labelField.value
+ },
+ SqlBind {
+ name: ":e"
+ value: emailField.value
+ },
+ SqlBind {
+ name: ":p"
+ value: phoneField.value
+ }
+ ]
},
SqlQuery {
id: insertContactQuery
connection: contactDatabase
query: "INSERT INTO contacts (label, email, phone) VALUES(:l, :e, :p)"
+ bindings: [
+ SqlBind {
+ name: ":l"
+ value: labelField.value
+ },
+ SqlBind {
+ name: ":e"
+ value: emailField.value
+ },
+ SqlBind {
+ name: ":p"
+ value: phoneField.value
+ }
+ ]
+ },
+ SqlQuery {
+ id: removeContactQuery
+ connection: contactDatabase
+ query: "DELETE FROM contacts WHERE recid = :r"
bindings: SqlBind {
- name: ":l"
- value: labelField.value
- }
- bindings: SqlBind {
- name: ":e"
- value: emailField.value
- }
- bindings: SqlBind {
- name: ":p"
- value: phoneField.value
+ name: ":r"
+ value: contactId
}
}
-
]
function refresh() {
labelField.value = label;
@@ -63,6 +75,9 @@ Item {
function insert() {
insertContactQuery.exec();
}
+ function remove() {
+ removeContactQuery.exec();
+ }
VerticalLayout {
id: layout
anchors.fill: parent
diff --git a/demos/declarative/contacts/ContactField.qml b/demos/declarative/contacts/ContactField.qml
index cb319ae..003e723 100644
--- a/demos/declarative/contacts/ContactField.qml
+++ b/demos/declarative/contacts/ContactField.qml
@@ -3,7 +3,7 @@ Item {
clip: true
height: 30
property var label: "Name"
- property var icon: "pics/phone.png"
+ property var icon: ""
property var value: ""
onValueChanged: { fieldText.text = contactField.value }
RemoveButton {
diff --git a/demos/declarative/contacts/RemoveButton.qml b/demos/declarative/contacts/RemoveButton.qml
index 114db2e..59e3fcb 100644
--- a/demos/declarative/contacts/RemoveButton.qml
+++ b/demos/declarative/contacts/RemoveButton.qml
@@ -76,6 +76,12 @@ Rect {
text: "Remove"
opacity: 0
}
+ opacity: Behaviour {
+ NumericAnimation {
+ property: "opacity"
+ duration: 250
+ }
+ }
states: [
State {
name: "opened"
diff --git a/demos/declarative/contacts/contacts.qml b/demos/declarative/contacts/contacts.qml
index 4582bd1..b38e02e 100644
--- a/demos/declarative/contacts/contacts.qml
+++ b/demos/declarative/contacts/contacts.qml
@@ -127,13 +127,26 @@ Rect {
sender: cancelEditButton
signal: "clicked()"
script: {
- if (wrapper.state == 'opened' && !contacts.mouseGrabbed) {
+ if (wrapper.state == 'opened' && !contacts.mouseGrabbed) {
wrapper.state = '';
contacts.mode = 'list';
}
}
}
+ Connection {
+ sender: removeContactButton
+ signal: "confirmed()"
+ script: {
+ if (wrapper.state == 'opened' && !contacts.mouseGrabbed) {
+ Details.qmlItem.remove();
+ wrapper.state = '';
+ contacts.mode = 'list';
+ contactList.exec();
+ }
+
+ }
+ }
}
}
]
@@ -165,6 +178,13 @@ Rect {
icon: "pics/cancel.png"
opacity: contacts.mode == 'list' || contacts.mouseGrabbed ? 0 : 1
}
+ RemoveButton {
+ id: removeContactButton
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ anchors.horizontalCenter: parent.horizontalCenter
+ opacity: (contacts.mode == 'edit' && (!contacts.mouseGrabbed || removeContactButton.state =='opened')) ? 1 : 0
+ }
ListView {
id: contactListView
anchors.left: parent.left