tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml
changeset 30 5dc02b23752f
child 33 3e2da88830cd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml	Tue Jul 06 15:10:48 2010 +0300
@@ -0,0 +1,67 @@
+import Qt 4.7
+
+Item {
+    id:lineedit
+    property alias text: textInp.text
+
+    width: textInp.width + 11 
+    height: 13 + 11 
+
+    Rectangle{
+        color: 'lightsteelblue'
+        anchors.fill: parent
+    }
+    clip: true
+    Component.onCompleted: textInp.cursorPosition = 0;
+    TextInput{
+        id:textInp
+        cursorDelegate: Item{
+            Rectangle{
+                visible: parent.parent.focus
+                color: "#009BCE"
+                height: 13
+                width: 2
+                y: 1
+            }
+        }
+        property int leftMargin: 6 
+        property int rightMargin: 6 
+        x: leftMargin
+        y: 5
+        //Below function implements all scrolling logic
+        onCursorPositionChanged: {
+            if(cursorRect.x < leftMargin - textInp.x){//Cursor went off the front
+                textInp.x = leftMargin - Math.max(0, cursorRect.x);
+            }else if(cursorRect.x > parent.width - leftMargin - rightMargin - textInp.x){//Cusor went off the end
+                textInp.x = leftMargin - Math.max(0, cursorRect.x - (parent.width - leftMargin - rightMargin));
+            }
+        }
+
+        text:""
+        horizontalAlignment: TextInput.AlignLeft
+        font.pixelSize:15
+    }
+    MouseArea{
+        //Implements all line edit mouse handling
+        id: mainMouseArea
+        anchors.fill: parent;
+        function translateX(x){
+            return x - textInp.x
+        }
+        onPressed: {
+            textInp.focus = true;
+            textInp.cursorPosition = textInp.xToPosition(translateX(mouse.x));
+        }
+        onPositionChanged: {
+            textInp.moveCursorSelection(textInp.xToPosition(translateX(mouse.x)));
+        }
+        onReleased: {
+        }
+        onDoubleClicked: {
+            textInp.selectionStart=0;
+            textInp.selectionEnd=textInp.text.length;
+        }
+        z: textInp.z + 1
+    }
+
+}