aboutsummaryrefslogtreecommitdiffstats
path: root/lib/qtcreator/qtcomponents/custom/TextField.qml
diff options
context:
space:
mode:
authorDaniel Molkentin <daniel.molkentin@nokia.com>2011-08-02 17:11:29 +0200
committerEike Ziller <eike.ziller@nokia.com>2011-08-03 16:12:35 +0200
commit9743b43663f2dac99df0e1e5219b0d65bee2d7f2 (patch)
treea41f3e18eaae73aac5cebc7150f7aed5662974e9 /lib/qtcreator/qtcomponents/custom/TextField.qml
parent6c8edcf99ed0cd77a3667e61417a224461060ab7 (diff)
Make Components installable. Fix Shadow Build.
Task-Number: QTCREATORBUG-5672 Done-with: Oswald Buddenhagen Change-Id: I61f8a83205bc338ba12e43b7471eaa957da2b004 Reviewed-on: http://codereview.qt.nokia.com/2451 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Diffstat (limited to 'lib/qtcreator/qtcomponents/custom/TextField.qml')
-rw-r--r--lib/qtcreator/qtcomponents/custom/TextField.qml158
1 files changed, 158 insertions, 0 deletions
diff --git a/lib/qtcreator/qtcomponents/custom/TextField.qml b/lib/qtcreator/qtcomponents/custom/TextField.qml
new file mode 100644
index 0000000000..4790e54f4e
--- /dev/null
+++ b/lib/qtcreator/qtcomponents/custom/TextField.qml
@@ -0,0 +1,158 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (info@qt.nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at info@qt.nokia.com.
+**
+**************************************************************************/
+
+import QtQuick 1.0
+import "./behaviors" // TextEditMouseBehavior
+
+// KNOWN ISSUES
+// 1) TextField does not loose focus when !enabled if it is a FocusScope (see QTBUG-16161)
+
+FocusScope {
+ id: textField
+
+ property alias text: textInput.text
+ property alias font: textInput.font
+
+ property int inputHint // values tbd
+ property bool acceptableInput: textInput.acceptableInput // read only
+ property bool readOnly: textInput.readOnly // read only
+ property alias placeholderText: placeholderTextComponent.text
+ property bool passwordMode: false
+ property alias selectedText: textInput.selectedText
+ property alias selectionEnd: textInput.selectionEnd
+ property alias selectionStart: textInput.selectionStart
+ property alias validator: textInput.validator
+ property alias inputMask: textInput.inputMask
+ property alias horizontalalignment: textInput.horizontalAlignment
+ property alias echoMode: textInput.echoMode
+ property alias cursorPosition: textInput.cursorPosition
+ property alias inputMethodHints: textInput.inputMethodHints
+
+ property color textColor: syspal.text
+ property color backgroundColor: syspal.base
+ property alias containsMouse: mouseArea.containsMouse
+
+ property Component background: null
+ property Component hints: null
+ property Item backgroundItem: backgroundLoader.item
+
+ property int minimumWidth: 0
+ property int minimumHeight: 0
+
+ property int leftMargin: 0
+ property int topMargin: 0
+ property int rightMargin: 0
+ property int bottomMargin: 0
+
+ function copy() {
+ textInput.copy()
+ }
+
+ function paste() {
+ textInput.paste()
+ }
+
+ function cut() {
+ textInput.cut()
+ }
+
+ function select(start, end) {
+ textInput.select(start, end)
+ }
+
+ function selectAll() {
+ textInput.selectAll()
+ }
+
+ function selectWord() {
+ textInput.selectWord()
+ }
+
+ function positionAt(x) {
+ var p = mapToItem(textInput, x, 0);
+ return textInput.positionAt(p.x);
+ }
+
+ function positionToRectangle(pos) {
+ var p = mapToItem(textInput, pos.x, pos.y);
+ return textInput.positionToRectangle(p);
+ }
+
+ width: Math.max(minimumWidth,
+ textInput.width + leftMargin + rightMargin)
+
+ height: Math.max(minimumHeight,
+ textInput.height + topMargin + bottomMargin)
+
+ // Implementation
+ clip: true
+
+ SystemPalette { id: syspal }
+ Loader { id: hintsLoader; sourceComponent: hints }
+ Loader { id: backgroundLoader; sourceComponent: background; anchors.fill:parent}
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ TextInput { // see QTBUG-14936
+ id: textInput
+ selectByMouse:true
+ font.pixelSize: hintsLoader.item != null ? hintsLoader.item.fontPixelSize: 14
+ font.bold: hintsLoader.item != null ? hintsLoader.item.fontBold : false
+
+ anchors.leftMargin: leftMargin
+ anchors.topMargin: topMargin
+ anchors.rightMargin: rightMargin
+ anchors.bottomMargin: bottomMargin
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+
+ color: enabled ? textColor : Qt.tint(textColor, "#80ffffff")
+ echoMode: passwordMode ? _hints.passwordEchoMode : TextInput.Normal
+ }
+
+ Text {
+ id: placeholderTextComponent
+ anchors.fill: textInput
+ font: textInput.font
+ opacity: !textInput.text.length && !textInput.activeFocus ? 1 : 0
+ color: "gray"
+ text: "Enter text"
+ elide: Text.ElideRight
+ Behavior on opacity { NumberAnimation { duration: 90 } }
+ }
+}