From e7eb3bdfefd723f3737c9e4318ec2fca06c696b4 Mon Sep 17 00:00:00 2001 From: Sander Ferdinand Date: Sun, 19 Nov 2017 21:11:14 +0100 Subject: Re-do LineEdit/Input - decoupled placeholder text --- components/LineEdit.qml | 53 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 14 deletions(-) (limited to 'components/LineEdit.qml') diff --git a/components/LineEdit.qml b/components/LineEdit.qml index c91073a7..0cd71978 100644 --- a/components/LineEdit.qml +++ b/components/LineEdit.qml @@ -27,10 +27,11 @@ // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import QtQuick 2.0 +import "." 1.0 Item { id: item - property alias placeholderText: input.placeholderText + property alias placeholderText: placeholderLabel.text property alias text: input.text property alias validator: input.validator property alias readOnly : input.readOnly @@ -43,21 +44,47 @@ Item { signal accepted(); signal textUpdated(); - height: 37 * scaleRatio + height: 48 * scaleRatio + + onTextUpdated: { + // check to remove placeholder text when there is content + if(item.isEmpty()){ + placeholderLabel.visible = true + } else { + placeholderLabel.visible = false + } + } + + function isEmpty(){ + var val = input.text; + if(val === "") { + return true; + } + else { + return false; + } + } function getColor(error) { - if (error) - return "#FFDDDD" - else - return "#FFFFFF" + // @TODO: replace/remove this (implement as ternary?) + if (error) + return Style.inputBoxBackground + else + return Style.inputBoxBackground } - Rectangle { - visible: showBorder - anchors.fill: parent - anchors.bottomMargin: 1 * scaleRatio - color: "#DBDBDB" - //radius: 4 + Text { + id: placeholderLabel + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 10 + opacity: 0.25 + font.family: Style.fontRegular.name + font.pixelSize: 20 * scaleRatio + color: "#FFFFFF" + text: "" + visible: item.setPlaceholder() ? false : true + z: 3 } Rectangle { @@ -70,8 +97,6 @@ Item { Input { id: input anchors.fill: parent - anchors.leftMargin: 4 * scaleRatio - anchors.rightMargin: 30 * scaleRatio font.pixelSize: parent.fontSize onEditingFinished: item.editingFinished() onAccepted: item.accepted(); -- cgit v1.2.3