Make send message and insert newline shortcuts configurable
Currently both Enter and Ctrl+Enter send the message in ChatBar on desktop. This might be unexpected behavior to users coming from other chat applications (eg. WhatsApp, Telegram, Element) as those send with Enter only by default. They allow changing send to Ctrl+Enter in settings and other option is used to insert a newline. BUG: 476758
This commit is contained in:
committed by
Tobias Fella
parent
ece5e34fa2
commit
b70f73c7d6
@@ -251,20 +251,22 @@ QQC2.Control {
|
||||
}
|
||||
}
|
||||
Keys.onEnterPressed: event => {
|
||||
const controlIsPressed = event.modifiers & Qt.ControlModifier;
|
||||
if (completionMenu.visible) {
|
||||
completionMenu.complete();
|
||||
} else if (event.modifiers & Qt.ShiftModifier || Kirigami.Settings.isMobile) {
|
||||
} else if (event.modifiers & Qt.ShiftModifier || Kirigami.Settings.isMobile || NeoChatConfig.sendMessageWith === 1 && !controlIsPressed || NeoChatConfig.sendMessageWith === 0 && controlIsPressed) {
|
||||
textField.insert(cursorPosition, "\n");
|
||||
} else {
|
||||
} else if (NeoChatConfig.sendMessageWith === 0 && !controlIsPressed || NeoChatConfig.sendMessageWith === 1 && controlIsPressed) {
|
||||
_private.postMessage();
|
||||
}
|
||||
}
|
||||
Keys.onReturnPressed: event => {
|
||||
const controlIsPressed = event.modifiers & Qt.ControlModifier;
|
||||
if (completionMenu.visible) {
|
||||
completionMenu.complete();
|
||||
} else if (event.modifiers & Qt.ShiftModifier || Kirigami.Settings.isMobile) {
|
||||
} else if (event.modifiers & Qt.ShiftModifier || Kirigami.Settings.isMobile || NeoChatConfig.sendMessageWith === 1 && !controlIsPressed || NeoChatConfig.sendMessageWith === 0 && controlIsPressed) {
|
||||
textField.insert(cursorPosition, "\n");
|
||||
} else {
|
||||
} else if (NeoChatConfig.sendMessageWith === 0 && !controlIsPressed || NeoChatConfig.sendMessageWith === 1 && controlIsPressed) {
|
||||
_private.postMessage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,18 @@
|
||||
<label>Use s/text/replacement syntax to edit your last message.</label>
|
||||
<default>false</default>
|
||||
</entry>
|
||||
<entry name="SendMessageWith" type="Enum">
|
||||
<label>Key combination to send a message</label>
|
||||
<choices>
|
||||
<choice name="Enter">
|
||||
<label>Enter</label>
|
||||
</choice>
|
||||
<choice name="CtrlEnter">
|
||||
<label>Ctrl+Enter</label>
|
||||
</choice>
|
||||
<default>Enter</default>
|
||||
</choices>
|
||||
</entry>
|
||||
<entry name="ShowLocalMessagesOnRight" type="bool">
|
||||
<label>"Show your messages on the right</label>
|
||||
<default>true</default>
|
||||
|
||||
@@ -199,6 +199,32 @@ FormCard.FormCardPage {
|
||||
title: i18nc("Chat Editor", "Editor")
|
||||
}
|
||||
FormCard.FormCard {
|
||||
FormCard.FormRadioDelegate {
|
||||
text: i18nc("@option:radio", "Send messages with Enter")
|
||||
checked: NeoChatConfig.sendMessageWith === 0
|
||||
visible: !Kirigami.Settings.isMobile
|
||||
enabled: !NeoChatConfig.isSendMessageWithImmutable
|
||||
onToggled: {
|
||||
NeoChatConfig.sendMessageWith = 0
|
||||
NeoChatConfig.save()
|
||||
}
|
||||
}
|
||||
FormCard.FormRadioDelegate {
|
||||
id: sendWithEnterRadio
|
||||
text: i18nc("@option:radio", "Send messages with Ctrl+Enter")
|
||||
checked: NeoChatConfig.sendMessageWith === 1
|
||||
visible: !Kirigami.Settings.isMobile
|
||||
enabled: !NeoChatConfig.isSendMessageWithImmutable
|
||||
onToggled: {
|
||||
NeoChatConfig.sendMessageWith = 1
|
||||
NeoChatConfig.save()
|
||||
}
|
||||
}
|
||||
FormCard.FormDelegateSeparator {
|
||||
visible: !Kirigami.Settings.isMobile
|
||||
above: sendWithEnterRadio
|
||||
below: quickEditCheckbox
|
||||
}
|
||||
FormCard.FormCheckDelegate {
|
||||
id: quickEditCheckbox
|
||||
text: i18n("Use s/text/replacement syntax to edit your last message")
|
||||
|
||||
Reference in New Issue
Block a user