[totem] preferences: Setup dialog in the constructed phase



commit aa50a6ba200198807cda4e77a46cd1c9f6d9632a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri May 7 20:20:55 2021 -0300

    preferences: Setup dialog in the constructed phase
    
    Move all the setup code from totem_preferences_setup() into the
    constructed phase of GObject initialization. At this phase, the
    'totem' property is already set and we can just use it.
    
    No functional changes are introduced.

 src/totem-preferences.c | 125 ++++++++++++++++++++++++++----------------------
 1 file changed, 67 insertions(+), 58 deletions(-)
---
diff --git a/src/totem-preferences.c b/src/totem-preferences.c
index 960630930..23438f395 100644
--- a/src/totem-preferences.c
+++ b/src/totem-preferences.c
@@ -264,73 +264,22 @@ totem_preferences_dialog_set_property (GObject *object,
 }
 
 static void
-totem_preferences_dialog_class_init (TotemPreferencesDialogClass *klass)
+totem_preferences_dialog_constructed (GObject *object)
 {
-       GObjectClass *object_class = G_OBJECT_CLASS (klass);
-       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
-       object_class->get_property = totem_preferences_dialog_get_property;
-       object_class->set_property = totem_preferences_dialog_set_property;
-
-       properties[PROP_TOTEM] = g_param_spec_object ("totem", "Totem object", "Totem object",
-                                                     TOTEM_TYPE_OBJECT,
-                                                     G_PARAM_READWRITE |
-                                                     G_PARAM_CONSTRUCT_ONLY |
-                                                     G_PARAM_STATIC_STRINGS);
-
-       g_object_class_install_properties (object_class, N_PROPS, properties);
-
-       gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/totem/ui/preferences.ui");
-
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, font_sel_button);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_auto_subtitles_checkbutton);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_contr_vbox);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_adjustment);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_scale);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_contrast_adjustment);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_contrast_scale);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_hue_adjustment);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_hue_scale);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_no_deinterlace_checkbutton);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_plugins_button);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_saturation_adjustment);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_saturation_scale);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_sound_output_combobox);
-       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, subtitle_encoding_combo);
-
-       gtk_widget_class_bind_template_callback (widget_class, encoding_set_cb);
-       gtk_widget_class_bind_template_callback (widget_class, font_set_cb);
-       gtk_widget_class_bind_template_callback (widget_class, tpw_color_reset_clicked_cb);
-}
-
-static void
-totem_preferences_dialog_init (TotemPreferencesDialog *self)
-{
-       gtk_widget_init_template (GTK_WIDGET (self));
-}
-
-void
-totem_setup_preferences (Totem *totem)
-{
-       TotemPreferencesDialog *prefs;
+       TotemPreferencesDialog *prefs = TOTEM_PREFERENCES_DIALOG (object);
+       TotemObject *totem;
        GtkWidget *bvw;
        guint i, hidden;
        char *font, *encoding;
 
-       g_return_if_fail (totem->settings != NULL);
-
-       totem->prefs = g_object_new (TOTEM_TYPE_PREFERENCES_DIALOG,
-                                    "totem", totem,
-                                    "use-header-bar", 1,
-                                    NULL);
-       prefs = TOTEM_PREFERENCES_DIALOG (totem->prefs);
+       G_OBJECT_CLASS (totem_preferences_dialog_parent_class)->constructed (object);
 
-       gtk_window_set_transient_for (GTK_WINDOW (totem->prefs), GTK_WINDOW(totem->win));
+       g_assert (prefs->totem != NULL);
+       totem = prefs->totem;
 
        bvw = totem_object_get_video_widget (totem);
 
-        g_signal_connect (totem->prefs, "destroy",
-                          G_CALLBACK (gtk_widget_destroyed), &totem->prefs);
+        g_signal_connect (prefs, "destroy", G_CALLBACK (gtk_widget_destroyed), &totem->prefs);
 
        /* Disable deinterlacing */
        g_settings_bind (totem->settings, "disable-deinterlacing",
@@ -416,3 +365,63 @@ totem_setup_preferences (Totem *totem)
 
        g_object_unref (bvw);
 }
+
+static void
+totem_preferences_dialog_class_init (TotemPreferencesDialogClass *klass)
+{
+       GObjectClass *object_class = G_OBJECT_CLASS (klass);
+       GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+       object_class->get_property = totem_preferences_dialog_get_property;
+       object_class->set_property = totem_preferences_dialog_set_property;
+       object_class->constructed = totem_preferences_dialog_constructed;
+
+       properties[PROP_TOTEM] = g_param_spec_object ("totem", "Totem object", "Totem object",
+                                                     TOTEM_TYPE_OBJECT,
+                                                     G_PARAM_READWRITE |
+                                                     G_PARAM_CONSTRUCT_ONLY |
+                                                     G_PARAM_STATIC_STRINGS);
+
+       g_object_class_install_properties (object_class, N_PROPS, properties);
+
+       gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/totem/ui/preferences.ui");
+
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, font_sel_button);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_auto_subtitles_checkbutton);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_contr_vbox);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_adjustment);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_bright_scale);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_contrast_adjustment);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_contrast_scale);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_hue_adjustment);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_hue_scale);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_no_deinterlace_checkbutton);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_plugins_button);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_saturation_adjustment);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, tpw_saturation_scale);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, 
tpw_sound_output_combobox);
+       gtk_widget_class_bind_template_child (widget_class, TotemPreferencesDialog, subtitle_encoding_combo);
+
+       gtk_widget_class_bind_template_callback (widget_class, encoding_set_cb);
+       gtk_widget_class_bind_template_callback (widget_class, font_set_cb);
+       gtk_widget_class_bind_template_callback (widget_class, tpw_color_reset_clicked_cb);
+}
+
+static void
+totem_preferences_dialog_init (TotemPreferencesDialog *self)
+{
+       gtk_widget_init_template (GTK_WIDGET (self));
+}
+
+void
+totem_setup_preferences (Totem *totem)
+{
+       g_return_if_fail (totem->settings != NULL);
+
+       totem->prefs = g_object_new (TOTEM_TYPE_PREFERENCES_DIALOG,
+                                    "totem", totem,
+                                    "use-header-bar", 1,
+                                    NULL);
+
+       gtk_window_set_transient_for (GTK_WINDOW (totem->prefs), GTK_WINDOW(totem->win));
+}


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