[gnome-initial-setup/wip/sadiq/assistant-cleanup: 3/4] assistant: Make it a final class




commit 82d0e9f32a44f2f93ee351db7b2c5e0c0bc3098f
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date:   Thu Apr 1 09:51:09 2021 +0530

    assistant: Make it a final class

 gnome-initial-setup/gis-assistant.c | 189 ++++++++++++++++--------------------
 gnome-initial-setup/gis-assistant.h |   7 +-
 2 files changed, 82 insertions(+), 114 deletions(-)
---
diff --git a/gnome-initial-setup/gis-assistant.c b/gnome-initial-setup/gis-assistant.c
index 15065fe0..35a49080 100644
--- a/gnome-initial-setup/gis-assistant.c
+++ b/gnome-initial-setup/gis-assistant.c
@@ -42,8 +42,10 @@ enum {
 static guint signals[LAST_SIGNAL];
 static GParamSpec *obj_props[PROP_LAST];
 
-struct _GisAssistantPrivate
+struct _GisAssistant/* Private */
 {
+  GtkBox     parent_instance;
+
   GtkWidget *forward;
   GtkWidget *accept;
   GtkWidget *skip;
@@ -59,9 +61,8 @@ struct _GisAssistantPrivate
   GList *pages;
   GisPage *current_page;
 };
-typedef struct _GisAssistantPrivate GisAssistantPrivate;
 
-G_DEFINE_TYPE_WITH_PRIVATE (GisAssistant, gis_assistant, GTK_TYPE_BOX)
+G_DEFINE_TYPE (GisAssistant, gis_assistant, GTK_TYPE_BOX)
 
 static void
 visible_child_changed (GisAssistant *assistant)
@@ -74,22 +75,19 @@ widget_destroyed (GtkWidget    *widget,
                   GisAssistant *assistant)
 {
   GisPage *page = GIS_PAGE (widget);
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
 
-  priv->pages = g_list_remove (priv->pages, page);
-  if (page == priv->current_page)
-    priv->current_page = NULL;
+  assistant->pages = g_list_remove (assistant->pages, page);
+  if (page == assistant->current_page)
+    assistant->current_page = NULL;
 }
 
 static void
 switch_to (GisAssistant          *assistant,
            GisPage               *page)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
   g_return_if_fail (page != NULL);
 
-  gtk_stack_set_visible_child (GTK_STACK (priv->stack), GTK_WIDGET (page));
+  gtk_stack_set_visible_child (GTK_STACK (assistant->stack), GTK_WIDGET (page));
 }
 
 static inline gboolean
@@ -102,8 +100,7 @@ static GisPage *
 find_next_page (GisAssistant *self,
                 GisPage      *page)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (self);
-  GList *l = g_list_find (priv->pages, page);
+  GList *l = g_list_find (self->pages, page);
 
   /* We need the next page */
   if (l)
