[gnome-shell/uajain/adapt-user-avatar-part2: 16/27] userWidget: Adapt if user is not mentioned for username login
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/uajain/adapt-user-avatar-part2: 16/27] userWidget: Adapt if user is not mentioned for username login
- Date: Mon, 10 Feb 2020 20:29:45 +0000 (UTC)
commit 011e01cd7d1b80696d44e42b63f07fc9d6e42000
Author: Umang Jain <mailumangjain gmail com>
Date: Fri Jan 17 12:17:34 2020 +0530
userWidget: Adapt if user is not mentioned for username login
If username-based login flow is followed, we need a default avatar
for the userWidget. Hence, check if the user passed to userWidget
is (null) which implies a username-based login flow.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/922
js/gdm/authPrompt.js | 6 ++----
js/ui/userWidget.js | 27 ++++++++++++++++++---------
2 files changed, 20 insertions(+), 13 deletions(-)
---
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index 5723ce5426..2fb5057b84 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -424,10 +424,8 @@ var AuthPrompt = GObject.registerClass({
if (oldChild)
oldChild.destroy();
- if (user) {
- let userWidget = new UserWidget.UserWidget(user, Clutter.Orientation.VERTICAL);
- this._userWell.set_child(userWidget);
- }
+ let userWidget = new UserWidget.UserWidget(user, Clutter.Orientation.VERTICAL);
+ this._userWell.set_child(userWidget);
}
reset() {
diff --git a/js/ui/userWidget.js b/js/ui/userWidget.js
index 22446510a4..d21552555c 100644
--- a/js/ui/userWidget.js
+++ b/js/ui/userWidget.js
@@ -86,9 +86,12 @@ class Avatar extends St.Bin {
update() {
let iconSize = this._getIconSize();
- let iconFile = this._user.get_icon_file();
- if (iconFile && !GLib.file_test(iconFile, GLib.FileTest.EXISTS))
- iconFile = null;
+ let iconFile = null;
+ if (this._user) {
+ iconFile = this._user.get_icon_file();
+ if (iconFile && !GLib.file_test(iconFile, GLib.FileTest.EXISTS))
+ iconFile = null;
+ }
if (iconFile) {
this.child = null;
@@ -192,6 +195,7 @@ class UserWidgetLabel extends St.Widget {
var UserWidget = GObject.registerClass(
class UserWidget extends St.BoxLayout {
_init(user, orientation = Clutter.Orientation.HORIZONTAL) {
+ // If user is null, that implies a username-based login authorization.
this._user = user;
let vertical = orientation == Clutter.Orientation.VERTICAL;
@@ -210,14 +214,19 @@ class UserWidget extends St.BoxLayout {
this._avatar.x_align = Clutter.ActorAlign.CENTER;
this.add_child(this._avatar);
- this._label = new UserWidgetLabel(user);
- this.add_child(this._label);
+ this._userLoadedId = 0;
+ this._userChangedId = 0;
+ if (user) {
+ this._label = new UserWidgetLabel(user);
+ this.add_child(this._label);
- this._label.bind_property('label-actor', this, 'label-actor',
- GObject.BindingFlags.SYNC_CREATE);
+ this._label.bind_property('label-actor', this, 'label-actor',
+ GObject.BindingFlags.SYNC_CREATE);
+
+ this._userLoadedId = this._user.connect('notify::is-loaded', this._updateUser.bind(this));
+ this._userChangedId = this._user.connect('changed', this._updateUser.bind(this));
+ }
- this._userLoadedId = this._user.connect('notify::is-loaded', this._updateUser.bind(this));
- this._userChangedId = this._user.connect('changed', this._updateUser.bind(this));
this._updateUser();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]