Warning, /plasma/qqc2-breeze-style/style/qtquickcontrols/TextField.qml is written in an unsupported language. File is not indexed.
0001 // NOTE: checkthis 0002 /* SPDX-FileCopyrightText: 2020 Noah Davis <noahadvs@gmail.com> 0003 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0004 */ 0005 0006 import QtQuick 0007 import QtQuick.Controls as Controls 0008 import QtQuick.Templates as T 0009 import org.kde.kirigami as Kirigami 0010 import org.kde.breeze.impl as Impl 0011 0012 T.TextField { 0013 id: control 0014 0015 property bool visualFocus: control.activeFocus && ( 0016 control.focusReason == Qt.TabFocusReason || 0017 control.focusReason == Qt.BacktabFocusReason || 0018 control.focusReason == Qt.ShortcutFocusReason 0019 ) 0020 0021 implicitWidth: implicitBackgroundWidth + leftInset + rightInset 0022 || Math.ceil(Math.max(contentWidth, placeholder.implicitWidth)) + leftPadding + rightPadding 0023 implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, 0024 contentHeight + topPadding + bottomPadding, 0025 placeholder.implicitHeight + topPadding + bottomPadding) 0026 0027 padding: Kirigami.Units.mediumSpacing 0028 leftPadding: Impl.Units.mediumHorizontalPadding 0029 rightPadding: Impl.Units.mediumHorizontalPadding 0030 0031 Kirigami.Theme.colorSet: Kirigami.Theme.View 0032 Kirigami.Theme.inherit: !background || !background.visible 0033 0034 color: Kirigami.Theme.textColor 0035 selectionColor: Kirigami.Theme.highlightColor 0036 selectedTextColor: Kirigami.Theme.highlightedTextColor 0037 placeholderTextColor: Kirigami.Theme.disabledTextColor 0038 verticalAlignment: TextInput.AlignVCenter 0039 horizontalAlignment: TextInput.AlignLeft 0040 0041 selectByMouse: true 0042 mouseSelectionMode: Kirigami.Settings.tabletMode ? 0043 TextInput.SelectWords : TextInput.SelectCharacters 0044 0045 cursorDelegate: Loader { 0046 visible: control.activeFocus && !control.readOnly && control.selectionStart === control.selectionEnd 0047 active: visible 0048 sourceComponent: Impl.CursorDelegate { target: control } 0049 } 0050 0051 Controls.Label { 0052 id: placeholder 0053 anchors { 0054 fill: parent 0055 leftMargin: control.leftPadding 0056 rightMargin: control.rightPadding 0057 topMargin: control.topPadding 0058 bottomMargin: control.bottomPadding 0059 } 0060 0061 text: control.placeholderText 0062 font: control.font 0063 color: control.placeholderTextColor 0064 horizontalAlignment: control.horizontalAlignment 0065 verticalAlignment: control.verticalAlignment 0066 visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) 0067 elide: Text.ElideRight 0068 renderType: control.renderType 0069 } 0070 0071 background: Impl.TextEditBackground { 0072 control: control 0073 implicitWidth: 200 0074 visualFocus: control.visualFocus 0075 } 0076 0077 Impl.CursorHandle { 0078 id: selectionStartHandle 0079 target: control 0080 } 0081 0082 Impl.CursorHandle { 0083 id: selectionEndHandle 0084 target: control 0085 isSelectionEnd: true 0086 } 0087 0088 MobileTextActionsToolBar { 0089 id: mobileTextActionsToolBar 0090 target: control 0091 } 0092 0093 onActiveFocusChanged: { 0094 if (!activeFocus) { 0095 mobileTextActionsToolBar.visible = false 0096 } else if (Kirigami.Settings.tabletMode) { 0097 mobileTextActionsToolBar.visible = true 0098 } 0099 } 0100 0101 onSelectedTextChanged: { 0102 if (Kirigami.Settings.tabletMode && selectedText.length > 0) { 0103 mobileTextActionsToolBar.item.open() 0104 } 0105 } 0106 0107 onPressAndHold: { 0108 if (Kirigami.Settings.tabletMode) { 0109 forceActiveFocus(); 0110 cursorPosition = positionAt(event.x, event.y); 0111 selectWord(); 0112 mobileTextActionsToolBar.item.open() 0113 } 0114 } 0115 }