Preview/confirm popup for clipboard pasting
This commit is contained in:
parent
6365beb455
commit
bceafd7bbd
|
@ -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()
|
||||||
|
|
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