6 changed files with 278 additions and 322 deletions
@ -0,0 +1,121 @@ |
|||||||
|
import QtQuick |
||||||
|
import QtQuick.Layouts |
||||||
|
import QtQuick.Controls |
||||||
|
import QtQuick.Controls.Material |
||||||
|
|
||||||
|
import org.electrum 1.0 |
||||||
|
|
||||||
|
Item { |
||||||
|
id: root |
||||||
|
|
||||||
|
required property QtObject finalizer |
||||||
|
|
||||||
|
default property alias additionalItems: rootLayout.children |
||||||
|
|
||||||
|
property string targetLabel: qsTr('Target') |
||||||
|
property string feeLabel: qsTr('Mining fee') |
||||||
|
property string feeRateLabel: qsTr('Fee rate') |
||||||
|
|
||||||
|
property bool showTxInfo: true |
||||||
|
property bool showPicker: true |
||||||
|
|
||||||
|
implicitHeight: rootLayout.height |
||||||
|
|
||||||
|
GridLayout { |
||||||
|
id: rootLayout |
||||||
|
width: parent.width |
||||||
|
columns: 2 |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 1 |
||||||
|
text: feeLabel |
||||||
|
color: Material.accentColor |
||||||
|
visible: showTxInfo |
||||||
|
} |
||||||
|
|
||||||
|
FormattedAmount { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 2 |
||||||
|
amount: finalizer.fee |
||||||
|
valid: finalizer.valid |
||||||
|
visible: showTxInfo |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 1 |
||||||
|
text: feeRateLabel |
||||||
|
color: Material.accentColor |
||||||
|
visible: showTxInfo |
||||||
|
} |
||||||
|
|
||||||
|
RowLayout { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 2 |
||||||
|
visible: showTxInfo |
||||||
|
Label { |
||||||
|
id: feeRate |
||||||
|
text: finalizer.valid ? finalizer.feeRate : '' |
||||||
|
font.family: FixedFont |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.fillWidth: true |
||||||
|
text: finalizer.valid ? UI_UNIT_NAME.FEERATE_SAT_PER_VBYTE : '' |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 1 |
||||||
|
text: targetLabel |
||||||
|
color: Material.accentColor |
||||||
|
visible: showPicker |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.preferredWidth: 2 |
||||||
|
text: finalizer.target |
||||||
|
visible: showPicker |
||||||
|
} |
||||||
|
|
||||||
|
RowLayout { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
Layout.fillWidth: true |
||||||
|
visible: showPicker |
||||||
|
|
||||||
|
Slider { |
||||||
|
id: feeslider |
||||||
|
Layout.fillWidth: true |
||||||
|
leftPadding: constants.paddingMedium |
||||||
|
|
||||||
|
snapMode: Slider.SnapOnRelease |
||||||
|
stepSize: 1 |
||||||
|
from: 0 |
||||||
|
to: finalizer.sliderSteps |
||||||
|
|
||||||
|
onValueChanged: { |
||||||
|
if (activeFocus) |
||||||
|
finalizer.sliderPos = value |
||||||
|
} |
||||||
|
Component.onCompleted: { |
||||||
|
value = finalizer.sliderPos |
||||||
|
} |
||||||
|
Connections { |
||||||
|
target: finalizer |
||||||
|
function onSliderPosChanged() { |
||||||
|
feeslider.value = finalizer.sliderPos |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
FeeMethodComboBox { |
||||||
|
id: target |
||||||
|
feeslider: finalizer |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue