[gnome-control-center] network: Convert class property to a virtual method



commit 0106a4ab90b4a4e19716ad1c0267ca8b35c91e6d
Author: Robert Ancell <robert ancell canonical com>
Date:   Wed Nov 6 13:38:36 2019 +1300

    network: Convert class property to a virtual method

 panels/network/connection-editor/ce-page-8021x-security.c | 10 ++++++++--
 panels/network/connection-editor/ce-page-details.c        | 12 ++++++++++--
 panels/network/connection-editor/ce-page-ethernet.c       | 10 ++++++++--
 panels/network/connection-editor/ce-page-ip4.c            | 10 ++++++++--
 panels/network/connection-editor/ce-page-ip6.c            | 10 ++++++++--
 panels/network/connection-editor/ce-page-security.c       | 10 ++++++++--
 panels/network/connection-editor/ce-page-vpn.c            | 11 ++++++++---
 panels/network/connection-editor/ce-page-wifi.c           | 10 ++++++++--
 panels/network/connection-editor/ce-page.c                |  7 ++-----
 panels/network/connection-editor/ce-page.h                |  7 +++----
 10 files changed, 71 insertions(+), 26 deletions(-)
---
diff --git a/panels/network/connection-editor/ce-page-8021x-security.c 
b/panels/network/connection-editor/ce-page-8021x-security.c
index fec879206..4c683c672 100644
--- a/panels/network/connection-editor/ce-page-8021x-security.c
+++ b/panels/network/connection-editor/ce-page-8021x-security.c
@@ -91,8 +91,7 @@ ce_page_8021x_security_new (NMConnection     *connection,
        self = CE_PAGE_8021X_SECURITY (ce_page_new (CE_TYPE_PAGE_8021X_SECURITY,
                                                    connection,
                                                    client,
-                                                   
"/org/gnome/control-center/network/8021x-security-page.ui",
-                                                   _("Security")));
+                                                   
"/org/gnome/control-center/network/8021x-security-page.ui"));
 
         self->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (self)->builder, "box"));
        self->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (self)->builder, 
"enable_8021x_switch"));
@@ -109,6 +108,12 @@ ce_page_8021x_security_new (NMConnection     *connection,
        return CE_PAGE (self);
 }
 
+static const gchar *
+ce_page_8021x_security_get_title (CEPage *page)
+{
+        return _("Security");
+}
+
 static gboolean
 ce_page_8021x_security_validate (CEPage *cepage, NMConnection *connection, GError **error)
 {
@@ -176,5 +181,6 @@ ce_page_8021x_security_class_init (CEPage8021xSecurityClass *security_class)
        /* virtual methods */
        object_class->dispose = dispose;
 
+        parent_class->get_title = ce_page_8021x_security_get_title;
        parent_class->validate = ce_page_8021x_security_validate;
 }
diff --git a/panels/network/connection-editor/ce-page-details.c 
b/panels/network/connection-editor/ce-page-details.c
index c01def0e5..d33872389 100644
--- a/panels/network/connection-editor/ce-page-details.c
+++ b/panels/network/connection-editor/ce-page-details.c
@@ -361,6 +361,12 @@ connect_details_page (CEPageDetails *self)
                 gtk_widget_hide (GTK_WIDGET (self->forget_button));
 }
 
+static const gchar *
+ce_page_details_get_title (CEPage *page)
+{
+        return _("Details");
+}
+
 static void
 ce_page_details_init (CEPageDetails *self)
 {
@@ -369,6 +375,9 @@ ce_page_details_init (CEPageDetails *self)
 static void
 ce_page_details_class_init (CEPageDetailsClass *class)
 {
+        CEPageClass *page_class = CE_PAGE_CLASS (class);
+
+        page_class->get_title = ce_page_details_get_title;
 }
 
 CEPage *
@@ -383,8 +392,7 @@ ce_page_details_new (NMConnection        *connection,
         self = CE_PAGE_DETAILS (ce_page_new (CE_TYPE_PAGE_DETAILS,
                                              connection,
                                              client,
-                                             "/org/gnome/control-center/network/details-page.ui",
-                                             _("Details")));
+                                             "/org/gnome/control-center/network/details-page.ui"));
 
         self->all_user_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, 
