network: request that nm-applet show the mobile broadband wizard

Use nm-applet 0.8.999 API to call the mobile broadband wizard and
activate the new connection.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=649318
This commit is contained in:
Dan Williams 2011-05-03 14:48:10 -05:00
parent ae0652d13f
commit 5090a4ccce

View File

@ -53,7 +53,8 @@ const NMAppletHelperInterface = {
methods: [ methods: [
{ name: 'ConnectToHiddenNetwork', inSignature: '', outSignature: '' }, { name: 'ConnectToHiddenNetwork', inSignature: '', outSignature: '' },
{ name: 'CreateWifiNetwork', inSignature: '', outSignature: '' }, { name: 'CreateWifiNetwork', inSignature: '', outSignature: '' },
{ name: 'ConnectTo8021xNetwork', inSignature: 'oo', outSignature: '' } { name: 'ConnectTo8021xNetwork', inSignature: 'oo', outSignature: '' },
{ name: 'ConnectTo3gNetwork', inSignature: 'o', outSignature: '' }
], ],
}; };
const NMAppletProxy = DBus.makeProxyClass(NMAppletHelperInterface); const NMAppletProxy = DBus.makeProxyClass(NMAppletHelperInterface);
@ -440,6 +441,7 @@ NMDevice.prototype = {
this._client.activate_connection(this._connections[0].connection, this.device, null, null); this._client.activate_connection(this._connections[0].connection, this.device, null, null);
} else if (this._autoConnectionName) { } else if (this._autoConnectionName) {
let connection = this._createAutomaticConnection(); let connection = this._createAutomaticConnection();
if (connection)
this._client.add_and_activate_connection(connection, this.device, null, null); this._client.add_and_activate_connection(connection, this.device, null, null);
} }
}, },
@ -620,6 +622,7 @@ NMDevice.prototype = {
this._autoConnectionItem = new PopupMenu.PopupMenuItem(this._autoConnectionName); this._autoConnectionItem = new PopupMenu.PopupMenuItem(this._autoConnectionName);
this._autoConnectionItem.connect('activate', Lang.bind(this, function() { this._autoConnectionItem.connect('activate', Lang.bind(this, function() {
let connection = this._createAutomaticConnection(); let connection = this._createAutomaticConnection();
if (connection)
this._client.add_and_activate_connection(connection, this.device, null, null); this._client.add_and_activate_connection(connection, this.device, null, null);
})); }));
this.section.addMenuItem(this._autoConnectionItem); this.section.addMenuItem(this._autoConnectionItem);
@ -777,6 +780,10 @@ NMDeviceModem.prototype = {
this.mobileDevice = null; this.mobileDevice = null;
this._connectionType = 'ppp'; this._connectionType = 'ppp';
this._applet_proxy = new NMAppletProxy(DBus.session,
'org.gnome.network_manager_applet',
'/org/gnome/network_manager_applet');
this._capabilities = device.current_capabilities; this._capabilities = device.current_capabilities;
if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) { if (this._capabilities & NetworkManager.DeviceModemCapabilities.GSM_UMTS) {
is_wwan = true; is_wwan = true;
@ -878,19 +885,13 @@ NMDeviceModem.prototype = {
}, },
_createAutomaticConnection: function() { _createAutomaticConnection: function() {
// FIXME: we need to summon the mobile wizard here // Mobile wizard is handled by nm-applet for now...
// or NM will not have the necessary parameters to complete the connection this._applet_proxy.ConnectTo3gNetworkRemote(this.device.get_path(),
// pending a DBus method on nm-applet Lang.bind(this, function(results, err) {
if (err)
let connection = new NetworkManager.Connection; log(err);
connection._uuid = NetworkManager.utils_uuid_generate();
connection.add_setting(new NetworkManager.SettingConnection({
uuid: connection._uuid,
id: this._autoConnectionName,
type: this._connectionType,
autoconnect: false
})); }));
return connection; return null;
} }
}; };