aboutsummaryrefslogtreecommitdiff
path: root/qml/NewChatPage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'qml/NewChatPage.qml')
-rw-r--r--qml/NewChatPage.qml96
1 files changed, 49 insertions, 47 deletions
diff --git a/qml/NewChatPage.qml b/qml/NewChatPage.qml
index aee1393..482b89f 100644
--- a/qml/NewChatPage.qml
+++ b/qml/NewChatPage.qml
@@ -1,39 +1,29 @@
+import DeltaChat 1.0
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import org.kde.kirigami 2.13 as Kirigami
-import DeltaChat 1.0
-
Kirigami.ScrollablePage {
id: root
- title: "New chat"
-
required property DcContext context
function updateContacts() {
let contacts = context.getContacts(0, searchField.text);
-
- contactsModel.clear()
+ contactsModel.clear();
for (let i = 0; i < contacts.length; i++) {
- let contactId = contacts[i]
-
+ let contactId = contacts[i];
const item = {
- contactId: contactId
- }
- contactsModel.insert(i, item)
+ "contactId": contactId
+ };
+ contactsModel.insert(i, item);
}
}
+ title: "New chat"
Component.onCompleted: {
- root.updateContacts()
- }
-
- header: Kirigami.SearchField {
- id: searchField
-
- onTextChanged: root.updateContacts()
+ root.updateContacts();
}
ListModel {
@@ -46,6 +36,38 @@ Kirigami.ScrollablePage {
anchors.fill: parent
model: contactsModel
currentIndex: -1
+ onCurrentItemChanged: {
+ if (currentIndex == -1)
+ return ;
+
+ let contactId = contactsModel.get(contactsList.currentIndex).contactId;
+ console.log("Creating chat with " + contactId);
+ context.createChatByContactId(contactId);
+ pageStack.layers.pop();
+ }
+
+ Kirigami.PlaceholderMessage {
+ anchors.centerIn: parent
+ visible: contactsList.count == 0 && searchField.text == ""
+ text: "You have no contacts in addressbook yet"
+ }
+
+ Kirigami.PlaceholderMessage {
+ anchors.centerIn: parent
+ visible: contactsList.count == 0 && searchField.text != ""
+ text: "Contact " + searchField.text + " is not in your address book."
+
+ helpfulAction: Kirigami.Action {
+ icon.name: "list-add"
+ text: "Add contact"
+ onTriggered: {
+ let contactId = root.context.createContact("", searchField.text);
+ context.createChatByContactId(contactId);
+ pageStack.layers.pop();
+ }
+ }
+
+ }
delegate: Kirigami.AbstractListItem {
property DcContact contact: context.getContact(model.contactId)
@@ -60,51 +82,31 @@ Kirigami.ScrollablePage {
ColumnLayout {
Layout.fillWidth: true
+
Label {
text: contact.displayName
font.weight: Font.Bold
Layout.fillWidth: true
}
+
Label {
text: contact.addr
font: Kirigami.Theme.smallFont
Layout.fillWidth: true
}
- }
- }
- }
-
- Kirigami.PlaceholderMessage {
- anchors.centerIn: parent
- visible: contactsList.count == 0 && searchField.text == ""
- text: "You have no contacts in addressbook yet"
- }
- Kirigami.PlaceholderMessage {
- anchors.centerIn: parent
- visible: contactsList.count == 0 && searchField.text != ""
- helpfulAction: Kirigami.Action {
- icon.name: "list-add"
- text: "Add contact"
- onTriggered: {
- let contactId = root.context.createContact("", searchField.text)
- context.createChatByContactId(contactId);
- pageStack.layers.pop();
}
+
}
- text: "Contact " + searchField.text + " is not in your address book."
+
}
- onCurrentItemChanged: {
- if (currentIndex == -1) {
- return;
- }
+ }
- let contactId = contactsModel.get(contactsList.currentIndex).contactId;
+ header: Kirigami.SearchField {
+ id: searchField
- console.log("Creating chat with " + contactId);
- context.createChatByContactId(contactId);
- pageStack.layers.pop();
- }
+ onTextChanged: root.updateContacts()
}
+
}