[gnome-control-center] network: Set the device properties at construct time



commit 3c2a09294cb6fc237f5f780b2f37adc8c113d12c
Author: Richard Hughes <richard hughsie com>
Date:   Mon Jul 16 17:34:24 2012 +0100

    network: Set the device properties at construct time
    
    We need this for more complicated devices that need to contact other daemons,
    for instance ModemManager.

 panels/network/cc-network-panel.c |   31 ++++++++++++++++++-------------
 panels/network/net-device.c       |   10 ----------
 panels/network/net-device.h       |    2 --
 panels/network/net-object.c       |   31 ++++---------------------------
 panels/network/net-object.h       |    3 ---
 panels/network/net-vpn.c          |   11 -----------
 panels/network/net-vpn.h          |    1 -
 7 files changed, 22 insertions(+), 67 deletions(-)
---
diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
index b0cbcc1..6ec51be 100644
--- a/panels/network/cc-network-panel.c
+++ b/panels/network/cc-network-panel.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
  *
- * Copyright (C) 2010-2011 Richard Hughes <richard hughsie com>
+ * Copyright (C) 2010-2012 Richard Hughes <richard hughsie com>
  * Copyright (C) 2012 Thomas Bechtold <thomasbechtold jpberlin de>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -528,9 +528,9 @@ panel_refresh_killswitch_visibility (CcNetworkPanel *panel)
 static gboolean
 panel_add_device (CcNetworkPanel *panel, NMDevice *device)
 {
+        const gchar *title;
         GtkListStore *liststore_devices;
         GtkTreeIter iter;
-        gchar *title = NULL;
         NMDeviceType type;
         NetDevice *net_device;
         CcNetworkPanelPrivate *priv = panel->priv;
@@ -573,15 +573,20 @@ panel_add_device (CcNetworkPanel *panel, NMDevice *device)
                                           device);
         }
 
-        /* make title a bit bigger */
-        title = g_strdup_printf ("%s", panel_device_to_localized_string (device));
+        /* create device */
+        title = panel_device_to_localized_string (device);
+        net_device = g_object_new (NET_TYPE_DEVICE,
+                                   "removable", FALSE,
+                                   "cancellable", panel->priv->cancellable,
+                                   "client", panel->priv->client,
+                                   "remote-settings", panel->priv->remote_settings,
+                                   "nm-device", device,
+                                   "id", nm_device_get_udi (device),
+                                   "title", title,
+                                   NULL);
 
         liststore_devices = GTK_LIST_STORE (gtk_builder_get_object (priv->builder,
                                             "liststore_devices"));
-        net_device = net_device_new ();
-        net_object_set_client (NET_OBJECT (net_device), panel->priv->client);
-        net_device_set_nm_device (net_device, device);
-        net_object_set_id (NET_OBJECT (net_device), nm_device_get_udi (device));
         register_object_interest (panel, NET_OBJECT (net_device));
         gtk_list_store_append (liststore_devices, &iter);
         gtk_list_store_set (liststore_devices,
@@ -628,7 +633,6 @@ panel_add_device (CcNetworkPanel *panel, NMDevice *device)
         }
 
 out:
-        g_free (title);
         return FALSE;
 }
 
@@ -2222,10 +2226,11 @@ panel_add_vpn_device (CcNetworkPanel *panel, NMConnection *connection)
                 return;
 
         /* add as a virtual object */
-        net_vpn = net_vpn_new ();
-        net_vpn_set_connection (net_vpn, connection);
-        net_object_set_client (NET_OBJECT (net_vpn), panel->priv->client);
-        net_object_set_id (NET_OBJECT (net_vpn), id);
+        net_vpn = g_object_new (NET_TYPE_VPN,
+                                "removable", TRUE,
+                                "id", id,
+                                "client", panel->priv->client,
+                                NULL);
         register_object_interest (panel, NET_OBJECT (net_vpn));
 
         /* add as a panel */
diff --git a/panels/network/net-device.c b/panels/network/net-device.c
index a06c56e..fe9fcb3 100644
--- a/panels/network/net-device.c
+++ b/panels/network/net-device.c
@@ -219,16 +219,6 @@ state_changed_cb (NMDevice *device,
         net_object_refresh (NET_OBJECT (net_device));
 }
 
-void
-net_device_set_nm_device (NetDevice *device, NMDevice *nm_device)
-{
-        device->priv->nm_device = g_object_ref (nm_device);
-        g_signal_connect (nm_device,
-                          "state-changed",
-                          G_CALLBACK (state_changed_cb),
-                          device);
-}
-
 NMDevice *
 net_device_get_nm_device (NetDevice *device)
 {
diff --git a/panels/network/net-device.h b/panels/network/net-device.h
index 283fa3f..b3951e5 100644
--- a/panels/network/net-device.h
+++ b/panels/network/net-device.h
@@ -53,8 +53,6 @@ struct _NetDeviceClass
 
 GType            net_device_get_type                    (void);
 NetDevice       *net_device_new                         (void);
-void             net_device_set_nm_device               (NetDevice      *device,
-                                                         NMDevice       *nm_device);
 NMDevice        *net_device_get_nm_device               (NetDevice      *device);
 NMConnection    *net_device_get_find_connection         (NetDevice      *device);
 
diff --git a/panels/network/net-object.c b/panels/network/net-object.c
index 4274a94..fb2784f 100644
--- a/panels/network/net-object.c
+++ b/panels/network/net-object.c
@@ -95,13 +95,6 @@ net_object_get_removable (NetObject *object)
         return object->priv->removable;
 }
 
