Files correlati : cg0.exe cg0700a.msk cg0700b.msk cg3.exe cg4.exe Bug : Commento: Merge 1.0 libraries
70 lines
2.0 KiB
QML
70 lines
2.0 KiB
QML
import QtQuick 1.0
|
|
import "../shared" 1.0
|
|
|
|
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;
|
|
TestTextInput {
|
|
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(cursorRectangle.x < leftMargin - textInp.x){//Cursor went off the front
|
|
textInp.x = leftMargin - Math.max(0, cursorRectangle.x);
|
|
}else if(cursorRectangle.x > parent.width - leftMargin - rightMargin - textInp.x){//Cusor went off the end
|
|
textInp.x = leftMargin - Math.max(0, cursorRectangle.x - (parent.width - leftMargin - rightMargin));
|
|
}
|
|
}
|
|
|
|
autoScroll: false //It is preferable to implement your own scrolling
|
|
text:""
|
|
horizontalAlignment: TextInput.AlignLeft
|
|
font.pixelSize:15
|
|
selectionColor: 'steelblue'
|
|
}
|
|
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.positionAt(translateX(mouse.x));
|
|
}
|
|
onPositionChanged: {
|
|
textInp.moveCursorSelection(textInp.positionAt(translateX(mouse.x)));
|
|
}
|
|
onReleased: {
|
|
}
|
|
onDoubleClicked: {
|
|
textInp.selectAll()
|
|
}
|
|
z: textInp.z + 1
|
|
}
|
|
|
|
}
|