[gnome-initial-setup] Make pages use a specified format



commit ffa8f0b328420acd0c6c5ab78b761fd0a862a6b6
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Oct 31 15:25:34 2012 -0400

    Make pages use a specified format
    
    This is so we can introduce a new GisPage base class to stop
    memory leaks.

 gnome-initial-setup/pages/eulas/gis-eula-pages.c   |    2 +-
 gnome-initial-setup/pages/goa/gis-goa-page.c       |    9 +++++--
 .../pages/language/gis-language-page.c             |   23 ++++++++++---------
 .../pages/location/gis-location-page.c             |   18 ++++++++++-----
 .../pages/network/gis-network-page.c               |    9 ++++---
 .../pages/summary/gis-summary-page.c               |    5 ++-
 6 files changed, 39 insertions(+), 27 deletions(-)
---
diff --git a/gnome-initial-setup/pages/eulas/gis-eula-pages.c b/gnome-initial-setup/pages/eulas/gis-eula-pages.c
index a3f4f70..cd2a7ef 100644
--- a/gnome-initial-setup/pages/eulas/gis-eula-pages.c
+++ b/gnome-initial-setup/pages/eulas/gis-eula-pages.c
@@ -15,8 +15,8 @@ typedef struct _EulaPage EulaPage;
 
 struct _EulaPage {
   SetupData *setup;
-
   GtkWidget *widget;
+
   GtkWidget *text_view;
   GtkWidget *checkbox;
   GtkWidget *scrolled_window;
diff --git a/gnome-initial-setup/pages/goa/gis-goa-page.c b/gnome-initial-setup/pages/goa/gis-goa-page.c
index 1575d34..4859ede 100644
--- a/gnome-initial-setup/pages/goa/gis-goa-page.c
+++ b/gnome-initial-setup/pages/goa/gis-goa-page.c
@@ -24,7 +24,9 @@ typedef struct _GoaData GoaData;
 
 struct _GoaData {
   SetupData *setup;
+  GtkWidget *widget;
   GtkBuilder *builder;
+
   /* online data */
   GoaClient *goa_client;
 };
@@ -280,6 +282,7 @@ gis_prepare_online_page (SetupData *setup)
   GisAssistant *assistant = gis_get_assistant (setup);
   data->setup = setup;
   data->builder = gis_builder (PAGE_ID);
+  data->widget = WID ("goa-page");
   data->goa_client = goa_client_new_sync (NULL, &error);
 
   if (data->goa_client == NULL)
@@ -300,7 +303,7 @@ gis_prepare_online_page (SetupData *setup)
   g_signal_connect (data->goa_client, "account-removed",
                     G_CALLBACK (goa_account_removed), data);
 
-  gis_assistant_add_page (assistant, WID ("goa-page"));
-  gis_assistant_set_page_complete (assistant, WID ("goa-page"), TRUE);
-  gis_assistant_set_page_title (assistant, WID ("goa-page"), _("Online Accounts"));
+  gis_assistant_add_page (assistant, data->widget);
+  gis_assistant_set_page_complete (assistant, data->widget, TRUE);
+  gis_assistant_set_page_title (assistant, data->widget, _("Online Accounts"));
 }
diff --git a/gnome-initial-setup/pages/language/gis-language-page.c b/gnome-initial-setup/pages/language/gis-language-page.c
index cd52a26..f90c04e 100644
--- a/gnome-initial-setup/pages/language/gis-language-page.c
+++ b/gnome-initial-setup/pages/language/gis-language-page.c
@@ -16,13 +16,15 @@
 #include "cc-common-language.h"
 #include "gdm-languages.h"
 
