5 changed files with 108 additions and 1 deletions
@ -0,0 +1,100 @@ |
|||||||
|
import QtQuick 2.6 |
||||||
|
import QtQuick.Layouts 1.0 |
||||||
|
import QtQuick.Controls 2.1 |
||||||
|
|
||||||
|
import org.electrum 1.0 |
||||||
|
|
||||||
|
import "../controls" |
||||||
|
|
||||||
|
WizardComponent { |
||||||
|
id: root |
||||||
|
|
||||||
|
valid: true |
||||||
|
|
||||||
|
property int participants: 2 |
||||||
|
property int signatures: 2 |
||||||
|
|
||||||
|
onParticipantsChanged: { |
||||||
|
if (participants < signatures) |
||||||
|
signatures = participants |
||||||
|
piechart.updateSlices() |
||||||
|
} |
||||||
|
onSignaturesChanged: { |
||||||
|
piechart.updateSlices() |
||||||
|
} |
||||||
|
|
||||||
|
function apply() { |
||||||
|
wizard_data['multisig_participants'] = participants |
||||||
|
wizard_data['multisig_signatures'] = signatures |
||||||
|
} |
||||||
|
|
||||||
|
ColumnLayout { |
||||||
|
width: parent.width |
||||||
|
|
||||||
|
Label { text: qsTr('Multisig wallet') } |
||||||
|
|
||||||
|
InfoTextArea { |
||||||
|
Layout.preferredWidth: parent.width |
||||||
|
text: qsTr('Choose the number of participants, and the number of signatures needed to unlock funds in your wallet.') |
||||||
|
} |
||||||
|
|
||||||
|
Piechart { |
||||||
|
id: piechart |
||||||
|
Layout.preferredWidth: parent.width * 1/2 |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
Layout.preferredHeight: 200 // TODO |
||||||
|
showLegend: false |
||||||
|
innerOffset: 3 |
||||||
|
function updateSlices() { |
||||||
|
var s = [] |
||||||
|
for (let i=0; i < participants; i++) { |
||||||
|
var item = { |
||||||
|
v: (1/participants), |
||||||
|
color: i < signatures ? constants.colorPiechartSignature : constants.colorPiechartParticipant |
||||||
|
} |
||||||
|
s.push(item) |
||||||
|
} |
||||||
|
piechart.slices = s |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Number of cosigners: %1').arg(participants) |
||||||
|
} |
||||||
|
|
||||||
|
Slider { |
||||||
|
id: participants_slider |
||||||
|
Layout.preferredWidth: parent.width * 4/5 |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
snapMode: Slider.SnapAlways |
||||||
|
stepSize: 1 |
||||||
|
from: 2 |
||||||
|
to: 15 |
||||||
|
onValueChanged: { |
||||||
|
if (activeFocus) |
||||||
|
participants = value |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Number of signatures: %1').arg(signatures) |
||||||
|
} |
||||||
|
|
||||||
|
Slider { |
||||||
|
id: signatures_slider |
||||||
|
Layout.preferredWidth: parent.width * 4/5 |
||||||
|
Layout.alignment: Qt.AlignHCenter |
||||||
|
snapMode: Slider.SnapAlways |
||||||
|
stepSize: 1 |
||||||
|
from: 1 |
||||||
|
to: participants |
||||||
|
onValueChanged: { |
||||||
|
if (activeFocus) |
||||||
|
signatures = value |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Component.onCompleted: piechart.updateSlices() |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue