[gnome-shell] network: Add a Wired device
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] network: Add a Wired device
- Date: Wed, 29 Jan 2014 20:04:24 +0000 (UTC)
commit 7051411be7bbfd9e0c2e831762c87872e5bde468
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Jan 23 14:25:06 2014 -0500
network: Add a Wired device
This isn't quite like the design, as we don't show icons for other
devices when wired is in an error state.
https://bugzilla.gnome.org/show_bug.cgi?id=708966
js/ui/status/network.js | 85 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 62 insertions(+), 23 deletions(-)
---
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index a3de3dd..3dc694e 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -21,6 +21,7 @@ const Util = imports.misc.util;
const NMConnectionCategory = {
INVALID: 'invalid',
+ WIRED: 'wired',
WIRELESS: 'wireless',
WWAN: 'wwan',
VPN: 'vpn'
@@ -296,6 +297,11 @@ const NMConnectionDevice = new Lang.Class({
this._activeConnectionChangedId = this._device.connect('notify::active-connection', Lang.bind(this,
this._activeConnectionChanged));
},
+ _autoConnect: function() {
+ let connection = new NetworkManager.Connection();
+ this._client.add_and_activate_connection(connection, this._device, null, null);
+ },
+
destroy: function() {
if (this._stateChangedId) {
GObject.Object.prototype.disconnect.call(this._device, this._stateChangedId);
@@ -413,6 +419,48 @@ const NMConnectionDevice = new Lang.Class({
},
});
+const NMDeviceWired = new Lang.Class({
+ Name: 'NMDeviceWired',
+ Extends: NMConnectionDevice,
+ category: NMConnectionCategory.WIRED,
+
+ _init: function(client, device, settings) {
+ this.parent(client, device, settings);
+
+ this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"), device));
+ },
+
+ _isConnected: function() {
+ if (!this._device.active_connection)
+ return false;
+
+ let state = this._device.active_connection.state;
+ return state >= NetworkManager.ActiveConnectionState.ACTIVATING;
+ },
+
+ _sync: function() {
+ this.item.actor.visible = this._isConnected();
+ this.parent();
+ },
+
+ _getMenuIcon: function() {
+ if (this._device.active_connection)
+ return this.getIndicatorIcon();
+ else
+ return 'network-wired-disconnected-symbolic';
+ },
+
+ getIndicatorIcon: function() {
+ let state = this._device.active_connection.state;
+ if (state == NetworkManager.ActiveConnectionState.ACTIVATING)
+ return 'network-wired-acquiring-symbolic';
+ else if (state == NetworkManager.ActiveConnectionState.ACTIVATED)
+ return 'network-wired-symbolic';
+ else
+ return 'network-wired-disconnected-symbolic';
+ }
+});
+
const NMDeviceModem = new Lang.Class({
Name: 'NMDeviceModem',
Extends: NMConnectionDevice,
@@ -510,18 +558,6 @@ const NMDeviceBluetooth = new Lang.Class({
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
},
- _autoConnect: function() {
- // FIXME: DUN devices are configured like modems, so
- // We need to spawn the mobile wizard
- // but the network panel doesn't support bluetooth at the moment
- // so we just create an empty connection and hope
- // that this phone supports PAN
-
- let connection = new NetworkManager.Connection();
- this._client.add_and_activate_connection(connection, this._device, null, null);
- return true;
- },
-
_getMenuIcon: function() {
if (this._device.active_connection)
return this.getIndicatorIcon();
@@ -1266,6 +1302,7 @@ const NMApplet = new Lang.Class({
// Device types
this._dtypes = { };
+ this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired;
this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
@@ -1273,6 +1310,7 @@ const NMApplet = new Lang.Class({
// Connection types
this._ctypes = { };
+ this._ctypes[NetworkManager.SETTING_WIRED_SETTING_NAME] = NMConnectionCategory.WIRED;
this._ctypes[NetworkManager.SETTING_WIRELESS_SETTING_NAME] = NMConnectionCategory.WIRELESS;
this._ctypes[NetworkManager.SETTING_BLUETOOTH_SETTING_NAME] = NMConnectionCategory.WWAN;
this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
@@ -1295,6 +1333,15 @@ const NMApplet = new Lang.Class({
this._tryLateInit();
},
+ _createDeviceCategory: function() {
+ let category = {
+ section: new PopupMenu.PopupMenuSection(),
+ devices: [ ],
+ };
+ this.menu.addMenuItem(category.section);
+ return category;
+ },
+
_tryLateInit: function() {
if (!this._client || !this._settings)
return;
@@ -1310,17 +1357,9 @@ const NMApplet = new Lang.Class({
this._nmDevices = [];
this._devices = { };
- this._devices.wireless = {
- section: new PopupMenu.PopupMenuSection(),
- devices: [ ],
- };
- this.menu.addMenuItem(this._devices.wireless.section);
-
- this._devices.wwan = {
- section: new PopupMenu.PopupMenuSection(),
- devices: [ ],
- };
- this.menu.addMenuItem(this._devices.wwan.section);
+ this._devices.wired = this._createDeviceCategory();
+ this._devices.wireless = this._createDeviceCategory();
+ this._devices.wwan = this._createDeviceCategory();
this._vpnSection = new NMVPNSection(this._client);
this._vpnSection.connect('activation-failed', Lang.bind(this, this._onActivationFailed));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]