4 changed files with 171 additions and 25 deletions
@ -0,0 +1,124 @@ |
|||||||
|
import QtQuick 2.6 |
||||||
|
import QtQuick.Layouts 1.0 |
||||||
|
import QtQuick.Controls 2.14 |
||||||
|
import QtQuick.Controls.Material 2.0 |
||||||
|
|
||||||
|
import org.electrum 1.0 |
||||||
|
|
||||||
|
import "controls" |
||||||
|
|
||||||
|
ElDialog { |
||||||
|
id: dialog |
||||||
|
|
||||||
|
required property QtObject swaphelper |
||||||
|
|
||||||
|
width: parent.width |
||||||
|
height: parent.height |
||||||
|
|
||||||
|
title: swaphelper.isReverse |
||||||
|
? qsTr('Reverse swap...') |
||||||
|
: qsTr('Swap...') |
||||||
|
|
||||||
|
modal: true |
||||||
|
parent: Overlay.overlay |
||||||
|
Overlay.modal: Rectangle { |
||||||
|
color: "#aa000000" |
||||||
|
} |
||||||
|
|
||||||
|
Item { |
||||||
|
id: s |
||||||
|
state: '' |
||||||
|
states: [ |
||||||
|
State { |
||||||
|
name: '' |
||||||
|
}, |
||||||
|
State { |
||||||
|
name: 'success' |
||||||
|
PropertyChanges { target: spinner; running: false } |
||||||
|
PropertyChanges { target: helpText; text: qsTr('Success') } |
||||||
|
PropertyChanges { target: icon; source: '../../icons/confirmed.png' } |
||||||
|
}, |
||||||
|
State { |
||||||
|
name: 'failed' |
||||||
|
PropertyChanges { target: spinner; running: false } |
||||||
|
PropertyChanges { target: helpText; text: qsTr('Failed') } |
||||||
|
PropertyChanges { target: errorText; visible: true } |
||||||
|
PropertyChanges { target: icon; source: '../../icons/warning.png' } |
||||||
|
} |
||||||
|
] |
||||||
|
transitions: [ |
||||||
|
Transition { |
||||||
|
from: '' |
||||||
|
to: 'success' |
||||||
|
PropertyAnimation { target: helpText; properties: 'text'; duration: 0} |
||||||
|
NumberAnimation { target: icon; properties: 'opacity'; from: 0; to: 1; duration: 200 } |
||||||
|
NumberAnimation { target: icon; properties: 'scale'; from: 0; to: 1; duration: 500 |
||||||
|
easing.type: Easing.OutBack |
||||||
|
easing.overshoot: 10 |
||||||
|
} |
||||||
|
}, |
||||||
|
Transition { |
||||||
|
from: '' |
||||||
|
to: 'failed' |
||||||
|
PropertyAnimation { target: helpText; properties: 'text'; duration: 0} |
||||||
|
NumberAnimation { target: icon; properties: 'opacity'; from: 0; to: 1; duration: 500 } |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
|
||||||
|
ColumnLayout { |
||||||
|
id: content |
||||||
|
anchors.centerIn: parent |
||||||
|
width: parent.width |
||||||
|
|
||||||
|
Item { |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
Layout.preferredWidth: constants.iconSizeXXLarge |
||||||
|
Layout.preferredHeight: constants.iconSizeXXLarge |
||||||
|
|
||||||
|
BusyIndicator { |
||||||
|
id: spinner |
||||||
|
visible: s.state == '' |
||||||
|
width: constants.iconSizeXXLarge |
||||||
|
height: constants.iconSizeXXLarge |
||||||
|
} |
||||||
|
|
||||||
|
Image { |
||||||
|
id: icon |
||||||
|
width: constants.iconSizeXXLarge |
||||||
|
height: constants.iconSizeXXLarge |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
id: helpText |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
text: qsTr('Performing swap...') |
||||||
|
font.pixelSize: constants.fontSizeXXLarge |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
id: errorText |
||||||
|
Layout.preferredWidth: parent.width |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
horizontalAlignment: Text.AlignHCenter |
||||||
|
wrapMode: Text.Wrap |
||||||
|
font.pixelSize: constants.fontSizeLarge |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Connections { |
||||||
|
target: swaphelper |
||||||
|
function onSwapSuccess() { |
||||||
|
console.log('swap succeeded!') |
||||||
|
s.state = 'success' |
||||||
|
} |
||||||
|
function onSwapFailed(message) { |
||||||
|
console.log('swap failed: ' + message) |
||||||
|
s.state = 'failed' |
||||||
|
if (message) |
||||||
|
errorText.text = message |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue