This file is indexed.

/usr/share/unity8/Dash/Previews/PreviewIconActions.qml is in unity8-common 8.12+16.04.20160401-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
/*
 * Copyright (C) 2015 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 2.4
import Ubuntu.Components 1.3

/*! This preview widget icons+label for number of items in widgetData["actions"].
 *  For each of the items we recognize the fields "label", "icon", "temporaryIcon" and "id".
 *  temporaryIcon is the icon that will be shown just after the user presses icon until the
 *  scope refreshes the preview
 */

PreviewWidget {
    id: root

    implicitHeight: row.height

    Row {
        id: row
        readonly property var actions: root.widgetData ? root.widgetData["actions"] : null
        width: parent.width

        spacing: units.gu(2)

        Repeater {
            model: row.actions

            AbstractButton {
                objectName: "button" + modelData.id
                height: label.height
                width: childrenRect.width

                Image {
                    id: icon
                    height: parent.height
                    width: height
                    source: modelData.icon
                    sourceSize { width: icon.width; height: icon.height }
                }

                Label {
                    id: label
                    anchors.left: icon.right
                    anchors.leftMargin: visible ? units.gu(0.5) : 0
                    text: modelData.label
                    visible: text !== ""
                }

                onClicked: {
                    if (modelData.temporaryIcon) {
                        icon.source = modelData.temporaryIcon;
                    }
                    root.triggered(root.widgetId, modelData.id, modelData);
                }
            }
        }
    }

}