"all_user_check"));
         self->auto_connect_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (self)->builder, 
"auto_connect_check"));
diff --git a/panels/network/connection-editor/ce-page-ethernet.c 
b/panels/network/connection-editor/ce-page-ethernet.c
index b56335511..137c57538 100644
--- a/panels/network/connection-editor/ce-page-ethernet.c
+++ b/panels/network/connection-editor/ce-page-ethernet.c
@@ -124,6 +124,12 @@ ui_to_setting (CEPageEthernet *self)
                       NULL);
 }
 
+static const gchar *
+ce_page_ethernet_get_title (CEPage *page)
+{
+        return _("Identity");
+}
+
 static gboolean
 ce_page_ethernet_validate (CEPage        *page,
                            NMConnection  *connection,
@@ -171,6 +177,7 @@ ce_page_ethernet_class_init (CEPageEthernetClass *class)
 {
         CEPageClass *page_class = CE_PAGE_CLASS (class);
 
+        page_class->get_title = ce_page_ethernet_get_title;
         page_class->validate = ce_page_ethernet_validate;
 }
 
@@ -183,8 +190,7 @@ ce_page_ethernet_new (NMConnection     *connection,
         self = CE_PAGE_ETHERNET (ce_page_new (CE_TYPE_PAGE_ETHERNET,
                                               connection,
                                               client,
-                                              "/org/gnome/control-center/network/ethernet-page.ui",
-                                              _("Identity")));
+                                              "/org/gnome/control-center/network/ethernet-page.ui"));
 
         self->name = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry"));
         self->device_mac = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, 
"mac_combo"));
diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c
index ea4017e06..0dca8491b 100644
--- a/panels/network/connection-editor/ce-page-ip4.c
+++ b/panels/network/connection-editor/ce-page-ip4.c
@@ -835,6 +835,12 @@ out:
         return ret;
 }
 
+static const gchar *
+ce_page_ip4_get_title (CEPage *page)
+{
+        return _("IPv4");
+}
+
 static gboolean
 ce_page_ip4_validate (CEPage        *self,
                       NMConnection  *connection,
@@ -856,6 +862,7 @@ ce_page_ip4_class_init (CEPageIP4Class *class)
 {
         CEPageClass *page_class = CE_PAGE_CLASS (class);
 
+        page_class->get_title = ce_page_ip4_get_title;
         page_class->validate = ce_page_ip4_validate;
 }
 
@@ -868,8 +875,7 @@ ce_page_ip4_new (NMConnection     *connection,
         self = CE_PAGE_IP4 (ce_page_new (CE_TYPE_PAGE_IP4,
                                            connection,
                                            client,
-                                           "/org/gnome/control-center/network/ip4-page.ui",
-                                           _("IPv4")));
+                                           "/org/gnome/control-center/network/ip4-page.ui"));
 
         self->setting = nm_connection_get_setting_ip4_config (connection);
         if (!self->setting) {
diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c
index ef9381b2b..2c002ccde 100644
--- a/panels/network/connection-editor/ce-page-ip6.c
+++ b/panels/network/connection-editor/ce-page-ip6.c
@@ -757,6 +757,12 @@ out:
         return ret;
 }
 
