aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quickcontrols2/contactlist/contactlist.qml
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-11-21 15:54:55 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2016-11-22 08:05:52 +0000
commit2c6553fa5ea19e7861b31587ac879da83ebb0925 (patch)
treeaaf60a39e471312d1ed5c34875efd4f42a5936ae /examples/quickcontrols2/contactlist/contactlist.qml
parent994319a35eac6c9574068f1d37a993f587c771da (diff)
Overhaul the Contact List example - part II
Move the Edit and Remove buttons from the delegate to a context menu that is triggered on press-and-hold. Get rid of a lot of custom font sizes and hardcoded geometries. This ensures that the example looks sensible on all platforms, styles, scale factors, system fonts... Change-Id: If03f917c98b71c93be9292117116e9fa48e3e6fe Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'examples/quickcontrols2/contactlist/contactlist.qml')
-rw-r--r--examples/quickcontrols2/contactlist/contactlist.qml47
1 files changed, 42 insertions, 5 deletions
diff --git a/examples/quickcontrols2/contactlist/contactlist.qml b/examples/quickcontrols2/contactlist/contactlist.qml
index 04382407..13406fbe 100644
--- a/examples/quickcontrols2/contactlist/contactlist.qml
+++ b/examples/quickcontrols2/contactlist/contactlist.qml
@@ -54,6 +54,8 @@ import QtQuick.Controls 2.1
ApplicationWindow {
id: window
+ property int currentContact: -1
+
width: 320
height: 480
visible: true
@@ -62,19 +64,54 @@ ApplicationWindow {
ContactDialog {
id: contactDialog
onFinished: {
- if (index === -1)
+ if (currentContact === -1)
contactView.model.append(fullName, address, city, number)
else
- contactView.model.set(index, fullName, address, city, number)
+ contactView.model.set(currentContact, fullName, address, city, number)
+ }
+ }
+
+ Menu {
+ id: contactMenu
+ x: parent.width / 2 - width / 2
+ y: parent.height / 2 - height / 2
+ modal: true
+
+ Label {
+ padding: 10
+ font.bold: true
+ width: parent.width
+ horizontalAlignment: Qt.AlignHCenter
+ text: currentContact >= 0 ? contactView.model.get(currentContact).fullName : ""
+ }
+ MenuItem {
+ text: qsTr("Edit...")
+ onTriggered: contactDialog.editContact(contactView.model.get(currentContact))
+ }
+ MenuItem {
+ text: qsTr("Remove")
+ onTriggered: contactView.model.remove(currentContact)
}
}
ContactView {
id: contactView
anchors.fill: parent
+ onPressAndHold: {
+ currentContact = index
+ contactMenu.open()
+ }
+ }
- onAddContact: contactDialog.createContact()
- onEditContact: contactDialog.editContact(index, model.get(index))
- onRemoveContact: model.remove(index)
+ RoundButton {
+ text: qsTr("+")
+ highlighted: true
+ anchors.margins: 10
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ onClicked: {
+ currentContact = -1
+ contactDialog.createContact()
+ }
}
}