From f6b5b24d64813f915fa05517ae9e5a19273669bf Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Wed, 24 Feb 2021 23:51:05 +0100 Subject: Allow editing via up and down arrows --- resources/qml/MessageInput.qml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'resources/qml/MessageInput.qml') diff --git a/resources/qml/MessageInput.qml b/resources/qml/MessageInput.qml index c855ef90..9bb01471 100644 --- a/resources/qml/MessageInput.qml +++ b/resources/qml/MessageInput.qml @@ -209,6 +209,39 @@ Rectangle { } else if (event.key == Qt.Key_Down && popup.opened) { event.accepted = true; popup.down(); + } else if (event.key == Qt.Key_Up) { + if (cursorPosition == 0) { + event.accepted = true; + var idx = TimelineManager.timeline.edit ? TimelineManager.timeline.idToIndex(TimelineManager.timeline.edit) + 1 : 0; + while (true) { + var id = TimelineManager.timeline.indexToId(idx); + if (!id || TimelineManager.timeline.getDump(id, "").isEditable) { + TimelineManager.timeline.edit = id; + cursorPosition = 0; + break; + } + idx++; + } + } else if (cursorPosition == messageInput.length) { + event.accepted = true; + cursorPosition = 0; + } + } else if (event.key == Qt.Key_Down) { + if (cursorPosition == 0) { + event.accepted = true; + cursorPosition = messageInput.length; + } else if (cursorPosition == messageInput.length && TimelineManager.timeline.edit) { + event.accepted = true; + var idx = TimelineManager.timeline.idToIndex(TimelineManager.timeline.edit) - 1; + while (true) { + var id = TimelineManager.timeline.indexToId(idx); + if (!id || TimelineManager.timeline.getDump(id, "").isEditable) { + TimelineManager.timeline.edit = id; + break; + } + idx--; + } + } } } background: null -- cgit 1.5.1