network: Simplify connections to the firmware signal
The status item will go away soon, so make sure the one-time fire is given its own function. At the same time, only connect to the signal when the situation actually matters. https://bugzilla.gnome.org/show_bug.cgi?id=701954
This commit is contained in:
parent
465c77ddcf
commit
8bd4895538
@ -376,6 +376,14 @@ const NMDevice = new Lang.Class({
|
||||
// in the majority of cases (wired, wwan)
|
||||
},
|
||||
|
||||
_firmwareChanged: function() {
|
||||
if (this._firmwareChangedId) {
|
||||
GObject.Object.prototype.disconnect.call(this._device, this._firmwareChangedId);
|
||||
this._firmwareChangedId = 0;
|
||||
}
|
||||
this._substateChanged();
|
||||
},
|
||||
|
||||
getStatusLabel: function() {
|
||||
if (!this._device)
|
||||
return null;
|
||||
@ -403,9 +411,10 @@ const NMDevice = new Lang.Class({
|
||||
// This state is actually a compound of various states (generically unavailable,
|
||||
// firmware missing), that are exposed by different properties (whose state may
|
||||
// or may not updated when we receive state-changed).
|
||||
if (!this._firmwareChangedId)
|
||||
this._firmwareChangedId = this._device.connect('notify::firmware-missing', Lang.bind(this, this._substateChanged));
|
||||
if (this._device.firmware_missing) {
|
||||
if (!this._firmwareChangedId)
|
||||
this._firmwareChangedId = this._device.connect('notify::firmware-missing', Lang.bind(this, this._firmwareChanged));
|
||||
|
||||
/* Translators: this is for devices that require some kind of firmware or kernel
|
||||
module, which is missing */
|
||||
return _("firmware missing");
|
||||
@ -522,11 +531,6 @@ const NMDevice = new Lang.Class({
|
||||
},
|
||||
|
||||
_updateStatusItem: function() {
|
||||
if (this._firmwareChangedId) {
|
||||
GObject.Object.prototype.disconnect.call(this._device, this._firmwareChangedId);
|
||||
this._firmwareChangedId = 0;
|
||||
}
|
||||
|
||||
this.statusItem.setStatus(this.getStatusLabel());
|
||||
this.statusItem.setToggleState(this.connected);
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user