[gnome-shell] clock: Switch to using GnomeWallClock, delete clock GSettings controls
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] clock: Switch to using GnomeWallClock, delete clock GSettings controls
- Date: Fri, 22 Jun 2012 22:15:26 +0000 (UTC)
commit ef0aa65774af02ef86d6b131b336c3914c6daf97
Author: Colin Walters <walters verbum org>
Date: Sun Aug 21 03:31:16 2011 -0400
clock: Switch to using GnomeWallClock, delete clock GSettings controls
This avoids us having to poll once a second, among other things. For
more information, see the linked bug chain.
See https://bugzilla.gnome.org/show_bug.cgi?id=657958 for the new
clock keys.
https://bugzilla.gnome.org/show_bug.cgi?id=657074
data/org.gnome.shell.gschema.xml.in.in | 19 --------
js/ui/dateMenu.js | 76 +++-----------------------------
2 files changed, 7 insertions(+), 88 deletions(-)
---
diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in.in
index db23eda..ac4a1e3 100644
--- a/data/org.gnome.shell.gschema.xml.in.in
+++ b/data/org.gnome.shell.gschema.xml.in.in
@@ -61,7 +61,6 @@ value here is from the TpConnectionPresenceType enumeration.</_summary>
<_summary>Internally used to store the last session presence status for the user. The
value here is from the GsmPresenceStatus enumeration.</_summary>
</key>
- <child name="clock" schema="org.gnome.shell.clock"/>
<child name="calendar" schema="org.gnome.shell.calendar"/>
<child name="recorder" schema="org.gnome.shell.recorder"/>
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
@@ -108,24 +107,6 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
</key>
</schema>
- <schema id="org.gnome.shell.clock" path="/org/gnome/shell/clock/"
- gettext-domain="@GETTEXT_PACKAGE@">
- <key name="show-seconds" type="b">
- <default>false</default>
- <_summary>Show time with seconds</_summary>
- <_description>
- If true, display seconds in time.
- </_description>
- </key>
- <key name="show-date" type="b">
- <default>false</default>
- <_summary>Show date in clock</_summary>
- <_description>
- If true, display date in the clock, in addition to time.
- </_description>
- </key>
- </schema>
-
<schema id="org.gnome.shell.recorder" path="/org/gnome/shell/recorder/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="framerate" type="i">
diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
index 656ac0e..878cd35 100644
--- a/js/ui/dateMenu.js
+++ b/js/ui/dateMenu.js
@@ -2,6 +2,7 @@
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
+const GnomeDesktop = imports.gi.GnomeDesktop;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Cairo = imports.cairo;
@@ -16,14 +17,6 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Calendar = imports.ui.calendar;
-const UPowerGlib = imports.gi.UPowerGlib;
-
-// in org.gnome.desktop.interface
-const CLOCK_FORMAT_KEY = 'clock-format';
-
-// in org.gnome.shell.clock
-const CLOCK_SHOW_DATE_KEY = 'show-date';
-const CLOCK_SHOW_SECONDS_KEY = 'show-seconds';
function _onVertSepRepaint (area)
{
@@ -60,8 +53,8 @@ const DateMenuButton = new Lang.Class({
// role ATK_ROLE_MENU like other elements of the panel.
this.actor.accessible_role = Atk.Role.LABEL;
- this._clock = new St.Label();
- this.actor.add_actor(this._clock);
+ this._clockDisplay = new St.Label();
+ this.actor.add_actor(this._clockDisplay);
hbox = new St.BoxLayout({name: 'calendarArea' });
this.menu.addActor(hbox);
@@ -73,7 +66,7 @@ const DateMenuButton = new Lang.Class({
// Date
this._date = new St.Label();
- this.actor.label_actor = this._clock;
+ this.actor.label_actor = this._clockDisplay;
this._date.style_class = 'datemenu-date-label';
vbox.add(this._date);
@@ -155,68 +148,13 @@ const DateMenuButton = new Lang.Class({
// Done with hbox for calendar and event list
- // Track changes to clock settings
- this._desktopSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
- this._clockSettings = new Gio.Settings({ schema: 'org.gnome.shell.clock' });
- this._desktopSettings.connect('changed', Lang.bind(this, this._updateClockAndDate));
- this._clockSettings.connect('changed', Lang.bind(this, this._updateClockAndDate));
-
- // https://bugzilla.gnome.org/show_bug.cgi?id=655129
- this._upClient = new UPowerGlib.Client();
- this._upClient.connect('notify-resume', Lang.bind(this, this._updateClockAndDate));
-
- // Start the clock
+ this._clock = new GnomeDesktop.WallClock();
+ this._clock.connect('notify::clock', Lang.bind(this, this._updateClockAndDate));
this._updateClockAndDate();
},
_updateClockAndDate: function() {
- let format = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
- let showDate = this._clockSettings.get_boolean(CLOCK_SHOW_DATE_KEY);
- let showSeconds = this._clockSettings.get_boolean(CLOCK_SHOW_SECONDS_KEY);
-
- let clockFormat;
- let dateFormat;
-
- switch (format) {
- case '24h':
- if (showDate)
- /* Translators: This is the time format with date used
- in 24-hour mode. */
- clockFormat = showSeconds ? _("%a %b %e, %R:%S")
- : _("%a %b %e, %R");
- else
- /* Translators: This is the time format without date used
- in 24-hour mode. */
- clockFormat = showSeconds ? _("%a %R:%S")
- : _("%a %R");
- break;
- case '12h':
- default:
- if (showDate)
- /* Translators: This is a time format with date used
- for AM/PM. */
- clockFormat = showSeconds ? _("%a %b %e, %l:%M:%S %p")
- : _("%a %b %e, %l:%M %p");
- else
- /* Translators: This is a time format without date used
- for AM/PM. */
- clockFormat = showSeconds ? _("%a %l:%M:%S %p")
- : _("%a %l:%M %p");
- break;
- }
-
- let displayDate = new Date();
-
- this._clock.set_text(displayDate.toLocaleFormat(clockFormat));
-
- /* Translators: This is the date format to use when the calendar popup is
- * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
- */
- dateFormat = _("%A %B %e, %Y");
- this._date.set_text(displayDate.toLocaleFormat(dateFormat));
-
- Mainloop.timeout_add_seconds(1, Lang.bind(this, this._updateClockAndDate));
- return false;
+ this._clockDisplay.set_text(this._clock.clock);
},
_onOpenCalendarActivate: function() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]