From 143cda628ea7fd3bae8d096bdb3279ba83c5cc57 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Thu, 28 Nov 2019 18:16:53 -0300 Subject: [PATCH] screenShield: Move clock to Unlock Dialog Move the Screen Shield clock to Unlock Dialog. Also adjust the CSS style classes names to match the new owner. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/872 --- .../widgets/_screen-shield.scss | 6 +-- js/ui/screenShield.js | 47 +------------------ js/ui/unlockDialog.js | 47 ++++++++++++++++++- 3 files changed, 49 insertions(+), 51 deletions(-) diff --git a/data/theme/gnome-shell-sass/widgets/_screen-shield.scss b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss index cc5bda955..8401da193 100644 --- a/data/theme/gnome-shell-sass/widgets/_screen-shield.scss +++ b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss @@ -2,7 +2,7 @@ $_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726); -.screen-shield-clock { +.unlock-dialog-clock { color: white; text-shadow: $_screenshield_shadow; font-weight: bold; @@ -10,13 +10,13 @@ $_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726); padding-bottom: 1.5em; } -.screen-shield-clock-time { +.unlock-dialog-clock-time { font-size: 72pt; text-shadow: $_screenshield_shadow; font-feature-settings: "tnum"; } -.screen-shield-clock-date { +.unlock-dialog-clock-date { font-size: 28pt; font-weight: normal; } diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 9d9d6fe79..48b735ad6 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, Gio, GLib, - GnomeDesktop, GObject, Graphene, Meta, Shell, St } = imports.gi; + GObject, Graphene, Meta, Shell, St } = imports.gi; const Signals = imports.signals; const Background = imports.ui.background; @@ -41,46 +41,6 @@ var STANDARD_FADE_TIME = 10000; var MANUAL_FADE_TIME = 300; var CURTAIN_SLIDE_TIME = 300; -var Clock = GObject.registerClass( -class ScreenShieldClock extends St.BoxLayout { - _init() { - super._init({ style_class: 'screen-shield-clock', vertical: true }); - - this._time = new St.Label({ - style_class: 'screen-shield-clock-time', - x_align: Clutter.ActorAlign.CENTER, - }); - this._date = new St.Label({ - style_class: 'screen-shield-clock-date', - x_align: Clutter.ActorAlign.CENTER, - }); - - this.add_child(this._time); - this.add_child(this._date); - - this._wallClock = new GnomeDesktop.WallClock({ time_only: true }); - this._wallClock.connect('notify::clock', this._updateClock.bind(this)); - - this._updateClock(); - - this.connect('destroy', this._onDestroy.bind(this)); - } - - _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); - } - - _onDestroy() { - this._wallClock.run_dispose(); - } -}); - var NotificationsBox = GObject.registerClass({ Signals: { 'wake-up-screen': {} }, }, class NotificationsBox extends St.BoxLayout { @@ -961,8 +921,6 @@ var ScreenShield = class { y_expand: true, vertical: true, style_class: 'screen-shield-contents-box' }); - this._clock = new Clock(); - this._lockScreenContentsBox.add_child(this._clock); this._lockScreenContents.add_actor(this._lockScreenContentsBox); @@ -979,9 +937,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 b0f5fcf64..acc92f4ef 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, + GnomeDesktop, GLib, GObject, Meta, Shell, St } = imports.gi; const Layout = imports.ui.layout; const Main = imports.ui.main; @@ -12,6 +12,46 @@ const AuthPrompt = imports.gdm.authPrompt; // The timeout before going back automatically to the lock screen (in seconds) const IDLE_TIMEOUT = 2 * 60; +var Clock = GObject.registerClass( +class UnlockDialogClock extends St.BoxLayout { + _init() { + super._init({ style_class: 'unlock-dialog-clock', vertical: true }); + + this._time = new St.Label({ + style_class: 'unlock-dialog-clock-time', + x_align: Clutter.ActorAlign.CENTER, + }); + this._date = new St.Label({ + style_class: 'unlock-dialog-clock-date', + x_align: Clutter.ActorAlign.CENTER, + }); + + this.add_child(this._time); + this.add_child(this._date); + + this._wallClock = new GnomeDesktop.WallClock({ time_only: true }); + this._wallClock.connect('notify::clock', this._updateClock.bind(this)); + + this._updateClock(); + + this.connect('destroy', this._onDestroy.bind(this)); + } + + _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); + } + + _onDestroy() { + this._wallClock.run_dispose(); + } +}); + var UnlockDialog = GObject.registerClass({ Signals: { 'failed': {} }, }, class UnlockDialog extends St.Widget { @@ -37,6 +77,9 @@ var UnlockDialog = GObject.registerClass({ y_expand: true }); this.add_child(this._promptBox); + this._clock = new Clock(); + this._promptBox.add_child(this._clock); + this._authPrompt = new AuthPrompt.AuthPrompt(new Gdm.Client(), AuthPrompt.AuthPromptMode.UNLOCK_ONLY); this._authPrompt.connect('failed', this._fail.bind(this)); this._authPrompt.connect('cancelled', this._fail.bind(this));