-void
-net_object_set_removable (NetObject *object, gboolean removable)
-{
-        g_return_if_fail (NET_IS_OBJECT (object));
-        object->priv->removable = removable;
-}
-
 const gchar *
 net_object_get_title (NetObject *object)
 {
@@ -123,13 +116,6 @@ net_object_get_client (NetObject *object)
         return object->priv->client;
 }
 
-void
-net_object_set_client (NetObject *object, NMClient *client)
-{
-        g_return_if_fail (NET_IS_OBJECT (object));
-        object->priv->client = g_object_ref (client);
-}
-
 NMRemoteSettings *
 net_object_get_remote_settings (NetObject *object)
 {
@@ -161,6 +147,7 @@ net_object_add_to_notebook (NetObject *object,
                                         g_free);
                 return widget;
         }
+        g_debug ("no klass->add_to_notebook for %s", object->priv->id);
         return NULL;
 }
 
@@ -242,9 +229,7 @@ net_object_set_property (GObject *object_,
                 priv->removable = g_value_get_boolean (value);
                 break;
         case PROP_CLIENT:
-                if (priv->client != NULL)
-                        g_object_unref (priv->client);
-                priv->client = g_object_ref (g_value_get_object (value));
+                priv->client = g_value_dup_object (value);
                 break;
         case PROP_REMOTE_SETTINGS:
                 priv->remote_settings = g_value_dup_object (value);
@@ -296,12 +281,12 @@ net_object_class_init (NetObjectClass *klass)
 
         pspec = g_param_spec_boolean ("removable", NULL, NULL,
                                       TRUE,
-                                      G_PARAM_READWRITE);
+                                      G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
         g_object_class_install_property (object_class, PROP_REMOVABLE, pspec);
 
         pspec = g_param_spec_object ("client", NULL, NULL,
                                      NM_TYPE_CLIENT,
-                                     G_PARAM_READWRITE);
+                                     G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
         g_object_class_install_property (object_class, PROP_CLIENT, pspec);
 
         pspec = g_param_spec_object ("remote-settings", NULL, NULL,
@@ -336,11 +321,3 @@ net_object_init (NetObject *object)
         object->priv = NET_OBJECT_GET_PRIVATE (object);
 }
 
-NetObject *
-net_object_new (void)
-{
-        NetObject *object;
-        object = g_object_new (NET_TYPE_OBJECT, NULL);
-        return NET_OBJECT (object);
-}
-
diff --git a/panels/network/net-object.h b/panels/network/net-object.h
index dccb281..ce0b381 100644
--- a/panels/network/net-object.h
+++ b/panels/network/net-object.h
@@ -63,7 +63,6 @@ struct _NetObjectClass
 };
 
 GType            net_object_get_type                    (void);
-NetObject       *net_object_new                         (void);
 const gchar     *net_object_get_id                      (NetObject      *object);
 void             net_object_set_id                      (NetObject      *object,
                                                          const gchar    *id);
@@ -72,8 +71,6 @@ void             net_object_set_title                   (NetObject      *object,
                                                          const gchar    *title);
 NMClient        *net_object_get_client                  (NetObject      *object);
 NMRemoteSettings *net_object_get_remote_settings        (NetObject      *object);
-void             net_object_set_client                  (NetObject      *object,
-                                                         NMClient       *client);
 GCancellable    *net_object_get_cancellable             (NetObject      *object);
 void             net_object_emit_changed                (NetObject      *object);
 void             net_object_emit_removed                (NetObject      *object);
diff --git a/panels/network/net-vpn.c b/panels/network/net-vpn.c
index e4e0c8d..1e24c24 100644
--- a/panels/network/net-vpn.c
+++ b/panels/network/net-vpn.c
@@ -483,14 +483,3 @@ net_vpn_init (NetVpn *vpn)
 
         nm_device_refresh_vpn_ui (vpn);
 }
-
-NetVpn *
-net_vpn_new (void)
-{
-        NetVpn *vpn;
-        vpn = g_object_new (NET_TYPE_VPN,
-                            "removable", TRUE,
-                            NULL);
-        return NET_VPN (vpn);
-}
-
diff --git a/panels/network/net-vpn.h b/panels/network/net-vpn.h
index f11fcf6..542fdad 100644
--- a/panels/network/net-vpn.h
+++ b/panels/network/net-vpn.h
@@ -54,7 +54,6 @@ struct _NetVpnClass
 };
 
 GType            net_vpn_get_type               (void);
-NetVpn          *net_vpn_new                    (void);
 void             net_vpn_set_connection         (NetVpn         *vpn,
                                                  NMConnection   *connection);
 



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