78 lines
2.2 KiB
QML
78 lines
2.2 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Controls 2.15
|
|
import QtQuick.Layouts 1.15
|
|
import QtGraphicalEffects 1.15
|
|
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
import utils 1.0
|
|
import ".."
|
|
import "../panels"
|
|
|
|
Item {
|
|
id: root
|
|
property bool isValid: true
|
|
property alias errorMessage: txtValidationError.text
|
|
property alias secondaryErrorMessage: txtValidationExtraInfo.text
|
|
property var images: []
|
|
property var validImages: []
|
|
|
|
visible: !isValid
|
|
width: imgExclamation.width + txtValidationError.width + txtValidationExtraInfo.width + 24
|
|
height: txtValidationError.height + 14
|
|
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: Theme.palette.background
|
|
radius: Theme.halfPadding
|
|
layer.enabled: true
|
|
layer.effect: DropShadow {
|
|
verticalOffset: 3
|
|
radius: 8
|
|
samples: 15
|
|
fast: true
|
|
cached: true
|
|
color: "#22000000"
|
|
}
|
|
|
|
SVGImage {
|
|
id: imgExclamation
|
|
width: 20
|
|
height: 20
|
|
sourceSize.height: height * 2
|
|
sourceSize.width: width * 2
|
|
verticalAlignment: Image.AlignVCenter
|
|
anchors.top: parent.top
|
|
anchors.left: parent.left
|
|
anchors.topMargin: 6
|
|
anchors.leftMargin: 6
|
|
fillMode: Image.PreserveAspectFit
|
|
source: Theme.svg("exclamation_outline")
|
|
}
|
|
StyledText {
|
|
id: txtValidationError
|
|
verticalAlignment: Text.AlignVCenter
|
|
anchors.top: parent.top
|
|
anchors.left: imgExclamation.right
|
|
anchors.topMargin: 7
|
|
anchors.leftMargin: 6
|
|
wrapMode: Text.WordWrap
|
|
font.pixelSize: 13
|
|
height: 18
|
|
color: Theme.palette.dangerColor1
|
|
}
|
|
StyledText {
|
|
id: txtValidationExtraInfo
|
|
verticalAlignment: Text.AlignVCenter
|
|
anchors.top: parent.top
|
|
anchors.left: txtValidationError.right
|
|
anchors.topMargin: 7
|
|
anchors.leftMargin: 6
|
|
wrapMode: Text.WordWrap
|
|
font.pixelSize: 13
|
|
height: 18
|
|
color: Theme.palette.textColor
|
|
}
|
|
}
|
|
}
|