Warning, /maui/nomad-style/TextField.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * Copyright 2017 Marco Martin <mart@kde.org>
0003  * Copyright 2017 The Qt Company Ltd.
0004  *
0005  * GNU Lesser General Public License Usage
0006  * Alternatively, this file may be used under the terms of the GNU Lesser
0007  * General Public License version 3 as published by the Free Software
0008  * Foundation and appearing in the file LICENSE.LGPLv3 included in the
0009  * packaging of this file. Please review the following information to
0010  * ensure the GNU Lesser General Public License version 3 requirements
0011  * will be met: https://www.gnu.org/licenses/lgpl.html.
0012  *
0013  * GNU General Public License Usage
0014  * Alternatively, this file may be used under the terms of the GNU
0015  * General Public License version 2.0 or later as published by the Free
0016  * Software Foundation and appearing in the file LICENSE.GPL included in
0017  * the packaging of this file. Please review the following information to
0018  * ensure the GNU General Public License version 2.0 requirements will be
0019  * met: http://www.gnu.org/licenses/gpl-2.0.html.
0020  */
0021 
0022 
0023 import QtQuick 2.6
0024 import QtQuick.Window 2.1
0025 import QtQuick.Controls 2.3 as Controls
0026 import QtQuick.Templates 2.3 as T
0027 import org.kde.kirigami 2.2 as Kirigami
0028 import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
0029 
0030 T.TextField {
0031     id: controlRoot
0032     Kirigami.Theme.colorSet: Kirigami.Theme.View
0033     Kirigami.Theme.inherit: false
0034 
0035     implicitWidth: Math.max(200,
0036                             placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding : 0)
0037                             || contentWidth + leftPadding + rightPadding
0038     implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
0039                              background ? Kirigami.Units.iconSizes.smallMedium : 0,
0040                              placeholder.implicitHeight + topPadding + bottomPadding)
0041 
0042     padding: 6
0043 
0044     color: controlRoot.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
0045     selectionColor: Kirigami.Theme.highlightColor
0046     selectedTextColor: Kirigami.Theme.highlightedTextColor
0047     verticalAlignment: TextInput.AlignVCenter
0048     //Text.NativeRendering is broken on non integer pixel ratios
0049     renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering
0050     selectByMouse: true
0051 
0052     Controls.Label {
0053         id: placeholder
0054         x: controlRoot.leftPadding
0055         y: controlRoot.topPadding
0056         width: controlRoot.width - (controlRoot.leftPadding + controlRoot.rightPadding)
0057         height: controlRoot.height - (controlRoot.topPadding + controlRoot.bottomPadding)
0058 
0059         text: controlRoot.placeholderText
0060         font: controlRoot.font
0061         color: Kirigami.Theme.disabledTextColor
0062         horizontalAlignment: controlRoot.horizontalAlignment
0063         verticalAlignment: controlRoot.verticalAlignment
0064         visible: !controlRoot.length && !controlRoot.preeditText && (!controlRoot.activeFocus || controlRoot.horizontalAlignment !== Qt.AlignHCenter)
0065         elide: Text.ElideRight
0066     }
0067 
0068     background: StylePrivate.StyleItem {
0069         id: style
0070 
0071         control: controlRoot
0072         elementType: "edit"
0073 
0074         sunken: true
0075         hasFocus: controlRoot.activeFocus
0076         hover: controlRoot.hovered
0077     }
0078 }