This repository has been archived by the owner on Oct 14, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TextField.qml
executable file
·78 lines (67 loc) · 3.11 KB
/
TextField.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
* Copyright 2017 Marco Martin <[email protected]>
* Copyright 2017 The Qt Company Ltd.
*
* GNU Lesser General Public License Usage
* Alternatively, this file may be used under the terms of the GNU Lesser
* General Public License version 3 as published by the Free Software
* Foundation and appearing in the file LICENSE.LGPLv3 included in the
* packaging of this file. Please review the following information to
* ensure the GNU Lesser General Public License version 3 requirements
* will be met: https://www.gnu.org/licenses/lgpl.html.
*
* GNU General Public License Usage
* Alternatively, this file may be used under the terms of the GNU
* General Public License version 2.0 or later as published by the Free
* Software Foundation and appearing in the file LICENSE.GPL included in
* the packaging of this file. Please review the following information to
* ensure the GNU General Public License version 2.0 requirements will be
* met: http://www.gnu.org/licenses/gpl-2.0.html.
*/
import QtQuick 2.6
import QtQuick.Window 2.1
import QtQuick.Controls 2.3 as Controls
import QtQuick.Templates 2.3 as T
import org.kde.kirigami 2.2 as Kirigami
import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
T.TextField {
id: controlRoot
Kirigami.Theme.colorSet: Kirigami.Theme.View
Kirigami.Theme.inherit: false
implicitWidth: Math.max(200,
placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding : 0)
|| contentWidth + leftPadding + rightPadding
implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
background ? Kirigami.Units.iconSizes.smallMedium : 0,
placeholder.implicitHeight + topPadding + bottomPadding)
padding: 6
color: controlRoot.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
selectionColor: Kirigami.Theme.highlightColor
selectedTextColor: Kirigami.Theme.highlightedTextColor
verticalAlignment: TextInput.AlignVCenter
//Text.NativeRendering is broken on non integer pixel ratios
renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering
selectByMouse: true
Controls.Label {
id: placeholder
x: controlRoot.leftPadding
y: controlRoot.topPadding
width: controlRoot.width - (controlRoot.leftPadding + controlRoot.rightPadding)
height: controlRoot.height - (controlRoot.topPadding + controlRoot.bottomPadding)
text: controlRoot.placeholderText
font: controlRoot.font
color: Kirigami.Theme.disabledTextColor
horizontalAlignment: controlRoot.horizontalAlignment
verticalAlignment: controlRoot.verticalAlignment
visible: !controlRoot.length && !controlRoot.preeditText && (!controlRoot.activeFocus || controlRoot.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
}
background: StylePrivate.StyleItem {
id: style
control: controlRoot
elementType: "edit"
sunken: true
hasFocus: controlRoot.activeFocus
hover: controlRoot.hovered
}
}