aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiquel Lionel <lionel@les-miquelots.net>2021-12-20 21:10:36 +0100
committerMiquel Lionel <lionel@les-miquelots.net>2021-12-20 21:28:08 +0100
commit96555dfc65034c46578309f39ae0f754e1acb0f8 (patch)
tree1670bcb917b12c71b8596647067a5f30802ea6f6
parentb51a3e81dd2178c681226458ca4bb73ae98a5e34 (diff)
downloadkdeltachat-96555dfc65034c46578309f39ae0f754e1acb0f8.tar.gz
kdeltachat-96555dfc65034c46578309f39ae0f754e1acb0f8.zip
Less clicks: focus compose pane on chat selection.
- Also we now use Enter to send chat, and Ctrl/Shift+Enter to add newlines. Updated the F1 help accordingly. - there was no way to refresh the message list until you clicked on the chat again, so I moved updateMessagelist() to trigger on every incoming message. We have working block mechanisms now, so it shouldn't be that much of a bother if someone spams you. - To speed up the delay between the UI displaying the message has waiting to be sent, upon sending a message, the startIo() function is now triggered.
-rw-r--r--qml/ChatPage.qml4
-rw-r--r--qml/ChatlistPage.qml1
-rw-r--r--qml/ComposePane.qml33
-rw-r--r--qml/main.qml4
4 files changed, 23 insertions, 19 deletions
diff --git a/qml/ChatPage.qml b/qml/ChatPage.qml
index fb99eeb..b830bc0 100644
--- a/qml/ChatPage.qml
+++ b/qml/ChatPage.qml
@@ -54,10 +54,8 @@ Kirigami.ScrollablePage {
}
function onIncomingMessage(accountId, chatId, msgId) {
+ updateMessagelist();
console.log("Incoming message for chat " + chatId);
- if (chatId == root.chatId)
- root.updateMessagelist();
-
}
function onMessagesChanged(accountId, chatId, msgId) {
diff --git a/qml/ChatlistPage.qml b/qml/ChatlistPage.qml
index 42ceb64..d7e66ae 100644
--- a/qml/ChatlistPage.qml
+++ b/qml/ChatlistPage.qml
@@ -89,6 +89,7 @@ Kirigami.ScrollablePage {
title: qsTr("Chats")
Component.onCompleted: {
+ dcAccounts.startIo();
updateChatlist();
}
contextualActions: [
diff --git a/qml/ComposePane.qml b/qml/ComposePane.qml
index 254e484..14bfb36 100644
--- a/qml/ComposePane.qml
+++ b/qml/ComposePane.qml
@@ -82,6 +82,20 @@ Pane {
placeholderText: qsTr("Message")
wrapMode: TextArea.Wrap
selectByMouse: true
+ Keys.onReturnPressed: {
+ if (event.key === Qt.Key_Return) {
+ if (event.modifiers & (Qt.ControlModifier | Qt.ShiftModifier)){
+ messageField.append("");
+ } else {
+ if(sendButton.enabled){
+ sendButton.clicked();
+ dcAccounts.startIo();
+ event.accepted = true;
+ }
+ }
+ }
+ }
+
Component.onCompleted: {
let draft = root.context.getDraft(chatId);
if (draft)
@@ -118,22 +132,9 @@ Pane {
Button {
id: sendButton
- action: Kirigami.Action {
- checked: false
- shortcut: "Ctrl+S"
- onTriggered:{
- if (sendButton.enabled) {
- root.focus = true;
- sendButton.focus = true;
- sendButton.down = true;
- sendButton.clicked();
- sendButton.down = false;
- }
- }
- }
hoverEnabled: true
ToolTip.visible: hovered
- ToolTip.text: "Ctrl+S"
+ ToolTip.text: "Press Enter"
visible: root.canSend
Layout.alignment: Qt.AlignBottom
icon.name: "document-send"
@@ -145,6 +146,7 @@ Pane {
attachFileUrl = "";
messageField.text = "";
root.context.setDraft(chatId, null);
+ messageField.forceActiveFocus();
}
}
@@ -192,4 +194,7 @@ Pane {
}
}
+ Component.onCompleted : {
+ messageField.forceActiveFocus();
+ }
}
diff --git a/qml/main.qml b/qml/main.qml
index 34e94e8..f254274 100644
--- a/qml/main.qml
+++ b/qml/main.qml
@@ -125,7 +125,7 @@ Kirigami.ApplicationWindow {
focus: true
anchors.centerIn: parent
width: 200
- height: 200
+ height: 230
padding: 10
contentChildren: [
Text {
@@ -135,7 +135,7 @@ Kirigami.ApplicationWindow {
font.pixelSize: 14
},
Text {
- text: "<b>F1</b>: Displays this" + "<br><b>F2</b>: Work on/offline" + "<br><b>F5</b>: Network check" + "<br><b>Shift+Tab</b>: Account settings" + "<br><b>Alt+C</b>: Clear search" + "<br><b>Alt+Tab</b>: Switch accounts" + "<br><b>Ctrl+F</b>: Search contacts" + "<br><b>Ctrl+N</b>: New chat" + "<br><b>Ctrl+S</b>: Send message" + "<br><b>Ctrl+Tab</b>: Show sidebar" + "<br><b>Ctrl+Q</b>: Quit"
+ text: "<b>F1</b>: Displays this" + "<br><b>F2</b>: Work on/offline" + "<br><b>F5</b>: Network check" + "<br><b>Shift+Tab</b>: Account settings" + "<br><b>Alt+C</b>: Clear search" + "<br><b>Alt+Tab</b>: Switch accounts" + "<br><b>Ctrl+F</b>: Search contacts" + "<br><b>Ctrl+N</b>: New chat" + "<br><b>Enter</b>: Send message" + "<br><b>Shift/Ctrl+Enter</b>: Add <br>newline" + "<br><b>Ctrl+Tab</b>: Show sidebar" + "<br><b>Ctrl+Q</b>: Quit"
topPadding: 20
leftPadding: 10
bottomPadding: 20