aboutsummaryrefslogtreecommitdiff
path: root/qml/SettingsPage.qml
diff options
context:
space:
mode:
authorMiquel Lionel <lionel@les-miquelots.net>2021-11-20 13:07:17 +0100
committerMiquel Lionel <lionel@les-miquelots.net>2021-11-20 13:15:21 +0100
commitb51a3e81dd2178c681226458ca4bb73ae98a5e34 (patch)
tree5a46cd966b7d3cbb7ae10664b367ed62da170858 /qml/SettingsPage.qml
parent3a23720bd8390fc96efdccfe65f27389672155c4 (diff)
downloadkdeltachat-b51a3e81dd2178c681226458ca4bb73ae98a5e34.tar.gz
kdeltachat-b51a3e81dd2178c681226458ca4bb73ae98a5e34.zip
You can unblock people now and some small fixes
- the chatlist is now properly updated on blocking a contact request or contact. - A small message is now displayed after blocking a contact request - A list of blocked contact can be found on the settings page, after clicking 'View blocked users' - The message timestamp is now slightly padded
Diffstat (limited to 'qml/SettingsPage.qml')
-rw-r--r--qml/SettingsPage.qml63
1 files changed, 62 insertions, 1 deletions
diff --git a/qml/SettingsPage.qml b/qml/SettingsPage.qml
index c963162..4d89ebc 100644
--- a/qml/SettingsPage.qml
+++ b/qml/SettingsPage.qml
@@ -9,6 +9,7 @@ Kirigami.ScrollablePage {
id: root
required property DcContext context
+ property int bannedListHeight: 0
title: "Settings"
@@ -20,6 +21,10 @@ Kirigami.ScrollablePage {
source: "file:" + root.context.getConfig("selfavatar")
}
+ ListModel {
+ id: bannedList
+ }
+
FileDialog {
id: changePfpDialog
@@ -42,7 +47,7 @@ Kirigami.ScrollablePage {
text: "Change avatar"
icon.name: "avatar-default"
hoverEnabled: true
- anchors.horizontalCenter: pfp.horizontalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
onClicked: changePfpDialog.open()
}
@@ -110,8 +115,64 @@ Kirigami.ScrollablePage {
onToggled: root.context.setConfig("mvbox_move", checked ? "1" : "0")
}
+ Button {
+ id: blockedUsers
+ text: "View blocked users"
+ icon.name: "avatar-default"
+ hoverEnabled: true
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ bannedList.clear()
+ let banListObj = root.context.getBlockedContacts()
+ for (var addr in banListObj){
+ let chatId = banListObj[addr]
+ console.log("Chat ID " + chatId + " is " + addr)
+ bannedList.append({"email": addr, "bannedContactId": chatId});
+ }
+ bannedListHeight = 0
+ }
+ }
+
+ Rectangle {
+ id: listContainer
+ height: bannedListHeight
+ Layout.preferredHeight: height
+ radius: 10
+ data: ListView {
+ id: blocked
+ currentIndex: -1
+ anchors.fill: parent
+ model: bannedList
+ delegate: RowLayout {
+
+ Button {
+ id: unblockBtn
+ text: "X"
+ ToolTip.text: "Click to unblock"
+ ToolTip.visible: hovered
+ hoverEnabled: true
+ onClicked: {
+ root.context.blockContact(bannedContactId, 0);
+ console.log("Unblocking " + email + "(contact id "+ bannedContactId + ")")
+ blockedUsers.clicked();
+ updateChatlist()
+ }
+ }
+
+ TextEdit {
+ selectByMouse: true
+ readOnly: true
+ text: email
+ padding: 4
+ }
+ Component.onCompleted: bannedListHeight += height
+ }
+ }
+ }
+
ComboBox {
Kirigami.FormData.label: "Show classic emails: "
+ Layout.preferredWidth: 250
textRole: "text"
currentIndex: root.context.getConfig("show_emails")
onActivated: root.context.setConfig("show_emails", currentIndex)