blob: a8a38e8cba56f241996c889a41da0e620300a43e [file] [log] [blame]
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Layouts 1.14
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.15
import "../constant"
TextField {
enum BorderColorMode {
NORMAL,
RIGHT,
ERROR
}
property int fieldLayoutWidth: 256
property int fieldLayoutHeight: 48
property bool layoutFillwidth: false
property int borderColorMode: InfoLineEdit.NORMAL
property var iconSource: {
switch(borderColorMode){
case InfoLineEdit.RIGHT:
case InfoLineEdit.NORMAL:
return ""
case InfoLineEdit.ERROR:
return "qrc:/images/icons/round-error-24px.svg"
}
}
property var backgroundColor: JamiTheme.rgb256(240,240,240)
property var borderColor: {
switch(borderColorMode){
case InfoLineEdit.NORMAL:
return "black"
case InfoLineEdit.RIGHT:
return "green"
case InfoLineEdit.ERROR:
return "red"
}
}
Layout.minimumHeight: fieldLayoutHeight
Layout.preferredHeight: fieldLayoutHeight
Layout.maximumHeight: fieldLayoutHeight
Layout.minimumWidth: fieldLayoutWidth
Layout.maximumWidth: fieldLayoutWidth
Layout.preferredWidth: fieldLayoutWidth
Layout.fillWidth: layoutFillwidth
Layout.alignment: Qt.AlignHCenter
wrapMode: Text.Wrap
readOnly: false
selectByMouse: true
font.pointSize: 10
padding: 16
font.kerning: true
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
Image {
source: iconSource
width: 24
height: 24
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: 16
layer {
enabled: true
effect: ColorOverlay {
id: overlay
color: borderColor
}
}
}
background: Rectangle {
anchors.fill: parent
radius: 4
border.color: readOnly? "black" : borderColor
color: readOnly? "transparent" : backgroundColor
}
}