Add wifi device change callback
Add any wifi devices that have become managed or remove ones that have become unmanaged. Since a device could have been added or removed previously, we also have to handle multiple calls to add or remove a device.
This commit is contained in:
parent
6c63c3980e
commit
f4d2eeb7f7
1 changed files with 41 additions and 4 deletions
|
@ -453,18 +453,55 @@ verify_argv (CcWifiPanel *self,
|
|||
/* Callbacks */
|
||||
|
||||
static void
|
||||
device_added_cb (CcWifiPanel *self, NMDevice *device)
|
||||
device_state_changed_cb (CcWifiPanel *self, GParamSpec *pspec, NMDevice *device)
|
||||
{
|
||||
if (!NM_IS_DEVICE_WIFI (device) || !nm_device_get_managed (device))
|
||||
const gchar *id;
|
||||
|
||||
id = nm_device_get_udi (device);
|
||||
/* Don't add a device that has already been added */
|
||||
if (!NM_IS_DEVICE_WIFI (device) || !id)
|
||||
return;
|
||||
|
||||
add_wifi_device (self, device);
|
||||
check_main_stack_page (self);
|
||||
if (nm_device_get_managed (device))
|
||||
{
|
||||
if (gtk_stack_get_child_by_name (self->stack, id))
|
||||
return;
|
||||
add_wifi_device (self, device);
|
||||
check_main_stack_page (self);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!gtk_stack_get_child_by_name (self->stack, id))
|
||||
return;
|
||||
remove_wifi_device (self, device);
|
||||
check_main_stack_page (self);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
device_added_cb (CcWifiPanel *self, NMDevice *device)
|
||||
{
|
||||
if (!NM_IS_DEVICE_WIFI (device))
|
||||
return;
|
||||
|
||||
if (nm_device_get_managed (device))
|
||||
{
|
||||
add_wifi_device (self, device);
|
||||
check_main_stack_page (self);
|
||||
}
|
||||
|
||||
g_signal_connect_object (device,
|
||||
"notify::state",
|
||||
G_CALLBACK (device_state_changed_cb),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
}
|
||||
|
||||
static void
|
||||
device_removed_cb (CcWifiPanel *self, NMDevice *device)
|
||||
{
|
||||
const gchar *id;
|
||||
|
||||
if (!NM_IS_DEVICE_WIFI (device))
|
||||
return;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue