[gnome-initial-setup] summary: Add a better summary override system



commit de8504a8964fa1cd4db9ecdafa573fdeabfb0837
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Oct 31 15:02:51 2012 -0400

    summary: Add a better summary override system
    
    Use native UI files instead of having all this crazy ini garbage.

 gnome-initial-setup/gnome-initial-setup.c          |   27 ------
 gnome-initial-setup/gnome-initial-setup.h          |    1 -
 gnome-initial-setup/pages/summary/Makefile.am      |    4 +
 .../pages/summary/gis-summary-page.c               |   86 +++++++------------
 4 files changed, 36 insertions(+), 82 deletions(-)
---
diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c
index 56a2238..d4708fc 100644
--- a/gnome-initial-setup/gnome-initial-setup.c
+++ b/gnome-initial-setup/gnome-initial-setup.c
@@ -31,7 +31,6 @@
 /* Setup data {{{1 */
 struct _SetupData {
   GtkWindow *main_window;
-  GKeyFile *overrides;
   GisAssistant *assistant;
 
   ActUser *user_account;
@@ -89,12 +88,6 @@ rebuild_pages (SetupData *setup)
   return FALSE;
 }
 
-GKeyFile *
-gis_get_overrides (SetupData *setup)
-{
-  return g_key_file_ref (setup->overrides);
-}
-
 GtkWindow *
 gis_get_main_window (SetupData *setup)
 {
@@ -150,24 +143,6 @@ get_assistant_type (void)
 /* main {{{1 */
 
 static void
-load_overrides (SetupData *setup)
-{
-  gchar *filename;
-  GError *error = NULL;
-
-  setup->overrides = g_key_file_new ();
-  filename = g_build_filename (UIDIR, "overrides.ini", NULL);
-  if (!g_key_file_load_from_file (setup->overrides, filename, 0, &error)) {
-    if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
-      g_error ("%s", error->message);
-      exit (1);
-    }
-    g_error_free (error);
-  }
-  g_free (filename);
-}
-
-static void
 activate_cb (GApplication *app,
              gpointer      user_data)
 {
@@ -197,8 +172,6 @@ startup_cb (GApplication *app,
 
   gtk_widget_show (GTK_WIDGET (setup->assistant));
 
-  load_overrides (setup);
-
   prepare_main_window (setup);
   rebuild_pages (setup);
 }
diff --git a/gnome-initial-setup/gnome-initial-setup.h b/gnome-initial-setup/gnome-initial-setup.h
index 38c359a..34dcdaa 100644
--- a/gnome-initial-setup/gnome-initial-setup.h
+++ b/gnome-initial-setup/gnome-initial-setup.h
@@ -15,7 +15,6 @@ G_BEGIN_DECLS
 typedef struct _SetupData SetupData;
 
 GtkWindow *gis_get_main_window (SetupData *setup);
-GKeyFile *gis_get_overrides (SetupData *setup);
 GisAssistant * gis_get_assistant (SetupData *setup);
 void gis_locale_changed (SetupData *setup);
 
diff --git a/gnome-initial-setup/pages/summary/Makefile.am b/gnome-initial-setup/pages/summary/Makefile.am
index 4661cdd..39c9fa8 100644
--- a/gnome-initial-setup/pages/summary/Makefile.am
+++ b/gnome-initial-setup/pages/summary/Makefile.am
@@ -1,6 +1,10 @@
 
 noinst_LTLIBRARIES = libgissummary.la
 
+AM_CPPFLAGS = \
+	$(INITIAL_SETUP_CFLAGS) \
+	-DUIDIR="\"$(uidir)\""
+
 libgissummary_la_SOURCES =	\
 	gis-summary-page.c gis-summary-page.h
 
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.c b/gnome-initial-setup/pages/summary/gis-summary-page.c
index c98edfc..4622d1a 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -5,6 +5,7 @@
 
 #include <glib/gi18n.h>
 #include <gio/gio.h>
+#include <stdlib.h>
 
 #include <act/act-user-manager.h>
 
@@ -260,57 +261,6 @@ tour_cb (GtkButton *button, SummaryData *data)
 }
 
 static void
-install_overrides (SetupData  *setup,
-                   GtkBuilder *builder)
-{
-  gchar *s;
-  GKeyFile *overrides = gis_get_overrides (setup);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-title",
-                                    NULL, NULL);
-  if (s)
-    gtk_label_set_text (GTK_LABEL (WID ("summary-title")), s);
-  g_free (s);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-details",
-                                    NULL, NULL);
-  if (s) {
-    gtk_label_set_text (GTK_LABEL (WID ("summary-details")), s);
-  }
-  g_free (s);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-details2",
-                                    NULL, NULL);
-  if (s)
-    gtk_label_set_text (GTK_LABEL (WID ("summary-details2")), s);
-  g_free (s);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-start-button",
-                                    NULL, NULL);
-  if (s)
-    gtk_button_set_label (GTK_BUTTON (WID ("summary-start-button")), s);
-  g_free (s);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-tour-details",
-                                    NULL, NULL);
-  if (s)
-    gtk_label_set_text (GTK_LABEL (WID ("summary-tour-details")), s);
-  g_free (s);
-
-  s = g_key_file_get_locale_string (overrides,
-                                    "Summary", "summary-tour-button",
-                                    NULL, NULL);
-  if (s)
-    gtk_button_set_label (GTK_BUTTON (WID ("summary-tour-button")), s);
-  g_free (s);
-}
-
-static void
 prepare_cb (GisAssistant *assistant, GtkWidget *page, SummaryData *data)
 {
   if (page == data->widget)
@@ -321,11 +271,41 @@ prepare_cb (GisAssistant *assistant, GtkWidget *page, SummaryData *data)
     }
 }
 
+static GtkBuilder *
+get_builder (void)
+{
+  GtkBuilder *builder = gtk_builder_new ();
+
+  char *filename = g_build_filename (UIDIR, "summary-distro.ui", NULL);
+  GError *error = NULL;
+
+  if (gtk_builder_add_from_file (builder, filename, &error))
+    goto out;
+
+  if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
+    g_warning ("Error while loading summary override: %s", error->message);
+
+  g_clear_error (&error);
+
+  {
+    char *resource_path = "/ui/gis-summary-page.ui";
+    gtk_builder_add_from_resource (builder, resource_path, &error);
+
+    if (error != NULL) {
+      g_warning ("Error while loading %s: %s", resource_path, error->message);
+      exit (1);
+    }
+  }
+
+ out:
+  return builder;
+}
+
 void
 gis_prepare_summary_page (SetupData *setup)
 {
   GisAssistant *assistant = gis_get_assistant (setup);
-  GtkBuilder *builder = gis_builder ("gis-summary-page");
+  GtkBuilder *builder = get_builder ();
   SummaryData *data;
 
   data = g_slice_new0 (SummaryData);
@@ -334,8 +314,6 @@ gis_prepare_summary_page (SetupData *setup)
 
   g_signal_connect (assistant, "prepare", G_CALLBACK (prepare_cb), data);
 
-  install_overrides (setup, builder);
-
   g_signal_connect (WID("summary-start-button"), "clicked", G_CALLBACK (byebye_cb), data);
   g_signal_connect (WID("summary-tour-button"), "clicked", G_CALLBACK (tour_cb), data);
 



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