[gnome-shell/gbsneto/new-lock-screen: 3/13] screenShield: Move Clock to UnlockDialog



commit b2f888400a75fddc89b6edb2f30614e2262ea757
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Oct 7 15:28:40 2019 -0300

    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 b689d1d30e..36ca93ee61 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,
@@ -979,9 +946,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);
 
@@ -1000,9 +964,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 5af1b4823f..47ae79c687 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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]