You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.5 KiB
66 lines
1.5 KiB
2 years ago
|
import QtQuick 2.0
|
||
|
import QtQuick.Controls 2.13
|
||
|
|
||
|
TextField {
|
||
|
id: customTextField
|
||
|
|
||
|
property bool isEmpty: text == ""
|
||
|
property string title: "Camera Name"
|
||
|
|
||
|
width: 250
|
||
|
height: 56
|
||
|
|
||
|
text: ""
|
||
|
font.pixelSize: 14
|
||
|
horizontalAlignment: Text.AlignLeft
|
||
|
verticalAlignment: Text.AlignTop
|
||
|
topPadding: 25
|
||
|
|
||
|
Text {
|
||
|
id: titleText
|
||
|
font.pixelSize: parent.isEmpty ? 14 : 12
|
||
|
y: parent.isEmpty ? 25 : 10
|
||
|
x: 10
|
||
|
text: parent.title
|
||
|
color: parent.isEmpty ? "gray" : "red"
|
||
|
|
||
|
Behavior on y {
|
||
|
NumberAnimation {
|
||
|
duration: Theme.easingDuration
|
||
|
easing.type: Easing.InOutQuad
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Behavior on font.pixelSize {
|
||
|
NumberAnimation {
|
||
|
duration: Theme.easingDuration
|
||
|
easing.type: Easing.InOutQuad
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
background: Rectangle {
|
||
|
radius: 5
|
||
|
implicitWidth: parent.width
|
||
|
implicitHeight: parent.height
|
||
|
color: parent.focus ? Theme.tertiary : Theme.secondary
|
||
|
|
||
|
Rectangle {
|
||
|
id: cornerFiller
|
||
|
width: parent.width
|
||
|
height: parent.radius
|
||
|
anchors.bottom: parent.bottom
|
||
|
color: parent.color
|
||
|
}
|
||
|
|
||
|
Rectangle {
|
||
|
id: focusSign
|
||
|
width: parent.width
|
||
|
height: 2
|
||
|
anchors.bottom: parent.bottom
|
||
|
color: Theme.primary
|
||
|
visible: customTextField.focus
|
||
|
}
|
||
|
}
|
||
|
}
|