From b0aa092db794f939690a49fe7d5d2693e20fb3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= Date: Sat, 3 Sep 2022 20:15:41 +0100 Subject: WIP general: Use gtk_widget_dispose_template Resolves https://gitlab.gnome.org/GNOME/nautilus/-/issues/2418 --- src/gtk/nautilusgtkplacesview.c | 2 ++ src/gtk/nautilusgtkplacesviewrow.c | 11 +++++++++++ src/gtk/nautilusgtksidebarrow.c | 11 +++++++++++ src/nautilus-app-chooser.c | 11 +++++++++++ src/nautilus-batch-rename-dialog.c | 11 +++++++++++ src/nautilus-column-chooser.c | 11 +++++++++++ src/nautilus-file-conflict-dialog.c | 11 +++++++++++ src/nautilus-files-view.c | 2 ++ src/nautilus-grid-cell.c | 11 +++++++++++ src/nautilus-history-controls.c | 2 ++ src/nautilus-name-cell.c | 11 +++++++++++ src/nautilus-progress-indicator.c | 11 +++++++++++ src/nautilus-progress-info-widget.c | 2 ++ src/nautilus-properties-window.c | 2 ++ src/nautilus-search-popover.c | 10 ++++++++++ src/nautilus-toolbar.c | 2 ++ src/nautilus-view-controls.c | 11 +++++++++++ src/nautilus-window.c | 2 ++ 18 files changed, 134 insertions(+) diff --git a/src/gtk/nautilusgtkplacesview.c b/src/gtk/nautilusgtkplacesview.c index 0d062c9ee..f8708c043 100644 --- a/src/gtk/nautilusgtkplacesview.c +++ b/src/gtk/nautilusgtkplacesview.c @@ -435,6 +435,8 @@ nautilus_gtk_places_view_dispose (GObject *object) g_cancellable_cancel (view->networks_fetching_cancellable); g_clear_pointer (&view->popup_menu, gtk_widget_unparent); + gtk_widget_dispose_template (GTK_WIDGET (view), NAUTILUS_TYPE_GTK_PLACES_VIEW); + G_OBJECT_CLASS (nautilus_gtk_places_view_parent_class)->dispose (object); } diff --git a/src/gtk/nautilusgtkplacesviewrow.c b/src/gtk/nautilusgtkplacesviewrow.c index 64d889659..84b9e146c 100644 --- a/src/gtk/nautilusgtkplacesviewrow.c +++ b/src/gtk/nautilusgtkplacesviewrow.c @@ -200,6 +200,16 @@ measure_available_space (NautilusGtkPlacesViewRow *row) } } +static void +nautilus_gtk_places_view_row_dispose (GObject *object) +{ + NautilusGtkPlacesViewRow *self = NAUTILUS_GTK_PLACES_VIEW_ROW (object); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_GTK_PLACES_VIEW_ROW); + + G_OBJECT_CLASS (nautilus_gtk_places_view_row_parent_class)->dispose (object); +} + static void nautilus_gtk_places_view_row_finalize (GObject *object) { @@ -334,6 +344,7 @@ nautilus_gtk_places_view_row_class_init (NautilusGtkPlacesViewRowClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + object_class->dispose = nautilus_gtk_places_view_row_dispose; object_class->finalize = nautilus_gtk_places_view_row_finalize; object_class->get_property = nautilus_gtk_places_view_row_get_property; object_class->set_property = nautilus_gtk_places_view_row_set_property; diff --git a/src/gtk/nautilusgtksidebarrow.c b/src/gtk/nautilusgtksidebarrow.c index 9b6ebafee..d6ea6c0e7 100644 --- a/src/gtk/nautilusgtksidebarrow.c +++ b/src/gtk/nautilusgtksidebarrow.c @@ -445,6 +445,16 @@ nautilus_gtk_sidebar_row_set_end_icon (NautilusGtkSidebarRow *self, } } +static void +nautilus_gtk_sidebar_row_dispose (GObject *object) +{ + NautilusGtkSidebarRow *self = NAUTILUS_GTK_SIDEBAR_ROW (object); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_GTK_SIDEBAR_ROW); + + G_OBJECT_CLASS (nautilus_gtk_sidebar_row_parent_class)->dispose (object); +} + static void nautilus_gtk_sidebar_row_finalize (GObject *object) { @@ -490,6 +500,7 @@ nautilus_gtk_sidebar_row_class_init (NautilusGtkSidebarRowClass *klass) object_class->get_property = nautilus_gtk_sidebar_row_get_property; object_class->set_property = nautilus_gtk_sidebar_row_set_property; object_class->finalize = nautilus_gtk_sidebar_row_finalize; + object_class->dispose = nautilus_gtk_sidebar_row_dispose; properties [PROP_SIDEBAR] = g_param_spec_object ("sidebar", diff --git a/src/nautilus-app-chooser.c b/src/nautilus-app-chooser.c index e15abc3ae..b2365b603 100644 --- a/src/nautilus-app-chooser.c +++ b/src/nautilus-app-chooser.c @@ -231,6 +231,16 @@ nautilus_app_chooser_constructed (GObject *object) } } +static void +nautilus_app_chooser_dispose (GObject *object) +{ + NautilusAppChooser *self = (NautilusAppChooser *) object; + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_APP_CHOOSER); + + G_OBJECT_CLASS (nautilus_app_chooser_parent_class)->dispose (object); +} + static void nautilus_app_chooser_finalize (GObject *object) { @@ -248,6 +258,7 @@ nautilus_app_chooser_class_init (NautilusAppChooserClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + object_class->dispose = nautilus_app_chooser_dispose; object_class->finalize = nautilus_app_chooser_finalize; object_class->constructed = nautilus_app_chooser_constructed; object_class->set_property = nautilus_app_chooser_set_property; diff --git a/src/nautilus-batch-rename-dialog.c b/src/nautilus-batch-rename-dialog.c index 14f142be5..0e79ef576 100644 --- a/src/nautilus-batch-rename-dialog.c +++ b/src/nautilus-batch-rename-dialog.c @@ -1755,6 +1755,16 @@ file_names_widget_entry_on_changed (NautilusBatchRenameDialog *self) update_display_text (self); } +static void +nautilus_batch_rename_dialog_dispose (GObject *object) +{ + NautilusBatchRenameDialog *dialog = NAUTILUS_BATCH_RENAME_DIALOG (object); + + gtk_widget_dispose_template (GTK_WIDGET (dialog), NAUTILUS_TYPE_BATCH_RENAME_DIALOG); + + G_OBJECT_CLASS (nautilus_batch_rename_dialog_parent_class)->dispose (object); +} + static void nautilus_batch_rename_dialog_finalize (GObject *object) { @@ -1822,6 +1832,7 @@ nautilus_batch_rename_dialog_class_init (NautilusBatchRenameDialogClass *klass) oclass = G_OBJECT_CLASS (klass); oclass->finalize = nautilus_batch_rename_dialog_finalize; + oclass->dispose = nautilus_batch_rename_dialog_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-batch-rename-dialog.ui"); diff --git a/src/nautilus-column-chooser.c b/src/nautilus-column-chooser.c index 23aa5af5c..3dc6413d9 100644 --- a/src/nautilus-column-chooser.c +++ b/src/nautilus-column-chooser.c @@ -524,6 +524,16 @@ nautilus_column_chooser_get_settings (NautilusColumnChooser *chooser, *column_order = get_column_names (chooser, FALSE); } +static void +nautilus_column_chooser_dispose (GObject *object) +{ + NautilusColumnChooser *self = NAUTILUS_COLUMN_CHOOSER (object); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_COLUMN_CHOOSER); + + G_OBJECT_CLASS (nautilus_column_chooser_parent_class)->dispose (object); +} + static void nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class) { @@ -535,6 +545,7 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class) oclass->set_property = nautilus_column_chooser_set_property; oclass->constructed = nautilus_column_chooser_constructed; + oclass->dispose = nautilus_column_chooser_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-column-chooser.ui"); gtk_widget_class_bind_template_child (widget_class, NautilusColumnChooser, view); diff --git a/src/nautilus-file-conflict-dialog.c b/src/nautilus-file-conflict-dialog.c index f7c3cc702..b957d64c5 100644 --- a/src/nautilus-file-conflict-dialog.c +++ b/src/nautilus-file-conflict-dialog.c @@ -222,6 +222,16 @@ nautilus_file_conflict_dialog_init (NautilusFileConflictDialog *fcd) gtk_widget_init_template (GTK_WIDGET (fcd)); } +static void +nautilus_file_conflict_dialog_dispose (GObject *self) +{ + NautilusFileConflictDialog *dialog = NAUTILUS_FILE_CONFLICT_DIALOG (self); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_FILE_CONFLICT_DIALOG); + + G_OBJECT_CLASS (nautilus_file_conflict_dialog_parent_class)->dispose (self); +} + static void do_finalize (GObject *self) { @@ -258,6 +268,7 @@ nautilus_file_conflict_dialog_class_init (NautilusFileConflictDialogClass *klass gtk_widget_class_bind_template_callback (widget_class, reset_button_clicked_cb); G_OBJECT_CLASS (klass)->finalize = do_finalize; + G_OBJECT_CLASS (klass)->dispose = nautilus_file_conflict_dialog_dispose; } static gboolean diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index f19fab712..62a0b6beb 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -3356,6 +3356,8 @@ nautilus_files_view_dispose (GObject *object) g_clear_object (&priv->search_query); g_clear_object (&priv->location); + gtk_widget_dispose_template (GTK_WIDGET (view), NAUTILUS_TYPE_FILES_VIEW); + G_OBJECT_CLASS (nautilus_files_view_parent_class)->dispose (object); } diff --git a/src/nautilus-grid-cell.c b/src/nautilus-grid-cell.c index bf19a36a1..0b2855ee8 100644 --- a/src/nautilus-grid-cell.c +++ b/src/nautilus-grid-cell.c @@ -167,6 +167,16 @@ on_item_is_cut_changed (NautilusGridCell *self) } } +static void +nautilus_grid_cell_dispose (GObject *object) +{ + NautilusGridCell *self = (NautilusGridCell *) object; + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_GRID_CELL); + + G_OBJECT_CLASS (nautilus_grid_cell_parent_class)->dispose (object); +} + static void finalize (GObject *object) { @@ -183,6 +193,7 @@ nautilus_grid_cell_class_init (NautilusGridCellClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->finalize = finalize; + object_class->dispose = nautilus_grid_cell_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-grid-cell.ui"); diff --git a/src/nautilus-history-controls.c b/src/nautilus-history-controls.c index 8b14cd63c..7e8995072 100644 --- a/src/nautilus-history-controls.c +++ b/src/nautilus-history-controls.c @@ -209,6 +209,8 @@ nautilus_history_controls_dispose (GObject *object) g_clear_pointer (&self->back_menu, gtk_widget_unparent); g_clear_pointer (&self->forward_menu, gtk_widget_unparent); + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_HISTORY_CONTROLS); + G_OBJECT_CLASS (nautilus_history_controls_parent_class)->dispose (object); } diff --git a/src/nautilus-name-cell.c b/src/nautilus-name-cell.c index a58415f9e..62650307d 100644 --- a/src/nautilus-name-cell.c +++ b/src/nautilus-name-cell.c @@ -275,6 +275,16 @@ nautilus_name_cell_init (NautilusNameCell *self) G_BINDING_SYNC_CREATE); } +static void +nautilus_name_cell_dispose (GObject *object) +{ + NautilusNameCell *self = (NautilusNameCell *) object; + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_NAME_CELL); + + G_OBJECT_CLASS (nautilus_name_cell_parent_class)->dispose (object); +} + static void nautilus_name_cell_finalize (GObject *object) { @@ -292,6 +302,7 @@ nautilus_name_cell_class_init (NautilusNameCellClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->finalize = nautilus_name_cell_finalize; + object_class->dispose = nautilus_name_cell_dispose; gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-name-cell.ui"); diff --git a/src/nautilus-progress-indicator.c b/src/nautilus-progress-indicator.c index ce857047c..738c0b5f4 100644 --- a/src/nautilus-progress-indicator.c +++ b/src/nautilus-progress-indicator.c @@ -499,6 +499,16 @@ nautilus_progress_indicator_constructed (GObject *object) (GCallback) gtk_widget_grab_focus, self); } +static void +nautilus_progress_indicator_dispose (GObject *obj) +{ + NautilusProgressIndicator *self = NAUTILUS_PROGRESS_INDICATOR (obj); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_PROGRESS_INDICATOR); + + G_OBJECT_CLASS (nautilus_progress_indicator_parent_class)->dispose (obj); +} + static void nautilus_progress_indicator_finalize (GObject *obj) { @@ -523,6 +533,7 @@ nautilus_progress_indicator_class_init (NautilusProgressIndicatorClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->constructed = nautilus_progress_indicator_constructed; + object_class->dispose = nautilus_progress_indicator_dispose; object_class->finalize = nautilus_progress_indicator_finalize; gtk_widget_class_set_template_from_resource (widget_class, diff --git a/src/nautilus-progress-info-widget.c b/src/nautilus-progress-info-widget.c index b5be930c9..31cd3bd3c 100644 --- a/src/nautilus-progress-info-widget.c +++ b/src/nautilus-progress-info-widget.c @@ -112,6 +112,8 @@ nautilus_progress_info_widget_dispose (GObject *obj) } g_clear_object (&self->priv->info); + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_PROGRESS_INFO_WIDGET); + G_OBJECT_CLASS (nautilus_progress_info_widget_parent_class)->dispose (obj); } diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 1d823edd7..af02fe3e6 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -4167,6 +4167,8 @@ real_dispose (GObject *object) g_clear_handle_id (&self->update_directory_contents_timeout_id, g_source_remove); g_clear_handle_id (&self->update_files_timeout_id, g_source_remove); + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_PROPERTIES_WINDOW); + G_OBJECT_CLASS (nautilus_properties_window_parent_class)->dispose (object); } diff --git a/src/nautilus-search-popover.c b/src/nautilus-search-popover.c index 57561f541..503799a6c 100644 --- a/src/nautilus-search-popover.c +++ b/src/nautilus-search-popover.c @@ -818,6 +818,15 @@ nautilus_search_popover_set_property (GObject *object, } } +static void +nautilus_search_popover_dispose (GObject *obj) +{ + NautilusSearchPopover *self = NAUTILUS_SEARCH_POPOVER (obj); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_SEARCH_POPOVER); + + G_OBJECT_CLASS (nautilus_search_popover_parent_class)->dispose (obj); +} static void nautilus_search_popover_class_init (NautilusSearchPopoverClass *klass) @@ -826,6 +835,7 @@ nautilus_search_popover_class_init (NautilusSearchPopoverClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); + object_class->dispose = nautilus_search_popover_dispose; object_class->get_property = nautilus_search_popover_get_property; object_class->set_property = nautilus_search_popover_set_property; diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c index aad0fd3d0..e9bc01354 100644 --- a/src/nautilus-toolbar.c +++ b/src/nautilus-toolbar.c @@ -412,6 +412,8 @@ nautilus_toolbar_dispose (GObject *object) g_clear_pointer (&self->search_binding, g_binding_unbind); + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_TOOLBAR); + G_OBJECT_CLASS (nautilus_toolbar_parent_class)->dispose (object); } diff --git a/src/nautilus-view-controls.c b/src/nautilus-view-controls.c index bd8e6d761..25c07faf5 100644 --- a/src/nautilus-view-controls.c +++ b/src/nautilus-view-controls.c @@ -143,6 +143,16 @@ nautilus_view_controls_set_property (GObject *object, } } +static void +nautilus_view_controls_dispose (GObject *obj) +{ + NautilusViewControls *self = NAUTILUS_VIEW_CONTROLS (obj); + + gtk_widget_dispose_template (GTK_WIDGET (self), NAUTILUS_TYPE_VIEW_CONTROLS); + + G_OBJECT_CLASS (nautilus_view_controls_parent_class)->dispose (obj); +} + static void nautilus_view_controls_finalize (GObject *obj) { @@ -163,6 +173,7 @@ nautilus_view_controls_class_init (NautilusViewControlsClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + object_class->dispose = nautilus_view_controls_dispose; object_class->finalize = nautilus_view_controls_finalize; object_class->get_property = nautilus_view_controls_get_property; object_class->set_property = nautilus_view_controls_set_property; diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 9cccc3c18..5d810b1f3 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1613,6 +1613,8 @@ nautilus_window_dispose (GObject *object) nautilus_window_unexport_handle (window); + gtk_widget_dispose_template (GTK_WIDGET (window), NAUTILUS_TYPE_WINDOW); + G_OBJECT_CLASS (nautilus_window_parent_class)->dispose (object); } -- cgit v1.2.1