This file is indexed.

/usr/share/ubuntu/settings/system/qml-plugins/time-date/ChooseTimeZone.qml is in ubuntu-system-settings 0.1+14.04.20140411-0ubuntu2.

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
/*
 * This file is part of system-settings
 *
 * Copyright (C) 2013 Canonical Ltd.
 *
 * Contact: Iain Lane <iain.lane@canonical.com>
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 3, as published
 * by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranties of
 * MERCHANTABILITY, SATISFACTORY QUALITY, 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.0
import SystemSettings 1.0
import Ubuntu.Components 0.1
import Ubuntu.Components.ListItems 0.1 as ListItem
import Ubuntu.SystemSettings.TimeDate 1.0

ItemPage {
    title: i18n.tr("Time zone")

    Timer {
        id: goBackTimer
        onTriggered: pageStack.pop()
    }

    UbuntuTimeDatePanel {
        id: timeDatePanel
        onTimeZoneChanged: {
            // Protect against the tz being changed externally
            if (locationsListView.manuallySelected !== "")
                goBackTimer.start()
        }
    }

    ListItem.ItemSelector {
        id: setTimeZoneSelector
        text: i18n.tr("Set the time zone:")
        model: [i18n.tr("Automatically"), i18n.tr("Manually")]
        selectedIndex: 1 // TODO: get value once we have a working backend
        expanded: true
        visible: showAllUI
    }

    ListItem.Standard {
        anchors.top: setTimeZoneSelector.bottom
        text: timeDatePanel.timeZone
        enabled: false
        visible: showAllUI && setTimeZoneSelector.selectedIndex == 0 // Automatically
    }

    TextField {
        anchors {
            top: showAllUI ? setTimeZoneSelector.bottom : parent.top
            left: parent.left
            right: parent.right
            margins: units.gu(2)
        }
        id: filterCities
        objectName: "selectTimeZoneField"
        onTextChanged: timeDatePanel.filter = text
        visible: setTimeZoneSelector.selectedIndex == 1 // Manually
        Component.onCompleted: forceActiveFocus()
        inputMethodHints: Qt.ImhNoPredictiveText
        Connections {
            target: setTimeZoneSelector
            onSelectedIndexChanged: {
                if (setTimeZoneSelector.selectedIndex == 1)
                    filterCities.forceActiveFocus()
            }
        }
    }

    ListView {
        id: locationsListView
        objectName: "locationsListView"
        clip: true
        anchors {
            top: filterCities.bottom
            left: parent.left
            right: parent.right
            bottom: parent.bottom
        }

        property string manuallySelected: ""

        model: timeDatePanel.timeZoneModel
        visible: setTimeZoneSelector.selectedIndex == 1 && count > 0
        delegate: ListItem.Standard {
            text: displayName
            // If a timezone is manually selected, record which one so that
            // we highlight that one only. Usually all cities in that timezone
            // are highlighted.
            onClicked: {
                locationsListView.manuallySelected = displayName
                timeDatePanel.timeZone = timeZone
            }
            selected: locationsListView.manuallySelected === "" ?
                          timeDatePanel.timeZone == timeZone :
                          locationsListView.manuallySelected == displayName
        }
    }

    Label {
        objectName: "nothingLabel"
        anchors.centerIn: parent
        visible: setTimeZoneSelector.selectedIndex ==1 &&
                 locationsListView.count == 0
        text: (filterCities.length == 0) ? i18n.tr("Enter your current location.") : i18n.tr("No matching place")
    }
}