status-desktop/ui/imports/shared/status/StatusChatImageValidator.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
}
}
}