-#define OBJ(type,name) ((type)gtk_builder_get_object(builder,(name)))
+#define OBJ(type,name) ((type)gtk_builder_get_object(data->builder,(name)))
 #define WID(name) OBJ(GtkWidget*,name)
 
 typedef struct _LanguageData LanguageData;
 
 struct _LanguageData {
   SetupData *setup;
+  GtkWidget *widget;
+  GtkBuilder *builder;
 
   GtkWidget *show_all;
   GtkWidget *page;
@@ -236,19 +238,20 @@ gis_prepare_language_page (SetupData *setup)
 {
   LanguageData *data;
   GisAssistant *assistant = gis_get_assistant (setup);
-  GtkBuilder *builder = gis_builder (PAGE_ID);
   GtkListStore *liststore;
   GtkTreeModel *filter;
   GtkTreeView *treeview;
 
+  data = g_slice_new0 (LanguageData);
+  data->setup = setup;
+  data->builder = gis_builder (PAGE_ID);
+  data->widget = WID ("language-page");
+
   liststore = gtk_list_store_new (NUM_COLS,
                                   G_TYPE_STRING,
                                   G_TYPE_STRING,
                                   G_TYPE_BOOLEAN);
 
-  data = g_slice_new0 (LanguageData);
-  data->setup = setup;
-  data->page = WID ("language-page");
   data->show_all = WID ("language-show-all");
   data->filter_entry = WID ("language-filter-entry");
   data->liststore = GTK_TREE_MODEL (liststore);
@@ -278,12 +281,10 @@ gis_prepare_language_page (SetupData *setup)
   g_signal_connect (gtk_tree_view_get_selection (treeview), "changed",
                     G_CALLBACK (selection_changed), data);
 
-  gis_assistant_add_page (assistant, data->page);
-  gis_assistant_set_use_unicode_buttons (assistant, data->page, TRUE);
-  gis_assistant_set_page_complete (assistant, data->page, TRUE);
+  gis_assistant_add_page (assistant, data->widget);
+  gis_assistant_set_use_unicode_buttons (assistant, data->widget, TRUE);
+  gis_assistant_set_page_complete (assistant, data->widget, TRUE);
 
-  gis_assistant_set_page_title (gis_get_assistant (data->setup), data->page, _("Welcome"));
+  gis_assistant_set_page_title (gis_get_assistant (data->setup), data->widget, _("Welcome"));
   select_current_locale (treeview);
-
-  g_object_unref (builder);
 }
diff --git a/gnome-initial-setup/pages/location/gis-location-page.c b/gnome-initial-setup/pages/location/gis-location-page.c
index d864afe..27ea643 100644
--- a/gnome-initial-setup/pages/location/gis-location-page.c
+++ b/gnome-initial-setup/pages/location/gis-location-page.c
@@ -30,6 +30,8 @@
 typedef struct _LocationData LocationData;
 
 struct _LocationData {
+  SetupData *setup;
+  GtkWidget *widget;
   GtkBuilder *builder;
 
   /* location data */
@@ -239,13 +241,17 @@ determine_location (GtkWidget    *widget,
 void
 gis_prepare_location_page (SetupData *setup)
 {
+  GisAssistant *assistant = gis_get_assistant (setup);
   GtkWidget *frame, *map, *entry;
   GWeatherLocation *world;
   GError *error;
   const gchar *timezone;
-  LocationData *data = g_slice_new0 (LocationData);
-  GisAssistant *assistant = gis_get_assistant (setup);
+  LocationData *data;
+
+  data = g_slice_new0 (LocationData);
+  data->setup = setup;
   data->builder = gis_builder (PAGE_ID);
+  data->widget = WID ("location-page");
 
   frame = WID("location-map-frame");
 
@@ -296,7 +302,7 @@ gis_prepare_location_page (SetupData *setup)
 
   data->current_location = cc_timezone_map_get_location (data->map);
   update_timezone (data);
-
+ 
   g_signal_connect (G_OBJECT (entry), "notify::location",
                     G_CALLBACK (location_changed), data);
 
@@ -310,7 +316,7 @@ gis_prepare_location_page (SetupData *setup)
   gtk_widget_hide (WID ("location-auto-button"));
 #endif
 
-  gis_assistant_add_page (assistant, WID ("location-page"));
-  gis_assistant_set_page_title (assistant, WID ("location-page"), _("Location"));
-  gis_assistant_set_page_complete (assistant, WID ("location-page"), TRUE);
+  gis_assistant_add_page (assistant, data->widget);
+  gis_assistant_set_page_title (assistant, data->widget, _("Location"));
+  gis_assistant_set_page_complete (assistant, data->widget, TRUE);
 }
diff --git a/gnome-initial-setup/pages/network/gis-network-page.c b/gnome-initial-setup/pages/network/gis-network-page.c
index d940b4b..36d075c 100644
--- a/gnome-initial-setup/pages/network/gis-network-page.c
+++ b/gnome-initial-setup/pages/network/gis-network-page.c
@@ -29,7 +29,7 @@ typedef struct _NetworkData NetworkData;
 
 struct _NetworkData {
   SetupData *setup;
-
+  GtkWidget *widget;
   GtkBuilder *builder;
 
   /* network data */
@@ -607,6 +607,7 @@ gis_prepare_network_page (SetupData *setup)
 
   data->setup = setup;
   data->builder = gis_builder (PAGE_ID);
+  data->widget = WID ("network-page");
 
   col = OBJ(GtkTreeViewColumn*, "network-list-column");
 
@@ -705,9 +706,9 @@ gis_prepare_network_page (SetupData *setup)
 
   refresh_wireless_list (data);
 
-  gis_assistant_add_page (assistant, WID ("network-page"));
-  gis_assistant_set_page_title (assistant, WID ("network-page"), _("Network"));
-  gis_assistant_set_page_complete (assistant, WID ("network-page"), TRUE);
+  gis_assistant_add_page (assistant, data->widget);
+  gis_assistant_set_page_title (assistant, data->widget, _("Network"));
+  gis_assistant_set_page_complete (assistant, data->widget, TRUE);
 
  out: ;
 }
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.c b/gnome-initial-setup/pages/summary/gis-summary-page.c
index 0948d0a..6cdd6eb 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -13,7 +13,7 @@
 
 #include <gdm/gdm-client.h>
 
-#define OBJ(type,name) ((type)gtk_builder_get_object(builder,(name)))
+#define OBJ(type,name) ((type)gtk_builder_get_object(data->builder,(name)))
 #define WID(name) OBJ(GtkWidget*,name)
 
 #define SERVICE_NAME "gdm-password"
@@ -25,6 +25,7 @@ typedef struct _SummaryData SummaryData;
 struct _SummaryData {
   SetupData *setup;
   GtkWidget *widget;
+  GtkBuilder *builder;
 
   ActUser *user_account;
   const gchar *user_password;
@@ -307,11 +308,11 @@ void
 gis_prepare_summary_page (SetupData *setup)
 {
   GisAssistant *assistant = gis_get_assistant (setup);
-  GtkBuilder *builder = get_builder ();
   SummaryData *data;
 
   data = g_slice_new0 (SummaryData);
   data->setup = setup;
+  data->builder = get_builder ();
   data->widget = WID ("summary-page");
 
   g_signal_connect (assistant, "prepare", G_CALLBACK (prepare_cb), data);



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