94 lines
2.7 KiB
QML
94 lines
2.7 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Layouts 1.0
|
|
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Components 0.1
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
import utils 1.0
|
|
|
|
StatusRadioButton {
|
|
id: gasRectangle
|
|
|
|
property string primaryText: qsTr("Low")
|
|
property string gasLimit
|
|
property string defaultCurrency: "USD"
|
|
property double price: 1
|
|
property var getGasEthValue: function () {}
|
|
property var getFiatValue: function () {}
|
|
|
|
function formatDec(num, dec){
|
|
return Math.round((num + Number.EPSILON) * Math.pow(10, dec)) / Math.pow(10, dec)
|
|
}
|
|
|
|
QtObject {
|
|
id: d
|
|
property double fiatValue: getFiatValue(ethValue, "ETH", defaultCurrency)
|
|
property double ethValue: {
|
|
if (!gasLimit) {
|
|
return 0
|
|
}
|
|
return formatDec(parseFloat(getGasEthValue(gasRectangle.price, gasLimit)), 6)
|
|
}
|
|
}
|
|
|
|
width: contentItem.implicitWidth
|
|
|
|
// To-do Use StatusCard instead. It crashes if I use StatusCard and
|
|
// already spent 2 days on this, so leaving it out for now
|
|
contentItem: Rectangle {
|
|
id: card
|
|
|
|
implicitHeight: 76
|
|
implicitWidth: 128
|
|
|
|
radius: 8
|
|
color: gasRectangle.checked || mouseArea.containsMouse ? "transparent": Theme.palette.baseColor4
|
|
border.color: gasRectangle.checked || mouseArea.containsMouse ? Theme.palette.primaryColor2: Theme.palette.baseColor4
|
|
|
|
ColumnLayout {
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.top: parent.top
|
|
anchors.leftMargin: 8
|
|
anchors.rightMargin: 8
|
|
anchors.topMargin: 8
|
|
StatusBaseText {
|
|
id: primaryText
|
|
font.pixelSize: 15
|
|
font.weight: Font.Medium
|
|
elide: Text.ElideRight
|
|
text: gasRectangle.primaryText
|
|
color: Theme.palette.directColor1
|
|
}
|
|
StatusBaseText {
|
|
id: secondaryLabel
|
|
font.pixelSize: 13
|
|
font.weight: Font.Medium
|
|
text: d.ethValue + " ETH"
|
|
color: Theme.palette.primaryColor1
|
|
}
|
|
StatusBaseText {
|
|
id: tertiaryText
|
|
font.pixelSize: 10
|
|
text: d.fiatValue + " " + gasRectangle.defaultCurrency.toUpperCase()
|
|
color: Theme.palette.directColor5
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
id: mouseArea
|
|
anchors.fill: parent
|
|
cursorShape: Qt.PointingHandCursor
|
|
hoverEnabled: true
|
|
onClicked: gasRectangle.toggle()
|
|
}
|
|
}
|
|
|
|
indicator: Item {
|
|
width:card.width
|
|
height: card.height
|
|
}
|
|
}
|