util: Add createTimeLabel()

On locales that support it, time formats should follow the 12-hour/24-hour
preference, which implies that they should be updated when the setting
changes. So add another utility method which creates a label for a specific
time and keeps it in sync with the format setting.

https://bugzilla.gnome.org/show_bug.cgi?id=745111
This commit is contained in:
Florian Müllner 2015-02-25 23:23:49 +01:00
parent 39fd7b9a05
commit 8f424e7d96

View File

@ -246,6 +246,20 @@ function formatTime(time, params) {
return date.format(Shell.util_translate_time_string(format));
}
function createTimeLabel(date, params) {
if (_desktopSettings == null)
_desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
let label = new St.Label({ text: formatTime(date, params) });
let id = _desktopSettings.connect('changed::clock-format', function() {
label.text = formatTime(date, params);
});
label.connect('destroy', function() {
_desktopSettings.disconnect(id);
});
return label;
}
// lowerBound:
// @array: an array or array-like object, already sorted
// according to @cmp