Preview/confirm popup for clipboard pasting
This commit is contained in:
parent
6365beb455
commit
bceafd7bbd
|
@ -161,8 +161,13 @@ HTextArea {
|
|||
}
|
||||
}
|
||||
|
||||
onCustomImagePaste: py.callClientCoro(
|
||||
writingUserId, "send_clipboard_image", [chat.roomId, Clipboard.image],
|
||||
onCustomImagePaste: utils.makePopup(
|
||||
"Popups/ConfirmClipboardUploadPopup.qml",
|
||||
{
|
||||
userId: chat.userId,
|
||||
roomId: chat.roomId,
|
||||
roomName: chat.roomInfo.display_name,
|
||||
},
|
||||
)
|
||||
|
||||
Keys.onEscapePressed: clearReplyTo()
|
||||
|
|
74
src/gui/Popups/ConfirmClipboardUploadPopup.qml
Normal file
74
src/gui/Popups/ConfirmClipboardUploadPopup.qml
Normal 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user