qml: add signals for QEQRScanner and fallbacks, add QEBytes container type so we can pass along byte arrays between QML and python, port qr scan occurrences to new signals.
99 lines
2.7 KiB
QML
99 lines
2.7 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls
|
|
|
|
import org.electrum 1.0
|
|
|
|
import "controls"
|
|
|
|
ElDialog {
|
|
id: root
|
|
|
|
property bool valid: false
|
|
|
|
width: parent.width
|
|
height: parent.height
|
|
|
|
padding: 0
|
|
|
|
title: qsTr('Import channel backup')
|
|
iconSource: Qt.resolvedUrl('../../icons/file.png')
|
|
|
|
function verifyChannelBackup(text) {
|
|
return valid = Daemon.currentWallet.isValidChannelBackup(text)
|
|
}
|
|
|
|
onAccepted: {
|
|
Daemon.currentWallet.importChannelBackup(channelbackup_ta.text)
|
|
}
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
spacing: 0
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: constants.paddingLarge
|
|
|
|
TextArea {
|
|
id: channelbackup_ta
|
|
Layout.fillWidth: true
|
|
Layout.minimumHeight: 80
|
|
font.family: FixedFont
|
|
focus: true
|
|
wrapMode: TextEdit.WrapAnywhere
|
|
onTextChanged: verifyChannelBackup(text)
|
|
}
|
|
ColumnLayout {
|
|
ToolButton {
|
|
icon.source: '../../icons/paste.png'
|
|
icon.height: constants.iconSizeMedium
|
|
icon.width: constants.iconSizeMedium
|
|
onClicked: {
|
|
channelbackup_ta.text = AppController.clipboardToText()
|
|
}
|
|
}
|
|
ToolButton {
|
|
icon.source: '../../icons/qrcode.png'
|
|
icon.height: constants.iconSizeMedium
|
|
icon.width: constants.iconSizeMedium
|
|
scale: 1.2
|
|
onClicked: {
|
|
var dialog = app.scanDialog.createObject(app, {
|
|
hint: qsTr('Scan a channel backup')
|
|
})
|
|
dialog.onFoundText.connect(function(data) {
|
|
channelbackup_ta.text = data
|
|
dialog.close()
|
|
})
|
|
dialog.open()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
TextArea {
|
|
id: validationtext
|
|
visible: text
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: constants.paddingLarge
|
|
|
|
readOnly: true
|
|
wrapMode: TextInput.WordWrap
|
|
background: Rectangle {
|
|
color: 'transparent'
|
|
}
|
|
}
|
|
|
|
Item { Layout.preferredWidth: 1; Layout.fillHeight: true }
|
|
|
|
FlatButton {
|
|
Layout.fillWidth: true
|
|
enabled: valid
|
|
text: qsTr('Import')
|
|
onClicked: doAccept()
|
|
}
|
|
}
|
|
|
|
}
|