+static const gchar *
+ce_page_ip6_get_title (CEPage *page)
+{
+        return _("IPv6");
+}
+
 static gboolean
 ce_page_ip6_validate (CEPage        *self,
                       NMConnection  *connection,
@@ -778,6 +784,7 @@ ce_page_ip6_class_init (CEPageIP6Class *class)
 {
         CEPageClass *page_class = CE_PAGE_CLASS (class);
 
+        page_class->get_title = ce_page_ip6_get_title;
         page_class->validate = ce_page_ip6_validate;
 }
 
@@ -790,8 +797,7 @@ ce_page_ip6_new (NMConnection     *connection,
         self = CE_PAGE_IP6 (ce_page_new (CE_TYPE_PAGE_IP6,
                                            connection,
                                            client,
-                                           "/org/gnome/control-center/network/ip6-page.ui",
-                                           _("IPv6")));
+                                           "/org/gnome/control-center/network/ip6-page.ui"));
 
         self->setting = nm_connection_get_setting_ip6_config (connection);
         if (!self->setting) {
diff --git a/panels/network/connection-editor/ce-page-security.c 
b/panels/network/connection-editor/ce-page-security.c
index a215d9e85..5bf979c9d 100644
--- a/panels/network/connection-editor/ce-page-security.c
+++ b/panels/network/connection-editor/ce-page-security.c
@@ -361,6 +361,12 @@ ce_page_security_dispose (GObject *object)
         G_OBJECT_CLASS (ce_page_security_parent_class)->dispose (object);
 }
 
+static const gchar *
+ce_page_security_get_title (CEPage *page)
+{
+        return _("Security");
+}
+
 static gboolean
 ce_page_security_validate (CEPage        *page,
                            NMConnection  *connection,
@@ -423,6 +429,7 @@ ce_page_security_class_init (CEPageSecurityClass *class)
         CEPageClass *page_class = CE_PAGE_CLASS (class);
 
         object_class->dispose = ce_page_security_dispose;
+        page_class->get_title = ce_page_security_get_title;
         page_class->validate = ce_page_security_validate;
 }
 
@@ -437,8 +444,7 @@ ce_page_security_new (NMConnection      *connection,
         self = CE_PAGE_SECURITY (ce_page_new (CE_TYPE_PAGE_SECURITY,
                                               connection,
                                               client,
-                                              "/org/gnome/control-center/network/security-page.ui",
-                                              _("Security")));
+                                              "/org/gnome/control-center/network/security-page.ui"));
 
         sws = nm_connection_get_setting_wireless_security (connection);
         if (sws)
diff --git a/panels/network/connection-editor/ce-page-vpn.c b/panels/network/connection-editor/ce-page-vpn.c
index adc7ec906..795946ef8 100644
--- a/panels/network/connection-editor/ce-page-vpn.c
+++ b/panels/network/connection-editor/ce-page-vpn.c
@@ -119,6 +119,12 @@ ce_page_vpn_dispose (GObject *object)
         G_OBJECT_CLASS (ce_page_vpn_parent_class)->dispose (object);
 }
 
+static const gchar *
+ce_page_vpn_get_title (CEPage *page)
+{
+        return _("Identity");
+}
+
 static gboolean
 ce_page_vpn_validate (CEPage        *page,
                       NMConnection  *connection,
@@ -151,7 +157,7 @@ ce_page_vpn_class_init (CEPageVpnClass *class)
         GObjectClass *object_class = G_OBJECT_CLASS (class);
 
         object_class->dispose = ce_page_vpn_dispose;
-
+        page_class->get_title = ce_page_vpn_get_title;
         page_class->validate = ce_page_vpn_validate;
 }
 
@@ -181,8 +187,7 @@ ce_page_vpn_new (NMConnection     *connection,
         self = CE_PAGE_VPN (ce_page_new (CE_TYPE_PAGE_VPN,
                                         connection,
                                         client,
-                                        "/org/gnome/control-center/network/vpn-page.ui",
-                                        _("Identity")));
+                                        "/org/gnome/control-center/network/vpn-page.ui"));
 
         self->failure_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (self)->builder, "failure_label"));
         self->name_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (self)->builder, "name_entry"));
diff --git a/panels/network/connection-editor/ce-page-wifi.c b/panels/network/connection-editor/ce-page-wifi.c
index 7f7050597..3e948d0e1 100644
--- a/panels/network/connection-editor/ce-page-wifi.c
+++ b/panels/network/connection-editor/ce-page-wifi.c
@@ -109,6 +109,12 @@ ui_to_setting (CEPageWifi *self)
                       NULL);
 }
 
