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