[gnome-initial-setup] Add a save data mechanism, and call it from the summary page



commit 40fa31c06dd37233083dd06ab3697eefd39223e8
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sat Jun 15 01:08:54 2013 -0400

    Add a save data mechanism, and call it from the summary page
    
    For now, no pages implement this feature.

 gnome-initial-setup/gis-assistant.c                |   10 ++++++++++
 gnome-initial-setup/gis-assistant.h                |    1 +
 gnome-initial-setup/gis-driver.c                   |    6 ++++++
 gnome-initial-setup/gis-driver.h                   |    2 ++
 gnome-initial-setup/gis-page.c                     |    7 +++++++
 gnome-initial-setup/gis-page.h                     |    2 ++
 .../pages/summary/gis-summary-page.c               |    3 +++
 7 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/gnome-initial-setup/gis-assistant.c b/gnome-initial-setup/gis-assistant.c
index f597aab..0e98a28 100644
--- a/gnome-initial-setup/gis-assistant.c
+++ b/gnome-initial-setup/gis-assistant.c
@@ -399,6 +399,16 @@ gis_assistant_locale_changed (GisAssistant *assistant)
     gis_page_locale_changed (l->data);
 }
 
+void
+gis_assistant_save_data (GisAssistant *assistant)
+{
+  GisAssistantPrivate *priv = assistant->priv;
+  GList *l;
+
+  for (l = priv->pages; l != NULL; l = l->next)
+    gis_page_save_data (l->data);
+}
+
 static void
 gis_assistant_init (GisAssistant *assistant)
 {
diff --git a/gnome-initial-setup/gis-assistant.h b/gnome-initial-setup/gis-assistant.h
index 4d8589c..5544076 100644
--- a/gnome-initial-setup/gis-assistant.h
+++ b/gnome-initial-setup/gis-assistant.h
@@ -74,6 +74,7 @@ GList   * gis_assistant_get_all_pages     (GisAssistant *assistant);
 gchar *   gis_assistant_get_title         (GisAssistant *assistant);
 
 void      gis_assistant_locale_changed    (GisAssistant *assistant);
+void      gis_assistant_save_data         (GisAssistant *assistant);
 
 G_END_DECLS
 
diff --git a/gnome-initial-setup/gis-driver.c b/gnome-initial-setup/gis-driver.c
index 09b5a05..cf67ec4 100644
--- a/gnome-initial-setup/gis-driver.c
+++ b/gnome-initial-setup/gis-driver.c
@@ -349,6 +349,12 @@ gis_driver_class_init (GisDriverClass *klass)
   g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
 }
 
+void
+gis_driver_save_data (GisDriver *driver)
+{
+  gis_assistant_save_data (driver->priv->assistant);
+}
+
 GisDriver *
 gis_driver_new (GisDriverMode mode)
 {
diff --git a/gnome-initial-setup/gis-driver.h b/gnome-initial-setup/gis-driver.h
index e38f795..786e242 100644
--- a/gnome-initial-setup/gis-driver.h
+++ b/gnome-initial-setup/gis-driver.h
@@ -84,6 +84,8 @@ GisDriverMode gis_driver_get_mode (GisDriver *driver);
 void gis_driver_add_page (GisDriver *driver,
                           GisPage   *page);
 
+void gis_driver_save_data (GisDriver *driver);
+
 GisDriver *gis_driver_new (GisDriverMode mode);
 
 G_END_DECLS
diff --git a/gnome-initial-setup/gis-page.c b/gnome-initial-setup/gis-page.c
index 0f9146e..fd0529e 100644
--- a/gnome-initial-setup/gis-page.c
+++ b/gnome-initial-setup/gis-page.c
@@ -335,3 +335,10 @@ gis_page_apply_cancel (GisPage *page)
 
   g_cancellable_cancel (page->priv->apply_cancel);
 }
+
+void
+gis_page_save_data (GisPage *page)
+{
+  if (GIS_PAGE_GET_CLASS (page)->save_data)
+    return GIS_PAGE_GET_CLASS (page)->save_data (page);
+}
diff --git a/gnome-initial-setup/gis-page.h b/gnome-initial-setup/gis-page.h
index 8d287c6..b373d8e 100644
--- a/gnome-initial-setup/gis-page.h
+++ b/gnome-initial-setup/gis-page.h
@@ -65,6 +65,7 @@ struct _GisPageClass
   void         (*locale_changed) (GisPage *page);
   void         (*apply) (GisPage *page,
                          GCancellable *cancellable);
+  void         (*save_data) (GisPage *page);
 };
 
 GType gis_page_get_type (void);
@@ -79,6 +80,7 @@ void         gis_page_apply_begin (GisPage *page, GisPageApplyCallback callback,
 void         gis_page_apply_cancel (GisPage *page);
 void         gis_page_apply_complete (GisPage *page, gboolean valid);
 gboolean     gis_page_get_applying (GisPage *page);
+void         gis_page_save_data (GisPage *page);
 
 G_END_DECLS
 
diff --git a/gnome-initial-setup/pages/summary/gis-summary-page.c 
b/gnome-initial-setup/pages/summary/gis-summary-page.c
index 93032ea..d69a795 100644
--- a/gnome-initial-setup/pages/summary/gis-summary-page.c
+++ b/gnome-initial-setup/pages/summary/gis-summary-page.c
@@ -269,6 +269,9 @@ prepare_cb (GisAssistant   *assistant,
   if (GIS_PAGE (which_page) == GIS_PAGE (this_page))
     {
       GisSummaryPagePrivate *priv = this_page->priv;
+
+      gis_driver_save_data (GIS_PAGE (this_page)->driver);
+
       gis_driver_get_user_permissions (GIS_PAGE (this_page)->driver,
                                        &priv->user_account,
                                        &priv->user_password);


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