diff options
-rw-r--r-- | demos/declarative/contacts/Contact.qml | 69 | ||||
-rw-r--r-- | demos/declarative/contacts/ContactField.qml | 2 | ||||
-rw-r--r-- | demos/declarative/contacts/RemoveButton.qml | 6 | ||||
-rw-r--r-- | demos/declarative/contacts/contacts.qml | 22 |
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 |