/usr/share/unity-2d/shell/common/SearchEntry.qml is in unity-2d-shell 5.10.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | /*
* This file is part of unity-2d
*
* Copyright 2010-2011 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 1.1
import Effects 1.0
import Unity2d 1.0
import "fontUtils.js" as FontUtils
import "utils.js" as Utils
AbstractButton {
property string searchQuery
property string placeHolderText: ""
property bool active: false
signal activateFirstResult
Accessible.name: "Search Entry"
/* Delete search when set in-active */
onActiveChanged: if (!active) searchInput.text = ""
/* Keys forwarded to the search entry are forwarded to the text input. */
Keys.forwardTo: [searchInput]
opacity: ( state == "selected" || state == "hovered" ) ? 1.0 : 0.7
BorderImage {
anchors.fill: parent
anchors.margins: -5
source: "artwork/search_background.sci"
smooth: false
}
Item {
anchors.fill: parent
anchors.topMargin: 6
anchors.bottomMargin: 6
anchors.leftMargin: 6
anchors.rightMargin: 16
Image {
id: searchIcon
anchors.left: parent.left
anchors.leftMargin: -9
anchors.verticalCenter: parent.verticalCenter
width: sourceSize.width
height: sourceSize.height
smooth: true
source: searchInput.text ? "artwork/cross.png" : "artwork/search_icon.png"
fillMode: Image.PreserveAspectFit
}
MouseArea {
id: clearButton
Accessible.name: "Clear"
Accessible.role: Accessible.PushButton
anchors.fill: searchIcon
onClicked: {
searchInput.forceActiveFocus()
searchInput.text = ""
}
}
TextInput {
id: searchInput
Accessible.name: searchInstructions.text
Accessible.role: Accessible.EditableText
anchors.left: searchIcon.right
anchors.leftMargin: -5
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
horizontalAlignment: Text.AlignLeft
color: "#ffffff"
font.pixelSize: FontUtils.fontSizeToPixels("xx-large")
focus: true
selectByMouse: true
cursorDelegate: cursor
selectionColor: "gray"
onTextChanged: liveSearchTimeout.restart()
Timer {
id: liveSearchTimeout
interval: 200
onTriggered: searchQuery = searchInput.text
}
Keys.onPressed: {
if (event.key == Qt.Key_Return || event.key == Qt.Key_Enter) {
activateFirstResult()
event.accepted = true;
}
if (event.key == Qt.Key_Escape) {
if (searchInput.text != "") {
searchInput.text = ""
event.accepted = true;
}
}
}
Component {
id: cursor
Rectangle {
property bool timerShowCursor: true
id: customCursor
color: "white"
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.topMargin: 2
anchors.bottomMargin: 2
width: 1
visible: parent.activeFocus && timerShowCursor
Timer {
interval: 800; running: customCursor.parent.activeFocus; repeat: true
onTriggered: {
interval = interval == 800 ? 400 : 800
customCursor.timerShowCursor = !customCursor.timerShowCursor
}
}
}
}
TextCustom {
id: searchInstructions
anchors.left: parent.left
anchors.right: parent.right
elide: Text.ElideRight
anchors.verticalCenter: parent.verticalCenter
LayoutMirroring.enabled: false
horizontalAlignment: Utils.isRightToLeft() ? Text.AlignRight : Text.AlignLeft
color: "white"
opacity: 0.5
fontSize: "x-large"
font.italic: true
text: {
if(searchInput.text || searchInput.inputMethodComposing)
return ""
else
return placeHolderText
}
}
}
}
CursorShapeArea {
anchors.fill: parent
cursorShape: Qt.IBeamCursor
}
}
|