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 } } }