+static const gchar *
+ce_page_wifi_get_title (CEPage *page)
+{
+        return _("Identity");
+}
+
 static gboolean
 ce_page_wifi_class_validate (CEPage        *parent,
                              NMConnection  *connection,
@@ -159,6 +165,7 @@ ce_page_wifi_class_init (CEPageWifiClass *class)
 {
         CEPageClass *page_class= CE_PAGE_CLASS (class);
 
+        page_class->get_title = ce_page_wifi_get_title;
         page_class->validate = ce_page_wifi_class_validate;
 }
 
@@ -171,8 +178,7 @@ ce_page_wifi_new (NMConnection     *connection,
         self = CE_PAGE_WIFI (ce_page_new (CE_TYPE_PAGE_WIFI,
                                           connection,
                                           client,
-                                          "/org/gnome/control-center/network/wifi-page.ui",
-                                          _("Identity")));
+                                          "/org/gnome/control-center/network/wifi-page.ui"));
 
         self->bssid_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, 
"bssid_combo"));
         self->cloned_mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (self)->builder, 
"cloned_mac_combo"));
diff --git a/panels/network/connection-editor/ce-page.c b/panels/network/connection-editor/ce-page.c
index aa081b481..234410da9 100644
--- a/panels/network/connection-editor/ce-page.c
+++ b/panels/network/connection-editor/ce-page.c
@@ -78,7 +78,6 @@ finalize (GObject *object)
 {
         CEPage *self = CE_PAGE (object);
 
-        g_clear_pointer (&self->title, g_free);
         g_cancellable_cancel (self->cancellable);
         g_clear_object (&self->cancellable);
 
@@ -98,7 +97,7 @@ ce_page_get_title (CEPage *self)
 {
         g_return_val_if_fail (CE_IS_PAGE (self), NULL);
 
-        return self->title;
+        return CE_PAGE_GET_CLASS (self)->get_title (self);
 }
 
 gboolean
@@ -215,8 +214,7 @@ CEPage *
 ce_page_new (GType             type,
              NMConnection     *connection,
              NMClient         *client,
-             const gchar      *ui_resource,
-             const gchar      *title)
+             const gchar      *ui_resource)
 {
         g_autoptr(CEPage) self = NULL;
         g_autoptr(GError) error = NULL;
@@ -224,7 +222,6 @@ ce_page_new (GType             type,
         self = CE_PAGE (g_object_new (type,
                                       "connection", connection,
                                       NULL));
-        self->title = g_strdup (title);
         self->client = client;
 
         if (ui_resource) {
diff --git a/panels/network/connection-editor/ce-page.h b/panels/network/connection-editor/ce-page.h
index 3d721432a..a8bde332d 100644
--- a/panels/network/connection-editor/ce-page.h
+++ b/panels/network/connection-editor/ce-page.h
@@ -47,7 +47,6 @@ struct _CEPage
         gboolean initialized;
         GtkBuilder *builder;
         GtkWidget *page;
-        gchar *title;
         const gchar *security_setting;
 
         NMConnection *connection;
@@ -59,7 +58,8 @@ struct _CEPageClass
 {
         GObjectClass parent_class;
 
-        gboolean (*validate) (CEPage *page, NMConnection *connection, GError **error);
+        gboolean     (*validate)  (CEPage *page, NMConnection *connection, GError **error);
+        const gchar *(*get_title) (CEPage *page);
         void (*changed)     (CEPage *page);
         void (*initialized) (CEPage *page, GError *error);
 };
@@ -77,8 +77,7 @@ void         ce_page_changed         (CEPage           *page);
 CEPage      *ce_page_new             (GType             type,
                                       NMConnection     *connection,
                                       NMClient         *client,
-                                      const gchar      *ui_resource,
-                                      const gchar      *title);
+                                      const gchar      *ui_resource);
 void         ce_page_complete_init   (CEPage           *page,
                                       const gchar      *setting_name,
                                       GVariant         *variant,


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