status/network: Update appearance of connection items
When not in radio-mode - that is, in the single-connection case - the item currently uses a plain 'Connect' label. That is OK while the item is inside a submenu that describes the device, but we will soon stop using a submenu when a single item can describe the device as a whole. Prepare for that by adding an icon that is shown when in non-radio mode, and include the device name in the label in that case. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2407>
This commit is contained in:
parent
9e3cb0b797
commit
64ae6ae7b3
@ -124,6 +124,13 @@ const NMConnectionItem = GObject.registerClass({
|
|||||||
this._connection = connection;
|
this._connection = connection;
|
||||||
this._activeConnection = null;
|
this._activeConnection = null;
|
||||||
|
|
||||||
|
this._icon = new St.Icon({
|
||||||
|
style_class: 'popup-menu-icon',
|
||||||
|
x_align: Clutter.ActorAlign.END,
|
||||||
|
visible: !this.radio_mode,
|
||||||
|
});
|
||||||
|
this.add_child(this._icon);
|
||||||
|
|
||||||
this._label = new St.Label({
|
this._label = new St.Label({
|
||||||
y_expand: true,
|
y_expand: true,
|
||||||
y_align: Clutter.ActorAlign.CENTER,
|
y_align: Clutter.ActorAlign.CENTER,
|
||||||
@ -131,8 +138,16 @@ const NMConnectionItem = GObject.registerClass({
|
|||||||
this.add_child(this._label);
|
this.add_child(this._label);
|
||||||
this.label_actor = this._label;
|
this.label_actor = this._label;
|
||||||
|
|
||||||
|
this.bind_property('icon-name',
|
||||||
|
this._icon, 'icon-name',
|
||||||
|
GObject.BindingFlags.DEFAULT);
|
||||||
|
this.bind_property('radio-mode',
|
||||||
|
this._icon, 'visible',
|
||||||
|
GObject.BindingFlags.INVERT_BOOLEAN);
|
||||||
|
|
||||||
this.connectObject(
|
this.connectObject(
|
||||||
'notify::radio-mode', () => this._sync(),
|
'notify::radio-mode', () => this._sync(),
|
||||||
|
'notify::name', () => this._sync(),
|
||||||
this);
|
this);
|
||||||
this._sync();
|
this._sync();
|
||||||
}
|
}
|
||||||
@ -167,13 +182,20 @@ const NMConnectionItem = GObject.registerClass({
|
|||||||
? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE);
|
? PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_getRegularLabel() {
|
||||||
|
return this.is_active
|
||||||
|
// Translators: %s is a device name like "MyPhone"
|
||||||
|
? _('Disconnect %s').format(this.name)
|
||||||
|
// Translators: %s is a device name like "MyPhone"
|
||||||
|
: _('Connect to %s').format(this.name);
|
||||||
|
}
|
||||||
|
|
||||||
_sync() {
|
_sync() {
|
||||||
if (this.radioMode) {
|
if (this.radioMode) {
|
||||||
this._label.text = this._connection.get_id();
|
this._label.text = this._connection.get_id();
|
||||||
this.accessible_role = Atk.Role.CHECK_MENU_ITEM;
|
this.accessible_role = Atk.Role.CHECK_MENU_ITEM;
|
||||||
} else {
|
} else {
|
||||||
this._label.text = this.is_active
|
this._label.text = this._getRegularLabel();
|
||||||
? _('Turn Off') : this._section.getConnectLabel();
|
|
||||||
this.accessible_role = Atk.Role.MENU_ITEM;
|
this.accessible_role = Atk.Role.MENU_ITEM;
|
||||||
}
|
}
|
||||||
this._updateOrnament();
|
this._updateOrnament();
|
||||||
@ -255,10 +277,6 @@ var NMConnectionSection = class NMConnectionSection extends Signals.EventEmitter
|
|||||||
return this.getIndicatorIcon();
|
return this.getIndicatorIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
getConnectLabel() {
|
|
||||||
return _("Connect");
|
|
||||||
}
|
|
||||||
|
|
||||||
_connectionValid(_connection) {
|
_connectionValid(_connection) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -592,10 +610,6 @@ var NMBluetoothDeviceItem = class extends NMDeviceItem {
|
|||||||
return this._device.name;
|
return this._device.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
getConnectLabel() {
|
|
||||||
return _("Connect to Internet");
|
|
||||||
}
|
|
||||||
|
|
||||||
_getMenuIcon() {
|
_getMenuIcon() {
|
||||||
if (!this._device.active_connection)
|
if (!this._device.active_connection)
|
||||||
return 'network-cellular-disabled-symbolic';
|
return 'network-cellular-disabled-symbolic';
|
||||||
|
Loading…
Reference in New Issue
Block a user