[gnome-control-center] printers: Remove pp_details_dialog_free, use gtk_widget_destroy



commit fcde07c7700e9a116c975642ea44cf134c7c2d3d
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Nov 23 12:35:35 2018 +1300

    printers: Remove pp_details_dialog_free, use gtk_widget_destroy

 panels/printers/pp-details-dialog.c | 46 +++++++++++++++++++------------------
 panels/printers/pp-details-dialog.h |  1 -
 panels/printers/pp-printer-entry.c  | 13 +++--------
 3 files changed, 27 insertions(+), 33 deletions(-)
---
diff --git a/panels/printers/pp-details-dialog.c b/panels/printers/pp-details-dialog.c
index a1aa63871..e4613de8f 100644
--- a/panels/printers/pp-details-dialog.c
+++ b/panels/printers/pp-details-dialog.c
@@ -361,11 +361,35 @@ pp_details_dialog_init (PpDetailsDialog *self)
   self->cancellable = g_cancellable_new ();
 }
 
+static void
+pp_details_dialog_dispose (GObject *object)
+{
+  PpDetailsDialog *self = PP_DETAILS_DIALOG (object);
+
+  g_clear_pointer (&self->printer_name, g_free);
+  g_clear_pointer (&self->printer_location, g_free);
+  g_clear_pointer (&self->ppd_file_name, g_free);
+
+  if (self->all_ppds_list != NULL)
+    {
+      ppd_list_free (self->all_ppds_list);
+      self->all_ppds_list = NULL;
+    }
+
+  g_cancellable_cancel (self->cancellable);
+  g_clear_object (&self->cancellable);
+
+  G_OBJECT_CLASS (pp_details_dialog_parent_class)->dispose (object);
+}
+
 static void
 pp_details_dialog_class_init (PpDetailsDialogClass *klass)
 {
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
+  object_class->dispose = pp_details_dialog_dispose;
+
   gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/printers/pp-details-dialog.ui");
 
   gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, dialog_title);
@@ -428,25 +452,3 @@ pp_details_dialog_new (GtkWindow            *parent,
 
   return self;
 }
-
-void
-pp_details_dialog_free (PpDetailsDialog *self)
-{
-  if (self != NULL)
-    {
-      g_clear_pointer (&self->printer_name, g_free);
-      g_clear_pointer (&self->printer_location, g_free);
-      g_clear_pointer (&self->ppd_file_name, g_free);
-
-      if (self->all_ppds_list != NULL)
-        {
-          ppd_list_free (self->all_ppds_list);
-          self->all_ppds_list = NULL;
-        }
-
-      g_cancellable_cancel (self->cancellable);
-      g_clear_object (&self->cancellable);
-
-      gtk_widget_destroy (GTK_WIDGET (self));
-    }
-}
diff --git a/panels/printers/pp-details-dialog.h b/panels/printers/pp-details-dialog.h
index 6da259859..ec6154b88 100644
--- a/panels/printers/pp-details-dialog.h
+++ b/panels/printers/pp-details-dialog.h
@@ -34,6 +34,5 @@ PpDetailsDialog *pp_details_dialog_new      (GtkWindow            *parent,
                                              gchar                *printer_address,
                                              gchar                *printer_make_and_model,
                                              gboolean              sensitive);
-void             pp_details_dialog_free     (PpDetailsDialog      *dialog);
 
 G_END_DECLS
diff --git a/panels/printers/pp-printer-entry.c b/panels/printers/pp-printer-entry.c
index 0ac802996..c402dae3c 100644
--- a/panels/printers/pp-printer-entry.c
+++ b/panels/printers/pp-printer-entry.c
@@ -420,20 +420,11 @@ details_dialog_cb (GtkDialog *dialog,
 {
   PpPrinterEntry *self = user_data;
 
-  pp_details_dialog_free (self->pp_details_dialog);
-  self->pp_details_dialog = NULL;
+  g_clear_pointer ((GtkWidget **) &self->pp_details_dialog, gtk_widget_destroy);
 
   g_signal_emit_by_name (self, "printer-changed");
 }
 
-static void
-details_dialog_free_cb (GtkDialog *dialog,
-                        gint       response_id,
-                        gpointer   user_data)
-{
-  pp_details_dialog_free (PP_DETAILS_DIALOG (dialog));
-}
-
 static void
 on_show_printer_details_dialog (GtkButton      *button,
                                 PpPrinterEntry *self)
@@ -994,6 +985,8 @@ pp_printer_entry_dispose (GObject *object)
       g_signal_connect (self->pp_details_dialog, "response", G_CALLBACK (details_dialog_free_cb), NULL);
     }
 
+  g_clear_pointer ((GtkWidget **) &self->pp_details_dialog, gtk_widget_destroy);
+
   if (self->pp_options_dialog != NULL)
     pp_options_dialog_set_callback (self->pp_options_dialog, printer_options_dialog_free_cb, 
self->pp_options_dialog);
 


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