diff --git a/src/chatbar/ChatBar.qml b/src/chatbar/ChatBar.qml
index 7220d30a0..1161528b9 100644
--- a/src/chatbar/ChatBar.qml
+++ b/src/chatbar/ChatBar.qml
@@ -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();
}
}
diff --git a/src/neochatconfig.kcfg b/src/neochatconfig.kcfg
index b82e57d9a..867e4dfcc 100644
--- a/src/neochatconfig.kcfg
+++ b/src/neochatconfig.kcfg
@@ -27,6 +27,18 @@
false
+
+
+
+
+
+
+
+
+
+ Enter
+
+
true
diff --git a/src/settings/NeoChatGeneralPage.qml b/src/settings/NeoChatGeneralPage.qml
index d58ad9ffd..c38db8601 100644
--- a/src/settings/NeoChatGeneralPage.qml
+++ b/src/settings/NeoChatGeneralPage.qml
@@ -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")