Preview/confirm popup for clipboard pasting

This commit is contained in:
miruka 2020-07-16 15:59:54 -04:00
parent 6365beb455
commit bceafd7bbd
2 changed files with 81 additions and 2 deletions

View File

@ -161,8 +161,13 @@ HTextArea {
} }
} }
onCustomImagePaste: py.callClientCoro( onCustomImagePaste: utils.makePopup(
writingUserId, "send_clipboard_image", [chat.roomId, Clipboard.image], "Popups/ConfirmClipboardUploadPopup.qml",
{
userId: chat.userId,
roomId: chat.roomId,
roomName: chat.roomInfo.display_name,
},
) )
Keys.onEscapePressed: clearReplyTo() Keys.onEscapePressed: clearReplyTo()

View File

@ -0,0 +1,74 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import Clipboard 0.1
import "../Base"
import "../Base/Buttons"
HColumnPopup {
id: popup
property string userId
property string roomId
property string roomName
page.footer: AutoDirectionLayout {
ApplyButton {
id: uploadButton
text: qsTr("Send")
icon.name: "confirm-uploading-file"
onClicked: {
py.callClientCoro(
popup.userId,
"send_clipboard_image",
[popup.roomId, Clipboard.image],
)
popup.close()
}
}
CancelButton {
id: cancelButton
onClicked: popup.close()
}
}
onOpened: uploadButton.forceActiveFocus()
SummaryLabel {
text:
qsTr("Send copied image to %1?")
.arg(utils.htmlColorize(roomName, theme.colors.accentText))
textFormat: Text.StyledText
}
HImage {
id: image
property int updateCounter: 0
source: "image://clipboard/" + updateCounter
fillMode: Image.PreserveAspectFit
Layout.fillWidth: true
Layout.fillHeight: true
Layout.preferredHeight: // TODO: loading spinner?
status === Image.Ready ?
width / (implicitWidth / implicitHeight) :
0
Behavior on Layout.preferredHeight { HNumberAnimation {} }
Connections {
target: Clipboard
function onContentChanged() {
Clipboard.hasImage ? image.updateCounter += 1 : popup.close()
}
}
}
}