79 lines
2.9 KiB
QML
79 lines
2.9 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls
|
|
import QtQuick.Controls.Material
|
|
|
|
TextHighlightPane {
|
|
enum IconStyle {
|
|
None,
|
|
Info,
|
|
Warn,
|
|
Error,
|
|
Progress,
|
|
Pending,
|
|
Done,
|
|
Spinner
|
|
}
|
|
|
|
property alias text: infotext.text
|
|
property int iconStyle: InfoTextArea.IconStyle.Info
|
|
property alias textFormat: infotext.textFormat
|
|
property bool compact: false
|
|
|
|
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
|
|
padding: compact ? constants.paddingMedium : constants.paddingXLarge
|
|
|
|
RowLayout {
|
|
width: parent.width
|
|
spacing: compact ? constants.paddingMedium : constants.paddingLarge
|
|
|
|
Image {
|
|
Layout.preferredWidth: compact ? constants.iconSizeSmall : constants.iconSizeMedium
|
|
Layout.preferredHeight: compact ? constants.iconSizeSmall : constants.iconSizeMedium
|
|
visible: iconStyle != InfoTextArea.IconStyle.Spinner && iconStyle != InfoTextArea.IconStyle.None
|
|
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 {
|
|
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
|
|
}
|
|
}
|
|
|
|
Label {
|
|
id: infotext
|
|
Layout.fillWidth: true
|
|
wrapMode: Text.Wrap
|
|
}
|
|
}
|
|
}
|