mirror of https://github.com/Nheko-Reborn/nheko
parent
603ff33ea6
commit
ce8246238e
@ -0,0 +1,81 @@ |
||||
// SPDX-FileCopyrightText: 2021 Nheko Contributors |
||||
// |
||||
// SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
||||
import QtQuick 2.9 |
||||
import QtQuick.Controls 2.3 |
||||
import im.nheko 1.0 |
||||
|
||||
Popup { |
||||
id: forwardMessagePopup |
||||
x: 400 |
||||
y: 400 |
||||
|
||||
width: 200 |
||||
|
||||
property var mid |
||||
|
||||
onOpened: { |
||||
completerPopup.open(); |
||||
roomTextInput.forceActiveFocus(); |
||||
} |
||||
|
||||
onClosed: { |
||||
completerPopup.close(); |
||||
} |
||||
|
||||
background: Rectangle { |
||||
border.color: "#444" |
||||
} |
||||
|
||||
function setMessageEventId(mid_in) { |
||||
mid = mid_in; |
||||
} |
||||
|
||||
MatrixTextField { |
||||
id: roomTextInput |
||||
|
||||
width: forwardMessagePopup.width - forwardMessagePopup.leftPadding * 2 |
||||
|
||||
color: colors.text |
||||
onTextEdited: { |
||||
completerPopup.completer.searchString = text; |
||||
} |
||||
Keys.onPressed: { |
||||
if (event.key == Qt.Key_Up && completerPopup.opened) { |
||||
event.accepted = true; |
||||
completerPopup.up(); |
||||
} else if (event.key == Qt.Key_Down && completerPopup.opened) { |
||||
event.accepted = true; |
||||
completerPopup.down(); |
||||
} else if (event.matches(StandardKey.InsertParagraphSeparator)) { |
||||
completerPopup.finishCompletion(); |
||||
event.accepted = true; |
||||
} |
||||
} |
||||
} |
||||
|
||||
Completer { |
||||
id: completerPopup |
||||
|
||||
y: roomTextInput.height + roomTextInput.bottomPadding |
||||
width: forwardMessagePopup.width - forwardMessagePopup.leftPadding * 2 |
||||
completerName: "room" |
||||
avatarHeight: 24 |
||||
avatarWidth: 24 |
||||
bottomToTop: false |
||||
closePolicy: Popup.NoAutoClose |
||||
} |
||||
|
||||
Connections { |
||||
onCompletionSelected: { |
||||
TimelineManager.timeline.forwardMessage(messageContextMenu.eventId, id); |
||||
forwardMessagePopup.close(); |
||||
} |
||||
onCountChanged: { |
||||
if (completerPopup.count > 0 && (completerPopup.currentIndex < 0 || completerPopup.currentIndex >= completerPopup.count)) |
||||
completerPopup.currentIndex = 0; |
||||
} |
||||
target: completerPopup |
||||
} |
||||
} |
Loading…
Reference in new issue