diff options
author | Miquel Lionel <lionel@les-miquelots.net> | 2021-12-20 21:10:36 +0100 |
---|---|---|
committer | Miquel Lionel <lionel@les-miquelots.net> | 2021-12-20 21:28:08 +0100 |
commit | 96555dfc65034c46578309f39ae0f754e1acb0f8 (patch) | |
tree | 1670bcb917b12c71b8596647067a5f30802ea6f6 | |
parent | b51a3e81dd2178c681226458ca4bb73ae98a5e34 (diff) | |
download | kdeltachat-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.qml | 4 | ||||
-rw-r--r-- | qml/ChatlistPage.qml | 1 | ||||
-rw-r--r-- | qml/ComposePane.qml | 33 | ||||
-rw-r--r-- | qml/main.qml | 4 |
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 |