Files
pallectrum/electrum/gui/qml/components/controls/InfoTextArea.qml

79 lines
2.9 KiB
QML
Raw Normal View History

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Controls.Material
2023-02-10 14:11:31 +01:00
TextHighlightPane {
enum IconStyle {
None,
Info,
Warn,
Error,
Progress,
Pending,
Done,
Spinner
}
2022-10-19 14:15:24 +02:00
property alias text: infotext.text
property int iconStyle: InfoTextArea.IconStyle.Info
property alias textFormat: infotext.textFormat
2023-05-12 15:31:06 +02:00
property bool compact: false
2023-02-10 14:11:31 +01:00
borderColor: iconStyle == InfoTextArea.IconStyle.Info
? constants.colorInfo
: iconStyle == InfoTextArea.IconStyle.Warn
? constants.colorWarning
: iconStyle == InfoTextArea.IconStyle.Error
? constants.colorError
: iconStyle == InfoTextArea.IconStyle.Progress || iconStyle == InfoTextArea.IconStyle.Spinner
? constants.colorProgress
: iconStyle == InfoTextArea.IconStyle.Done
? constants.colorDone
: constants.colorInfo
2023-05-12 15:31:06 +02:00
padding: compact ? constants.paddingMedium : constants.paddingXLarge
2023-02-10 14:11:31 +01:00
RowLayout {
2022-10-19 14:15:24 +02:00
width: parent.width
2023-05-12 15:31:06 +02:00
spacing: compact ? constants.paddingMedium : constants.paddingLarge
2023-02-10 14:11:31 +01:00
Image {
2023-05-12 15:31:06 +02:00
Layout.preferredWidth: compact ? constants.iconSizeSmall : constants.iconSizeMedium
Layout.preferredHeight: compact ? constants.iconSizeSmall : constants.iconSizeMedium
2023-04-24 12:38:41 +02:00
visible: iconStyle != InfoTextArea.IconStyle.Spinner && iconStyle != InfoTextArea.IconStyle.None
2023-02-10 14:11:31 +01:00
source: iconStyle == InfoTextArea.IconStyle.Info
? "../../../icons/info.png"
: iconStyle == InfoTextArea.IconStyle.Warn
? "../../../icons/warning.png"
: iconStyle == InfoTextArea.IconStyle.Error
? "../../../icons/expired.png"
: iconStyle == InfoTextArea.IconStyle.Progress
? "../../../icons/unconfirmed.png"
: iconStyle == InfoTextArea.IconStyle.Pending
? "../../../icons/unpaid.png"
: iconStyle == InfoTextArea.IconStyle.Done
? "../../../icons/confirmed.png"
: ""
}
Item {
2023-05-12 15:31:06 +02:00
Layout.preferredWidth: compact ? constants.iconSizeSmall : constants.iconSizeMedium
Layout.preferredHeight: compact ? constants.iconSizeSmall : constants.iconSizeMedium
visible: iconStyle == InfoTextArea.IconStyle.Spinner
BusyIndicator {
anchors.centerIn: parent
scale: 0.66
smooth: true
running: visible
}
}
2023-02-14 15:37:17 +01:00
Label {
2022-10-19 14:15:24 +02:00
id: infotext
Layout.fillWidth: true
2023-02-10 14:11:31 +01:00
wrapMode: Text.Wrap
2022-10-19 14:15:24 +02:00
}
}
}