From c9e2afcf654fc9b931543e8f9bd1ac3a10115fea Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 7 Oct 2019 15:28:40 -0300 Subject: [PATCH] screenShield: Move Clock to UnlockDialog Move the clock to UnlockDialog, as per the latest mockups. --- js/ui/screenShield.js | 41 +--------------------------- js/ui/unlockDialog.js | 63 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 54 insertions(+), 50 deletions(-) diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index a5e4405b2..63032d89c 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -1,7 +1,7 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- const { AccountsService, Clutter, Cogl, Gio, GLib, - GnomeDesktop, GObject, Meta, Shell, St } = imports.gi; + GObject, Meta, Shell, St } = imports.gi; const Cairo = imports.cairo; const Signals = imports.signals; @@ -45,39 +45,6 @@ var STANDARD_FADE_TIME = 10000; var MANUAL_FADE_TIME = 300; var CURTAIN_SLIDE_TIME = 300; -var Clock = class { - constructor() { - this.actor = new St.BoxLayout({ style_class: 'screen-shield-clock', - vertical: true }); - - this._time = new St.Label({ style_class: 'screen-shield-clock-time' }); - this._date = new St.Label({ style_class: 'screen-shield-clock-date' }); - - this.actor.add(this._time, { x_align: St.Align.MIDDLE }); - this.actor.add(this._date, { x_align: St.Align.MIDDLE }); - - this._wallClock = new GnomeDesktop.WallClock({ time_only: true }); - this._wallClock.connect('notify::clock', this._updateClock.bind(this)); - - this._updateClock(); - } - - _updateClock() { - this._time.text = this._wallClock.clock; - - let date = new Date(); - /* Translators: This is a time format for a date in - long format */ - let dateFormat = Shell.util_translate_time_string(N_("%A, %B %d")); - this._date.text = date.toLocaleFormat(dateFormat); - } - - destroy() { - this.actor.destroy(); - this._wallClock.run_dispose(); - } -}; - var NotificationsBox = class { constructor() { this.actor = new St.BoxLayout({ vertical: true, @@ -978,9 +945,6 @@ var ScreenShield = class { y_expand: true, vertical: true, style_class: 'screen-shield-contents-box' }); - this._clock = new Clock(); - this._lockScreenContentsBox.add(this._clock.actor, { x_fill: true, - y_fill: true }); this._lockScreenContents.add_actor(this._lockScreenContentsBox); @@ -999,9 +963,6 @@ var ScreenShield = class { } _clearLockScreen() { - this._clock.destroy(); - this._clock = null; - if (this._notificationsBox) { this._notificationsBox.disconnect(this._wakeUpScreenId); this._notificationsBox.destroy(); diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js index 5af1b4823..47ae79c68 100644 --- a/js/ui/unlockDialog.js +++ b/js/ui/unlockDialog.js @@ -1,8 +1,8 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- /* exported UnlockDialog */ -const { AccountsService, Atk, Clutter, - Gdm, Gio, GLib, GObject, Meta, Shell, St } = imports.gi; +const { AccountsService, Atk, Clutter, Gdm, Gio, GLib, + GnomeDesktop, GObject, Meta, Shell, St } = imports.gi; const Layout = imports.ui.layout; const Main = imports.ui.main; @@ -12,6 +12,41 @@ const AuthPrompt = imports.gdm.authPrompt; // The timeout before going back automatically to the lock screen (in seconds) const IDLE_TIMEOUT = 2 * 60; +var Clock = class { + constructor() { + this.actor = new St.BoxLayout({ + style_class: 'screen-shield-clock', + vertical: true, + }); + + this._time = new St.Label({ style_class: 'screen-shield-clock-time' }); + this._date = new St.Label({ style_class: 'screen-shield-clock-date' }); + + this.actor.add(this._time, { x_align: St.Align.MIDDLE }); + this.actor.add(this._date, { x_align: St.Align.MIDDLE }); + + this._wallClock = new GnomeDesktop.WallClock({ time_only: true }); + this._wallClock.connect('notify::clock', this._updateClock.bind(this)); + + this._updateClock(); + } + + _updateClock() { + this._time.text = this._wallClock.clock; + + let date = new Date(); + /* Translators: This is a time format for a date in + long format */ + let dateFormat = Shell.util_translate_time_string(N_("%A, %B %d")); + this._date.text = date.toLocaleFormat(dateFormat); + } + + destroy() { + this.actor.destroy(); + this._wallClock.run_dispose(); + } +}; + var UnlockDialog = GObject.registerClass({ Signals: { 'failed': {} }, }, class UnlockDialog extends St.Widget { @@ -30,12 +65,17 @@ var UnlockDialog = GObject.registerClass({ this._userName = GLib.get_user_name(); this._user = this._userManager.get_user(this._userName); - this._promptBox = new St.BoxLayout({ vertical: true, - x_align: Clutter.ActorAlign.CENTER, - y_align: Clutter.ActorAlign.CENTER, - x_expand: true, - y_expand: true }); - this.add_child(this._promptBox); + this._mainBox = new St.BoxLayout({ + x_align: Clutter.ActorAlign.CENTER, + y_align: Clutter.ActorAlign.CENTER, + x_expand: true, + y_expand: true, + vertical: true, + }); + this.add_child(this._mainBox); + + this._clock = new Clock(); + this._mainBox.add_child(this._clock.actor); this._authPrompt = new AuthPrompt.AuthPrompt(new Gdm.Client(), AuthPrompt.AuthPromptMode.UNLOCK_ONLY); this._authPrompt.connect('failed', this._fail.bind(this)); @@ -44,7 +84,7 @@ var UnlockDialog = GObject.registerClass({ this._authPrompt.setPasswordChar('\u25cf'); this._authPrompt.nextButton.label = _("Unlock"); - this._promptBox.add_child(this._authPrompt.actor); + this._mainBox.add_child(this._authPrompt.actor); this.allowCancel = false; @@ -59,7 +99,7 @@ var UnlockDialog = GObject.registerClass({ x_align: St.Align.START, x_fill: false }); this._otherUserButton.connect('clicked', this._otherUserClicked.bind(this)); - this._promptBox.add_child(this._otherUserButton); + this._mainBox.add_child(this._otherUserButton); } else { this._otherUserButton = null; } @@ -114,6 +154,9 @@ var UnlockDialog = GObject.registerClass({ _onDestroy() { this.popModal(); + this._clock.destroy(); + this._clock = null; + if (this._idleWatchId) { this._idleMonitor.remove_watch(this._idleWatchId); this._idleWatchId = 0;