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
This commit is contained in:
Georges Basile Stavracas Neto 2019-11-28 18:16:53 -03:00
parent 0cead8c074
commit ef716a7eb5
3 changed files with 54 additions and 51 deletions

View File

@ -2049,7 +2049,7 @@ StScrollBar {
$_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726); $_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726);
.screen-shield-clock { .unlock-dialog-clock {
color: white; color: white;
text-shadow: $_screenshield_shadow; text-shadow: $_screenshield_shadow;
font-weight: bold; font-weight: bold;
@ -2057,13 +2057,13 @@ $_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726);
padding-bottom: 1.5em; padding-bottom: 1.5em;
} }
.screen-shield-clock-time { .unlock-dialog-clock-time {
font-size: 72pt; font-size: 72pt;
text-shadow: $_screenshield_shadow; text-shadow: $_screenshield_shadow;
font-feature-settings: "tnum"; font-feature-settings: "tnum";
} }
.screen-shield-clock-date { .unlock-dialog-clock-date {
font-size: 28pt; font-size: 28pt;
font-weight: normal; font-weight: normal;
} }

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const { AccountsService, Clutter, Gio, GLib, 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 Signals = imports.signals;
const Background = imports.ui.background; const Background = imports.ui.background;
@ -45,46 +45,6 @@ var STANDARD_FADE_TIME = 10000;
var MANUAL_FADE_TIME = 300; var MANUAL_FADE_TIME = 300;
var CURTAIN_SLIDE_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({ var NotificationsBox = GObject.registerClass({
Signals: { 'wake-up-screen': {} }, Signals: { 'wake-up-screen': {} },
}, class NotificationsBox extends St.BoxLayout { }, class NotificationsBox extends St.BoxLayout {
@ -972,8 +932,6 @@ var ScreenShield = class {
y_expand: true, y_expand: true,
vertical: true, vertical: true,
style_class: 'screen-shield-contents-box' }); style_class: 'screen-shield-contents-box' });
this._clock = new Clock();
this._lockScreenContentsBox.add_child(this._clock);
this._lockScreenContents.add_actor(this._lockScreenContentsBox); this._lockScreenContents.add_actor(this._lockScreenContentsBox);
@ -990,9 +948,6 @@ var ScreenShield = class {
} }
_clearLockScreen() { _clearLockScreen() {
this._clock.destroy();
this._clock = null;
if (this._notificationsBox) { if (this._notificationsBox) {
this._notificationsBox.disconnect(this._wakeUpScreenId); this._notificationsBox.disconnect(this._wakeUpScreenId);
this._notificationsBox.destroy(); this._notificationsBox.destroy();

View File

@ -1,8 +1,8 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported UnlockDialog */ /* exported UnlockDialog */
const { AccountsService, Atk, Clutter, const { AccountsService, Atk, Clutter, Gdm, Gio,
Gdm, Gio, GLib, GObject, Meta, Shell, St } = imports.gi; GnomeDesktop, GLib, GObject, Meta, Shell, St } = imports.gi;
const Layout = imports.ui.layout; const Layout = imports.ui.layout;
const Main = imports.ui.main; 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) // The timeout before going back automatically to the lock screen (in seconds)
const IDLE_TIMEOUT = 2 * 60; 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({ var UnlockDialog = GObject.registerClass({
Signals: { 'failed': {} }, Signals: { 'failed': {} },
}, class UnlockDialog extends St.Widget { }, class UnlockDialog extends St.Widget {
@ -37,6 +77,9 @@ var UnlockDialog = GObject.registerClass({
y_expand: true }); y_expand: true });
this.add_child(this._promptBox); 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 = new AuthPrompt.AuthPrompt(new Gdm.Client(), AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
this._authPrompt.connect('failed', this._fail.bind(this)); this._authPrompt.connect('failed', this._fail.bind(this));
this._authPrompt.connect('cancelled', this._fail.bind(this)); this._authPrompt.connect('cancelled', this._fail.bind(this));
@ -110,6 +153,11 @@ var UnlockDialog = GObject.registerClass({
} }
_onDestroy() { _onDestroy() {
if (this._clock) {
this._clock.destroy();
this._clock = null;
}
this.popModal(); this.popModal();
if (this._idleWatchId) { if (this._idleWatchId) {