[gnome-shell/wip/aggregate-menu: 42/99] network: Remove setActiveConnection/clearActiveConnection



commit b383959d020fc59480b17abeb9ec24447c9db168
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Apr 26 21:44:59 2013 -0400

    network: Remove setActiveConnection/clearActiveConnection
    
    This can be more easily achieved by listening for changes to the
    device's active-connection property. VPN will still need support to
    track active connections, as it does not have an associated
    device. But as VPN can track multiple active connections, the names
    "set" and "clear" don't quite fit. Rename them to the more-standard
    "add" and "remove".
    
    https://bugzilla.gnome.org/show_bug.cgi?id=701954

 js/ui/status/network.js |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)
---
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 22c774c..ebf31ba 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -302,6 +302,7 @@ const NMDevice = new Lang.Class({
             this.device = device;
             this.device._delegate = this;
             this._stateChangedId = this.device.connect('state-changed', Lang.bind(this, 
this._deviceStateChanged));
+            this._activeConnectionChangedId = this.device.connect('notify::active-connection', 
Lang.bind(this, this._activeConnectionChanged));
         } else if (this.device) {
             this.device._delegate = null;
 
@@ -311,6 +312,10 @@ const NMDevice = new Lang.Class({
                 GObject.Object.prototype.disconnect.call(this.device, this._stateChangedId);
                 this._stateChangedId = 0;
             }
+            if (this._activeConnectionChangedId) {
+                GObject.Object.prototype.disconnect.call(this.device, this._activeConnectionChangedId);
+                this._stateChangedId = 0;
+            }
             if (this._firmwareChangedId) {
                 GObject.Object.prototype.disconnect.call(this.device, this._firmwareChangedId);
                 this._firmwareChangedId = 0;
@@ -353,11 +358,9 @@ const NMDevice = new Lang.Class({
         return this.device && this.device.state == NetworkManager.DeviceState.ACTIVATED;
     },
 
-    clearActiveConnection: function(activeConnection) {
-        this.setActiveConnection(null);
-    },
+    _activeConnectionChanged: function() {
+        let activeConnection = this.device.active_connection;
 
-    setActiveConnection: function(activeConnection) {
         if (activeConnection == this._activeConnection)
             // nothing to do
             return;
@@ -792,7 +795,7 @@ const NMDeviceWireless = new Lang.Class({
                 this._activeNetwork = this._networks[res.network];
         }
 
-        // we don't refresh the view here, setActiveConnection will
+        // we don't refresh the view here, _activeConnectionChanged will
     },
 
     _getApSecurityType: function(accessPoint) {
@@ -1281,7 +1284,7 @@ const NMVPNSection = new Lang.Class({
         }
     },
 
-    clearActiveConnection: function(activeConnection) {
+    removeActiveConnection: function(activeConnection) {
         let pos = this._findConnection(activeConnection.uuid);
         if (pos < 0)
             return;
@@ -1296,7 +1299,7 @@ const NMVPNSection = new Lang.Class({
         }
     },
 
-    setActiveConnection: function(activeConnection) {
+    addActiveConnection: function(activeConnection) {
         let pos = this._findConnection(activeConnection.uuid);
         if (pos < 0)
             return;
@@ -1739,10 +1742,8 @@ const NMApplet = new Lang.Class({
 
         for (let i = 0; i < closedConnections.length; i++) {
             let a = closedConnections[i];
-            if (a._primaryDevice) {
-                a._primaryDevice.clearActiveConnection(a);
-                a._primaryDevice = null;
-            }
+            if (a._type == NetworkManager.SETTING_VPN_SETTING_NAME)
+                this._vpnSection.removeActiveConnection(a);
             if (a._inited) {
                 a.disconnect(a._notifyStateId);
                 a.disconnect(a._notifyDefaultId);
@@ -1801,14 +1802,13 @@ const NMApplet = new Lang.Class({
                 active_vpn = a;
 
             if (!a._primaryDevice) {
-                if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME)
+                if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
                     // This list is guaranteed to have one device in it.
                     a._primaryDevice = a.get_devices()[0]._delegate;
-                else
+                } else {
                     a._primaryDevice = this._vpnSection;
-
-                if (a._primaryDevice)
-                    a._primaryDevice.setActiveConnection(a);
+                    this._vpnSection.addActiveConnection(a);
+                }
 
                 if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED
                     && a._primaryDevice && a._primaryDevice._notification) {


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