Warning, /plasma/milou/plasmoid/package/contents/ui/SearchField.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * This file is part of the KDE Milou Project
0003 * SPDX-FileCopyrightText: 2013-2014 Vishesh Handa <me@vhanda.in>
0004 *
0005 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 *
0007 */
0008
0009 import QtQuick 2.1
0010
0011 import org.kde.plasma.components 3.0 as PlasmaComponents3
0012 import "globals.js" as Globals
0013
0014 /*
0015 * The SearchField is a simple text field widget. The only complex part
0016 * is the internal timer to reduce the number of textChanged signals
0017 * using searchTextChanged.
0018 */
0019 Item {
0020 signal searchTextChanged()
0021 signal close()
0022 property alias text: textField.text
0023
0024 height: childrenRect.height
0025 width: Globals.PlasmoidWidth
0026
0027 PlasmaComponents3.TextField {
0028 id: textField
0029 clearButtonShown: true
0030 placeholderText: i18n("Search...")
0031 anchors {
0032 left: parent.left
0033 right: parent.right
0034 top: parent.top
0035 }
0036
0037 focus: true
0038 Keys.forwardTo: listView
0039
0040 // We do not want to send the text instantly as that would result
0041 // in too many queries. Therefore we add a small 200msec delay
0042 Timer {
0043 id: timer
0044 interval: 200
0045 onTriggered: searchTextChanged()
0046 }
0047
0048 onTextChanged: timer.restart()
0049 }
0050
0051 function selectAll() {
0052 textField.selectAll()
0053 }
0054
0055 function setFocus() {
0056 textField.focus = true
0057 }
0058
0059 Keys.onEscapePressed: {
0060 if (textField.text) {
0061 textField.text = ""
0062 } else {
0063 close()
0064 }
0065 }
0066 }