@@ -123,8 +120,7 @@ find_next_page (GisAssistant *self,
 static void
 switch_to_next_page (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  switch_to (assistant, find_next_page (assistant, priv->current_page));
+  switch_to (assistant, find_next_page (assistant, assistant->current_page));
 }
 
 static void
@@ -141,9 +137,8 @@ on_apply_done (GisPage *page,
 void
 gis_assistant_next_page (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  if (priv->current_page)
-    gis_page_apply_begin (priv->current_page, on_apply_done, assistant);
+  if (assistant->current_page)
+    gis_page_apply_begin (assistant->current_page, on_apply_done, assistant);
   else
     switch_to_next_page (assistant);
 }
@@ -152,8 +147,7 @@ static GisPage *
 find_prev_page (GisAssistant *self,
                 GisPage      *page)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (self);
-  GList *l = g_list_find (priv->pages, page);
+  GList *l = g_list_find (self->pages, page);
 
   /* We need the previous page */
   if (l)
@@ -173,9 +167,8 @@ find_prev_page (GisAssistant *self,
 void
 gis_assistant_previous_page (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  g_return_if_fail (priv->current_page != NULL);
-  switch_to (assistant, find_prev_page (assistant, priv->current_page));
+  g_return_if_fail (assistant->current_page != NULL);
+  switch_to (assistant, find_prev_page (assistant, assistant->current_page));
 }
 
 static void
@@ -189,37 +182,34 @@ static void
 set_navigation_button (GisAssistant *assistant,
                        GtkWidget    *widget)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
-  gtk_widget_set_visible (priv->forward, (widget == priv->forward));
-  gtk_widget_set_visible (priv->accept, (widget == priv->accept));
-  gtk_widget_set_visible (priv->skip, (widget == priv->skip));
+  gtk_widget_set_visible (assistant->forward, (widget == assistant->forward));
+  gtk_widget_set_visible (assistant->accept, (widget == assistant->accept));
+  gtk_widget_set_visible (assistant->skip, (widget == assistant->skip));
 }
 
 void
 update_navigation_buttons (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  GisPage *page = priv->current_page;
+  GisPage *page = assistant->current_page;
   GList *l;
   gboolean is_last_page;
 
   if (page == NULL)
     return;
 
-  l = g_list_find (priv->pages, page);
+  l = g_list_find (assistant->pages, page);
 
   is_last_page = (l->next == NULL);
 
   if (is_last_page)
     {
-      gtk_widget_hide (priv->back);
-      gtk_widget_hide (priv->forward);
-      gtk_widget_hide (priv->skip);
-      gtk_widget_hide (priv->cancel);
-      gtk_widget_hide (priv->accept);
+      gtk_widget_hide (assistant->back);
+      gtk_widget_hide (assistant->forward);
+      gtk_widget_hide (assistant->skip);
+      gtk_widget_hide (assistant->cancel);
+      gtk_widget_hide (assistant->accept);
       /* FIXME: workaround for a GTK+ issue */
-      gtk_widget_queue_resize (priv->titlebar);
+      gtk_widget_queue_resize (assistant->titlebar);
     }
   else
     {
@@ -227,18 +217,18 @@ update_navigation_buttons (GisAssistant *assistant)
       GtkWidget *next_widget;
 
       is_first_page = (l->prev == NULL);
-      gtk_widget_set_visible (priv->back, !is_first_page);
+      gtk_widget_set_visible (assistant->back, !is_first_page);
 
       if (gis_page_get_needs_accept (page))
-        next_widget = priv->accept;
+        next_widget = assistant->accept;
       else
-        next_widget = priv->forward;
+        next_widget = assistant->forward;
 
       if (gis_page_get_complete (page)) {
         set_suggested_action_sensitive (next_widget, TRUE);
         set_navigation_button (assistant, next_widget);
       } else if (gis_page_get_skippable (page)) {
-        set_navigation_button (assistant, priv->skip);
+        set_navigation_button (assistant, assistant->skip);
       } else {
         set_suggested_action_sensitive (next_widget, FALSE);
         set_navigation_button (assistant, next_widget);
@@ -256,29 +246,26 @@ update_applying_state (GisAssistant *assistant)
   gboolean applying = FALSE;
   gboolean is_first_page = FALSE;
 
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  if (priv->current_page)
+  if (assistant->current_page)
     {
-      applying = gis_page_get_applying (priv->current_page);
-      is_first_page = priv->pages->data == priv->current_page;
+      applying = gis_page_get_applying (assistant->current_page);
+      is_first_page = assistant->pages->data == assistant->current_page;
     }
-  gtk_widget_set_sensitive (priv->forward, !applying);
-  gtk_widget_set_visible (priv->back, !applying && !is_first_page);
-  gtk_widget_set_visible (priv->cancel, applying);
-  gtk_widget_set_visible (priv->spinner, applying);
+  gtk_widget_set_sensitive (assistant->forward, !applying);
+  gtk_widget_set_visible (assistant->back, !applying && !is_first_page);
+  gtk_widget_set_visible (assistant->cancel, applying);
+  gtk_widget_set_visible (assistant->spinner, applying);
 
   if (applying)
-    gtk_spinner_start (GTK_SPINNER (priv->spinner));
+    gtk_spinner_start (GTK_SPINNER (assistant->spinner));
   else
-    gtk_spinner_stop (GTK_SPINNER (priv->spinner));
+    gtk_spinner_stop (GTK_SPINNER (assistant->spinner));
 }
 
 static void
 update_titlebar (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
-  gtk_label_set_label (GTK_LABEL (priv->title),
+  gtk_label_set_label (GTK_LABEL (assistant->title),
                        gis_assistant_get_title (assistant));
 }
 
@@ -287,9 +274,7 @@ page_notify (GisPage      *page,
              GParamSpec   *pspec,
              GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
-  if (page != priv->current_page)
+  if (page != assistant->current_page)
     return;
 
   if (strcmp (pspec->name, "title") == 0)
@@ -311,39 +296,36 @@ void
 gis_assistant_add_page (GisAssistant *assistant,
                         GisPage      *page)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
   GList *link;
 
   /* Page shouldn't already exist */
-  g_return_if_fail (!g_list_find (priv->pages, page));
+  g_return_if_fail (!g_list_find (assistant->pages, page));
 
-  priv->pages = g_list_append (priv->pages, page);
-  link = g_list_last (priv->pages);
+  assistant->pages = g_list_append (assistant->pages, page);
+  link = g_list_last (assistant->pages);
   link = link->prev;
 
   g_signal_connect (page, "destroy", G_CALLBACK (widget_destroyed), assistant);
   g_signal_connect (page, "notify", G_CALLBACK (page_notify), assistant);
 
-  gtk_container_add (GTK_CONTAINER (priv->stack), GTK_WIDGET (page));
+  gtk_container_add (GTK_CONTAINER (assistant->stack), GTK_WIDGET (page));
 
   /* Update buttons if current page is now the second last page */
-  if (priv->current_page && link &&
-      link->data == priv->current_page)
+  if (assistant->current_page && link &&
+      link->data == assistant->current_page)
     update_navigation_buttons (assistant);
 }
 
 GisPage *
 gis_assistant_get_current_page (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  return priv->current_page;
+  return assistant->current_page;
 }
 
 GList *
 gis_assistant_get_all_pages (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  return priv->pages;
+  return assistant->pages;
 }
 
 static void
@@ -364,17 +346,15 @@ static void
 do_cancel (GtkWidget    *button,
            GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  if (priv->current_page)
-    gis_page_apply_cancel (priv->current_page);
+  if (assistant->current_page)
+    gis_page_apply_cancel (assistant->current_page);
 }
 
 const gchar *
 gis_assistant_get_title (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  if (priv->current_page != NULL)
-    return gis_page_get_title (priv->current_page);
+  if (assistant->current_page != NULL)
+    return gis_page_get_title (assistant->current_page);
   else
     return "";
 }
@@ -382,27 +362,24 @@ gis_assistant_get_title (GisAssistant *assistant)
 GtkWidget *
 gis_assistant_get_titlebar (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-  return priv->titlebar;
+  return assistant->titlebar;
 }
 
 static void
 update_current_page (GisAssistant *assistant,
                      GisPage      *page)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
-  if (priv->current_page == page)
+  if (assistant->current_page == page)
     return;
 
-  priv->current_page = page;
+  assistant->current_page = page;
   g_object_notify_by_pspec (G_OBJECT (assistant), obj_props[PROP_TITLE]);
 
   update_titlebar (assistant);
   update_applying_state (assistant);
   update_navigation_buttons (assistant);
 
-  gtk_widget_grab_focus (priv->forward);
+  gtk_widget_grab_focus (assistant->forward);
 
   if (page)
     gis_page_shown (page);
@@ -423,16 +400,15 @@ current_page_changed (GObject    *gobject,
 void
 gis_assistant_locale_changed (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
   GList *l;
 
-  gtk_button_set_label (GTK_BUTTON (priv->forward), _("_Next"));
-  gtk_button_set_label (GTK_BUTTON (priv->accept), _("_Accept"));
-  gtk_button_set_label (GTK_BUTTON (priv->skip), _("_Skip"));
-  gtk_button_set_label (GTK_BUTTON (priv->back), _("_Previous"));
-  gtk_button_set_label (GTK_BUTTON (priv->cancel), _("_Cancel"));
+  gtk_button_set_label (GTK_BUTTON (assistant->forward), _("_Next"));
+  gtk_button_set_label (GTK_BUTTON (assistant->accept), _("_Accept"));
+  gtk_button_set_label (GTK_BUTTON (assistant->skip), _("_Skip"));
+  gtk_button_set_label (GTK_BUTTON (assistant->back), _("_Previous"));
+  gtk_button_set_label (GTK_BUTTON (assistant->cancel), _("_Cancel"));
 
-  for (l = priv->pages; l != NULL; l = l->next)
+  for (l = assistant->pages; l != NULL; l = l->next)
     gis_page_locale_changed (l->data);
 
   update_titlebar (assistant);
@@ -442,10 +418,9 @@ gboolean
 gis_assistant_save_data (GisAssistant  *assistant,
                          GError       **error)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
   GList *l;
 
-  for (l = priv->pages; l != NULL; l = l->next)
+  for (l = assistant->pages; l != NULL; l = l->next)
     {
       if (!gis_page_save_data (l->data, error))
         return FALSE;
@@ -457,19 +432,17 @@ gis_assistant_save_data (GisAssistant  *assistant,
 static void
 gis_assistant_init (GisAssistant *assistant)
 {
-  GisAssistantPrivate *priv = gis_assistant_get_instance_private (assistant);
-
   gtk_widget_init_template (GTK_WIDGET (assistant));
 
-  g_signal_connect (priv->stack, "notify::visible-child",
+  g_signal_connect (assistant->stack, "notify::visible-child",
                     G_CALLBACK (current_page_changed), assistant);
 
-  g_signal_connect (priv->forward, "clicked", G_CALLBACK (go_forward), assistant);
-  g_signal_connect (priv->accept, "clicked", G_CALLBACK (go_forward), assistant);
-  g_signal_connect (priv->skip, "clicked", G_CALLBACK (go_forward), assistant);
+  g_signal_connect (assistant->forward, "clicked", G_CALLBACK (go_forward), assistant);
+  g_signal_connect (assistant->accept, "clicked", G_CALLBACK (go_forward), assistant);
+  g_signal_connect (assistant->skip, "clicked", G_CALLBACK (go_forward), assistant);
 
-  g_signal_connect (priv->back, "clicked", G_CALLBACK (go_backward), assistant);
-  g_signal_connect (priv->cancel, "clicked", G_CALLBACK (do_cancel), assistant);
+  g_signal_connect (assistant->back, "clicked", G_CALLBACK (go_backward), assistant);
+  g_signal_connect (assistant->cancel, "clicked", G_CALLBACK (do_cancel), assistant);
 
   gis_assistant_locale_changed (assistant);
   update_applying_state (assistant);
@@ -502,17 +475,17 @@ gis_assistant_class_init (GisAssistantClass *klass)
 
   gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), 
"/org/gnome/initial-setup/gis-assistant.ui");
 
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, forward);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, accept);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, skip);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, back);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, cancel);
-
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, main_layout);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, spinner);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, titlebar);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, title);
-  gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAssistant, stack);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, forward);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, accept);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, skip);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, back);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, cancel);
+
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, main_layout);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, spinner);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, titlebar);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, title);
+  gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GisAssistant, stack);
 
   gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), visible_child_changed);
 
diff --git a/gnome-initial-setup/gis-assistant.h b/gnome-initial-setup/gis-assistant.h
index 1d4e90ef..2b454b0d 100644
--- a/gnome-initial-setup/gis-assistant.h
+++ b/gnome-initial-setup/gis-assistant.h
@@ -28,12 +28,7 @@ G_BEGIN_DECLS
 
 #define GIS_TYPE_ASSISTANT               (gis_assistant_get_type ())
 
-G_DECLARE_DERIVABLE_TYPE (GisAssistant, gis_assistant, GIS, ASSISTANT, GtkBox)
-
-struct _GisAssistantClass
-{
-  GtkBoxClass parent_class;
-};
+G_DECLARE_FINAL_TYPE (GisAssistant, gis_assistant, GIS, ASSISTANT, GtkBox)
 
 void      gis_assistant_add_page          (GisAssistant *assistant,
                                            GisPage      *page);


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