Because lots of recent bugs were due to "signal handler called after

* Tons of files:
	Because lots of recent bugs were due to "signal handler called after
	object gone" problems, switched many calls of g_signal_connect and
	g_signal_connect_swapped to use g_signal_connect_object instead.
	Also did other signal-related cleanup and changed some destroys to
	finalizes.

	* libnautilus/nautilus-view-standard-main.h:
	We no longer need to include nautilus-view.h in here. So include it
	in the files that use this instead.

	Did merges from stable branch:

	2001-10-25  Darin Adler  <darin@bentspoon.com>

        * libnautilus-private/nautilus-directory.c:
        (call_files_changed_common), (call_files_changed_free_list),
        (call_files_changed_unref_free_list),
        (nautilus_directory_notify_files_changed): Move call to
        nautilus_directory_add_file_to_work_queue into a better
        bottleneck; now it catches all the notify cases, not just changed.
        Also tell it to re-get top-left text and link info too when we get
        a changed notice.

        * src/file-manager/fm-directory-view.c: (queue_pending_files):
        Don't use the timeout (and the hysteresis) when queuing files once
        the initial directory load is complete. Doing this was causing
        delays processing changes that came in later, which we don't want.

        * src/nautilus-sidebar-title.c: (item_count_ready), (monitor_add),
	(update_all), (nautilus_sidebar_title_set_file): Monitor the
	directory count once we get it the first time. This makes sure
	that changes in the directory count get reflected in the sidebar
	without creating a race with the main view to see who calculates
	it first.

	2001-10-25  Alex Larsson  <alexl@redhat.com>

        * libnautilus-private/nautilus-directory.c
	(nautilus_directory_notify_files_changed): Call
	nautilus_directory_add_file_to_work_queue() when file_info is
	invalidated.  Otherwise it will not be read again.
This commit is contained in:
Darin Adler 2002-03-07 19:36:18 +00:00 committed by Darin Adler
parent 6b5798037c
commit 136742e4ef
75 changed files with 1042 additions and 1393 deletions

View file

@ -1,3 +1,48 @@
2002-03-07 Darin Adler <darin@bentspoon.com>
* Tons of files:
Because lots of recent bugs were due to "signal handler called after
object gone" problems, switched many calls of g_signal_connect and
g_signal_connect_swapped to use g_signal_connect_object instead.
Also did other signal-related cleanup and changed some destroys to
finalizes.
* libnautilus/nautilus-view-standard-main.h:
We no longer need to include nautilus-view.h in here. So include it
in the files that use this instead.
Did merges from stable branch:
2001-10-25 Darin Adler <darin@bentspoon.com>
* libnautilus-private/nautilus-directory.c:
(call_files_changed_common), (call_files_changed_free_list),
(call_files_changed_unref_free_list),
(nautilus_directory_notify_files_changed): Move call to
nautilus_directory_add_file_to_work_queue into a better
bottleneck; now it catches all the notify cases, not just changed.
Also tell it to re-get top-left text and link info too when we get
a changed notice.
* src/file-manager/fm-directory-view.c: (queue_pending_files):
Don't use the timeout (and the hysteresis) when queuing files once
the initial directory load is complete. Doing this was causing
delays processing changes that came in later, which we don't want.
* src/nautilus-sidebar-title.c: (item_count_ready), (monitor_add),
(update_all), (nautilus_sidebar_title_set_file): Monitor the
directory count once we get it the first time. This makes sure
that changes in the directory count get reflected in the sidebar
without creating a race with the main view to see who calculates
it first.
2001-10-25 Alex Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-directory.c
(nautilus_directory_notify_files_changed): Call
nautilus_directory_add_file_to_work_queue() when file_info is
invalidated. Otherwise it will not be read again.
2002-03-07 Michael Meeks <michael@ximian.com> 2002-03-07 Michael Meeks <michael@ximian.com>
* libnautilus-private/nautilus-horizontal-splitter.c * libnautilus-private/nautilus-horizontal-splitter.c

View file

@ -164,8 +164,8 @@ nautilus_adapter_control_embed_strategy_new (Bonobo_Control control,
strategy->details->widget = bonobo_control_frame_get_widget (strategy->details->control_frame); strategy->details->widget = bonobo_control_frame_get_widget (strategy->details->control_frame);
g_signal_connect (strategy->details->control_frame, g_signal_connect_object (strategy->details->control_frame, "activate_uri",
"activate_uri", G_CALLBACK (activate_uri_callback), strategy); G_CALLBACK (activate_uri_callback), strategy, 0);
CORBA_exception_init (&ev); CORBA_exception_init (&ev);
corba_zoomable = Bonobo_Unknown_queryInterface (control, corba_zoomable = Bonobo_Unknown_queryInterface (control,

View file

@ -168,11 +168,10 @@ nautilus_adapter_control_factory_embed_strategy_new (Bonobo_ControlFactory contr
if ((ev._major == CORBA_NO_EXCEPTION) && if ((ev._major == CORBA_NO_EXCEPTION) &&
!CORBA_Object_is_nil (control, &ev)) { !CORBA_Object_is_nil (control, &ev)) {
Bonobo_Zoomable corba_zoomable; Bonobo_Zoomable corba_zoomable;
strategy->details->client_widget = bonobo_control_frame_get_widget ( strategy->details->client_widget = bonobo_control_frame_get_widget
strategy->details->control_frame); (strategy->details->control_frame);
g_signal_connect (strategy->details->control_frame, g_signal_connect_object (strategy->details->control_frame, "activate_uri",
"activate_uri", G_CALLBACK (activate_uri_callback), strategy, 0);
G_CALLBACK (activate_uri_callback), strategy);
gtk_widget_show (strategy->details->client_widget); gtk_widget_show (strategy->details->client_widget);

View file

@ -46,10 +46,6 @@ struct NautilusAdapterDetails {
NautilusView *nautilus_view; NautilusView *nautilus_view;
NautilusAdapterEmbedStrategy *embed_strategy; NautilusAdapterEmbedStrategy *embed_strategy;
NautilusAdapterLoadStrategy *load_strategy; NautilusAdapterLoadStrategy *load_strategy;
guint report_load_underway_id;
guint report_load_progress_id;
guint report_load_complete_id;
guint report_load_failed_id;
}; };
@ -104,15 +100,6 @@ nautilus_adapter_destroy (GtkObject *object)
adapter = NAUTILUS_ADAPTER (object); adapter = NAUTILUS_ADAPTER (object);
g_signal_handler_disconnect (GTK_OBJECT (adapter->details->load_strategy),
adapter->details->report_load_underway_id);
g_signal_handler_disconnect (GTK_OBJECT (adapter->details->load_strategy),
adapter->details->report_load_progress_id);
g_signal_handler_disconnect (GTK_OBJECT (adapter->details->load_strategy),
adapter->details->report_load_complete_id);
g_signal_handler_disconnect (GTK_OBJECT (adapter->details->load_strategy),
adapter->details->report_load_failed_id);
if (adapter->details->embed_strategy != NULL) { if (adapter->details->embed_strategy != NULL) {
nautilus_adapter_embed_strategy_deactivate (adapter->details->embed_strategy); nautilus_adapter_embed_strategy_deactivate (adapter->details->embed_strategy);
} }
@ -166,14 +153,10 @@ nautilus_adapter_new (Bonobo_Unknown component)
if (zoomable != NULL) if (zoomable != NULL)
bonobo_object_add_interface (BONOBO_OBJECT (control), zoomable); bonobo_object_add_interface (BONOBO_OBJECT (control), zoomable);
g_signal_connect (control, "activate", g_signal_connect_object (control, "activate",
G_CALLBACK (nautilus_adapter_activate_callback), G_CALLBACK (nautilus_adapter_activate_callback), adapter, 0);
adapter); g_signal_connect_object (adapter->details->embed_strategy, "open_location",
G_CALLBACK (nautilus_adapter_open_location_callback), adapter, 0);
g_signal_connect (adapter->details->embed_strategy, "open_location",
G_CALLBACK (nautilus_adapter_open_location_callback),
adapter);
/* Get the class to handle loading this kind of component. */ /* Get the class to handle loading this kind of component. */
adapter->details->load_strategy = nautilus_adapter_load_strategy_get (component); adapter->details->load_strategy = nautilus_adapter_load_strategy_get (component);
@ -183,40 +166,28 @@ nautilus_adapter_new (Bonobo_Unknown component)
} }
/* hook up load strategy signals */ /* hook up load strategy signals */
adapter->details->report_load_underway_id = g_signal_connect_object (adapter->details->load_strategy, "report_load_underway",
g_signal_connect_swapped (GTK_OBJECT (adapter->details->load_strategy), G_CALLBACK (nautilus_adapter_load_underway_callback),
"report_load_underway", adapter, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_adapter_load_underway_callback), g_signal_connect_object (adapter->details->load_strategy, "report_load_progress",
GTK_OBJECT (adapter)); G_CALLBACK (nautilus_adapter_load_progress_callback),
adapter->details->report_load_progress_id = adapter, G_CONNECT_SWAPPED);
g_signal_connect_swapped (GTK_OBJECT (adapter->details->load_strategy), g_signal_connect_object (adapter->details->load_strategy, "report_load_complete",
"report_load_progress", G_CALLBACK (nautilus_adapter_load_complete_callback),
G_CALLBACK (nautilus_adapter_load_progress_callback), adapter, G_CONNECT_SWAPPED);
GTK_OBJECT (adapter)); g_signal_connect_object (adapter->details->load_strategy, "report_load_failed",
adapter->details->report_load_complete_id = G_CALLBACK (nautilus_adapter_load_failed_callback),
g_signal_connect_swapped (GTK_OBJECT (adapter->details->load_strategy), adapter, G_CONNECT_SWAPPED);
"report_load_complete",
G_CALLBACK (nautilus_adapter_load_complete_callback),
GTK_OBJECT (adapter));
adapter->details->report_load_failed_id =
g_signal_connect_swapped (GTK_OBJECT (adapter->details->load_strategy),
"report_load_failed",
G_CALLBACK (nautilus_adapter_load_failed_callback),
GTK_OBJECT (adapter));
/* complete the embedding */ /* complete the embedding */
gtk_container_add (GTK_CONTAINER (bin), gtk_container_add (GTK_CONTAINER (bin),
nautilus_adapter_embed_strategy_get_widget (adapter->details->embed_strategy)); nautilus_adapter_embed_strategy_get_widget (adapter->details->embed_strategy));
/* hook up view signals. */ /* hook up view signals. */
g_signal_connect (adapter->details->nautilus_view, g_signal_connect_object (adapter->details->nautilus_view, "load_location",
"load_location", G_CALLBACK (nautilus_adapter_load_location_callback), adapter, 0);
G_CALLBACK (nautilus_adapter_load_location_callback), g_signal_connect_object (adapter->details->nautilus_view, "stop_loading",
adapter); G_CALLBACK (nautilus_adapter_stop_loading_callback), adapter, 0);
g_signal_connect (adapter->details->nautilus_view,
"stop_loading",
G_CALLBACK (nautilus_adapter_stop_loading_callback),
adapter);
return adapter; return adapter;
} }

View file

@ -158,10 +158,8 @@ nautilus_hardware_view_init (NautilusHardwareView *hardware_view)
hardware_view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (hardware_view)); hardware_view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (hardware_view));
g_signal_connect (hardware_view->details->nautilus_view, g_signal_connect_object (hardware_view->details->nautilus_view, "load_location",
"load_location", G_CALLBACK (hardware_view_load_location_callback), hardware_view, 0);
G_CALLBACK (hardware_view_load_location_callback),
hardware_view);
background = eel_get_widget_background (GTK_WIDGET (hardware_view)); background = eel_get_widget_background (GTK_WIDGET (hardware_view));
eel_background_set_color (background, HARDWARE_DEFAULT_BACKGROUND_COLOR); eel_background_set_color (background, HARDWARE_DEFAULT_BACKGROUND_COLOR);

View file

@ -38,6 +38,7 @@
#include <gtk/gtkscrolledwindow.h> #include <gtk/gtkscrolledwindow.h>
#include <libgnome/gnome-macros.h> #include <libgnome/gnome-macros.h>
#include <libnautilus-private/nautilus-bookmark.h> #include <libnautilus-private/nautilus-bookmark.h>
#include <libnautilus/nautilus-view.h>
#include <libnautilus/nautilus-view-standard-main.h> #include <libnautilus/nautilus-view-standard-main.h>
#define FACTORY_IID "OAFIID:nautilus_history_view_factory:912d6634-d18f-40b6-bb83-bdfe16f1d15e" #define FACTORY_IID "OAFIID:nautilus_history_view_factory:912d6634-d18f-40b6-bb83-bdfe16f1d15e"
@ -245,8 +246,8 @@ nautilus_history_view_instance_init (NautilusHistoryView *view)
(selection, "changed", (selection, "changed",
G_CALLBACK (on_selection_changed), view, 0); G_CALLBACK (on_selection_changed), view, 0);
g_signal_connect (view, "history_changed", g_signal_connect_object (view, "history_changed",
G_CALLBACK (history_changed_callback), view); G_CALLBACK (history_changed_callback), view, 0);
} }

View file

@ -77,18 +77,15 @@ nautilus_content_loser_init (NautilusContentLoser *view)
view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (view)); view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (view));
g_signal_connect (view->details->nautilus_view, g_signal_connect_object (view->details->nautilus_view, "load_location",
"load_location", G_CALLBACK (loser_load_location_callback), view, 0);
G_CALLBACK (loser_load_location_callback),
view);
/* Get notified when our bonobo control is activated so we /* Get notified when our bonobo control is activated so we
* can merge menu & toolbar items into Nautilus's UI. * can merge menu & toolbar items into Nautilus's UI.
*/ */
g_signal_connect (nautilus_view_get_bonobo_control (view->details->nautilus_view), g_signal_connect_object (nautilus_view_get_bonobo_control (view->details->nautilus_view),
"activate", "activate",
G_CALLBACK (loser_merge_bonobo_items_callback), G_CALLBACK (loser_merge_bonobo_items_callback), view, 0);
view);
gtk_widget_show (GTK_WIDGET (view)); gtk_widget_show (GTK_WIDGET (view));
} }

View file

@ -79,19 +79,15 @@ nautilus_sidebar_loser_init (NautilusSidebarLoser *view)
view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (view)); view->details->nautilus_view = nautilus_view_new (GTK_WIDGET (view));
g_signal_connect (view->details->nautilus_view, g_signal_connect_object (view->details->nautilus_view, "load_location",
"load_location", G_CALLBACK (loser_load_location_callback), view, 0);
G_CALLBACK (loser_load_location_callback),
view);
/* /* Get notified when our bonobo control is activated so we
* Get notified when our bonobo control is activated so we
* can merge menu & toolbar items into Nautilus's UI. * can merge menu & toolbar items into Nautilus's UI.
*/ */
g_signal_connect (nautilus_view_get_bonobo_control (view->details->nautilus_view), g_signal_connect_object (nautilus_view_get_bonobo_control (view->details->nautilus_view),
"activate", "activate",
G_CALLBACK (loser_merge_bonobo_items_callback), G_CALLBACK (loser_merge_bonobo_items_callback), view, 0);
view);
gtk_widget_show (GTK_WIDGET (view)); gtk_widget_show (GTK_WIDGET (view));
} }

View file

@ -220,7 +220,7 @@ static void streaming_save_browse_cb(GtkWidget * w, gpointer data)
{ {
streaming_save_dirbrowser = xmms_create_dir_browser(_("Select the directory where you want to store the MPEG streams:"), streaming_save_dirbrowser = xmms_create_dir_browser(_("Select the directory where you want to store the MPEG streams:"),
mpg123_cfg.save_http_path, GTK_SELECTION_SINGLE, streaming_save_dirbrowser_cb); mpg123_cfg.save_http_path, GTK_SELECTION_SINGLE, streaming_save_dirbrowser_cb);
g_signal_connect(G_OBJECT(streaming_save_dirbrowser), "destroy", G_CALLBACK(gtk_widget_destroyed), &streaming_save_dirbrowser); g_signal_connect(streaming_save_dirbrowser, "destroy", G_CALLBACK(gtk_widget_destroyed), &streaming_save_dirbrowser);
gtk_window_set_transient_for(GTK_WINDOW(streaming_save_dirbrowser), GTK_WINDOW(mpg123_configurewin)); gtk_window_set_transient_for(GTK_WINDOW(streaming_save_dirbrowser), GTK_WINDOW(mpg123_configurewin));
gtk_widget_show(streaming_save_dirbrowser); gtk_widget_show(streaming_save_dirbrowser);
} }
@ -275,8 +275,8 @@ void mpg123_configure(void)
return; return;
} }
mpg123_configurewin = gtk_window_new(GTK_WINDOW_DIALOG); mpg123_configurewin = gtk_window_new(GTK_WINDOW_DIALOG);
g_signal_connect(G_OBJECT(mpg123_configurewin), "destroy", G_CALLBACK(gtk_widget_destroyed), &mpg123_configurewin); g_signal_connect(mpg123_configurewin, "destroy", G_CALLBACK(gtk_widget_destroyed), &mpg123_configurewin);
g_signal_connect(G_OBJECT(mpg123_configurewin), "destroy", G_CALLBACK(configure_destroy), &mpg123_configurewin); g_signal_connect(mpg123_configurewin, "destroy", G_CALLBACK(configure_destroy), &mpg123_configurewin);
gtk_window_set_title(GTK_WINDOW(mpg123_configurewin), _("MPG123 Configuration")); gtk_window_set_title(GTK_WINDOW(mpg123_configurewin), _("MPG123 Configuration"));
gtk_window_set_wmclass(GTK_WINDOW(mpg123_configurewin), "mpg123_configuration", "Nautilus"); gtk_window_set_wmclass(GTK_WINDOW(mpg123_configurewin), "mpg123_configuration", "Nautilus");
gtk_window_set_policy(GTK_WINDOW(mpg123_configurewin), FALSE, FALSE, FALSE); gtk_window_set_policy(GTK_WINDOW(mpg123_configurewin), FALSE, FALSE, FALSE);
@ -430,14 +430,14 @@ void mpg123_configure(void)
if (mpg123_cfg.use_3dnow == 0) if (mpg123_cfg.use_3dnow == 0)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(auto_select), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(auto_select), TRUE);
gtk_box_pack_start(GTK_BOX(decoder_vbox), auto_select, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(decoder_vbox), auto_select, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(auto_select), "clicked", G_CALLBACK(auto_select_cb), NULL); g_signal_connect(auto_select, "clicked", G_CALLBACK(auto_select_cb), NULL);
gtk_widget_show(auto_select); gtk_widget_show(auto_select);
decoder_3dnow = gtk_radio_button_new_with_label(NULL, _("use 3DNow! optimized decoder")); decoder_3dnow = gtk_radio_button_new_with_label(NULL, _("use 3DNow! optimized decoder"));
if (((support_3dnow() == TRUE) && mpg123_cfg.use_3dnow != 2) || (mpg123_cfg.use_3dnow == 1)) if (((support_3dnow() == TRUE) && mpg123_cfg.use_3dnow != 2) || (mpg123_cfg.use_3dnow == 1))
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(decoder_3dnow), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(decoder_3dnow), TRUE);
gtk_box_pack_start(GTK_BOX(decoder_vbox), decoder_3dnow, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(decoder_vbox), decoder_3dnow, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(decoder_3dnow), "clicked", G_CALLBACK(use_3dnow_cb), NULL); g_signal_connect(decoder_3dnow, "clicked", G_CALLBACK(use_3dnow_cb), NULL);
gtk_widget_show(decoder_3dnow); gtk_widget_show(decoder_3dnow);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_select)) == TRUE) if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_select)) == TRUE)
gtk_widget_set_sensitive(decoder_3dnow, FALSE); gtk_widget_set_sensitive(decoder_3dnow, FALSE);
@ -446,7 +446,7 @@ void mpg123_configure(void)
if (((support_3dnow() == FALSE) && mpg123_cfg.use_3dnow != 1) || (mpg123_cfg.use_3dnow == 2)) if (((support_3dnow() == FALSE) && mpg123_cfg.use_3dnow != 1) || (mpg123_cfg.use_3dnow == 2))
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(decoder_fpu), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(decoder_fpu), TRUE);
gtk_box_pack_start(GTK_BOX(decoder_vbox), decoder_fpu, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(decoder_vbox), decoder_fpu, FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(decoder_fpu), "clicked", G_CALLBACK(use_fpu_cb), NULL); g_signal_connect(decoder_fpu, "clicked", G_CALLBACK(use_fpu_cb), NULL);
gtk_widget_show(decoder_fpu); gtk_widget_show(decoder_fpu);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_select)) == TRUE) if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_select)) == TRUE)
gtk_widget_set_sensitive(decoder_fpu, FALSE); gtk_widget_set_sensitive(decoder_fpu, FALSE);
@ -527,7 +527,7 @@ void mpg123_configure(void)
streaming_proxy_use = gtk_check_button_new_with_label(_("Use proxy")); streaming_proxy_use = gtk_check_button_new_with_label(_("Use proxy"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_use), mpg123_cfg.use_proxy); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_use), mpg123_cfg.use_proxy);
g_signal_connect(G_OBJECT(streaming_proxy_use), "clicked", G_CALLBACK(proxy_use_cb), NULL); g_signal_connect(streaming_proxy_use, "clicked", G_CALLBACK(proxy_use_cb), NULL);
gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_use, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_use, FALSE, FALSE, 0);
gtk_widget_show(streaming_proxy_use); gtk_widget_show(streaming_proxy_use);
@ -561,7 +561,7 @@ void mpg123_configure(void)
streaming_proxy_auth_use = gtk_check_button_new_with_label(_("Use authentication")); streaming_proxy_auth_use = gtk_check_button_new_with_label(_("Use authentication"));
gtk_widget_set_sensitive(streaming_proxy_auth_use, mpg123_cfg.use_proxy); gtk_widget_set_sensitive(streaming_proxy_auth_use, mpg123_cfg.use_proxy);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_auth_use), mpg123_cfg.proxy_use_auth); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_proxy_auth_use), mpg123_cfg.proxy_use_auth);
g_signal_connect(G_OBJECT(streaming_proxy_auth_use), "clicked", G_CALLBACK(proxy_auth_use_cb), NULL); g_signal_connect(streaming_proxy_auth_use, "clicked", G_CALLBACK(proxy_auth_use_cb), NULL);
gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_auth_use, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(streaming_proxy_vbox), streaming_proxy_auth_use, FALSE, FALSE, 0);
gtk_widget_show(streaming_proxy_auth_use); gtk_widget_show(streaming_proxy_auth_use);
@ -608,7 +608,7 @@ void mpg123_configure(void)
streaming_save_use = gtk_check_button_new_with_label(_("Save stream to disk")); streaming_save_use = gtk_check_button_new_with_label(_("Save stream to disk"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_save_use), mpg123_cfg.save_http_stream); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(streaming_save_use), mpg123_cfg.save_http_stream);
g_signal_connect(G_OBJECT(streaming_save_use), "clicked", G_CALLBACK(streaming_save_use_cb), NULL); g_signal_connect(streaming_save_use, "clicked", G_CALLBACK(streaming_save_use_cb), NULL);
gtk_box_pack_start(GTK_BOX(streaming_save_vbox), streaming_save_use, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(streaming_save_vbox), streaming_save_use, FALSE, FALSE, 0);
gtk_widget_show(streaming_save_use); gtk_widget_show(streaming_save_use);
@ -626,7 +626,7 @@ void mpg123_configure(void)
gtk_widget_show(streaming_save_entry); gtk_widget_show(streaming_save_entry);
streaming_save_browse = gtk_button_new_with_label(_("Browse")); streaming_save_browse = gtk_button_new_with_label(_("Browse"));
g_signal_connect(G_OBJECT(streaming_save_browse), "clicked", G_CALLBACK(streaming_save_browse_cb), NULL); g_signal_connect(streaming_save_browse, "clicked", G_CALLBACK(streaming_save_browse_cb), NULL);
gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_browse, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_browse, FALSE, FALSE, 0);
gtk_widget_show(streaming_save_browse); gtk_widget_show(streaming_save_browse);
@ -666,7 +666,7 @@ void mpg123_configure(void)
title_id3_use = gtk_check_button_new_with_label(_("Use ID3 tags")); title_id3_use = gtk_check_button_new_with_label(_("Use ID3 tags"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(title_id3_use), mpg123_cfg.use_id3); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(title_id3_use), mpg123_cfg.use_id3);
g_signal_connect(G_OBJECT(title_id3_use), "clicked", title_id3_use_cb, NULL); g_signal_connect(title_id3_use, "clicked", title_id3_use_cb, NULL);
gtk_box_pack_start(GTK_BOX(title_id3_vbox), title_id3_use, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(title_id3_vbox), title_id3_use, FALSE, FALSE, 0);
gtk_widget_show(title_id3_use); gtk_widget_show(title_id3_use);
@ -718,14 +718,14 @@ void mpg123_configure(void)
gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
ok = gtk_button_new_from_stock (GTK_STOCK_OK); ok = gtk_button_new_from_stock (GTK_STOCK_OK);
g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(mpg123_configurewin_ok), NULL); g_signal_connect(ok, "clicked", G_CALLBACK(mpg123_configurewin_ok), NULL);
GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0);
gtk_widget_show(ok); gtk_widget_show(ok);
gtk_widget_grab_default(ok); gtk_widget_grab_default(ok);
cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL); cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
g_signal_connect_object(G_OBJECT(cancel), "clicked", G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(mpg123_configurewin)); g_signal_connect_object(cancel, "clicked", G_CALLBACK(gtk_widget_destroy), mpg123_configurewin, 0);
GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
gtk_widget_show(cancel); gtk_widget_show(cancel);

View file

@ -217,7 +217,7 @@ void mpg123_file_info_box(char *filename)
window = gtk_window_new(GTK_WINDOW_DIALOG); window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE); gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_widget_destroyed), &window); g_signal_connect(window, "destroy", G_CALLBACK(gtk_widget_destroyed), &window);
gtk_container_set_border_width(GTK_CONTAINER(window), 10); gtk_container_set_border_width(GTK_CONTAINER(window), 10);
vbox = gtk_vbox_new(FALSE, 10); vbox = gtk_vbox_new(FALSE, 10);
@ -304,18 +304,18 @@ void mpg123_file_info_box(char *filename)
gtk_box_pack_start(GTK_BOX(left_vbox), bbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(left_vbox), bbox, FALSE, FALSE, 0);
save = gtk_button_new_with_label(_("Save")); save = gtk_button_new_with_label(_("Save"));
g_signal_connect(G_OBJECT(save), "clicked", G_CALLBACK(save_cb), NULL); g_signal_connect(save, "clicked", G_CALLBACK(save_cb), NULL);
GTK_WIDGET_SET_FLAGS(save, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(save, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(bbox), save, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), save, TRUE, TRUE, 0);
gtk_widget_grab_default(save); gtk_widget_grab_default(save);
remove_id3 = gtk_button_new_with_label(_("Remove ID3")); remove_id3 = gtk_button_new_with_label(_("Remove ID3"));
g_signal_connect(G_OBJECT(remove_id3), "clicked", G_CALLBACK(remove_id3_cb), NULL); g_signal_connect(remove_id3, "clicked", G_CALLBACK(remove_id3_cb), NULL);
GTK_WIDGET_SET_FLAGS(remove_id3, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(remove_id3, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(bbox), remove_id3, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), remove_id3, TRUE, TRUE, 0);
cancel = gtk_button_new_with_label(_("Cancel")); cancel = gtk_button_new_with_label(_("Cancel"));
g_signal_connect_swapped(G_OBJECT(cancel), "clicked", G_CALLBACK(gtk_widget_destroy), G_OBJECT(window)); g_signal_connect_object(cancel, "clicked", G_CALLBACK(gtk_widget_destroy), window, G_CONNECT_SWAPPED);
GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);

View file

@ -421,24 +421,18 @@ nautilus_music_view_init (NautilusMusicView *music_view)
music_view->details->event_box = gtk_event_box_new (); music_view->details->event_box = gtk_event_box_new ();
gtk_widget_show (music_view->details->event_box); gtk_widget_show (music_view->details->event_box);
g_signal_connect (music_view->details->event_box, g_signal_connect_object (music_view->details->event_box, "drag_data_received",
"drag_data_received", G_CALLBACK (nautilus_music_view_drag_data_received), music_view, 0);
G_CALLBACK (nautilus_music_view_drag_data_received),
music_view);
nautilus_view_construct (NAUTILUS_VIEW (music_view), nautilus_view_construct (NAUTILUS_VIEW (music_view),
music_view->details->event_box); music_view->details->event_box);
g_signal_connect_object (music_view, "load_location",
g_signal_connect (music_view, G_CALLBACK (music_view_load_location_callback), music_view, 0);
"load_location",
G_CALLBACK (music_view_load_location_callback),
music_view);
g_signal_connect (eel_get_widget_background (GTK_WIDGET (music_view->details->event_box)), g_signal_connect_object (eel_get_widget_background (GTK_WIDGET (music_view->details->event_box)),
"appearance_changed", "appearance_changed",
G_CALLBACK (music_view_background_appearance_changed_callback), G_CALLBACK (music_view_background_appearance_changed_callback), music_view, 0);
music_view);
/* NOTE: we don't show the widgets until the directory has been loaded, /* NOTE: we don't show the widgets until the directory has been loaded,
to avoid showing degenerate widgets during the loading process */ to avoid showing degenerate widgets during the loading process */
@ -564,7 +558,7 @@ nautilus_music_view_finalize (GObject *object)
g_free (music_view->details); g_free (music_view->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static gboolean static gboolean
@ -772,12 +766,10 @@ set_album_cover (GtkWidget *widget, gpointer *data)
} }
/* Callback used when the color selection dialog is destroyed */ /* Callback used when the color selection dialog is destroyed */
static gboolean static void
dialog_destroy (GtkWidget *widget, gpointer data) dialog_destroy (GtkObject *object, gpointer callback_data)
{ {
NautilusMusicView *music_view = NAUTILUS_MUSIC_VIEW (data); NAUTILUS_MUSIC_VIEW (callback_data)->details->dialog = NULL;
music_view->details->dialog = NULL;
return FALSE;
} }
/* handle the set image button by displaying a file selection dialog */ /* handle the set image button by displaying a file selection dialog */
@ -796,22 +788,13 @@ image_button_callback (GtkWidget * widget, NautilusMusicView *music_view)
(_("Select an image file for the album cover:")); (_("Select an image file for the album cover:"));
file_dialog = GTK_FILE_SELECTION (music_view->details->dialog); file_dialog = GTK_FILE_SELECTION (music_view->details->dialog);
g_signal_connect (music_view->details->dialog, g_signal_connect_object (music_view->details->dialog, "destroy",
"destroy", G_CALLBACK (dialog_destroy), music_view, 0);
(GtkSignalFunc) dialog_destroy, g_signal_connect_object (file_dialog->ok_button, "clicked",
music_view); G_CALLBACK (set_album_cover), music_view, 0);
g_signal_connect (file_dialog->ok_button,
"clicked",
(GtkSignalFunc) set_album_cover,
music_view);
g_signal_connect_closure (file_dialog->cancel_button, g_signal_connect_object (file_dialog->cancel_button, "clicked",
"clicked", G_CALLBACK (gtk_widget_destroy), file_dialog, G_CONNECT_SWAPPED);
g_cclosure_new_swap (
G_CALLBACK (gtk_widget_destroy),
file_dialog,
NULL),
0);
gtk_window_set_position (GTK_WINDOW (file_dialog), GTK_WIN_POS_MOUSE); gtk_window_set_position (GTK_WINDOW (file_dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_wmclass (GTK_WINDOW (file_dialog), "file_selector", "Nautilus"); gtk_window_set_wmclass (GTK_WINDOW (file_dialog), "file_selector", "Nautilus");
@ -1181,7 +1164,7 @@ play_current_file (NautilusMusicView *music_view, gboolean from_start)
/* Check gconf sound preference */ /* Check gconf sound preference */
client = gconf_client_get_default (); client = gconf_client_get_default ();
enable_esd = gconf_client_get_bool (client, "/desktop/gnome/sound/enable_esd", NULL); enable_esd = gconf_client_get_bool (client, "/desktop/gnome/sound/enable_esd", NULL);
g_object_unref (G_OBJECT (client)); g_object_unref (client);
if (!enable_esd) { if (!enable_esd) {
eel_show_error_dialog (_("Sorry, but the music view is unable to play back sound right now. " eel_show_error_dialog (_("Sorry, but the music view is unable to play back sound right now. "
@ -1503,12 +1486,12 @@ add_play_controls (NautilusMusicView *music_view)
music_view->details->playtime_adjustment = gtk_adjustment_new (0, 0, 101, 1, 5, 1); music_view->details->playtime_adjustment = gtk_adjustment_new (0, 0, 101, 1, 5, 1);
music_view->details->playtime_bar = gtk_hscale_new (GTK_ADJUSTMENT (music_view->details->playtime_adjustment)); music_view->details->playtime_bar = gtk_hscale_new (GTK_ADJUSTMENT (music_view->details->playtime_adjustment));
g_signal_connect (music_view->details->playtime_bar, "button_press_event", g_signal_connect_object (music_view->details->playtime_bar, "button_press_event",
G_CALLBACK (slider_press_callback), music_view); G_CALLBACK (slider_press_callback), music_view, 0);
g_signal_connect (music_view->details->playtime_bar, "button_release_event", g_signal_connect_object (music_view->details->playtime_bar, "button_release_event",
G_CALLBACK (slider_release_callback), music_view); G_CALLBACK (slider_release_callback), music_view, 0);
g_signal_connect (music_view->details->playtime_bar, "motion_notify_event", g_signal_connect_object (music_view->details->playtime_bar, "motion_notify_event",
G_CALLBACK (slider_moved_callback), music_view); G_CALLBACK (slider_moved_callback), music_view, 0);
gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), music_view->details->playtime_bar, gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), music_view->details->playtime_bar,
_("Drag to seek within track"), NULL); _("Drag to seek within track"), NULL);
@ -1540,7 +1523,8 @@ add_play_controls (NautilusMusicView *music_view)
music_view->details->previous_track_button = gtk_button_new (); music_view->details->previous_track_button = gtk_button_new ();
gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), music_view->details->previous_track_button, _("Previous"), NULL); gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), music_view->details->previous_track_button, _("Previous"), NULL);
gtk_container_add (GTK_CONTAINER (music_view->details->previous_track_button), box); gtk_container_add (GTK_CONTAINER (music_view->details->previous_track_button), box);
g_signal_connect (music_view->details->previous_track_button, "clicked", G_CALLBACK (prev_button_callback), music_view); g_signal_connect_object (music_view->details->previous_track_button, "clicked",
G_CALLBACK (prev_button_callback), music_view, 0);
gtk_widget_set_sensitive (music_view->details->previous_track_button, TRUE); gtk_widget_set_sensitive (music_view->details->previous_track_button, TRUE);
gtk_button_set_relief (GTK_BUTTON (music_view->details->previous_track_button), GTK_RELIEF_NORMAL); gtk_button_set_relief (GTK_BUTTON (music_view->details->previous_track_button), GTK_RELIEF_NORMAL);
gtk_box_pack_start (GTK_BOX (hbox), music_view->details->previous_track_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), music_view->details->previous_track_button, FALSE, FALSE, 0);
@ -1556,7 +1540,7 @@ add_play_controls (NautilusMusicView *music_view)
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NORMAL); gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NORMAL);
gtk_container_add (GTK_CONTAINER (button), box); gtk_container_add (GTK_CONTAINER (button), box);
gtk_widget_set_sensitive (button, TRUE); gtk_widget_set_sensitive (button, TRUE);
g_signal_connect (button, "clicked", G_CALLBACK (play_button_callback), music_view); g_signal_connect_object (button, "clicked", G_CALLBACK (play_button_callback), music_view, 0);
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
gtk_widget_show (button); gtk_widget_show (button);
@ -1571,8 +1555,8 @@ add_play_controls (NautilusMusicView *music_view)
gtk_container_add (GTK_CONTAINER (music_view->details->pause_button), box); gtk_container_add (GTK_CONTAINER (music_view->details->pause_button), box);
gtk_widget_set_sensitive (music_view->details->pause_button, TRUE); gtk_widget_set_sensitive (music_view->details->pause_button, TRUE);
g_signal_connect (music_view->details->pause_button, "clicked", g_signal_connect_object (music_view->details->pause_button, "clicked",
G_CALLBACK(pause_button_callback), music_view); G_CALLBACK (pause_button_callback), music_view, 0);
gtk_box_pack_start (GTK_BOX (hbox), music_view->details->pause_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), music_view->details->pause_button, FALSE, FALSE, 0);
gtk_widget_show (music_view->details->pause_button); gtk_widget_show (music_view->details->pause_button);
@ -1585,8 +1569,8 @@ add_play_controls (NautilusMusicView *music_view)
gtk_container_add (GTK_CONTAINER (music_view->details->stop_button), box); gtk_container_add (GTK_CONTAINER (music_view->details->stop_button), box);
gtk_widget_set_sensitive (music_view->details->stop_button, TRUE); gtk_widget_set_sensitive (music_view->details->stop_button, TRUE);
g_signal_connect (music_view->details->stop_button, "clicked", g_signal_connect_object (music_view->details->stop_button, "clicked",
G_CALLBACK (stop_button_callback), music_view); G_CALLBACK (stop_button_callback), music_view, 0);
gtk_box_pack_start (GTK_BOX (hbox), music_view->details->stop_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), music_view->details->stop_button, FALSE, FALSE, 0);
gtk_widget_show (music_view->details->stop_button); gtk_widget_show (music_view->details->stop_button);
@ -1599,8 +1583,8 @@ add_play_controls (NautilusMusicView *music_view)
gtk_container_add (GTK_CONTAINER (music_view->details->next_track_button), box); gtk_container_add (GTK_CONTAINER (music_view->details->next_track_button), box);
gtk_widget_set_sensitive (music_view->details->next_track_button, TRUE); gtk_widget_set_sensitive (music_view->details->next_track_button, TRUE);
g_signal_connect (music_view->details->next_track_button, "clicked", g_signal_connect_object (music_view->details->next_track_button, "clicked",
G_CALLBACK (next_button_callback), music_view); G_CALLBACK (next_button_callback), music_view, 0);
gtk_box_pack_start (GTK_BOX (hbox), music_view->details->next_track_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), music_view->details->next_track_button, FALSE, FALSE, 0);
gtk_widget_show (music_view->details->next_track_button); gtk_widget_show (music_view->details->next_track_button);

View file

@ -195,7 +195,7 @@ nautilus_cell_renderer_news_finalize (GObject *object)
g_free (cellnews->priv); g_free (cellnews->priv);
(* G_OBJECT_CLASS (parent_class)->finalize) (object); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static void static void

View file

@ -78,6 +78,7 @@
#include <libnautilus-private/nautilus-undo-signal-handlers.h> #include <libnautilus-private/nautilus-undo-signal-handlers.h>
#include <libnautilus/nautilus-clipboard.h> #include <libnautilus/nautilus-clipboard.h>
#include <libnautilus/nautilus-view.h>
#include <libnautilus/nautilus-view-standard-main.h> #include <libnautilus/nautilus-view-standard-main.h>
/* property bag getting and setting routines */ /* property bag getting and setting routines */
@ -1871,7 +1872,7 @@ add_command_buttons (News *news_data, const char* label, gboolean from_configure
gtk_container_add (GTK_CONTAINER (button_box), button); gtk_container_add (GTK_CONTAINER (button_box), button);
g_signal_connect (button, "clicked", g_signal_connect (button, "clicked",
(GtkSignalFunc) add_site_button_clicked, news_data); G_CALLBACK (add_site_button_clicked), news_data);
} }
button = gtk_button_new_from_stock (label); button = gtk_button_new_from_stock (label);
@ -1879,7 +1880,7 @@ add_command_buttons (News *news_data, const char* label, gboolean from_configure
gtk_container_add (GTK_CONTAINER (button_box), button); gtk_container_add (GTK_CONTAINER (button_box), button);
g_signal_connect (button, "clicked", g_signal_connect (button, "clicked",
(GtkSignalFunc) configure_button_clicked, news_data); G_CALLBACK (configure_button_clicked), news_data);
return frame; return frame;
} }
@ -2003,8 +2004,8 @@ add_channel_entry (News *news_data, const char *channel_name, int index, gboolea
gtk_box_pack_start (GTK_BOX (news_data->checkbox_list), check_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (news_data->checkbox_list), check_button, FALSE, FALSE, 0);
g_signal_connect (check_button, "toggled", g_signal_connect (check_button, "toggled",
G_CALLBACK (check_button_toggled_callback), G_CALLBACK (check_button_toggled_callback),
news_data); news_data);
/* reorder newly added button so it's sorted by it's name */ /* reorder newly added button so it's sorted by it's name */
sort_position = determine_sort_position (news_data->checkbox_list, channel_name); sort_position = determine_sort_position (news_data->checkbox_list, channel_name);
@ -2134,7 +2135,7 @@ make_remove_widgets (News *news, GtkWidget *container)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (news->remove_site_list)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (news->remove_site_list));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
g_signal_connect (G_OBJECT (selection), "changed", g_signal_connect (selection, "changed",
G_CALLBACK (remove_list_selection_changed), news); G_CALLBACK (remove_list_selection_changed), news);
renderer = gtk_cell_renderer_text_new (); renderer = gtk_cell_renderer_text_new ();
@ -2228,7 +2229,7 @@ make_add_widgets (News *news, GtkWidget *container)
gtk_container_add (GTK_CONTAINER (button_box), button); gtk_container_add (GTK_CONTAINER (button_box), button);
g_signal_connect (button, "clicked", g_signal_connect (button, "clicked",
(GtkSignalFunc) add_site_from_fields, news); G_CALLBACK (add_site_from_fields), news);
} }
/* allocate the add/remove location widgets */ /* allocate the add/remove location widgets */

View file

@ -42,6 +42,7 @@
#include <libnautilus-private/nautilus-global-preferences.h> #include <libnautilus-private/nautilus-global-preferences.h>
#include <libnautilus-private/nautilus-metadata.h> #include <libnautilus-private/nautilus-metadata.h>
#include <libnautilus/nautilus-clipboard.h> #include <libnautilus/nautilus-clipboard.h>
#include <libnautilus/nautilus-view.h>
#include <libnautilus/nautilus-view-standard-main.h> #include <libnautilus/nautilus-view-standard-main.h>
/* FIXME bugzilla.gnome.org 44436: /* FIXME bugzilla.gnome.org 44436:
@ -221,10 +222,8 @@ notes_load_metainfo (Notes *notes)
g_list_free (attributes); g_list_free (attributes);
g_signal_connect (notes->file, g_signal_connect (notes->file, "changed",
"changed", G_CALLBACK (load_note_text_from_metadata), notes);
G_CALLBACK (load_note_text_from_metadata),
notes);
} }
/* utility to notify event listeners if the notes data actually changed */ /* utility to notify event listeners if the notes data actually changed */
@ -380,11 +379,9 @@ make_notes_view (const char *iid, void *callback_data)
eel_background_set_color (background, NOTES_DEFAULT_BACKGROUND_COLOR); eel_background_set_color (background, NOTES_DEFAULT_BACKGROUND_COLOR);
g_signal_connect (notes->note_text_field, "focus_out_event", g_signal_connect (notes->note_text_field, "focus_out_event",
G_CALLBACK (on_text_field_focus_out_event), G_CALLBACK (on_text_field_focus_out_event), notes);
notes);
g_signal_connect (notes->text_buffer, "changed", g_signal_connect (notes->text_buffer, "changed",
G_CALLBACK (on_changed), G_CALLBACK (on_changed), notes);
notes);
gtk_widget_show_all (vbox); gtk_widget_show_all (vbox);
@ -399,7 +396,7 @@ make_notes_view (const char *iid, void *callback_data)
"image indicating that a note is present", 0); "image indicating that a note is present", 0);
/* handle events */ /* handle events */
g_signal_connect (notes->view, "load_location", g_signal_connect (notes->view, "load_location",
G_CALLBACK (notes_load_location), notes); G_CALLBACK (notes_load_location), notes);
/* handle selections */ /* handle selections */
#ifdef GNOME2_CONVERSION_COMPLETE #ifdef GNOME2_CONVERSION_COMPLETE

View file

@ -61,7 +61,7 @@ nautilus_sample_content_view_finalize (GObject *object)
g_free (view->details->location); g_free (view->details->location);
g_free (view->details); g_free (view->details);
GNOME_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (object)->finalize (object);
} }
static void static void
@ -199,16 +199,12 @@ nautilus_sample_content_view_instance_init (NautilusSampleContentView *view)
nautilus_view_construct (NAUTILUS_VIEW (view), view->details->label); nautilus_view_construct (NAUTILUS_VIEW (view), view->details->label);
g_signal_connect (view, g_signal_connect (view, "load_location",
"load_location", G_CALLBACK (sample_load_location_callback), NULL);
G_CALLBACK (sample_load_location_callback),
NULL);
/* Get notified when our bonobo control is activated so we can /* Get notified when our bonobo control is activated so we can
* merge menu & toolbar items into the shell's UI. * merge menu & toolbar items into the shell's UI.
*/ */
g_signal_connect (nautilus_view_get_bonobo_control (NAUTILUS_VIEW (view)), g_signal_connect_object (nautilus_view_get_bonobo_control (NAUTILUS_VIEW (view)), "activate",
"activate", G_CALLBACK (sample_merge_bonobo_items_callback), view, 0);
G_CALLBACK (sample_merge_bonobo_items_callback),
view);
} }

View file

@ -161,14 +161,14 @@ nautilus_text_view_init (NautilusTextView *text_view)
text_view->details->zoomable = bonobo_zoomable_new (); text_view->details->zoomable = bonobo_zoomable_new ();
text_view->details->zoom_index = 3; text_view->details->zoom_index = 3;
g_signal_connect (text_view->details->zoomable, "set_zoom_level", g_signal_connect_object (text_view->details->zoomable, "set_zoom_level",
G_CALLBACK (zoomable_set_zoom_level_callback), text_view); G_CALLBACK (zoomable_set_zoom_level_callback), text_view, 0);
g_signal_connect (text_view->details->zoomable, "zoom_in", g_signal_connect_object (text_view->details->zoomable, "zoom_in",
G_CALLBACK (zoomable_zoom_in_callback), text_view); G_CALLBACK (zoomable_zoom_in_callback), text_view, 0);
g_signal_connect (text_view->details->zoomable, "zoom_out", g_signal_connect_object (text_view->details->zoomable, "zoom_out",
G_CALLBACK (zoomable_zoom_out_callback), text_view); G_CALLBACK (zoomable_zoom_out_callback), text_view, 0);
g_signal_connect (text_view->details->zoomable, "zoom_to_fit", g_signal_connect_object (text_view->details->zoomable, "zoom_to_fit",
G_CALLBACK (zoomable_zoom_to_fit_callback), text_view); G_CALLBACK (zoomable_zoom_to_fit_callback), text_view, 0);
bonobo_zoomable_set_parameters_full (text_view->details->zoomable, bonobo_zoomable_set_parameters_full (text_view->details->zoomable,
1.0, .25, 4.0, TRUE, TRUE, FALSE, 1.0, .25, 4.0, TRUE, TRUE, FALSE,
@ -179,10 +179,8 @@ nautilus_text_view_init (NautilusTextView *text_view)
BONOBO_OBJECT (text_view->details->zoomable)); BONOBO_OBJECT (text_view->details->zoomable));
g_signal_connect (text_view, g_signal_connect_object (text_view, "load_location",
"load_location", G_CALLBACK (text_view_load_location_callback), text_view, 0);
G_CALLBACK (text_view_load_location_callback),
text_view);
/* allocate a vbox to contain the text widget */ /* allocate a vbox to contain the text widget */
text_view->details->container = gtk_vbox_new (FALSE, 0); text_view->details->container = gtk_vbox_new (FALSE, 0);
@ -225,11 +223,10 @@ nautilus_text_view_init (NautilusTextView *text_view)
gtk_container_add (GTK_CONTAINER (text_view->details->container), scrolled_window); gtk_container_add (GTK_CONTAINER (text_view->details->container), scrolled_window);
/* get notified when we are activated so we can merge in our menu items */ /* get notified when we are activated so we can merge in our menu items */
g_signal_connect (nautilus_view_get_bonobo_control (NAUTILUS_VIEW (text_view)), g_signal_connect_object (nautilus_view_get_bonobo_control (NAUTILUS_VIEW (text_view)),
"activate", "activate",
G_CALLBACK (merge_bonobo_menu_items), G_CALLBACK (merge_bonobo_menu_items), text_view, 0);
text_view);
/* finally, we can show everything */ /* finally, we can show everything */
gtk_widget_show_all (GTK_WIDGET (text_view->details->event_box)); gtk_widget_show_all (GTK_WIDGET (text_view->details->event_box));
} }
@ -795,8 +792,8 @@ merge_bonobo_menu_items (BonoboControl *control, gboolean state, gpointer user_d
nautilus_text_view_build_service_menu (text_view, control); nautilus_text_view_build_service_menu (text_view, control);
g_signal_connect (bonobo_control_get_ui_component (control), g_signal_connect_object (bonobo_control_get_ui_component (control), "ui_event",
"ui_event", G_CALLBACK (handle_ui_event), text_view); G_CALLBACK (handle_ui_event), text_view, 0);
nautilus_clipboard_set_up_editable_in_control (GTK_EDITABLE (text_view->details->text_display), nautilus_clipboard_set_up_editable_in_control (GTK_EDITABLE (text_view->details->text_display),
control, control,

View file

@ -78,7 +78,6 @@ struct NautilusTreeModelDetails {
GHashTable *file_to_node_map; GHashTable *file_to_node_map;
TreeNode *root_node; TreeNode *root_node;
guint root_node_changed_id;
gboolean root_node_parented; gboolean root_node_parented;
guint monitoring_update_idle_id; guint monitoring_update_idle_id;
@ -1305,9 +1304,8 @@ nautilus_tree_model_set_root_uri (NautilusTreeModel *model, const char *root_uri
node = create_node_for_file (model, file); node = create_node_for_file (model, file);
model->details->root_node = node; model->details->root_node = node;
model->details->root_node_changed_id = g_signal_connect g_signal_connect_object (file, "changed",
(file, "changed", G_CALLBACK (root_node_file_changed_callback), model, 0);
G_CALLBACK (root_node_file_changed_callback), model);
attrs = get_tree_monitor_attributes (); attrs = get_tree_monitor_attributes ();
nautilus_file_monitor_add (file, model, attrs); nautilus_file_monitor_add (file, model, attrs);
@ -1364,7 +1362,6 @@ nautilus_tree_model_finalize (GObject *object)
root = model->details->root_node; root = model->details->root_node;
if (root != NULL) { if (root != NULL) {
g_signal_handler_disconnect (root->file, model->details->root_node_changed_id);
nautilus_file_monitor_remove (root->file, model); nautilus_file_monitor_remove (root->file, model);
destroy_node_without_reporting (model, root); destroy_node_without_reporting (model, root);
} }

View file

@ -286,14 +286,13 @@ create_tree (NautilusTreeView *view)
gtk_container_add (GTK_CONTAINER (view->details->scrolled_window), gtk_container_add (GTK_CONTAINER (view->details->scrolled_window),
GTK_WIDGET (view->details->tree_widget)); GTK_WIDGET (view->details->tree_widget));
g_signal_connect_swapped (view->details->tree_widget, "row_expanded", g_signal_connect_object (view->details->tree_widget, "row_expanded",
G_CALLBACK (schedule_save_expansion_state_callback), view); G_CALLBACK (schedule_save_expansion_state_callback), view, G_CONNECT_SWAPPED);
g_signal_connect_swapped (view->details->tree_widget, "row_collapsed", g_signal_connect_object (view->details->tree_widget, "row_collapsed",
G_CALLBACK (schedule_save_expansion_state_callback), view); G_CALLBACK (schedule_save_expansion_state_callback), view, G_CONNECT_SWAPPED);
g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (view->details->tree_widget)), g_signal_connect_object (gtk_tree_view_get_selection (GTK_TREE_VIEW (view->details->tree_widget)), "changed",
"changed", G_CALLBACK (selection_changed_callback), view, 0);
G_CALLBACK (selection_changed_callback), view);
} }
static void static void

View file

@ -163,20 +163,14 @@ present_authentication_dialog_nonblocking (CallbackInfo *info)
gtk_window_set_modal (GTK_WINDOW (dialog), FALSE); gtk_window_set_modal (GTK_WINDOW (dialog), FALSE);
g_signal_connect (dialog, g_signal_connect (dialog, "response",
"response", G_CALLBACK (authentication_dialog_button_clicked), info);
G_CALLBACK (authentication_dialog_button_clicked),
info);
g_signal_connect (dialog, g_signal_connect (dialog, "close",
"close", G_CALLBACK (authentication_dialog_closed), info);
G_CALLBACK (authentication_dialog_closed),
info);
g_signal_connect (dialog, g_signal_connect (dialog, "destroy",
"destroy", G_CALLBACK (authentication_dialog_destroyed), info);
G_CALLBACK (authentication_dialog_destroyed),
info);
gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_widget_show_all (GTK_WIDGET (dialog));

View file

@ -621,11 +621,8 @@ nautilus_bonobo_activation_register_for_display (const char *iid,
char *real_iid; char *real_iid;
Bonobo_RegistrationResult result; Bonobo_RegistrationResult result;
real_iid = bonobo_activation_make_registration_id ( real_iid = bonobo_activation_make_registration_id (iid, gdk_get_display ());
iid, gdk_get_display ());
result = bonobo_activation_active_server_register (real_iid, ref); result = bonobo_activation_active_server_register (real_iid, ref);
g_free (real_iid); g_free (real_iid);
return result; return result;

View file

@ -467,10 +467,9 @@ nautilus_bookmark_disconnect_file (NautilusBookmark *bookmark)
g_assert (NAUTILUS_IS_BOOKMARK (bookmark)); g_assert (NAUTILUS_IS_BOOKMARK (bookmark));
if (bookmark->details->file != NULL) { if (bookmark->details->file != NULL) {
g_signal_handlers_disconnect_by_func ( g_signal_handlers_disconnect_by_func (bookmark->details->file,
bookmark->details->file, G_CALLBACK (bookmark_file_changed_callback),
G_CALLBACK (bookmark_file_changed_callback), bookmark);
bookmark);
nautilus_file_unref (bookmark->details->file); nautilus_file_unref (bookmark->details->file);
bookmark->details->file = NULL; bookmark->details->file = NULL;
} }
@ -494,10 +493,8 @@ nautilus_bookmark_connect_file (NautilusBookmark *bookmark)
bookmark->details->file = nautilus_file_get (bookmark->details->uri); bookmark->details->file = nautilus_file_get (bookmark->details->uri);
g_assert (!nautilus_file_is_gone (bookmark->details->file)); g_assert (!nautilus_file_is_gone (bookmark->details->file));
g_signal_connect (bookmark->details->file, g_signal_connect_object (bookmark->details->file, "changed",
"changed", G_CALLBACK (bookmark_file_changed_callback), bookmark, 0);
G_CALLBACK (bookmark_file_changed_callback),
bookmark);
} }
/* Set icon based on available information; don't force network i/o /* Set icon based on available information; don't force network i/o

View file

@ -69,11 +69,11 @@ desktop_background_realized (NautilusIconContainer *icon_container, void *discon
{ {
EelBackground *background; EelBackground *background;
if ((gboolean) GPOINTER_TO_INT (disconnect_signal)) { if (GPOINTER_TO_INT (disconnect_signal)) {
g_signal_handlers_disconnect_by_func ( g_signal_handlers_disconnect_by_func
icon_container, (icon_container,
G_CALLBACK (desktop_background_realized), G_CALLBACK (desktop_background_realized),
disconnect_signal); disconnect_signal);
} }
background = eel_get_widget_background (GTK_WIDGET (icon_container)); background = eel_get_widget_background (GTK_WIDGET (icon_container));
@ -110,7 +110,8 @@ nautilus_connect_desktop_background_to_file_metadata (NautilusIconContainer *ico
if (GTK_WIDGET_REALIZED (icon_container)) { if (GTK_WIDGET_REALIZED (icon_container)) {
desktop_background_realized (icon_container, GINT_TO_POINTER (FALSE)); desktop_background_realized (icon_container, GINT_TO_POINTER (FALSE));
} else { } else {
g_signal_connect (icon_container, "realize", G_CALLBACK (desktop_background_realized), GINT_TO_POINTER (TRUE)); g_signal_connect (icon_container, "realize",
G_CALLBACK (desktop_background_realized), GINT_TO_POINTER (TRUE));
} }
nautilus_file_background_receive_gconf_changes (background); nautilus_file_background_receive_gconf_changes (background);
@ -328,7 +329,7 @@ nautilus_file_background_read_desktop_settings (char **color,
g_free (default_color); g_free (default_color);
g_free (default_image_uri); g_free (default_image_uri);
g_object_unref (G_OBJECT (prefs)); g_object_unref (prefs);
} }
static void static void
@ -412,7 +413,7 @@ nautilus_file_background_write_desktop_settings (char *color, char *image, EelBa
gnome_config_sync (); gnome_config_sync ();
bg_preferences_save (prefs); bg_preferences_save (prefs);
g_object_unref (G_OBJECT (prefs)); g_object_unref (prefs);
} }
static void static void
@ -461,10 +462,8 @@ nautilus_file_background_receive_gconf_changes (EelBackground *background)
g_object_set_data (G_OBJECT (background), "desktop_gconf_notification", GUINT_TO_POINTER (notification_id)); g_object_set_data (G_OBJECT (background), "desktop_gconf_notification", GUINT_TO_POINTER (notification_id));
g_signal_connect (background, g_signal_connect (background, "destroy",
"destroy", G_CALLBACK (desktop_background_destroyed_callback), NULL);
G_CALLBACK (desktop_background_destroyed_callback),
NULL);
} }
/* Create a persistent pixmap. We create a separate display /* Create a persistent pixmap. We create a separate display
@ -559,7 +558,7 @@ image_loading_done_callback (EelBackground *background, gboolean successful_load
GdkPixmap *pixmap; GdkPixmap *pixmap;
GdkWindow *background_window; GdkWindow *background_window;
if ((gboolean) GPOINTER_TO_INT (disconnect_signal)) { if (GPOINTER_TO_INT (disconnect_signal)) {
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(background, (background,
G_CALLBACK (image_loading_done_callback), G_CALLBACK (image_loading_done_callback),
@ -590,10 +589,9 @@ nautilus_file_update_desktop_pixmaps (EelBackground *background)
if (eel_background_is_loaded (background)) { if (eel_background_is_loaded (background)) {
image_loading_done_callback (background, TRUE, GINT_TO_POINTER (FALSE)); image_loading_done_callback (background, TRUE, GINT_TO_POINTER (FALSE));
} else { } else {
g_signal_connect (background, g_signal_connect (background, "image_loading_done",
"image_loading_done", G_CALLBACK (image_loading_done_callback),
G_CALLBACK (image_loading_done_callback), GINT_TO_POINTER (TRUE));
GINT_TO_POINTER (TRUE));
} }
} }
@ -822,12 +820,11 @@ background_reset_callback (EelBackground *background,
/* handle the background destroyed signal */ /* handle the background destroyed signal */
static void static void
background_destroyed_callback (EelBackground *background, background_destroyed_callback (EelBackground *background,
NautilusFile *file) NautilusFile *file)
{ {
g_signal_handlers_disconnect_by_func ( g_signal_handlers_disconnect_by_func
file, (file,
G_CALLBACK (saved_settings_changed_callback), G_CALLBACK (saved_settings_changed_callback), background);
background);
nautilus_file_monitor_remove (file, background); nautilus_file_monitor_remove (file, background);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_THEME, eel_preferences_remove_callback (NAUTILUS_PREFERENCES_THEME,
nautilus_file_background_theme_changed, nautilus_file_background_theme_changed,
@ -857,20 +854,16 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
g_assert (NAUTILUS_IS_FILE (old_file)); g_assert (NAUTILUS_IS_FILE (old_file));
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(background, (background,
G_CALLBACK (background_changed_callback), G_CALLBACK (background_changed_callback), old_file);
old_file);
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(background, (background,
G_CALLBACK (background_destroyed_callback), G_CALLBACK (background_destroyed_callback), old_file);
old_file);
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(background, (background,
G_CALLBACK (background_reset_callback), G_CALLBACK (background_reset_callback), old_file);
old_file);
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(old_file, (old_file,
G_CALLBACK (saved_settings_changed_callback), G_CALLBACK (saved_settings_changed_callback), background);
background);
nautilus_file_monitor_remove (old_file, background); nautilus_file_monitor_remove (old_file, background);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_THEME, eel_preferences_remove_callback (NAUTILUS_PREFERENCES_THEME,
nautilus_file_background_theme_changed, nautilus_file_background_theme_changed,
@ -880,29 +873,19 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
/* Attach the new directory. */ /* Attach the new directory. */
nautilus_file_ref (file); nautilus_file_ref (file);
g_object_set_data_full (G_OBJECT (background), g_object_set_data_full (G_OBJECT (background), "eel_background_file",
"eel_background_file", file, (GDestroyNotify) nautilus_file_unref);
file,
(GtkDestroyNotify) nautilus_file_unref);
/* Connect new signal handlers. */ /* Connect new signal handlers. */
if (file != NULL) { if (file != NULL) {
g_signal_connect (background, g_signal_connect_object (background, "settings_changed",
"settings_changed", G_CALLBACK (background_changed_callback), file, 0);
G_CALLBACK (background_changed_callback), g_signal_connect_object (background, "destroy",
file); G_CALLBACK (background_destroyed_callback), file, 0);
g_signal_connect (background, g_signal_connect_object (background, "reset",
"destroy", G_CALLBACK (background_reset_callback), file, 0);
G_CALLBACK (background_destroyed_callback), g_signal_connect_object (file, "changed",
file); G_CALLBACK (saved_settings_changed_callback), background, 0);
g_signal_connect (background,
"reset",
G_CALLBACK (background_reset_callback),
file);
g_signal_connect (file,
"changed",
G_CALLBACK (saved_settings_changed_callback),
background);
/* arrange to receive file metadata */ /* arrange to receive file metadata */
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA); attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);

View file

@ -50,9 +50,10 @@ finalize (GObject *object)
NautilusMetafileMonitor *monitor; NautilusMetafileMonitor *monitor;
monitor = NAUTILUS_METAFILE_MONITOR (object); monitor = NAUTILUS_METAFILE_MONITOR (object);
g_free (monitor->details); g_free (monitor->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
NautilusMetafileMonitor * NautilusMetafileMonitor *

View file

@ -821,26 +821,35 @@ call_files_added_free_list (gpointer key, gpointer value, gpointer user_data)
g_list_free (value); g_list_free (value);
} }
static void
call_files_changed_common (NautilusDirectory *directory, GList *file_list)
{
GList *node;
for (node = file_list; node != NULL; node = node->next) {
nautilus_directory_add_file_to_work_queue (directory, node->data);
}
nautilus_directory_async_state_changed (directory);
nautilus_directory_emit_change_signals (directory, file_list);
}
static void static void
call_files_changed_free_list (gpointer key, gpointer value, gpointer user_data) call_files_changed_free_list (gpointer key, gpointer value, gpointer user_data)
{ {
g_assert (NAUTILUS_IS_DIRECTORY (key));
g_assert (value != NULL); g_assert (value != NULL);
g_assert (user_data == NULL); g_assert (user_data == NULL);
nautilus_directory_emit_change_signals (key, value); call_files_changed_common (NAUTILUS_DIRECTORY (key), value);
g_list_free (value); g_list_free (value);
} }
static void static void
call_files_changed_unref_free_list (gpointer key, gpointer value, gpointer user_data) call_files_changed_unref_free_list (gpointer key, gpointer value, gpointer user_data)
{ {
g_assert (NAUTILUS_IS_DIRECTORY (key));
g_assert (value != NULL); g_assert (value != NULL);
g_assert (user_data == NULL); g_assert (user_data == NULL);
nautilus_directory_async_state_changed (key); call_files_changed_common (NAUTILUS_DIRECTORY (key), value);
nautilus_directory_emit_change_signals (key, value);
nautilus_file_list_free (value); nautilus_file_list_free (value);
} }
@ -967,10 +976,13 @@ nautilus_directory_notify_files_changed (GList *uris)
/* Find the file. */ /* Find the file. */
file = nautilus_file_get_existing (uri); file = nautilus_file_get_existing (uri);
if (file != NULL) { if (file != NULL) {
/* Tell it to re-get info and emit a changed /* Tell it to re-get info now, and later emit
* signal. * a changed signal.
*/ */
file->details->file_info_is_up_to_date = FALSE; file->details->file_info_is_up_to_date = FALSE;
file->details->top_left_text_is_up_to_date = FALSE;
file->details->link_info_is_up_to_date = FALSE;
hash_table_list_prepend (changed_lists, hash_table_list_prepend (changed_lists,
file->details->directory, file->details->directory,
file); file);

View file

@ -317,13 +317,7 @@ wm_protocols_filter (GdkXEvent *xev, GdkEvent *event, gpointer data)
static void static void
nautilus_drag_window_destroy (GtkObject *object, gpointer data) nautilus_drag_window_destroy (GtkObject *object, gpointer data)
{ {
NautilusDragWindowDetails *details;
details = get_details (GTK_WINDOW (object));
remove_focus_timeout (GTK_WINDOW (object)); remove_focus_timeout (GTK_WINDOW (object));
/* The `details' will be freed automatically */
} }
static void static void
@ -388,7 +382,7 @@ nautilus_drag_window_register (GtkWindow *window)
details, g_free); details, g_free);
g_signal_connect (window, "realize", g_signal_connect (window, "realize",
G_CALLBACK (nautilus_drag_window_realize), NULL); G_CALLBACK (nautilus_drag_window_realize), NULL);
g_signal_connect (window, "destroy", g_signal_connect (window, "destroy",
G_CALLBACK (nautilus_drag_window_destroy), NULL); G_CALLBACK (nautilus_drag_window_destroy), NULL);
} }

View file

@ -433,19 +433,19 @@ get_pending_icon_to_reveal (NautilusIconContainer *container)
static void static void
set_pending_icon_to_reveal (NautilusIconContainer *container, NautilusIcon *icon) set_pending_icon_to_reveal (NautilusIconContainer *container, NautilusIcon *icon)
{ {
NautilusIcon *cur_pending; NautilusIcon *old_icon;
cur_pending = container->details->pending_icon_to_reveal; old_icon = container->details->pending_icon_to_reveal;
if (icon == cur_pending) { if (icon == old_icon) {
return; return;
} }
if (cur_pending != NULL) { if (old_icon != NULL) {
g_signal_handlers_disconnect_by_func ( g_signal_handlers_disconnect_by_func
cur_pending->item, (old_icon->item,
G_CALLBACK (pending_icon_to_reveal_destroy_callback), G_CALLBACK (pending_icon_to_reveal_destroy_callback),
container); container);
} }
if (icon != NULL) { if (icon != NULL) {
@ -3338,7 +3338,7 @@ nautilus_icon_container_instance_init (NautilusIconContainer *container)
background = eel_get_widget_background (GTK_WIDGET (container)); background = eel_get_widget_background (GTK_WIDGET (container));
g_signal_connect_object (background, "appearance_changed", g_signal_connect_object (background, "appearance_changed",
G_CALLBACK (update_label_color), G_OBJECT (container), 0); G_CALLBACK (update_label_color), container, 0);
g_signal_connect (container, "focus-out-event", g_signal_connect (container, "focus-out-event",
G_CALLBACK (handle_focus_out_event), NULL); G_CALLBACK (handle_focus_out_event), NULL);
@ -3827,8 +3827,8 @@ finish_adding_icon (NautilusIconContainer *container,
nautilus_icon_container_update_icon (container, icon); nautilus_icon_container_update_icon (container, icon);
gnome_canvas_item_show (GNOME_CANVAS_ITEM (icon->item)); gnome_canvas_item_show (GNOME_CANVAS_ITEM (icon->item));
g_signal_connect (icon->item, "event", g_signal_connect_object (icon->item, "event",
G_CALLBACK (item_event_callback), container); G_CALLBACK (item_event_callback), container, 0);
} }
static void static void
@ -4671,24 +4671,24 @@ get_pending_icon_to_rename (NautilusIconContainer *container)
static void static void
set_pending_icon_to_rename (NautilusIconContainer *container, NautilusIcon *icon) set_pending_icon_to_rename (NautilusIconContainer *container, NautilusIcon *icon)
{ {
NautilusIcon *cur_pending; NautilusIcon *old_icon;
cur_pending = container->details->pending_icon_to_rename; old_icon = container->details->pending_icon_to_rename;
if (icon == cur_pending) { if (icon == old_icon) {
return; return;
} }
if (cur_pending != NULL) { if (old_icon != NULL) {
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(cur_pending->item, (old_icon->item,
G_CALLBACK (pending_icon_to_rename_destroy_callback), G_CALLBACK (pending_icon_to_rename_destroy_callback),
container); container);
} }
if (icon != NULL) { if (icon != NULL) {
g_signal_connect (icon->item, "destroy", g_signal_connect (icon->item, "destroy",
G_CALLBACK (pending_icon_to_rename_destroy_callback), container); G_CALLBACK (pending_icon_to_rename_destroy_callback), container);
} }
container->details->pending_icon_to_rename = icon; container->details->pending_icon_to_rename = icon;

View file

@ -29,8 +29,8 @@
#include "nautilus-directory-private.h" #include "nautilus-directory-private.h"
#include "nautilus-file.h" #include "nautilus-file.h"
#include <eel/eel-glib-extensions.h> #include <eel/eel-glib-extensions.h>
#include <eel/eel-gtk-macros.h>
#include <gtk/gtksignal.h> #include <gtk/gtksignal.h>
#include <libgnome/gnome-macros.h>
struct NautilusMergedDirectoryDetails { struct NautilusMergedDirectoryDetails {
GList *directories; GList *directories;
@ -40,7 +40,6 @@ struct NautilusMergedDirectoryDetails {
}; };
typedef struct { typedef struct {
/* Basic configuration. */
NautilusMergedDirectory *merged; NautilusMergedDirectory *merged;
NautilusDirectoryCallback callback; NautilusDirectoryCallback callback;
gpointer callback_data; gpointer callback_data;
@ -68,53 +67,8 @@ enum {
static guint signals[LAST_SIGNAL]; static guint signals[LAST_SIGNAL];
static void nautilus_merged_directory_init (gpointer object, GNOME_CLASS_BOILERPLATE (NautilusMergedDirectory, nautilus_merged_directory,
gpointer klass); NautilusDirectory, NAUTILUS_TYPE_DIRECTORY)
static void nautilus_merged_directory_class_init (gpointer klass);
static void remove_all_real_directories (NautilusMergedDirectory *merged);
static guint merged_callback_hash (gconstpointer merged_callback);
static gboolean merged_callback_equal (gconstpointer merged_callback,
gconstpointer merged_callback_2);
EEL_CLASS_BOILERPLATE (NautilusMergedDirectory,
nautilus_merged_directory,
NAUTILUS_TYPE_DIRECTORY)
static void
nautilus_merged_directory_init (gpointer object, gpointer klass)
{
NautilusMergedDirectory *merged;
merged = NAUTILUS_MERGED_DIRECTORY (object);
merged->details = g_new0 (NautilusMergedDirectoryDetails, 1);
merged->details->callbacks = g_hash_table_new
(merged_callback_hash, merged_callback_equal);
merged->details->monitors = g_hash_table_new (NULL, NULL);
}
static void
merged_destroy (GtkObject *object)
{
NautilusMergedDirectory *merged;
merged = NAUTILUS_MERGED_DIRECTORY (object);
remove_all_real_directories (merged);
if (g_hash_table_size (merged->details->callbacks) != 0) {
g_warning ("call_when_ready still pending when merged virtual directory is destroyed");
}
if (g_hash_table_size (merged->details->monitors) != 0) {
g_warning ("file monitor still active when merged virtual directory is destroyed");
}
g_hash_table_destroy (merged->details->callbacks);
g_hash_table_destroy (merged->details->monitors);
g_free (merged->details);
EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object));
}
static guint static guint
merged_callback_hash (gconstpointer merged_callback_as_pointer) merged_callback_hash (gconstpointer merged_callback_as_pointer)
@ -176,8 +130,7 @@ merged_callback_remove_directory (MergedCallback *merged_callback,
NautilusDirectory *directory) NautilusDirectory *directory)
{ {
merged_callback->non_ready_directories = g_list_remove merged_callback->non_ready_directories = g_list_remove
(merged_callback->non_ready_directories, (merged_callback->non_ready_directories, directory);
directory);
merged_callback_check_done (merged_callback); merged_callback_check_done (merged_callback);
} }
@ -300,7 +253,7 @@ build_merged_callback_list (NautilusDirectory *directory,
/* Create a monitor on each of the directories in the list. */ /* Create a monitor on each of the directories in the list. */
static void static void
merged_file_monitor_add (NautilusDirectory *directory, merged_monitor_add (NautilusDirectory *directory,
gconstpointer client, gconstpointer client,
gboolean monitor_hidden_files, gboolean monitor_hidden_files,
gboolean monitor_backup_files, gboolean monitor_backup_files,
@ -347,14 +300,27 @@ merged_file_monitor_add (NautilusDirectory *directory,
nautilus_file_list_free (merged_callback_list); nautilus_file_list_free (merged_callback_list);
} }
static void
merged_monitor_destroy (NautilusMergedDirectory *merged, MergedMonitor *monitor)
{
GList *node;
/* Call through to the real directory remove calls. */
for (node = merged->details->directories; node != NULL; node = node->next) {
nautilus_directory_file_monitor_remove (node->data, monitor);
}
eel_g_list_free_deep (monitor->monitor_attributes);
g_free (monitor);
}
/* Remove the monitor from each of the directories in the list. */ /* Remove the monitor from each of the directories in the list. */
static void static void
merged_file_monitor_remove (NautilusDirectory *directory, merged_monitor_remove (NautilusDirectory *directory,
gconstpointer client) gconstpointer client)
{ {
NautilusMergedDirectory *merged; NautilusMergedDirectory *merged;
MergedMonitor *monitor; MergedMonitor *monitor;
GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory); merged = NAUTILUS_MERGED_DIRECTORY (directory);
@ -365,14 +331,7 @@ merged_file_monitor_remove (NautilusDirectory *directory,
} }
g_hash_table_remove (merged->details->monitors, client); g_hash_table_remove (merged->details->monitors, client);
/* Call through to the real directory remove calls. */ merged_monitor_destroy (merged, monitor);
for (node = merged->details->directories; node != NULL; node = node->next) {
nautilus_directory_file_monitor_remove
(node->data, monitor);
}
eel_g_list_free_deep (monitor->monitor_attributes);
g_free (monitor);
} }
static void static void
@ -500,10 +459,8 @@ merged_add_real_directory (NautilusMergedDirectory *merged,
merged->details->directories_not_done_loading = g_list_prepend merged->details->directories_not_done_loading = g_list_prepend
(merged->details->directories_not_done_loading, real_directory); (merged->details->directories_not_done_loading, real_directory);
g_signal_connect (real_directory, g_signal_connect_object (real_directory, "done_loading",
"done_loading", G_CALLBACK (done_loading_callback), merged, 0);
G_CALLBACK (done_loading_callback),
merged);
/* FIXME bugzilla.gnome.org 45084: The done_loading part won't work for the case where /* FIXME bugzilla.gnome.org 45084: The done_loading part won't work for the case where
* we have no directories in our list. * we have no directories in our list.
@ -515,14 +472,10 @@ merged_add_real_directory (NautilusMergedDirectory *merged,
real_directory); real_directory);
/* FIXME bugzilla.gnome.org 42541: Do we need to add the directory to callbacks too? */ /* FIXME bugzilla.gnome.org 42541: Do we need to add the directory to callbacks too? */
g_signal_connect (real_directory, g_signal_connect_object (real_directory, "files_added",
"files_added", G_CALLBACK (forward_files_added_cover), merged, 0);
G_CALLBACK (forward_files_added_cover), g_signal_connect_object (real_directory, "files_changed",
merged); G_CALLBACK (forward_files_changed_cover), merged, 0);
g_signal_connect (real_directory,
"files_changed",
G_CALLBACK (forward_files_changed_cover),
merged);
} }
void void
@ -538,9 +491,7 @@ nautilus_merged_directory_add_real_directory (NautilusMergedDirectory *merged,
return; return;
} }
g_signal_emit (merged, g_signal_emit (merged, signals[ADD_REAL_DIRECTORY], 0, real_directory);
signals[ADD_REAL_DIRECTORY], 0,
real_directory);
} }
GList * GList *
@ -576,19 +527,17 @@ merged_remove_real_directory (NautilusMergedDirectory *merged,
g_return_if_fail (g_list_find (merged->details->directories, real_directory) != NULL); g_return_if_fail (g_list_find (merged->details->directories, real_directory) != NULL);
/* Remove this directory from callbacks and monitors. */ /* Remove this directory from callbacks and monitors. */
eel_g_hash_table_safe_for_each eel_g_hash_table_safe_for_each (merged->details->callbacks,
(merged->details->callbacks, merged_callback_remove_directory_cover,
merged_callback_remove_directory_cover, real_directory);
real_directory); g_hash_table_foreach (merged->details->monitors,
g_hash_table_foreach monitor_remove_directory,
(merged->details->monitors, real_directory);
monitor_remove_directory,
real_directory);
/* Disconnect all the signals. */ /* Disconnect all the signals. */
g_signal_handlers_disconnect_matched ( g_signal_handlers_disconnect_matched
real_directory, G_SIGNAL_MATCH_DATA, (real_directory, G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, merged); 0, 0, NULL, NULL, merged);
/* Remove from our list of directories. */ /* Remove from our list of directories. */
merged->details->directories = g_list_remove merged->details->directories = g_list_remove
@ -609,48 +558,79 @@ nautilus_merged_directory_remove_real_directory (NautilusMergedDirectory *merged
return; return;
} }
g_signal_emit (merged, g_signal_emit (merged, signals[REMOVE_REAL_DIRECTORY], 0, real_directory);
signals[REMOVE_REAL_DIRECTORY], 0,
real_directory);
} }
static void static void
remove_all_real_directories (NautilusMergedDirectory *merged) merged_monitor_destroy_cover (gpointer key,
gpointer value,
gpointer callback_data)
{ {
while (merged->details->directories != NULL) { merged_monitor_destroy (callback_data, value);
nautilus_merged_directory_remove_real_directory
(merged, merged->details->directories->data);
}
} }
static void static void
nautilus_merged_directory_class_init (gpointer klass) merged_callback_destroy_cover (gpointer key,
gpointer value,
gpointer callback_data)
{
merged_callback_destroy (value);
}
static void
merged_finalize (GObject *object)
{
NautilusMergedDirectory *merged;
merged = NAUTILUS_MERGED_DIRECTORY (object);
g_hash_table_foreach (merged->details->monitors,
merged_monitor_destroy_cover, merged);
g_hash_table_foreach (merged->details->callbacks,
merged_callback_destroy_cover, NULL);
g_hash_table_destroy (merged->details->callbacks);
g_hash_table_destroy (merged->details->monitors);
nautilus_directory_list_free (merged->details->directories);
g_list_free (merged->details->directories_not_done_loading);
g_free (merged->details);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
nautilus_merged_directory_instance_init (NautilusMergedDirectory *merged)
{
merged->details = g_new0 (NautilusMergedDirectoryDetails, 1);
merged->details->callbacks = g_hash_table_new
(merged_callback_hash, merged_callback_equal);
merged->details->monitors = g_hash_table_new (NULL, NULL);
}
static void
nautilus_merged_directory_class_init (NautilusMergedDirectoryClass *class)
{ {
GtkObjectClass *object_class;
NautilusDirectoryClass *directory_class; NautilusDirectoryClass *directory_class;
NautilusMergedDirectoryClass *merged_directory_class;
object_class = GTK_OBJECT_CLASS (klass); directory_class = NAUTILUS_DIRECTORY_CLASS (class);
directory_class = NAUTILUS_DIRECTORY_CLASS (klass);
merged_directory_class = NAUTILUS_MERGED_DIRECTORY_CLASS (klass);
object_class->destroy = merged_destroy; G_OBJECT_CLASS (class)->finalize = merged_finalize;
directory_class->contains_file = merged_contains_file; directory_class->contains_file = merged_contains_file;
directory_class->call_when_ready = merged_call_when_ready; directory_class->call_when_ready = merged_call_when_ready;
directory_class->cancel_callback = merged_cancel_callback; directory_class->cancel_callback = merged_cancel_callback;
directory_class->file_monitor_add = merged_file_monitor_add; directory_class->file_monitor_add = merged_monitor_add;
directory_class->file_monitor_remove = merged_file_monitor_remove; directory_class->file_monitor_remove = merged_monitor_remove;
directory_class->force_reload = merged_force_reload; directory_class->force_reload = merged_force_reload;
directory_class->are_all_files_seen = merged_are_all_files_seen; directory_class->are_all_files_seen = merged_are_all_files_seen;
directory_class->is_not_empty = merged_is_not_empty; directory_class->is_not_empty = merged_is_not_empty;
merged_directory_class->add_real_directory = merged_add_real_directory; class->add_real_directory = merged_add_real_directory;
merged_directory_class->remove_real_directory = merged_remove_real_directory; class->remove_real_directory = merged_remove_real_directory;
signals[ADD_REAL_DIRECTORY] signals[ADD_REAL_DIRECTORY]
= g_signal_new ("add_real_directory", = g_signal_new ("add_real_directory",
G_TYPE_FROM_CLASS (object_class), G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusMergedDirectoryClass, G_STRUCT_OFFSET (NautilusMergedDirectoryClass,
add_real_directory), add_real_directory),
@ -659,7 +639,7 @@ nautilus_merged_directory_class_init (gpointer klass)
G_TYPE_NONE, 1, G_TYPE_POINTER); G_TYPE_NONE, 1, G_TYPE_POINTER);
signals[REMOVE_REAL_DIRECTORY] signals[REMOVE_REAL_DIRECTORY]
= g_signal_new ("remove_real_directory", = g_signal_new ("remove_real_directory",
G_TYPE_FROM_CLASS (object_class), G_TYPE_FROM_CLASS (class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (NautilusMergedDirectoryClass, G_STRUCT_OFFSET (NautilusMergedDirectoryClass,
remove_real_directory), remove_real_directory),

View file

@ -183,7 +183,7 @@ finalize (GObject *object)
g_free (metafile->details); g_free (metafile->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static GnomeVFSURI * static GnomeVFSURI *

View file

@ -1213,15 +1213,12 @@ create_and_set_up_tree_view (NautilusProgramChooser *program_chooser)
gtk_tree_view_append_column (GTK_TREE_VIEW (program_chooser->details->tree_view), column); gtk_tree_view_append_column (GTK_TREE_VIEW (program_chooser->details->tree_view), column);
/* Update selected item info whenever selection changes. */ /* Update selected item info whenever selection changes. */
g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (program_chooser->details->tree_view)), g_signal_connect_object (gtk_tree_view_get_selection (GTK_TREE_VIEW (program_chooser->details->tree_view)),
"changed", "changed",
G_CALLBACK (program_list_selection_changed_callback), G_CALLBACK (program_list_selection_changed_callback), program_chooser, 0);
program_chooser);
g_signal_connect (program_chooser->details->tree_view, g_signal_connect_object (program_chooser->details->tree_view, "row_activated",
"row_activated", G_CALLBACK (tree_view_row_activated_callback), program_chooser, 0);
G_CALLBACK (tree_view_row_activated_callback),
program_chooser);
} }
static gboolean static gboolean
@ -1252,13 +1249,13 @@ nautilus_program_chooser_finalize (GObject *object)
/* Free the ProgramFilePairs */ /* Free the ProgramFilePairs */
gtk_tree_model_foreach (GTK_TREE_MODEL (program_chooser->details->list_store), gtk_tree_model_foreach (GTK_TREE_MODEL (program_chooser->details->list_store),
tree_model_destroy_program_file_pair, NULL); tree_model_destroy_program_file_pair, NULL);
g_object_unref (G_OBJECT (program_chooser->details->list_store)); g_object_unref (program_chooser->details->list_store);
nautilus_file_unref (program_chooser->details->file); nautilus_file_unref (program_chooser->details->file);
g_free (program_chooser->details); g_free (program_chooser->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static void static void
@ -1361,10 +1358,8 @@ nautilus_program_chooser_instance_init (NautilusProgramChooser *program_chooser)
change_button = gtk_button_new_with_mnemonic (_("_Modify...")); change_button = gtk_button_new_with_mnemonic (_("_Modify..."));
g_signal_connect (change_button, g_signal_connect_object (change_button, "clicked",
"clicked", G_CALLBACK (run_program_configurator_callback), program_chooser, 0);
G_CALLBACK (run_program_configurator_callback),
program_chooser);
gtk_widget_show (change_button); gtk_widget_show (change_button);
gtk_box_pack_end (GTK_BOX (change_button_holder), change_button, TRUE, FALSE, 0); gtk_box_pack_end (GTK_BOX (change_button_holder), change_button, TRUE, FALSE, 0);
@ -1384,10 +1379,8 @@ nautilus_program_chooser_instance_init (NautilusProgramChooser *program_chooser)
gtk_box_pack_end (GTK_BOX (capplet_hbox), capplet_button_vbox, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (capplet_hbox), capplet_button_vbox, FALSE, FALSE, 0);
capplet_button = gtk_button_new_with_mnemonic (_("_Go There")); capplet_button = gtk_button_new_with_mnemonic (_("_Go There"));
g_signal_connect (capplet_button, g_signal_connect_object (capplet_button, "clicked",
"clicked", G_CALLBACK (launch_mime_capplet_and_close_dialog), program_chooser, 0);
G_CALLBACK (launch_mime_capplet_and_close_dialog),
program_chooser);
gtk_widget_show (capplet_button); gtk_widget_show (capplet_button);
gtk_box_pack_start (GTK_BOX (capplet_button_vbox), capplet_button, TRUE, FALSE, 0); gtk_box_pack_start (GTK_BOX (capplet_button_vbox), capplet_button, TRUE, FALSE, 0);

View file

@ -30,11 +30,11 @@
#include "nautilus-trash-monitor.h" #include "nautilus-trash-monitor.h"
#include "nautilus-volume-monitor.h" #include "nautilus-volume-monitor.h"
#include <eel/eel-glib-extensions.h> #include <eel/eel-glib-extensions.h>
#include <eel/eel-gtk-macros.h>
#include <eel/eel-stock-dialogs.h> #include <eel/eel-stock-dialogs.h>
#include <gtk/gtkmain.h> #include <gtk/gtkmain.h>
#include <gtk/gtksignal.h> #include <gtk/gtksignal.h>
#include <libgnome/gnome-i18n.h> #include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-macros.h>
#include <libgnomevfs/gnome-vfs-utils.h> #include <libgnomevfs/gnome-vfs-utils.h>
struct NautilusTrashDirectoryDetails { struct NautilusTrashDirectoryDetails {
@ -49,15 +49,11 @@ typedef struct {
NautilusDirectory *real_directory; NautilusDirectory *real_directory;
} TrashVolume; } TrashVolume;
static void nautilus_trash_directory_init (gpointer object, static void add_volume (NautilusTrashDirectory *trash,
gpointer klass); NautilusVolume *volume);
static void nautilus_trash_directory_class_init (gpointer klass);
static void add_volume (NautilusTrashDirectory *trash,
NautilusVolume *volume);
EEL_CLASS_BOILERPLATE (NautilusTrashDirectory, GNOME_CLASS_BOILERPLATE (NautilusTrashDirectory, nautilus_trash_directory,
nautilus_trash_directory, NautilusMergedDirectory, NAUTILUS_TYPE_MERGED_DIRECTORY)
NAUTILUS_TYPE_MERGED_DIRECTORY)
#define TRASH_SEARCH_TIMED_WAIT_DELAY 20000 #define TRASH_SEARCH_TIMED_WAIT_DELAY 20000
@ -68,11 +64,11 @@ find_directory_start (void)
{ {
if (pending_find_directory_count == 0) { if (pending_find_directory_count == 0) {
eel_timed_wait_start_with_duration (TRASH_SEARCH_TIMED_WAIT_DELAY, eel_timed_wait_start_with_duration (TRASH_SEARCH_TIMED_WAIT_DELAY,
NULL, NULL,
add_volume, add_volume,
_("Searching Disks"), _("Searching Disks"),
_("Nautilus is searching your disks for trash folders."), _("Nautilus is searching your disks for trash folders."),
NULL); NULL);
} }
++pending_find_directory_count; ++pending_find_directory_count;
@ -237,7 +233,7 @@ check_trash_created (NautilusTrashDirectory *trash,
} }
static void static void
remove_trash_volume (TrashVolume *trash_volume) remove_trash_volume (TrashVolume *trash_volume, gboolean finalizing)
{ {
g_hash_table_remove (trash_volume->trash->details->volumes, g_hash_table_remove (trash_volume->trash->details->volumes,
trash_volume->volume); trash_volume->volume);
@ -247,15 +243,16 @@ remove_trash_volume (TrashVolume *trash_volume)
find_directory_end (); find_directory_end ();
} }
if (trash_volume->real_directory != NULL) { if (trash_volume->real_directory != NULL) {
nautilus_merged_directory_remove_real_directory if (! finalizing) {
(NAUTILUS_MERGED_DIRECTORY (trash_volume->trash), nautilus_merged_directory_remove_real_directory
trash_volume->real_directory); (NAUTILUS_MERGED_DIRECTORY (trash_volume->trash),
trash_volume->real_directory);
}
nautilus_directory_unref (trash_volume->real_directory); nautilus_directory_unref (trash_volume->real_directory);
} }
g_free (trash_volume); g_free (trash_volume);
} }
static void static void
remove_volume (NautilusTrashDirectory *trash, remove_volume (NautilusTrashDirectory *trash,
NautilusVolume *volume) NautilusVolume *volume)
@ -263,10 +260,9 @@ remove_volume (NautilusTrashDirectory *trash,
TrashVolume *trash_volume; TrashVolume *trash_volume;
/* Quick out if don't already know about this volume. */ /* Quick out if don't already know about this volume. */
trash_volume = g_hash_table_lookup (trash->details->volumes, trash_volume = g_hash_table_lookup (trash->details->volumes, volume);
volume);
if (trash_volume != NULL) { if (trash_volume != NULL) {
remove_trash_volume (trash_volume); remove_trash_volume (trash_volume, FALSE);
} }
} }
@ -305,24 +301,19 @@ volume_mounted_callback (NautilusVolumeMonitor *monitor,
} }
static void static void
nautilus_trash_directory_init (gpointer object, gpointer klass) nautilus_trash_directory_instance_init (NautilusTrashDirectory *trash)
{ {
NautilusTrashDirectory *trash;
NautilusVolumeMonitor *volume_monitor; NautilusVolumeMonitor *volume_monitor;
trash = NAUTILUS_TRASH_DIRECTORY (object);
trash->details = g_new0 (NautilusTrashDirectoryDetails, 1); trash->details = g_new0 (NautilusTrashDirectoryDetails, 1);
trash->details->volumes = g_hash_table_new (NULL, NULL); trash->details->volumes = g_hash_table_new (NULL, NULL);
volume_monitor = nautilus_volume_monitor_get (); volume_monitor = nautilus_volume_monitor_get ();
g_signal_connect g_signal_connect_object (volume_monitor, "volume_mounted",
(volume_monitor, "volume_mounted", G_CALLBACK (volume_mounted_callback), trash, 0);
G_CALLBACK (volume_mounted_callback), trash); g_signal_connect_object (volume_monitor, "volume_unmount_started",
g_signal_connect G_CALLBACK (volume_unmount_started_callback), trash, 0);
(volume_monitor, "volume_unmount_started",
G_CALLBACK (volume_unmount_started_callback), trash);
} }
/* Finish initializing a new NautilusTrashDirectory. We have to do the /* Finish initializing a new NautilusTrashDirectory. We have to do the
@ -337,15 +328,14 @@ nautilus_trash_directory_finish_initializing (NautilusTrashDirectory *trash)
volume_monitor = nautilus_volume_monitor_get (); volume_monitor = nautilus_volume_monitor_get ();
g_signal_connect g_signal_connect_object (nautilus_trash_monitor_get (), "check_trash_directory_added",
(nautilus_trash_monitor_get (), "check_trash_directory_added", G_CALLBACK (check_trash_directory_added_callback), trash, 0);
G_CALLBACK (check_trash_directory_added_callback), trash);
nautilus_volume_monitor_each_mounted_volume nautilus_volume_monitor_each_mounted_volume
(volume_monitor, add_one_volume, trash); (volume_monitor, add_one_volume, trash);
} }
static void static void
remove_trash_volume_cover (gpointer key, gpointer value, gpointer callback_data) remove_trash_volume_finalizing_cover (gpointer key, gpointer value, gpointer callback_data)
{ {
TrashVolume *trash_volume; TrashVolume *trash_volume;
@ -358,29 +348,22 @@ remove_trash_volume_cover (gpointer key, gpointer value, gpointer callback_data)
g_assert (NAUTILUS_IS_TRASH_DIRECTORY (trash_volume->trash)); g_assert (NAUTILUS_IS_TRASH_DIRECTORY (trash_volume->trash));
g_assert (trash_volume->volume == key); g_assert (trash_volume->volume == key);
remove_trash_volume (trash_volume); remove_trash_volume (trash_volume, TRUE);
} }
static void static void
trash_destroy (GtkObject *object) trash_finalize (GObject *object)
{ {
NautilusTrashDirectory *trash; NautilusTrashDirectory *trash;
trash = NAUTILUS_TRASH_DIRECTORY (object); trash = NAUTILUS_TRASH_DIRECTORY (object);
g_signal_handlers_disconnect_matched ( eel_g_hash_table_safe_for_each (trash->details->volumes,
nautilus_volume_monitor_get (), remove_trash_volume_finalizing_cover, NULL);
G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, trash);
eel_g_hash_table_safe_for_each
(trash->details->volumes,
remove_trash_volume_cover,
NULL);
g_hash_table_destroy (trash->details->volumes); g_hash_table_destroy (trash->details->volumes);
g_free (trash->details); g_free (trash->details);
EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static char * static char *
@ -391,16 +374,9 @@ trash_get_name_for_self_as_new_file (NautilusDirectory *directory)
} }
static void static void
nautilus_trash_directory_class_init (gpointer klass) nautilus_trash_directory_class_init (NautilusTrashDirectoryClass *class)
{ {
GtkObjectClass *object_class; G_OBJECT_CLASS (class)->finalize = trash_finalize;
NautilusDirectoryClass *directory_class; NAUTILUS_DIRECTORY_CLASS (class)->get_name_for_self_as_new_file = trash_get_name_for_self_as_new_file;
object_class = GTK_OBJECT_CLASS (klass);
directory_class = NAUTILUS_DIRECTORY_CLASS (klass);
object_class->destroy = trash_destroy;
directory_class->get_name_for_self_as_new_file = trash_get_name_for_self_as_new_file;
} }

View file

@ -41,9 +41,6 @@
struct NautilusTrashFileDetails { struct NautilusTrashFileDetails {
NautilusTrashDirectory *trash_directory; NautilusTrashDirectory *trash_directory;
guint add_directory_connection_id;
guint remove_directory_connection_id;
GList *files; GList *files;
GHashTable *callbacks; GHashTable *callbacks;
@ -284,10 +281,8 @@ add_real_file (NautilusTrashFile *trash,
trash->details->files = g_list_prepend trash->details->files = g_list_prepend
(trash->details->files, real_file); (trash->details->files, real_file);
g_signal_connect (real_file, g_signal_connect_object (real_file, "changed",
"changed", G_CALLBACK (real_file_changed_callback), trash, 0);
G_CALLBACK (real_file_changed_callback),
trash);
/* Add the file to any extant monitors. */ /* Add the file to any extant monitors. */
g_hash_table_foreach (trash->details->monitors, g_hash_table_foreach (trash->details->monitors,
@ -330,8 +325,8 @@ remove_real_file (NautilusTrashFile *trash,
monitor_remove_file, monitor_remove_file,
real_file); real_file);
g_signal_handlers_disconnect_by_func ( g_signal_handlers_disconnect_by_func
real_file, G_CALLBACK (real_file_changed_callback), trash); (real_file, G_CALLBACK (real_file_changed_callback), trash);
trash->details->files = g_list_remove trash->details->files = g_list_remove
(trash->details->files, real_file); (trash->details->files, real_file);
@ -750,16 +745,10 @@ nautilus_trash_file_init (gpointer object, gpointer klass)
(trash_callback_hash, trash_callback_equal); (trash_callback_hash, trash_callback_equal);
trash_file->details->monitors = g_hash_table_new (NULL, NULL); trash_file->details->monitors = g_hash_table_new (NULL, NULL);
trash_file->details->add_directory_connection_id = g_signal_connect g_signal_connect_object (trash_directory, "add_real_directory",
(trash_directory, G_CALLBACK (add_directory_callback), trash_file, 0);
"add_real_directory", g_signal_connect_object (trash_directory, "remove_real_directory",
G_CALLBACK (add_directory_callback), G_CALLBACK (remove_directory_callback), trash_file, 0);
trash_file);
trash_file->details->remove_directory_connection_id = g_signal_connect
(trash_directory,
"remove_real_directory",
G_CALLBACK (remove_directory_callback),
trash_file);
real_directories = nautilus_merged_directory_get_real_directories real_directories = nautilus_merged_directory_get_real_directories
(NAUTILUS_MERGED_DIRECTORY (trash_directory)); (NAUTILUS_MERGED_DIRECTORY (trash_directory));
@ -787,11 +776,6 @@ trash_destroy (GtkObject *object)
g_warning ("file monitor still active when trash virtual file is destroyed"); g_warning ("file monitor still active when trash virtual file is destroyed");
} }
g_signal_handler_disconnect (trash_directory,
trash_file->details->add_directory_connection_id);
g_signal_handler_disconnect (trash_directory,
trash_file->details->remove_directory_connection_id);
g_hash_table_destroy (trash_file->details->callbacks); g_hash_table_destroy (trash_file->details->callbacks);
g_hash_table_destroy (trash_file->details->monitors); g_hash_table_destroy (trash_file->details->monitors);

View file

@ -146,14 +146,10 @@ nautilus_trash_monitor_init (gpointer object, gpointer klass)
g_list_free (attributes); g_list_free (attributes);
g_signal_connect_object g_signal_connect_object (trash_directory, "files_added",
(trash_directory, "files_added", G_CALLBACK (nautilus_trash_files_changed_callback), trash_monitor, 0);
G_CALLBACK (nautilus_trash_files_changed_callback), g_signal_connect_object (trash_directory, "files_changed",
trash_monitor, 0); G_CALLBACK (nautilus_trash_files_changed_callback), trash_monitor, 0);
g_signal_connect_object
(trash_directory, "files_changed",
G_CALLBACK (nautilus_trash_files_changed_callback),
trash_monitor, 0);
} }
static void static void

View file

@ -219,8 +219,7 @@ nautilus_undo_manager_attach (NautilusUndoManager *manager, GObject *target)
g_return_if_fail (NAUTILUS_IS_UNDO_MANAGER (manager)); g_return_if_fail (NAUTILUS_IS_UNDO_MANAGER (manager));
g_return_if_fail (G_IS_OBJECT (target)); g_return_if_fail (G_IS_OBJECT (target));
nautilus_undo_attach_undo_manager ( nautilus_undo_attach_undo_manager (G_OBJECT (target), BONOBO_OBJREF (manager));
G_OBJECT (target), BONOBO_OBJREF (manager));
} }
void void

View file

@ -80,10 +80,9 @@ nautilus_undo_set_up_nautilus_entry_for_undo (NautilusEntry *entry)
data, free_editable_object_data); data, free_editable_object_data);
/* Connect to entry signals */ /* Connect to entry signals */
g_signal_connect (entry, g_signal_connect (entry, "user_changed",
"user_changed", G_CALLBACK (nautilus_entry_user_changed_callback),
G_CALLBACK (nautilus_entry_user_changed_callback), NULL);
NULL);
} }
void void
@ -95,9 +94,7 @@ nautilus_undo_tear_down_nautilus_entry_for_undo (NautilusEntry *entry)
/* Disconnect from entry signals */ /* Disconnect from entry signals */
g_signal_handlers_disconnect_by_func g_signal_handlers_disconnect_by_func
(entry, (entry, G_CALLBACK (nautilus_entry_user_changed_callback), NULL);
G_CALLBACK (nautilus_entry_user_changed_callback),
NULL);
} }
@ -193,15 +190,10 @@ nautilus_undo_set_up_editable_for_undo (GtkEditable *editable)
} }
/* Connect to editable signals */ /* Connect to editable signals */
g_signal_connect (editable, g_signal_connect (editable, "insert_text",
"insert_text", G_CALLBACK (editable_insert_text_callback), NULL);
G_CALLBACK (editable_insert_text_callback), g_signal_connect (editable, "delete_text",
NULL); G_CALLBACK (editable_delete_text_callback), NULL);
g_signal_connect (editable,
"delete_text",
G_CALLBACK (editable_delete_text_callback),
NULL);
data = g_new (EditableUndoObjectData, 1); data = g_new (EditableUndoObjectData, 1);
@ -218,13 +210,10 @@ nautilus_undo_tear_down_editable_for_undo (GtkEditable *editable)
} }
/* Disconnect from entry signals */ /* Disconnect from entry signals */
g_signal_handlers_disconnect_by_func (editable, g_signal_handlers_disconnect_by_func
G_CALLBACK (editable_insert_text_callback), (editable, G_CALLBACK (editable_insert_text_callback), NULL);
NULL); g_signal_handlers_disconnect_by_func
(editable, G_CALLBACK (editable_delete_text_callback), NULL);
g_signal_handlers_disconnect_by_func (editable,
G_CALLBACK (editable_delete_text_callback),
NULL);
} }
/* restore_editable_from_undo_snapshot_callback /* restore_editable_from_undo_snapshot_callback
@ -327,18 +316,15 @@ nautilus_undo_editable_set_undo_key (GtkEditable *editable, gboolean value)
#ifdef UNDO_ENABLED #ifdef UNDO_ENABLED
if (value) { if (value) {
/* Connect to entry signals */ /* Connect to entry signals */
g_signal_connect (editable, g_signal_connect (editable, "key_press_event",
"key_press_event", G_CALLBACK (editable_key_press_event), NULL);
G_CALLBACK (editable_key_press_event),
NULL);
} else { } else {
/* FIXME bugzilla.gnome.org 45092: Warns if the handler /* FIXME bugzilla.gnome.org 45092: Warns if the handler
* is not already connected. We could use object data * is not already connected. We could use object data
* to prevent that little problem. * to prevent that little problem.
*/ */
gtk_signal_disconnect_by_func (GTK_OBJECT (editable), gtk_signal_disconnect_by_func (editable,
G_CALLBACK (editable_key_press_event), G_CALLBACK (editable_key_press_event), NULL);
NULL);
} }
#endif #endif
} }

View file

@ -123,8 +123,8 @@ select_all_callback (BonoboUIComponent *ui,
source = g_idle_source_new (); source = g_idle_source_new ();
g_source_set_callback (source, select_all_idle_callback, editable, NULL); g_source_set_callback (source, select_all_idle_callback, editable, NULL);
g_signal_connect_swapped (editable, "destroy", g_signal_connect_object (editable, "destroy",
G_CALLBACK (g_source_destroy), source); G_CALLBACK (g_source_destroy), source, G_CONNECT_SWAPPED);
g_source_attach (source, NULL); g_source_attach (source, NULL);
g_source_unref (source); g_source_unref (source);
} }
@ -134,11 +134,8 @@ set_menu_item_sensitive (BonoboUIComponent *component,
const char *path, const char *path,
gboolean sensitive) gboolean sensitive)
{ {
g_assert (BONOBO_IS_UI_COMPONENT (component));
bonobo_ui_component_set_prop (component, path, bonobo_ui_component_set_prop (component, path,
"sensitive", "sensitive", sensitive ? "1" : "0", NULL);
sensitive ? "1" : "0",
NULL);
} }
@ -420,9 +417,7 @@ first_focus_callback (GtkWidget *widget,
/* Don't set up the clipboard again on future focus_in's. This /* Don't set up the clipboard again on future focus_in's. This
* is one-time work. * is one-time work.
*/ */
disconnect_set_up_in_control_handlers disconnect_set_up_in_control_handlers (GTK_OBJECT (widget), callback_data);
(GTK_OBJECT (widget),
callback_data);
/* Do the rest of the setup. */ /* Do the rest of the setup. */
nautilus_clipboard_set_up_editable nautilus_clipboard_set_up_editable
@ -437,8 +432,7 @@ static void
control_destroyed_callback (GtkObject *object, control_destroyed_callback (GtkObject *object,
gpointer callback_data) gpointer callback_data)
{ {
disconnect_set_up_in_control_handlers disconnect_set_up_in_control_handlers (object, callback_data);
(object, callback_data);
} }
void void
@ -464,17 +458,12 @@ nautilus_clipboard_set_up_editable_in_control (GtkEditable *target,
/* We'd like to use gtk_signal_connect_while_alive, but it's /* We'd like to use gtk_signal_connect_while_alive, but it's
* not compatible with gtk_signal_disconnect calls. * not compatible with gtk_signal_disconnect calls.
*/ */
g_object_set_data (G_OBJECT (target), g_object_set_data (G_OBJECT (target), "Nautilus:shares_selection_changes",
"Nautilus:shares_selection_changes",
GINT_TO_POINTER (shares_selection_changes)); GINT_TO_POINTER (shares_selection_changes));
g_signal_connect (target, g_signal_connect (target, "focus_in_event",
"focus_in_event", G_CALLBACK (first_focus_callback), control);
G_CALLBACK (first_focus_callback), g_signal_connect (target, "destroy",
control); G_CALLBACK (control_destroyed_callback), control);
g_signal_connect (target,
"destroy",
G_CALLBACK (control_destroyed_callback),
control);
} }
static void static void

View file

@ -171,7 +171,7 @@ nautilus_undo_transaction_finalize (GObject *object)
CORBA_Object_release (transaction->owner, &ev); CORBA_Object_release (transaction->owner, &ev);
CORBA_exception_free (&ev); CORBA_exception_free (&ev);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
void void

View file

@ -280,5 +280,5 @@ nautilus_undo_set_up_bonobo_control (BonoboControl *control)
set_up_bonobo_control (control); set_up_bonobo_control (control);
g_signal_connect (control, "set_frame", g_signal_connect (control, "set_frame",
G_CALLBACK (set_up_bonobo_control), NULL); G_CALLBACK (set_up_bonobo_control), NULL);
} }

View file

@ -33,7 +33,7 @@
#ifndef NAUTILUS_VIEW_STANDARD_MAIN_H #ifndef NAUTILUS_VIEW_STANDARD_MAIN_H
#define NAUTILUS_VIEW_STANDARD_MAIN_H #define NAUTILUS_VIEW_STANDARD_MAIN_H
#include <libnautilus/nautilus-view.h> #include <bonobo/bonobo-object.h>
G_BEGIN_DECLS G_BEGIN_DECLS

View file

@ -448,9 +448,8 @@ nautilus_view_construct_from_bonobo_control (NautilusView *view,
bonobo_object_add_interface (BONOBO_OBJECT (view), BONOBO_OBJECT (control)); bonobo_object_add_interface (BONOBO_OBJECT (view), BONOBO_OBJECT (control));
nautilus_undo_set_up_bonobo_control (control); nautilus_undo_set_up_bonobo_control (control);
g_signal_connect_object (G_OBJECT (control), "set_frame", g_signal_connect_object (control, "set_frame",
G_CALLBACK (nautilus_view_set_frame_callback), G_CALLBACK (nautilus_view_set_frame_callback), view, 0);
view, 0);
return view; return view;
} }
@ -470,7 +469,7 @@ nautilus_view_finalize (GObject *object)
g_free (view->details); g_free (view->details);
GNOME_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
static void static void

View file

@ -84,7 +84,6 @@ struct FMDesktopIconViewDetails
/* For the desktop rescanning /* For the desktop rescanning
*/ */
gulong delayed_init_signal; gulong delayed_init_signal;
gulong done_loading_signal;
guint reload_desktop_timeout; guint reload_desktop_timeout;
gboolean pending_rescan; gboolean pending_rescan;
}; };
@ -235,16 +234,6 @@ fm_desktop_icon_view_finalize (GObject *object)
gtk_timeout_remove (icon_view->details->reload_desktop_timeout); gtk_timeout_remove (icon_view->details->reload_desktop_timeout);
} }
if (icon_view->details->done_loading_signal != 0) {
g_signal_handler_disconnect (fm_directory_view_get_model (FM_DIRECTORY_VIEW (icon_view)),
icon_view->details->done_loading_signal);
}
if (icon_view->details->delayed_init_signal != 0) {
g_signal_handler_disconnect (icon_view,
icon_view->details->delayed_init_signal);
}
/* Delete all of the link files. */ /* Delete all of the link files. */
delete_all_mount_links (); delete_all_mount_links ();
@ -521,10 +510,9 @@ static void
delayed_init (FMDesktopIconView *desktop_icon_view) delayed_init (FMDesktopIconView *desktop_icon_view)
{ {
/* Keep track of the load time. */ /* Keep track of the load time. */
desktop_icon_view->details->done_loading_signal = g_signal_connect_object (fm_directory_view_get_model (FM_DIRECTORY_VIEW (desktop_icon_view)),
g_signal_connect (fm_directory_view_get_model (FM_DIRECTORY_VIEW (desktop_icon_view)), "done_loading",
"done_loading", G_CALLBACK (done_loading), desktop_icon_view, 0);
G_CALLBACK (done_loading), desktop_icon_view);
/* Monitor desktop directory. */ /* Monitor desktop directory. */
desktop_icon_view->details->reload_desktop_timeout = desktop_icon_view->details->reload_desktop_timeout =
@ -560,9 +548,9 @@ fm_desktop_icon_view_init (FMDesktopIconView *desktop_icon_view)
* way to keep track of the items on the desktop. * way to keep track of the items on the desktop.
*/ */
if (!nautilus_monitor_active ()) { if (!nautilus_monitor_active ()) {
desktop_icon_view->details->delayed_init_signal = g_signal_connect desktop_icon_view->details->delayed_init_signal = g_signal_connect_object
(desktop_icon_view, "begin_loading", (desktop_icon_view, "begin_loading",
G_CALLBACK (delayed_init), desktop_icon_view); G_CALLBACK (delayed_init), desktop_icon_view, 0);
} }
nautilus_icon_container_set_is_fixed_size (icon_container, TRUE); nautilus_icon_container_set_is_fixed_size (icon_container, TRUE);
@ -600,21 +588,16 @@ fm_desktop_icon_view_init (FMDesktopIconView *desktop_icon_view)
create_one_mount_link, create_one_mount_link,
desktop_icon_view); desktop_icon_view);
g_signal_connect (icon_container, "middle_click", g_signal_connect_object (icon_container, "middle_click",
G_CALLBACK (fm_desktop_icon_view_handle_middle_click), desktop_icon_view); G_CALLBACK (fm_desktop_icon_view_handle_middle_click), desktop_icon_view, 0);
g_signal_connect_object (icon_container, "compare_icons",
g_signal_connect (icon_container, "compare_icons", G_CALLBACK (desktop_icons_compare_callback), desktop_icon_view, 0);
G_CALLBACK (desktop_icons_compare_callback), desktop_icon_view); g_signal_connect_object (desktop_icon_view, "event",
G_CALLBACK (event_callback), desktop_icon_view, 0);
g_signal_connect (desktop_icon_view, "event",
G_CALLBACK (event_callback), desktop_icon_view);
g_signal_connect_object (nautilus_trash_monitor_get (), "trash_state_changed", g_signal_connect_object (nautilus_trash_monitor_get (), "trash_state_changed",
G_CALLBACK (fm_desktop_icon_view_trash_state_changed_callback), desktop_icon_view, 0); G_CALLBACK (fm_desktop_icon_view_trash_state_changed_callback), desktop_icon_view, 0);
g_signal_connect_object (nautilus_volume_monitor_get (), "volume_mounted", g_signal_connect_object (nautilus_volume_monitor_get (), "volume_mounted",
G_CALLBACK (volume_mounted_callback), desktop_icon_view, 0); G_CALLBACK (volume_mounted_callback), desktop_icon_view, 0);
g_signal_connect_object (nautilus_volume_monitor_get (), "volume_unmounted", g_signal_connect_object (nautilus_volume_monitor_get (), "volume_unmounted",
G_CALLBACK (volume_unmounted_callback), desktop_icon_view, 0); G_CALLBACK (volume_unmounted_callback), desktop_icon_view, 0);

View file

@ -1148,11 +1148,10 @@ add_directory_to_scripts_directory_list (FMDirectoryView *view,
g_list_free (attributes); g_list_free (attributes);
g_signal_connect (directory, "files_added", g_signal_connect_object (directory, "files_added",
G_CALLBACK (scripts_added_or_changed_callback), view); G_CALLBACK (scripts_added_or_changed_callback), view, 0);
g_signal_connect_object (directory, "files_changed",
g_signal_connect (directory, "files_changed", G_CALLBACK (scripts_added_or_changed_callback), view, 0);
G_CALLBACK (scripts_added_or_changed_callback), view);
view->details->scripts_directory_list = g_list_append view->details->scripts_directory_list = g_list_append
(view->details->scripts_directory_list, directory); (view->details->scripts_directory_list, directory);
@ -1228,30 +1227,29 @@ fm_directory_view_init (FMDirectoryView *view)
view->details->sort_directories_first = view->details->sort_directories_first =
eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST); eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST);
g_signal_connect (view->details->nautilus_view, "stop_loading", g_signal_connect_object (view->details->nautilus_view, "stop_loading",
G_CALLBACK (stop_loading_callback), view); G_CALLBACK (stop_loading_callback), view, 0);
g_signal_connect (view->details->nautilus_view, "load_location", g_signal_connect_object (view->details->nautilus_view, "load_location",
G_CALLBACK (load_location_callback), view); G_CALLBACK (load_location_callback), view, 0);
nautilus_view_set_listener_mask ( nautilus_view_set_listener_mask
NAUTILUS_VIEW (view->details->nautilus_view), (NAUTILUS_VIEW (view->details->nautilus_view),
NAUTILUS_VIEW_LISTEN_SELECTION); NAUTILUS_VIEW_LISTEN_SELECTION);
g_signal_connect (view->details->nautilus_view, "selection_changed", g_signal_connect_object (view->details->nautilus_view, "selection_changed",
G_CALLBACK (selection_changed_callback), view); G_CALLBACK (selection_changed_callback), view, 0);
g_signal_connect (fm_directory_view_get_bonobo_control (view), "activate", g_signal_connect_object (fm_directory_view_get_bonobo_control (view), "activate",
G_CALLBACK (bonobo_control_activate_callback), view); G_CALLBACK (bonobo_control_activate_callback), view, 0);
g_signal_connect (view->details->zoomable, "zoom_in", g_signal_connect_object (view->details->zoomable, "zoom_in",
G_CALLBACK (zoomable_zoom_in_callback), view); G_CALLBACK (zoomable_zoom_in_callback), view, 0);
g_signal_connect (view->details->zoomable, "zoom_out", g_signal_connect_object (view->details->zoomable, "zoom_out",
G_CALLBACK (zoomable_zoom_out_callback), view); G_CALLBACK (zoomable_zoom_out_callback), view, 0);
g_signal_connect (view->details->zoomable, "set_zoom_level", g_signal_connect_object (view->details->zoomable, "set_zoom_level",
G_CALLBACK (zoomable_set_zoom_level_callback), view); G_CALLBACK (zoomable_set_zoom_level_callback), view, 0);
g_signal_connect (view->details->zoomable, "zoom_to_fit", g_signal_connect_object (view->details->zoomable, "zoom_to_fit",
G_CALLBACK (zoomable_zoom_to_fit_callback), view); G_CALLBACK (zoomable_zoom_to_fit_callback), view, 0);
g_signal_connect_object (nautilus_trash_monitor_get (), "trash_state_changed", g_signal_connect_object (nautilus_trash_monitor_get (), "trash_state_changed",
G_CALLBACK (fm_directory_view_trash_state_changed_callback), G_CALLBACK (fm_directory_view_trash_state_changed_callback), view, 0);
view, 0);
/* React to icon theme changes. */ /* React to icon theme changes. */
g_signal_connect_object (nautilus_icon_factory_get (), "icons_changed", g_signal_connect_object (nautilus_icon_factory_get (), "icons_changed",
@ -2296,7 +2294,10 @@ queue_pending_files (FMDirectoryView *view,
*pending_list = g_list_concat (*pending_list, *pending_list = g_list_concat (*pending_list,
nautilus_file_list_copy (files)); nautilus_file_list_copy (files));
schedule_timeout_display_of_pending_files (view); if (view->details->loading)
schedule_timeout_display_of_pending_files (view);
else
schedule_idle_display_of_pending_files (view);
} }
static void static void
@ -4150,10 +4151,9 @@ real_merge_menus (FMDirectoryView *view)
bonobo_ui_component_add_verb_list_with_data (view->details->ui, verbs, view); bonobo_ui_component_add_verb_list_with_data (view->details->ui, verbs, view);
g_signal_connect_swapped (fm_directory_view_get_background (view), g_signal_connect_object (fm_directory_view_get_background (view), "settings_changed",
"settings_changed", G_CALLBACK (schedule_update_menus), G_OBJECT (view),
G_CALLBACK (schedule_update_menus), G_CONNECT_SWAPPED);
view);
/* Do one-time state changes here; context-dependent ones go in update_menus */ /* Do one-time state changes here; context-dependent ones go in update_menus */
if (!fm_directory_view_supports_zooming (view)) { if (!fm_directory_view_supports_zooming (view)) {
@ -4933,10 +4933,8 @@ load_directory (FMDirectoryView *view,
g_list_free (attributes); g_list_free (attributes);
view->details->file_changed_handler_id = g_signal_connect view->details->file_changed_handler_id = g_signal_connect
(view->details->directory_as_file, (view->details->directory_as_file, "changed",
"changed", G_CALLBACK (file_changed_callback), view);
G_CALLBACK (file_changed_callback),
view);
} }
static void static void
@ -4958,12 +4956,10 @@ finish_loading (FMDirectoryView *view)
/* Connect handlers to learn about loading progress. */ /* Connect handlers to learn about loading progress. */
view->details->done_loading_handler_id = g_signal_connect view->details->done_loading_handler_id = g_signal_connect
(view->details->model, (view->details->model, "done_loading",
"done_loading",
G_CALLBACK (done_loading_callback), view); G_CALLBACK (done_loading_callback), view);
view->details->load_error_handler_id = g_signal_connect view->details->load_error_handler_id = g_signal_connect
(view->details->model, (view->details->model, "load_error",
"load_error",
G_CALLBACK (load_error_callback), view); G_CALLBACK (load_error_callback), view);
/* Monitor the things needed to get the right icon. Also /* Monitor the things needed to get the right icon. Also
@ -4991,12 +4987,10 @@ finish_loading (FMDirectoryView *view)
g_list_free (attributes); g_list_free (attributes);
view->details->files_added_handler_id = g_signal_connect view->details->files_added_handler_id = g_signal_connect
(view->details->model, (view->details->model, "files_added",
"files_added",
G_CALLBACK (files_added_callback), view); G_CALLBACK (files_added_callback), view);
view->details->files_changed_handler_id = g_signal_connect view->details->files_changed_handler_id = g_signal_connect
(view->details->model, (view->details->model, "files_changed",
"files_changed",
G_CALLBACK (files_changed_callback), view); G_CALLBACK (files_changed_callback), view);
} }

View file

@ -46,6 +46,7 @@
#include <libgnome/gnome-i18n.h> #include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-config.h> #include <libgnome/gnome-config.h>
#include <libgnome/gnome-desktop-item.h> #include <libgnome/gnome-desktop-item.h>
#include <libgnome/gnome-macros.h>
#include <libgnomevfs/gnome-vfs-ops.h> #include <libgnomevfs/gnome-vfs-ops.h>
#include <libgnomevfs/gnome-vfs-async-ops.h> #include <libgnomevfs/gnome-vfs-async-ops.h>
#include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-uri.h>
@ -118,58 +119,25 @@ typedef enum {
MENU_ITEM_TYPE_TREE MENU_ITEM_TYPE_TREE
} MenuItemType; } MenuItemType;
/* forward declarations */ struct FMIconViewDetails
static void create_icon_container (FMIconView *icon_view); {
static void fm_icon_view_init (FMIconView *icon_view); GList *icons_not_positioned;
static void fm_icon_view_class_init (FMIconViewClass *klass);
static void fm_icon_view_set_directory_sort_by (FMIconView *icon_view,
NautilusFile *file,
const char *sort_by);
static void fm_icon_view_set_zoom_level (FMIconView *view,
NautilusZoomLevel new_level,
gboolean always_set_level);
gboolean fm_icon_view_supports_auto_layout (FMIconView *view);
static void fm_icon_view_update_icon_container_fonts (FMIconView *icon_view);
static void fm_icon_view_update_icon_container_font_size_table (FMIconView *icon_view);
static void fm_icon_view_update_click_mode (FMIconView *icon_view);
static gboolean fm_icon_view_using_tighter_layout (FMIconView *icon_view);
static gboolean fm_icon_view_get_directory_tighter_layout (FMIconView *icon_view,
NautilusFile *file);
static void fm_icon_view_set_directory_tighter_layout (FMIconView *icon_view,
NautilusFile *file,
gboolean tighter_layout);
static gboolean real_supports_auto_layout (FMIconView *view);
static const SortCriterion *get_sort_criterion_by_id (const char *id);
static const SortCriterion *get_sort_criterion_by_sort_type (NautilusFileSortType sort_type);
static void set_sort_criterion_by_id (FMIconView *icon_view,
const char *id);
static gboolean set_sort_reversed (FMIconView *icon_view,
gboolean new_value);
static void switch_to_manual_layout (FMIconView *view);
static void preview_audio (FMIconView *icon_view,
NautilusFile *file,
gboolean start_flag);
static void update_layout_menus (FMIconView *view);
static void default_sort_in_reverse_order_changed_callback (gpointer callback_data);
static void default_sort_order_changed_callback (gpointer callback_data);
static void default_use_tighter_layout_changed_callback (gpointer callback_data);
static void default_use_manual_layout_changed_callback (gpointer callback_data);
static void default_zoom_level_changed_callback (gpointer callback_data);
static void default_zoom_level_font_size_changed_callback (gpointer callback_data);
static void font_changed_callback (gpointer callback_data);
static void icon_view_handle_uri_list (NautilusIconContainer *container,
const char *item_uris,
GdkDragAction action,
int x,
int y,
FMIconView *view);
guint react_to_icon_change_idle_id;
gboolean menus_ready;
static int preview_sound_auto_value; gboolean loading;
const SortCriterion *sort;
gboolean sort_reversed;
BonoboUIComponent *ui;
NautilusAudioPlayerData *audio_player_data;
int audio_preview_timeout;
NautilusFile *audio_preview_file;
};
EEL_CLASS_BOILERPLATE (FMIconView,
fm_icon_view,
FM_TYPE_DIRECTORY_VIEW)
/* Note that the first item in this list is the default sort, /* Note that the first item in this list is the default sort,
* and that the items show up in the menu in the order they * and that the items show up in the menu in the order they
@ -213,24 +181,35 @@ static const SortCriterion sort_criteria[] = {
} }
}; };
struct FMIconViewDetails static gboolean default_sort_in_reverse_order = FALSE;
{ static int preview_sound_auto_value;
GList *icons_not_positioned;
guint react_to_icon_change_idle_id; static void fm_icon_view_set_directory_sort_by (FMIconView *icon_view,
gboolean menus_ready; NautilusFile *file,
const char *sort_by);
static void fm_icon_view_set_zoom_level (FMIconView *view,
NautilusZoomLevel new_level,
gboolean always_set_level);
static void fm_icon_view_update_icon_container_fonts (FMIconView *icon_view);
static void fm_icon_view_update_icon_container_font_size_table (FMIconView *icon_view);
static void fm_icon_view_update_click_mode (FMIconView *icon_view);
static void fm_icon_view_set_directory_tighter_layout (FMIconView *icon_view,
NautilusFile *file,
gboolean tighter_layout);
static const SortCriterion *get_sort_criterion_by_id (const char *id);
static const SortCriterion *get_sort_criterion_by_sort_type (NautilusFileSortType sort_type);
static void set_sort_criterion_by_id (FMIconView *icon_view,
const char *id);
static gboolean set_sort_reversed (FMIconView *icon_view,
gboolean new_value);
static void switch_to_manual_layout (FMIconView *view);
static void preview_audio (FMIconView *icon_view,
NautilusFile *file,
gboolean start_flag);
static void update_layout_menus (FMIconView *view);
gboolean loading; GNOME_CLASS_BOILERPLATE (FMIconView, fm_icon_view,
FMDirectoryView, FM_TYPE_DIRECTORY_VIEW)
const SortCriterion *sort;
gboolean sort_reversed;
BonoboUIComponent *ui;
NautilusAudioPlayerData *audio_player_data;
int audio_preview_timeout;
NautilusFile *audio_preview_file;
};
static void static void
fm_icon_view_finalize (GObject *object) fm_icon_view_finalize (GObject *object)
@ -528,6 +507,16 @@ fm_icon_view_file_changed (FMDirectoryView *view, NautilusFile *file)
NAUTILUS_ICON_CONTAINER_ICON_DATA (file)); NAUTILUS_ICON_CONTAINER_ICON_DATA (file));
} }
static gboolean
fm_icon_view_supports_auto_layout (FMIconView *view)
{
g_return_val_if_fail (FM_IS_ICON_VIEW (view), FALSE);
return EEL_CALL_METHOD_WITH_RETURN_VALUE
(FM_ICON_VIEW_CLASS, view,
supports_auto_layout, (view));
}
static void static void
update_layout_menus (FMIconView *view) update_layout_menus (FMIconView *view)
{ {
@ -654,8 +643,6 @@ fm_icon_view_get_directory_sort_reversed (FMIconView *icon_view,
get_directory_sort_reversed, (icon_view, file)); get_directory_sort_reversed, (icon_view, file));
} }
static gboolean default_sort_in_reverse_order = FALSE;
static gboolean static gboolean
get_default_sort_in_reverse_order (void) get_default_sort_in_reverse_order (void)
{ {
@ -664,7 +651,7 @@ get_default_sort_in_reverse_order (void)
if (auto_storaged_added == FALSE) { if (auto_storaged_added == FALSE) {
auto_storaged_added = TRUE; auto_storaged_added = TRUE;
eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER, eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
&default_sort_in_reverse_order); &default_sort_in_reverse_order);
} }
return default_sort_in_reverse_order; return default_sort_in_reverse_order;
@ -735,7 +722,6 @@ fm_icon_view_get_directory_auto_layout (FMIconView *icon_view,
get_directory_auto_layout, (icon_view, file)); get_directory_auto_layout, (icon_view, file));
} }
static gboolean static gboolean
fm_icon_view_real_get_directory_auto_layout (FMIconView *icon_view, fm_icon_view_real_get_directory_auto_layout (FMIconView *icon_view,
NautilusFile *file) NautilusFile *file)
@ -824,16 +810,6 @@ fm_icon_view_real_set_directory_tighter_layout (FMIconView *icon_view,
tighter_layout); tighter_layout);
} }
gboolean
fm_icon_view_supports_auto_layout (FMIconView *view)
{
g_return_val_if_fail (FM_IS_ICON_VIEW (view), FALSE);
return EEL_CALL_METHOD_WITH_RETURN_VALUE
(FM_ICON_VIEW_CLASS, view,
supports_auto_layout, (view));
}
static gboolean static gboolean
real_supports_auto_layout (FMIconView *view) real_supports_auto_layout (FMIconView *view)
{ {
@ -1328,8 +1304,8 @@ fm_icon_view_merge_menus (FMDirectoryView *view)
icon_view = FM_ICON_VIEW (view); icon_view = FM_ICON_VIEW (view);
icon_view->details->ui = bonobo_ui_component_new ("Icon View"); icon_view->details->ui = bonobo_ui_component_new ("Icon View");
g_signal_connect (icon_view->details->ui, g_signal_connect_object (icon_view->details->ui,
"ui_event", G_CALLBACK (handle_ui_event), icon_view); "ui_event", G_CALLBACK (handle_ui_event), icon_view, 0);
ui_container = fm_directory_view_get_bonobo_ui_container (view); ui_container = fm_directory_view_get_bonobo_ui_container (view);
bonobo_ui_component_set_container (icon_view->details->ui, bonobo_ui_component_set_container (icon_view->details->ui,
ui_container, NULL); ui_container, NULL);
@ -1697,7 +1673,7 @@ should_preview_sound (NautilusFile *file) {
client = gconf_client_get_default (); client = gconf_client_get_default ();
enable_esd = gconf_client_get_bool (client, "/desktop/gnome/sound/enable_esd", NULL); enable_esd = gconf_client_get_bool (client, "/desktop/gnome/sound/enable_esd", NULL);
g_object_unref (G_OBJECT (client)); g_object_unref (client);
/* Check gnome config sound preference */ /* Check gnome config sound preference */
if (!enable_esd) { if (!enable_esd) {
@ -2437,97 +2413,59 @@ static void
create_icon_container (FMIconView *icon_view) create_icon_container (FMIconView *icon_view)
{ {
NautilusIconContainer *icon_container; NautilusIconContainer *icon_container;
FMDirectoryView *directory_view;
icon_container = NAUTILUS_ICON_CONTAINER (nautilus_icon_container_new ()); icon_container = NAUTILUS_ICON_CONTAINER (nautilus_icon_container_new ());
directory_view = FM_DIRECTORY_VIEW (icon_view);
GTK_WIDGET_SET_FLAGS (icon_container, GTK_CAN_FOCUS); GTK_WIDGET_SET_FLAGS (icon_container, GTK_CAN_FOCUS);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "activate",
"activate", G_CALLBACK (icon_container_activate_callback), icon_view, 0);
G_CALLBACK (icon_container_activate_callback), g_signal_connect_object (icon_container, "band_select_started",
icon_view); G_CALLBACK (band_select_started_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "band_select_ended",
"band_select_started", G_CALLBACK (band_select_ended_callback), icon_view, 0);
G_CALLBACK (band_select_started_callback), g_signal_connect_object (icon_container, "compare_icons",
icon_view); G_CALLBACK (icon_container_compare_icons_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "compare_icons_by_name",
"band_select_ended", G_CALLBACK (icon_container_compare_icons_by_name_callback), icon_view, 0);
G_CALLBACK (band_select_ended_callback), g_signal_connect_object (icon_container, "context_click_selection",
icon_view); G_CALLBACK (icon_container_context_click_selection_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "context_click_background",
"compare_icons", G_CALLBACK (icon_container_context_click_background_callback), icon_view, 0);
G_CALLBACK (icon_container_compare_icons_callback), g_signal_connect_object (icon_container, "icon_position_changed",
icon_view); G_CALLBACK (icon_position_changed_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "icon_text_changed",
"compare_icons_by_name", G_CALLBACK (fm_icon_view_icon_text_changed_callback), icon_view, 0);
G_CALLBACK (icon_container_compare_icons_by_name_callback), g_signal_connect_object (icon_container, "selection_changed",
icon_view); G_CALLBACK (selection_changed_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "get_icon_images",
"context_click_selection", G_CALLBACK (get_icon_images_callback), icon_view, 0);
G_CALLBACK (icon_container_context_click_selection_callback), g_signal_connect_object (icon_container, "get_icon_uri",
icon_view); G_CALLBACK (get_icon_uri_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "get_icon_drop_target_uri",
"context_click_background", G_CALLBACK (get_icon_drop_target_uri_callback), icon_view, 0);
G_CALLBACK (icon_container_context_click_background_callback), g_signal_connect_object (icon_container, "get_icon_text",
icon_view); G_CALLBACK (get_icon_text_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "move_copy_items",
"icon_position_changed", G_CALLBACK (icon_view_move_copy_items), icon_view, 0);
G_CALLBACK (icon_position_changed_callback), g_signal_connect_object (icon_container, "get_container_uri",
icon_view); G_CALLBACK (icon_view_get_container_uri), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "can_accept_item",
"icon_text_changed", G_CALLBACK (icon_view_can_accept_item), icon_view, 0);
G_CALLBACK (fm_icon_view_icon_text_changed_callback), g_signal_connect_object (icon_container, "get_stored_icon_position",
icon_view); G_CALLBACK (get_stored_icon_position_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "layout_changed",
"selection_changed", G_CALLBACK (layout_changed_callback), icon_view, 0);
G_CALLBACK (selection_changed_callback), g_signal_connect_object (icon_container, "preview",
icon_view); G_CALLBACK (icon_container_preview_callback), icon_view, 0);
g_signal_connect (icon_container, g_signal_connect_object (icon_container, "renaming_icon",
"get_icon_images", G_CALLBACK (renaming_icon_callback), icon_view, 0);
G_CALLBACK (get_icon_images_callback), g_signal_connect_object (icon_container, "icon_stretch_started",
icon_view); G_CALLBACK (fm_directory_view_update_menus), icon_view,
g_signal_connect (icon_container, G_CONNECT_SWAPPED);
"get_icon_uri", g_signal_connect_object (icon_container, "icon_stretch_ended",
G_CALLBACK (get_icon_uri_callback), G_CALLBACK (fm_directory_view_update_menus), icon_view,
icon_view); G_CONNECT_SWAPPED);
g_signal_connect (icon_container,
"get_icon_drop_target_uri",
G_CALLBACK (get_icon_drop_target_uri_callback),
icon_view);
g_signal_connect (icon_container,
"get_icon_text",
G_CALLBACK (get_icon_text_callback),
icon_view);
g_signal_connect (icon_container,
"move_copy_items",
G_CALLBACK (icon_view_move_copy_items),
directory_view);
g_signal_connect (icon_container,
"get_container_uri",
G_CALLBACK (icon_view_get_container_uri),
directory_view);
g_signal_connect (icon_container,
"can_accept_item",
G_CALLBACK (icon_view_can_accept_item),
directory_view);
g_signal_connect (icon_container,
"get_stored_icon_position",
G_CALLBACK (get_stored_icon_position_callback),
directory_view);
g_signal_connect (icon_container,
"layout_changed",
G_CALLBACK (layout_changed_callback),
directory_view);
g_signal_connect (icon_container, "preview",
G_CALLBACK (icon_container_preview_callback), icon_view);
g_signal_connect (icon_container, "renaming_icon",
G_CALLBACK (renaming_icon_callback), directory_view);
g_signal_connect_swapped (icon_container, "icon_stretch_started",
G_CALLBACK (fm_directory_view_update_menus), directory_view);
g_signal_connect_swapped (icon_container, "icon_stretch_ended",
G_CALLBACK (fm_directory_view_update_menus), directory_view);
gtk_container_add (GTK_CONTAINER (icon_view), gtk_container_add (GTK_CONTAINER (icon_view),
GTK_WIDGET (icon_container)); GTK_WIDGET (icon_container));
@ -2741,10 +2679,9 @@ fm_icon_view_class_init (FMIconViewClass *klass)
} }
static void static void
fm_icon_view_init (FMIconView *icon_view) fm_icon_view_instance_init (FMIconView *icon_view)
{ {
static gboolean setup_sound_preview = FALSE; static gboolean setup_sound_preview = FALSE;
NautilusIconContainer *icon_container;
g_return_if_fail (GTK_BIN (icon_view)->child == NULL); g_return_if_fail (GTK_BIN (icon_view)->child == NULL);
@ -2761,37 +2698,27 @@ fm_icon_view_init (FMIconView *icon_view)
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_FONT, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_FONT,
font_changed_callback, font_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL_FONT_SIZE, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL_FONT_SIZE,
default_zoom_level_font_size_changed_callback, default_zoom_level_font_size_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
default_sort_order_changed_callback, default_sort_order_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
default_sort_in_reverse_order_changed_callback, default_sort_in_reverse_order_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_TIGHTER_LAYOUT, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_TIGHTER_LAYOUT,
default_use_tighter_layout_changed_callback, default_use_tighter_layout_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT,
default_use_manual_layout_changed_callback, default_use_manual_layout_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL, eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL,
default_zoom_level_changed_callback, default_zoom_level_changed_callback,
icon_view, icon_view, G_OBJECT (icon_view));
G_OBJECT (icon_view));
icon_container = get_icon_container (icon_view); g_signal_connect_object (get_icon_container (icon_view), "handle_uri_list",
g_signal_connect (icon_container, G_CALLBACK (icon_view_handle_uri_list), icon_view, 0);
"handle_uri_list",
G_CALLBACK (icon_view_handle_uri_list),
icon_view);
} }

View file

@ -156,15 +156,16 @@ create_and_set_up_tree_view (FMListView *view)
GtkTreeViewColumn *column; GtkTreeViewColumn *column;
view->details->tree_view = GTK_TREE_VIEW (gtk_tree_view_new ()); view->details->tree_view = GTK_TREE_VIEW (gtk_tree_view_new ());
g_signal_connect (gtk_tree_view_get_selection (view->details->tree_view), g_signal_connect_object (gtk_tree_view_get_selection (view->details->tree_view),
"changed", G_CALLBACK (list_selection_changed_callback), view); "changed",
G_CALLBACK (list_selection_changed_callback), view, 0);
g_signal_connect (view->details->tree_view, "row_activated", g_signal_connect_object (view->details->tree_view, "row_activated",
G_CALLBACK (list_activate_callback), view); G_CALLBACK (list_activate_callback), view, 0);
g_signal_connect (view->details->tree_view, "event-after", g_signal_connect_object (view->details->tree_view, "event-after",
G_CALLBACK (event_after_callback), view); G_CALLBACK (event_after_callback), view, 0);
g_signal_connect (view->details->tree_view, "button_press_event", g_signal_connect_object (view->details->tree_view, "button_press_event",
G_CALLBACK (button_press_callback), view); G_CALLBACK (button_press_callback), view, 0);
view->details->model = g_object_new (FM_TYPE_LIST_MODEL, NULL); view->details->model = g_object_new (FM_TYPE_LIST_MODEL, NULL);
gtk_tree_view_set_model (view->details->tree_view, GTK_TREE_MODEL (view->details->model)); gtk_tree_view_set_model (view->details->tree_view, GTK_TREE_MODEL (view->details->model));

View file

@ -31,7 +31,6 @@
#include <eel/eel-glib-extensions.h> #include <eel/eel-glib-extensions.h>
#include <eel/eel-gnome-extensions.h> #include <eel/eel-gnome-extensions.h>
#include <eel/eel-gtk-extensions.h> #include <eel/eel-gtk-extensions.h>
#include <eel/eel-gtk-macros.h>
#include <eel/eel-labeled-image.h> #include <eel/eel-labeled-image.h>
#include <eel/eel-stock-dialogs.h> #include <eel/eel-stock-dialogs.h>
#include <eel/eel-string.h> #include <eel/eel-string.h>
@ -54,6 +53,7 @@
#include <gtk/gtktable.h> #include <gtk/gtktable.h>
#include <gtk/gtkvbox.h> #include <gtk/gtkvbox.h>
#include <libgnome/gnome-i18n.h> #include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-macros.h>
#include <libgnomeui/gnome-dialog.h> #include <libgnomeui/gnome-dialog.h>
#include <libgnomeui/gnome-uidefs.h> #include <libgnomeui/gnome-uidefs.h>
#include <libgnomevfs/gnome-vfs.h> #include <libgnomevfs/gnome-vfs.h>
@ -145,10 +145,6 @@ static GtkTargetEntry target_table[] = {
#define STANDARD_EMBLEM_HEIGHT 52 #define STANDARD_EMBLEM_HEIGHT 52
#define EMBLEM_LABEL_SPACING 2 #define EMBLEM_LABEL_SPACING 2
static void real_destroy (GtkObject *object);
static void real_finalize (GObject *object);
static void fm_properties_window_class_init (FMPropertiesWindowClass *class);
static void fm_properties_window_init (FMPropertiesWindow *window);
static void create_properties_window_callback (NautilusFile *file, static void create_properties_window_callback (NautilusFile *file,
gpointer data); gpointer data);
static void cancel_group_change_callback (gpointer callback_data); static void cancel_group_change_callback (gpointer callback_data);
@ -166,23 +162,8 @@ static void remove_pending_file (StartupData *data
gboolean cancel_timed_wait, gboolean cancel_timed_wait,
gboolean cancel_destroy_handler); gboolean cancel_destroy_handler);
EEL_CLASS_BOILERPLATE (FMPropertiesWindow, fm_properties_window, GTK_TYPE_WINDOW) GNOME_CLASS_BOILERPLATE (FMPropertiesWindow, fm_properties_window,
GtkWindow, GTK_TYPE_WINDOW)
static void
fm_properties_window_class_init (FMPropertiesWindowClass *class)
{
G_OBJECT_CLASS (class)->finalize = real_finalize;
GTK_OBJECT_CLASS (class)->destroy = real_destroy;
}
static void
fm_properties_window_init (FMPropertiesWindow *window)
{
window->details = g_new0 (FMPropertiesWindowDetails, 1);
eel_gtk_window_set_up_close_accelerator (GTK_WINDOW (window));
}
typedef struct { typedef struct {
NautilusFile *file; NautilusFile *file;
@ -361,10 +342,8 @@ create_image_widget_for_file (NautilusFile *file)
g_object_unref (pixbuf); g_object_unref (pixbuf);
nautilus_file_ref (file); nautilus_file_ref (file);
g_object_set_data_full (G_OBJECT (image), g_object_set_data_full (G_OBJECT (image), "nautilus_file",
"nautilus_file", file, (GDestroyNotify) nautilus_file_unref);
file,
(GtkDestroyNotify) nautilus_file_unref);
/* React to icon theme changes. */ /* React to icon theme changes. */
g_signal_connect_object (nautilus_icon_factory_get (), g_signal_connect_object (nautilus_icon_factory_get (),
@ -641,8 +620,7 @@ value_field_update_internal (GtkLabel *label,
attribute_value = nautilus_file_get_string_attribute_with_default (file, attribute_name); attribute_value = nautilus_file_get_string_attribute_with_default (file, attribute_name);
if (ellipsize_text) { if (ellipsize_text) {
eel_ellipsizing_label_set_text (EEL_ELLIPSIZING_LABEL (label), eel_ellipsizing_label_set_text (EEL_ELLIPSIZING_LABEL (label), attribute_value);
attribute_value);
} else { } else {
gtk_label_set_text (label, attribute_value); gtk_label_set_text (label, attribute_value);
} }
@ -825,7 +803,7 @@ create_group_menu_item (NautilusFile *file, const char *group_name)
"activate", "activate",
G_CALLBACK (activate_group_callback), G_CALLBACK (activate_group_callback),
file_name_pair_new (file, group_name), file_name_pair_new (file, group_name),
(GtkDestroyNotify)file_name_pair_free); (GDestroyNotify)file_name_pair_free);
return menu_item; return menu_item;
} }
@ -997,7 +975,7 @@ create_owner_menu_item (NautilusFile *file, const char *user_name)
"activate", "activate",
G_CALLBACK (activate_owner_callback), G_CALLBACK (activate_owner_callback),
file_name_pair_new (file, name_array[0]), file_name_pair_new (file, name_array[0]),
(GtkDestroyNotify)file_name_pair_free); (GDestroyNotify)file_name_pair_free);
g_strfreev (name_array); g_strfreev (name_array);
return menu_item; return menu_item;
} }
@ -1562,10 +1540,8 @@ create_basic_page (FMPropertiesWindow *window)
/* Attach parameters and signal handler. */ /* Attach parameters and signal handler. */
nautilus_file_ref (original_file); nautilus_file_ref (original_file);
g_object_set_data_full (G_OBJECT (name_field), g_object_set_data_full (G_OBJECT (name_field),"nautilus_file",
"nautilus_file", original_file, (GDestroyNotify) nautilus_file_unref);
original_file,
(GtkDestroyNotify) nautilus_file_unref);
/* Update name field initially before hooking up changed signal. */ /* Update name field initially before hooking up changed signal. */
name_field_update_to_match_file (NAUTILUS_ENTRY (name_field)); name_field_update_to_match_file (NAUTILUS_ENTRY (name_field));
@ -1584,13 +1560,10 @@ create_basic_page (FMPropertiesWindow *window)
nautilus_undo_editable_set_undo_key (GTK_EDITABLE (name_field), TRUE); nautilus_undo_editable_set_undo_key (GTK_EDITABLE (name_field), TRUE);
#endif #endif
g_signal_connect (name_field, "focus_out_event", g_signal_connect_object (name_field, "focus_out_event",
G_CALLBACK (name_field_focus_out), G_CALLBACK (name_field_focus_out), window, 0);
window); g_signal_connect_object (name_field, "activate",
G_CALLBACK (name_field_activate), window, 0);
g_signal_connect (name_field, "activate",
G_CALLBACK (name_field_activate),
window);
/* Start with name field selected, if it's sensitive. */ /* Start with name field selected, if it's sensitive. */
if (GTK_WIDGET_SENSITIVE (name_field)) { if (GTK_WIDGET_SENSITIVE (name_field)) {
@ -1639,13 +1612,13 @@ create_basic_page (FMPropertiesWindow *window)
gtk_widget_show (temp_button); gtk_widget_show (temp_button);
gtk_box_pack_start (GTK_BOX (button_box), temp_button, FALSE, FALSE, 4); gtk_box_pack_start (GTK_BOX (button_box), temp_button, FALSE, FALSE, 4);
g_signal_connect(temp_button, "clicked", G_CALLBACK (select_image_button_callback), window); g_signal_connect_object (temp_button, "clicked", G_CALLBACK (select_image_button_callback), window, 0);
temp_button = gtk_button_new_with_mnemonic (_("_Remove Custom Icon")); temp_button = gtk_button_new_with_mnemonic (_("_Remove Custom Icon"));
gtk_widget_show (temp_button); gtk_widget_show (temp_button);
gtk_box_pack_start (GTK_BOX(button_box), temp_button, FALSE, FALSE, 4); gtk_box_pack_start (GTK_BOX(button_box), temp_button, FALSE, FALSE, 4);
g_signal_connect (temp_button, "clicked", G_CALLBACK (remove_image_button_callback), window); g_signal_connect_object (temp_button, "clicked", G_CALLBACK (remove_image_button_callback), window, 0);
window->details->remove_image_button = temp_button; window->details->remove_image_button = temp_button;
@ -1739,7 +1712,7 @@ create_emblems_page (FMPropertiesWindow *window)
nautilus_file_ref (file); nautilus_file_ref (file);
g_object_set_data_full (G_OBJECT (button), "nautilus_file", g_object_set_data_full (G_OBJECT (button), "nautilus_file",
file, (GtkDestroyNotify) nautilus_file_unref); file, (GDestroyNotify) nautilus_file_unref);
g_signal_connect (button, "toggled", g_signal_connect (button, "toggled",
G_CALLBACK (property_button_toggled), NULL); G_CALLBACK (property_button_toggled), NULL);
@ -1783,7 +1756,7 @@ static void
update_permissions_check_button_state (GtkWidget *check_button, NautilusFile *file) update_permissions_check_button_state (GtkWidget *check_button, NautilusFile *file)
{ {
GnomeVFSFilePermissions file_permissions, permission; GnomeVFSFilePermissions file_permissions, permission;
guint toggled_signal_id; gulong toggled_signal_id;
g_assert (GTK_IS_CHECK_BUTTON (check_button)); g_assert (GTK_IS_CHECK_BUTTON (check_button));
g_assert (NAUTILUS_IS_FILE (file)); g_assert (NAUTILUS_IS_FILE (file));
@ -1794,11 +1767,11 @@ update_permissions_check_button_state (GtkWidget *check_button, NautilusFile *fi
g_assert (nautilus_file_can_get_permissions (file)); g_assert (nautilus_file_can_get_permissions (file));
toggled_signal_id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (check_button), toggled_signal_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (check_button),
"toggled_signal_id")); "toggled_signal_id"));
permission = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (check_button), permission = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (check_button),
"permission")); "permission"));
g_assert (toggled_signal_id > 0); g_assert (toggled_signal_id != 0);
g_assert (permission != 0); g_assert (permission != 0);
file_permissions = nautilus_file_get_permissions (file); file_permissions = nautilus_file_get_permissions (file);
@ -1806,12 +1779,10 @@ update_permissions_check_button_state (GtkWidget *check_button, NautilusFile *fi
nautilus_file_can_set_permissions (file)); nautilus_file_can_set_permissions (file));
/* Don't react to the "toggled" signal here to avoid recursion. */ /* Don't react to the "toggled" signal here to avoid recursion. */
g_signal_handler_block (check_button, g_signal_handler_block (check_button, toggled_signal_id);
toggled_signal_id);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
(file_permissions & permission) != 0); (file_permissions & permission) != 0);
g_signal_handler_unblock (check_button, g_signal_handler_unblock (check_button, toggled_signal_id);
toggled_signal_id);
} }
static void static void
@ -1859,26 +1830,23 @@ set_up_permissions_checkbox (GtkWidget *check_button,
NautilusFile *file, NautilusFile *file,
GnomeVFSFilePermissions permission) GnomeVFSFilePermissions permission)
{ {
guint toggled_signal_id; gulong toggled_signal_id;
toggled_signal_id = g_signal_connect (check_button, "toggled", toggled_signal_id = g_signal_connect (check_button, "toggled",
G_CALLBACK (permissions_check_button_toggled), G_CALLBACK (permissions_check_button_toggled),
file); file);
/* Load up the check_button with data we'll need when updating its state. */ /* Load up the check_button with data we'll need when updating its state. */
g_object_set_data (G_OBJECT (check_button), g_object_set_data (G_OBJECT (check_button), "toggled_signal_id",
"toggled_signal_id", GUINT_TO_POINTER (toggled_signal_id));
GINT_TO_POINTER (toggled_signal_id)); g_object_set_data (G_OBJECT (check_button), "permission",
g_object_set_data (G_OBJECT (check_button), GINT_TO_POINTER (permission));
"permission",
GINT_TO_POINTER (permission));
/* Set initial state. */ /* Set initial state. */
update_permissions_check_button_state (check_button, file); update_permissions_check_button_state (check_button, file);
/* Update state later if file changes. */ /* Update state later if file changes. */
g_signal_connect_object (file, g_signal_connect_object (file, "changed",
"changed",
G_CALLBACK (update_permissions_check_button_state), G_CALLBACK (update_permissions_check_button_state),
check_button, G_CONNECT_SWAPPED); check_button, G_CONNECT_SWAPPED);
} }
@ -2225,10 +2193,9 @@ create_properties_window (StartupData *startup_data)
/* React to future property changes and file deletions. */ /* React to future property changes and file deletions. */
window->details->file_changed_handler_id = window->details->file_changed_handler_id =
g_signal_connect_swapped (window->details->target_file, g_signal_connect_object (window->details->target_file, "changed",
"changed", G_CALLBACK (properties_window_file_changed_callback),
G_CALLBACK (properties_window_file_changed_callback), window, G_CONNECT_SWAPPED);
window);
/* Create the notebook tabs. */ /* Create the notebook tabs. */
window->details->notebook = GTK_NOTEBOOK (gtk_notebook_new ()); window->details->notebook = GTK_NOTEBOOK (gtk_notebook_new ());
@ -2400,10 +2367,8 @@ fm_properties_window_present (NautilusFile *original_file, FMDirectoryView *dire
*/ */
g_hash_table_insert (pending_files, target_file, target_file); g_hash_table_insert (pending_files, target_file, target_file);
g_signal_connect (directory_view, g_signal_connect (directory_view, "destroy",
"destroy", G_CALLBACK (directory_view_destroyed_callback), startup_data);
G_CALLBACK (directory_view_destroyed_callback),
startup_data);
parent_window = gtk_widget_get_ancestor (GTK_WIDGET (directory_view), GTK_TYPE_WINDOW); parent_window = gtk_widget_get_ancestor (GTK_WIDGET (directory_view), GTK_TYPE_WINDOW);
eel_timed_wait_start eel_timed_wait_start
@ -2456,7 +2421,7 @@ real_destroy (GtkObject *object)
window->details->update_directory_contents_timeout_id = 0; window->details->update_directory_contents_timeout_id = 0;
} }
EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); GTK_OBJECT_CLASS (parent_class)->destroy (object);
} }
static void static void
@ -2469,7 +2434,7 @@ real_finalize (GObject *object)
g_free (window->details->pending_name); g_free (window->details->pending_name);
g_free (window->details); g_free (window->details);
EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); G_OBJECT_CLASS (parent_class)->finalize (object);
} }
/* icon selection callback to set the image of the file object to the selected file */ /* icon selection callback to set the image of the file object to the selected file */
@ -2524,3 +2489,18 @@ remove_image_button_callback (GtkWidget *widget, FMPropertiesWindow *properties_
gtk_widget_set_sensitive (widget, FALSE); gtk_widget_set_sensitive (widget, FALSE);
} }
static void
fm_properties_window_class_init (FMPropertiesWindowClass *class)
{
G_OBJECT_CLASS (class)->finalize = real_finalize;
GTK_OBJECT_CLASS (class)->destroy = real_destroy;
}
static void
fm_properties_window_instance_init (FMPropertiesWindow *window)
{
window->details = g_new0 (FMPropertiesWindowDetails, 1);
eel_gtk_window_set_up_close_accelerator (GTK_WINDOW (window));
}

View file

@ -386,10 +386,8 @@ fm_search_list_view_init (gpointer object,
nautilus_view = fm_directory_view_get_nautilus_view (directory_view); nautilus_view = fm_directory_view_get_nautilus_view (directory_view);
g_signal_connect (nautilus_view, g_signal_connect (nautilus_view, "load_location",
"load_location", G_CALLBACK (load_location_callback), NULL);
G_CALLBACK (load_location_callback),
NULL);
} }
static void static void
@ -632,10 +630,9 @@ real_adding_file (FMListView *view, NautilusFile *file)
* and won't be specific to the search directory. Is that OK? * and won't be specific to the search directory. Is that OK?
*/ */
g_signal_connect_swapped (GTK_OBJECT (file), g_signal_connect_object (GTK_OBJECT (file), "changed",
"changed", G_CALLBACK (fm_directory_view_queue_file_change),
G_CALLBACK (fm_directory_view_queue_file_change), view, G_CONNECT_SWAPPED);
view);
/* Monitor the things needed to get the right /* Monitor the things needed to get the right
* icon. Also monitor a directory's item count because * icon. Also monitor a directory's item count because

View file

@ -131,8 +131,7 @@ show_index_progress_dialog (void)
gtk_widget_show_all (GTK_WIDGET (dialogs->index_in_progress_dialog)); gtk_widget_show_all (GTK_WIDGET (dialogs->index_in_progress_dialog));
callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover, callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover,
dialogs->index_in_progress_dialog); dialogs->index_in_progress_dialog);
g_signal_connect_swapped (dialogs->index_in_progress_dialog, g_signal_connect_swapped (dialogs->index_in_progress_dialog, "destroy",
"destroy",
G_CALLBACK (medusa_remove_state_changed_function), G_CALLBACK (medusa_remove_state_changed_function),
GINT_TO_POINTER (callback_id)); GINT_TO_POINTER (callback_id));
} }
@ -149,8 +148,7 @@ show_last_index_time_dialog (void)
gtk_widget_show_all (GTK_WIDGET (dialogs->last_index_time_dialog)); gtk_widget_show_all (GTK_WIDGET (dialogs->last_index_time_dialog));
callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover, callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover,
dialogs->last_index_time_dialog); dialogs->last_index_time_dialog);
g_signal_connect_swapped (dialogs->last_index_time_dialog, g_signal_connect_swapped (dialogs->last_index_time_dialog, "destroy",
"destroy",
G_CALLBACK (medusa_remove_state_changed_function), G_CALLBACK (medusa_remove_state_changed_function),
GINT_TO_POINTER (callback_id)); GINT_TO_POINTER (callback_id));
} }
@ -236,10 +234,9 @@ index_progress_dialog_new (void)
NULL, NULL,
progress_data, progress_data,
g_free); g_free);
g_signal_connect (progress_bar_hbox, g_signal_connect (progress_bar_hbox, "destroy", /* FIXME: will be called twice */
"destroy", G_CALLBACK (timeout_remove_callback),
G_CALLBACK (timeout_remove_callback), GLONG_TO_POINTER (timeout_id));
GUINT_TO_POINTER (timeout_id));
return dialog; return dialog;
} }
@ -273,8 +270,7 @@ show_indexing_info_dialog (void)
callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover, callback_id = medusa_execute_once_when_system_state_changes (dialog_close_cover,
dialog_shown); dialog_shown);
g_signal_connect_swapped (G_OBJECT (dialog_shown), g_signal_connect_swapped (dialog_shown, "destroy",
"destroy",
G_CALLBACK (medusa_remove_state_changed_function), G_CALLBACK (medusa_remove_state_changed_function),
GINT_TO_POINTER (callback_id)); GINT_TO_POINTER (callback_id));
return; return;

View file

@ -142,12 +142,12 @@ nautilus_application_instance_init (NautilusApplication *application)
application->undo_manager = nautilus_undo_manager_new (); application->undo_manager = nautilus_undo_manager_new ();
/* Watch for volume mounts so we can restore open windows */ /* Watch for volume mounts so we can restore open windows */
g_signal_connect (nautilus_volume_monitor_get (), "volume_mounted", g_signal_connect_object (nautilus_volume_monitor_get (), "volume_mounted",
G_CALLBACK (volume_mounted_callback), application); G_CALLBACK (volume_mounted_callback), application, 0);
/* Watch for volume unmounts so we can close open windows */ /* Watch for volume unmounts so we can close open windows */
g_signal_connect (nautilus_volume_monitor_get (), "volume_unmounted", g_signal_connect_object (nautilus_volume_monitor_get (), "volume_unmounted",
G_CALLBACK (volume_unmounted_callback), application); G_CALLBACK (volume_unmounted_callback), application, 0);
} }
NautilusApplication * NautilusApplication *
@ -635,16 +635,14 @@ nautilus_application_create_window (NautilusApplication *application)
g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL); g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL);
window = NAUTILUS_WINDOW (gtk_widget_new (nautilus_window_get_type (), window = NAUTILUS_WINDOW (gtk_widget_new (nautilus_window_get_type (),
"app", G_OBJECT (application), "app", application,
"app_id", "nautilus", NULL)); "app_id", "nautilus", NULL));
g_signal_connect (window, g_signal_connect (window, "delete_event",
"delete_event", G_CALLBACK (nautilus_window_delete_event_callback), G_CALLBACK (nautilus_window_delete_event_callback), NULL);
NULL);
g_signal_connect (window, g_signal_connect_object (window, "destroy",
"destroy", G_CALLBACK (nautilus_application_destroyed_window), G_CALLBACK (nautilus_application_destroyed_window), application, 0);
application);
nautilus_application_window_list = g_list_prepend (nautilus_application_window_list, window); nautilus_application_window_list = g_list_prepend (nautilus_application_window_list, window);
@ -874,12 +872,10 @@ init_session (void)
client = gnome_master_client (); client = gnome_master_client ();
g_signal_connect (client, "save_yourself", g_signal_connect (client, "save_yourself",
(GtkSignalFunc) save_session, G_CALLBACK (save_session), NULL);
NULL);
g_signal_connect (client, "die", g_signal_connect (client, "die",
(GtkSignalFunc) removed_from_session, G_CALLBACK (removed_from_session), NULL);
NULL);
eel_preferences_add_callback eel_preferences_add_callback
(NAUTILUS_PREFERENCES_ADD_TO_SESSION, (NAUTILUS_PREFERENCES_ADD_TO_SESSION,

View file

@ -183,19 +183,12 @@ insert_bookmark_internal (NautilusBookmarkList *bookmarks,
NautilusBookmark *bookmark, NautilusBookmark *bookmark,
int index) int index)
{ {
bookmarks->list = g_list_insert (bookmarks->list, bookmarks->list = g_list_insert (bookmarks->list, bookmark, index);
bookmark,
index);
g_signal_connect (bookmark, g_signal_connect_object (bookmark, "appearance_changed",
"appearance_changed", G_CALLBACK (bookmark_in_list_changed_callback), bookmarks, 0);
G_CALLBACK (bookmark_in_list_changed_callback), g_signal_connect_object (bookmark, "contents_changed",
bookmarks); G_CALLBACK (bookmark_in_list_changed_callback), bookmarks, 0);
g_signal_connect (bookmark,
"contents_changed",
G_CALLBACK (bookmark_in_list_changed_callback),
bookmarks);
} }
/** /**

View file

@ -248,24 +248,19 @@ create_bookmarks_window (NautilusBookmarkList *list, GObject *undo_manager_sourc
g_signal_connect (window, "delete_event", g_signal_connect (window, "delete_event",
G_CALLBACK (on_window_delete_event), NULL); G_CALLBACK (on_window_delete_event), NULL);
g_signal_connect (window, "hide", g_signal_connect (window, "hide",
G_CALLBACK (on_window_hide_event), NULL); G_CALLBACK (on_window_hide_event), NULL);
g_signal_connect (window, "destroy", g_signal_connect (window, "destroy",
G_CALLBACK (on_window_destroy_event), NULL); G_CALLBACK (on_window_destroy_event), NULL);
g_signal_connect (window, "response", g_signal_connect (window, "response",
G_CALLBACK (nautilus_bookmarks_window_response_callback), NULL); G_CALLBACK (nautilus_bookmarks_window_response_callback), NULL);
name_field_changed_signal_id = name_field_changed_signal_id =
g_signal_connect (name_field, "changed", g_signal_connect (name_field, "changed",
G_CALLBACK (on_name_field_changed), G_CALLBACK (on_name_field_changed), NULL);
NULL);
g_signal_connect (name_field, "focus_out_event", g_signal_connect (name_field, "focus_out_event",
G_CALLBACK (on_text_field_focus_out_event), NULL); G_CALLBACK (on_text_field_focus_out_event), NULL);
g_signal_connect (name_field, "activate", g_signal_connect (name_field, "activate",
G_CALLBACK (name_or_uri_field_activate), NULL); G_CALLBACK (name_or_uri_field_activate), NULL);
@ -275,10 +270,8 @@ create_bookmarks_window (NautilusBookmarkList *list, GObject *undo_manager_sourc
g_signal_connect (uri_field, "focus_out_event", g_signal_connect (uri_field, "focus_out_event",
G_CALLBACK (on_text_field_focus_out_event), NULL); G_CALLBACK (on_text_field_focus_out_event), NULL);
g_signal_connect (uri_field, "activate", g_signal_connect (uri_field, "activate",
G_CALLBACK (name_or_uri_field_activate), NULL); G_CALLBACK (name_or_uri_field_activate), NULL);
g_signal_connect (remove_button, "clicked", g_signal_connect (remove_button, "clicked",
G_CALLBACK (on_remove_button_clicked), NULL); G_CALLBACK (on_remove_button_clicked), NULL);
@ -287,8 +280,7 @@ create_bookmarks_window (NautilusBookmarkList *list, GObject *undo_manager_sourc
G_CALLBACK (repopulate), window, G_CALLBACK (repopulate), window,
G_CONNECT_SWAPPED); G_CONNECT_SWAPPED);
gtk_tree_selection_set_mode (bookmark_selection, gtk_tree_selection_set_mode (bookmark_selection, GTK_SELECTION_BROWSE);
GTK_SELECTION_BROWSE);
/* Fill in list widget with bookmarks, must be after signals are wired up. */ /* Fill in list widget with bookmarks, must be after signals are wired up. */
repopulate(); repopulate();

View file

@ -104,10 +104,8 @@ search_bar_criterion_type_changed_callback (GObject *old_criterion_object,
new_type = GPOINTER_TO_INT (g_object_get_data (old_criterion_object, "type")); new_type = GPOINTER_TO_INT (g_object_get_data (old_criterion_object, "type"));
new_criterion = nautilus_search_bar_criterion_new_with_type (new_type, new_criterion = nautilus_search_bar_criterion_new_with_type (new_type,
bar); bar);
g_signal_connect (new_criterion, g_signal_connect_object (new_criterion, "criterion_type_changed",
"criterion_type_changed", G_CALLBACK (search_bar_criterion_type_changed_callback), bar, 0);
G_CALLBACK (search_bar_criterion_type_changed_callback),
bar);
old_criterion_location = g_slist_find (bar->details->search_criteria, old_criterion_location = g_slist_find (bar->details->search_criteria,
criterion); criterion);
old_criterion_location->data = new_criterion; old_criterion_location->data = new_criterion;
@ -179,10 +177,8 @@ nautilus_complex_search_bar_init (NautilusComplexSearchBar *bar)
file_name_criterion = nautilus_search_bar_criterion_first_new (bar); file_name_criterion = nautilus_search_bar_criterion_first_new (bar);
g_signal_connect (file_name_criterion, g_signal_connect_object (file_name_criterion, "criterion_type_changed",
"criterion_type_changed", G_CALLBACK (search_bar_criterion_type_changed_callback), bar, 0);
G_CALLBACK (search_bar_criterion_type_changed_callback),
bar);
bar->details->search_criteria = g_slist_prepend (NULL, bar->details->search_criteria = g_slist_prepend (NULL,
file_name_criterion); file_name_criterion);
@ -198,24 +194,21 @@ nautilus_complex_search_bar_init (NautilusComplexSearchBar *bar)
hbox = gtk_hwrap_box_new (FALSE); hbox = gtk_hwrap_box_new (FALSE);
g_signal_connect (hbox, g_signal_connect_object (hbox, "need_reallocation",
"need_reallocation", G_CALLBACK (queue_search_bar_resize_callback), bar, 0);
G_CALLBACK (queue_search_bar_resize_callback),
bar);
bar->details->more_options = gtk_button_new_with_label (_("More Options")); bar->details->more_options = gtk_button_new_with_label (_("More Options"));
g_signal_connect (bar->details->more_options, "clicked", g_signal_connect_object (bar->details->more_options, "clicked",
G_CALLBACK (more_options_callback), bar); G_CALLBACK (more_options_callback), bar, 0);
gtk_wrap_box_pack (GTK_WRAP_BOX (hbox), gtk_wrap_box_pack (GTK_WRAP_BOX (hbox),
bar->details->more_options, bar->details->more_options,
FALSE, FALSE, FALSE, FALSE); FALSE, FALSE, FALSE, FALSE);
gtk_widget_show (bar->details->more_options); gtk_widget_show (bar->details->more_options);
bar->details->fewer_options = gtk_button_new_with_label (_("Fewer Options")); bar->details->fewer_options = gtk_button_new_with_label (_("Fewer Options"));
g_signal_connect (bar->details->fewer_options, "clicked", g_signal_connect_object (bar->details->fewer_options, "clicked",
G_CALLBACK (fewer_options_callback), bar); G_CALLBACK (fewer_options_callback), bar, 0);
gtk_wrap_box_pack (GTK_WRAP_BOX (hbox), gtk_wrap_box_pack (GTK_WRAP_BOX (hbox),
bar->details->fewer_options, bar->details->fewer_options,
@ -239,9 +232,9 @@ nautilus_complex_search_bar_init (NautilusComplexSearchBar *bar)
1); 1);
gtk_container_add (GTK_CONTAINER (bar->details->find_them), find_them_box); gtk_container_add (GTK_CONTAINER (bar->details->find_them), find_them_box);
g_signal_connect_swapped (bar->details->find_them, "clicked", g_signal_connect_object (bar->details->find_them, "clicked",
G_CALLBACK (nautilus_navigation_bar_location_changed), G_CALLBACK (nautilus_navigation_bar_location_changed),
bar); bar, G_CONNECT_SWAPPED);
gtk_wrap_box_pack (GTK_WRAP_BOX (hbox), gtk_wrap_box_pack (GTK_WRAP_BOX (hbox),
bar->details->find_them, bar->details->find_them,
@ -390,17 +383,14 @@ attach_criterion_to_search_bar (NautilusComplexSearchBar *bar,
if (criterion->details->use_value_entry) { if (criterion->details->use_value_entry) {
/* We want to track whether the entry text is empty or not. */ /* We want to track whether the entry text is empty or not. */
g_signal_connect_swapped (criterion->details->value_entry, g_signal_connect_object (criterion->details->value_entry, "changed",
"changed", G_CALLBACK (update_find_button_state), bar, G_CONNECT_SWAPPED);
G_CALLBACK (update_find_button_state),
bar);
/* We want to activate the "Find" button when any entry text is not empty */ /* We want to activate the "Find" button when any entry text is not empty */
g_assert (GTK_IS_BUTTON (bar->details->find_them)); g_assert (GTK_IS_BUTTON (bar->details->find_them));
g_signal_connect_swapped (criterion->details->value_entry, g_signal_connect_object (criterion->details->value_entry, "activate",
"activate", G_CALLBACK (gtk_widget_activate),
G_CALLBACK (gtk_widget_activate), bar->details->find_them, G_CONNECT_SWAPPED);
bar->details->find_them);
} }
nautilus_complex_search_bar_queue_resize (bar); nautilus_complex_search_bar_queue_resize (bar);
} }
@ -482,10 +472,8 @@ more_options_callback (GtkObject *object,
last_criterion = (NautilusSearchBarCriterion *)((g_slist_last (list))->data); last_criterion = (NautilusSearchBarCriterion *)((g_slist_last (list))->data);
criterion = nautilus_search_bar_criterion_next_new (last_criterion->details->type, criterion = nautilus_search_bar_criterion_next_new (last_criterion->details->type,
bar); bar);
g_signal_connect (criterion, g_signal_connect_object (criterion, "criterion_type_changed",
"criterion_type_changed", G_CALLBACK (search_bar_criterion_type_changed_callback), bar, 0);
G_CALLBACK (search_bar_criterion_type_changed_callback),
bar);
bar->details->search_criteria = g_slist_append (list, criterion); bar->details->search_criteria = g_slist_append (list, criterion);
nautilus_search_bar_criterion_show (criterion); nautilus_search_bar_criterion_show (criterion);

View file

@ -84,7 +84,7 @@ struct NautilusSidebarDetails {
gboolean has_buttons; gboolean has_buttons;
char *uri; char *uri;
NautilusFile *file; NautilusFile *file;
gulong file_changed_connection; guint file_changed_connection;
char *default_background_color; char *default_background_color;
char *default_background_image; char *default_background_image;
int selected_index; int selected_index;
@ -342,8 +342,6 @@ nautilus_sidebar_finalize (GObject *object)
sidebar = NAUTILUS_SIDEBAR (object); sidebar = NAUTILUS_SIDEBAR (object);
if (sidebar->details->file != NULL) { if (sidebar->details->file != NULL) {
g_signal_handler_disconnect (sidebar->details->file,
sidebar->details->file_changed_connection);
nautilus_file_monitor_remove (sidebar->details->file, sidebar); nautilus_file_monitor_remove (sidebar->details->file, sidebar);
nautilus_file_unref (sidebar->details->file); nautilus_file_unref (sidebar->details->file);
} }
@ -509,17 +507,13 @@ sidebar_for_each_sidebar_panel (const char *name,
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
g_object_set_data (G_OBJECT (menu_item), "user_data", data->sidebar); g_object_set_data (G_OBJECT (menu_item), "user_data", data->sidebar);
gtk_menu_shell_append (GTK_MENU_SHELL (data->menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (data->menu), menu_item);
g_signal_connect_data (menu_item, g_signal_connect_data (menu_item, "activate",
"activate",
G_CALLBACK (toggle_sidebar_panel), G_CALLBACK (toggle_sidebar_panel),
g_strdup (iid), g_strdup (iid), (GClosureNotify) g_free, 0);
(GClosureNotify)g_free,
0);
g_object_set_data_full (G_OBJECT (menu_item), g_object_set_data_full (G_OBJECT (menu_item),
"nautilus-sidebar/preference-key", "nautilus-sidebar/preference-key",
g_strdup (preference_key), g_strdup (preference_key), g_free);
g_free);
} }
/* utility routine to add a menu item for each potential sidebar panel */ /* utility routine to add a menu item for each potential sidebar panel */
@ -574,8 +568,8 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
gtk_widget_set_sensitive (menu_item, has_background); gtk_widget_set_sensitive (menu_item, has_background);
g_signal_connect (menu_item, "activate", g_signal_connect_object (menu_item, "activate",
G_CALLBACK (reset_background_callback), sidebar); G_CALLBACK (reset_background_callback), sidebar, 0);
/* add a separator */ /* add a separator */
menu_item = gtk_menu_item_new (); menu_item = gtk_menu_item_new ();
@ -944,8 +938,8 @@ nautilus_sidebar_add_panel (NautilusSidebar *sidebar, NautilusViewFrame *panel)
gtk_widget_show (label); gtk_widget_show (label);
g_signal_connect (panel, "view_loaded", g_signal_connect_object (panel, "view_loaded",
G_CALLBACK (view_loaded_callback), sidebar); G_CALLBACK (view_loaded_callback), sidebar, 0);
gtk_notebook_append_page (GTK_NOTEBOOK (sidebar->details->notebook), gtk_notebook_append_page (GTK_NOTEBOOK (sidebar->details->notebook),
GTK_WIDGET (panel), label); GTK_WIDGET (panel), label);
@ -1398,7 +1392,7 @@ add_command_buttons (NautilusSidebar *sidebar, GList *application_list)
/* Catch-all button after all the others. */ /* Catch-all button after all the others. */
temp_button = gtk_button_new_with_label (_("Open with...")); temp_button = gtk_button_new_with_label (_("Open with..."));
g_signal_connect (temp_button, "clicked", g_signal_connect (temp_button, "clicked",
G_CALLBACK (open_with_callback), NULL); G_CALLBACK (open_with_callback), NULL);
g_object_set_data (G_OBJECT (temp_button), "user_data", sidebar); g_object_set_data (G_OBJECT (temp_button), "user_data", sidebar);
gtk_widget_show (temp_button); gtk_widget_show (temp_button);
gtk_box_pack_start (GTK_BOX (sidebar->details->button_box), gtk_box_pack_start (GTK_BOX (sidebar->details->button_box),
@ -1554,14 +1548,10 @@ nautilus_sidebar_update_appearance (NautilusSidebar *sidebar)
background = eel_get_widget_background (GTK_WIDGET (sidebar)); background = eel_get_widget_background (GTK_WIDGET (sidebar));
if (!sidebar->details->background_connected) { if (!sidebar->details->background_connected) {
sidebar->details->background_connected = TRUE; sidebar->details->background_connected = TRUE;
g_signal_connect (background, g_signal_connect_object (background,"settings_changed",
"settings_changed", G_CALLBACK (background_settings_changed_callback), sidebar, 0);
G_CALLBACK (background_settings_changed_callback), g_signal_connect_object (background, "reset",
sidebar); G_CALLBACK (background_reset_callback), sidebar, 0);
g_signal_connect (background,
"reset",
G_CALLBACK (background_reset_callback),
sidebar);
} }
/* Set up the background color and image from the metadata. */ /* Set up the background color and image from the metadata. */
@ -1650,7 +1640,6 @@ nautilus_sidebar_set_uri (NautilusSidebar *sidebar,
if (sidebar->details->file != NULL) { if (sidebar->details->file != NULL) {
g_signal_handler_disconnect (sidebar->details->file, g_signal_handler_disconnect (sidebar->details->file,
sidebar->details->file_changed_connection); sidebar->details->file_changed_connection);
nautilus_file_monitor_remove (sidebar->details->file, sidebar); nautilus_file_monitor_remove (sidebar->details->file, sidebar);
} }
@ -1662,10 +1651,9 @@ nautilus_sidebar_set_uri (NautilusSidebar *sidebar,
sidebar->details->file = file; sidebar->details->file = file;
sidebar->details->file_changed_connection = sidebar->details->file_changed_connection =
g_signal_connect_swapped (sidebar->details->file, g_signal_connect_object (sidebar->details->file, "changed",
"changed", G_CALLBACK (background_metadata_changed_callback),
G_CALLBACK (background_metadata_changed_callback), sidebar, G_CONNECT_SWAPPED);
sidebar);
attributes = nautilus_mime_actions_get_minimum_file_attributes (); attributes = nautilus_mime_actions_get_minimum_file_attributes ();
nautilus_file_monitor_add (sidebar->details->file, sidebar, attributes); nautilus_file_monitor_add (sidebar->details->file, sidebar, attributes);

View file

@ -669,12 +669,11 @@ nautilus_location_bar_init (NautilusLocationBar *bar)
nautilus_entry_set_special_tab_handling (NAUTILUS_ENTRY (entry), TRUE); nautilus_entry_set_special_tab_handling (NAUTILUS_ENTRY (entry), TRUE);
g_signal_connect_swapped (entry, "activate", g_signal_connect_object (entry, "activate",
G_CALLBACK (nautilus_navigation_bar_location_changed), G_CALLBACK (nautilus_navigation_bar_location_changed),
bar); bar, G_CONNECT_SWAPPED);
g_signal_connect (GTK_OBJECT (entry), "event_after", g_signal_connect_object (entry, "event_after",
G_CALLBACK (editable_event_after_callback), G_CALLBACK (editable_event_after_callback), bar, 0);
bar);
gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
@ -685,9 +684,8 @@ nautilus_location_bar_init (NautilusLocationBar *bar)
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
drag_types, G_N_ELEMENTS (drag_types), drag_types, G_N_ELEMENTS (drag_types),
GDK_ACTION_LINK); GDK_ACTION_LINK);
g_signal_connect (event_box, "drag_data_get", g_signal_connect_object (event_box, "drag_data_get",
G_CALLBACK (drag_data_get_callback), G_CALLBACK (drag_data_get_callback), bar, 0);
bar);
/* Drag dest. */ /* Drag dest. */
gtk_drag_dest_set (GTK_WIDGET (bar), gtk_drag_dest_set (GTK_WIDGET (bar),
@ -695,8 +693,7 @@ nautilus_location_bar_init (NautilusLocationBar *bar)
drop_types, G_N_ELEMENTS (drop_types), drop_types, G_N_ELEMENTS (drop_types),
GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK); GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
g_signal_connect (bar, "drag_data_received", g_signal_connect (bar, "drag_data_received",
G_CALLBACK (drag_data_received_callback), G_CALLBACK (drag_data_received_callback), NULL);
NULL);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);

View file

@ -99,7 +99,6 @@ eel_gtk_main_quit_all (void)
static void static void
event_loop_unregister (GtkObject *object) event_loop_unregister (GtkObject *object)
{ {
g_assert (g_slist_find (event_loop_registrants, object) != NULL);
event_loop_registrants = g_slist_remove (event_loop_registrants, object); event_loop_registrants = g_slist_remove (event_loop_registrants, object);
if (!is_event_loop_needed ()) { if (!is_event_loop_needed ()) {
eel_gtk_main_quit_all (); eel_gtk_main_quit_all ();

View file

@ -138,11 +138,11 @@ bookmark_holder_new (NautilusBookmark *bookmark,
new_bookmark_holder->prompt_for_removal = is_bookmarks_menu; new_bookmark_holder->prompt_for_removal = is_bookmarks_menu;
new_bookmark_holder->changed_handler_id = new_bookmark_holder->changed_handler_id =
g_signal_connect_swapped (bookmark, "appearance_changed", g_signal_connect_object (bookmark, "appearance_changed",
is_bookmarks_menu is_bookmarks_menu
? G_CALLBACK (schedule_refresh_bookmarks_menu) ? G_CALLBACK (schedule_refresh_bookmarks_menu)
: G_CALLBACK (schedule_refresh_go_menu), : G_CALLBACK (schedule_refresh_go_menu),
window); window, G_CONNECT_SWAPPED);
return new_bookmark_holder; return new_bookmark_holder;
} }
@ -353,10 +353,8 @@ forget_history_if_confirmed (NautilusWindow *window)
GTK_WINDOW (window)); GTK_WINDOW (window));
g_free (prompt); g_free (prompt);
g_signal_connect (dialog, g_signal_connect (dialog, "response",
"response", G_CALLBACK (forget_history_if_yes), NULL);
G_CALLBACK (forget_history_if_yes),
NULL);
gtk_dialog_set_default_response (dialog, GTK_RESPONSE_NO); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_NO);
} }
@ -1151,8 +1149,8 @@ nautilus_window_initialize_menus_part_1 (NautilusWindow *window)
nautilus_window_update_show_hide_menu_items (window); nautilus_window_update_show_hide_menu_items (window);
/* Register to catch Bonobo UI events so we can notice View As changes */ /* Register to catch Bonobo UI events so we can notice View As changes */
g_signal_connect (window->details->shell_ui, "ui_event", g_signal_connect_object (window->details->shell_ui, "ui_event",
G_CALLBACK (nautilus_window_handle_ui_event_callback), window); G_CALLBACK (nautilus_window_handle_ui_event_callback), window, 0);
bonobo_ui_component_thaw (window->details->shell_ui, NULL); bonobo_ui_component_thaw (window->details->shell_ui, NULL);

View file

@ -572,11 +572,10 @@ nautilus_window_constructed (NautilusWindow *window)
window->navigation_bar = nautilus_switchable_navigation_bar_new (window); window->navigation_bar = nautilus_switchable_navigation_bar_new (window);
gtk_widget_show (GTK_WIDGET (window->navigation_bar)); gtk_widget_show (GTK_WIDGET (window->navigation_bar));
g_signal_connect (window->navigation_bar, "location_changed", g_signal_connect_object (window->navigation_bar, "location_changed",
G_CALLBACK (navigation_bar_location_changed_callback), window); G_CALLBACK (navigation_bar_location_changed_callback), window, 0);
g_signal_connect_object (window->navigation_bar, "mode_changed",
g_signal_connect (window->navigation_bar, "mode_changed", G_CALLBACK (navigation_bar_mode_changed_callback), window, 0);
G_CALLBACK (navigation_bar_mode_changed_callback), window);
gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar, gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar,
TRUE, TRUE, GNOME_PAD_SMALL); TRUE, TRUE, GNOME_PAD_SMALL);
@ -600,14 +599,18 @@ nautilus_window_constructed (NautilusWindow *window)
* It gets shown later, if the view-frame contains something zoomable. * It gets shown later, if the view-frame contains something zoomable.
*/ */
window->zoom_control = nautilus_zoom_control_new (); window->zoom_control = nautilus_zoom_control_new ();
g_signal_connect_swapped (window->zoom_control, "zoom_in", g_signal_connect_object (window->zoom_control, "zoom_in",
G_CALLBACK (nautilus_window_zoom_in), window); G_CALLBACK (nautilus_window_zoom_in),
g_signal_connect_swapped (window->zoom_control, "zoom_out", window, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_window_zoom_out), window); g_signal_connect_object (window->zoom_control, "zoom_out",
g_signal_connect_swapped (window->zoom_control, "zoom_to_level", G_CALLBACK (nautilus_window_zoom_out),
G_CALLBACK (nautilus_window_zoom_to_level), window); window, G_CONNECT_SWAPPED);
g_signal_connect_swapped (window->zoom_control, "zoom_to_fit", g_signal_connect_object (window->zoom_control, "zoom_to_level",
G_CALLBACK (nautilus_window_zoom_to_fit), window); G_CALLBACK (nautilus_window_zoom_to_level),
window, G_CONNECT_SWAPPED);
g_signal_connect_object (window->zoom_control, "zoom_to_fit",
G_CALLBACK (nautilus_window_zoom_to_fit),
window, G_CONNECT_SWAPPED);
gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0);
gtk_widget_show (location_bar_box); gtk_widget_show (location_bar_box);
@ -626,8 +629,8 @@ nautilus_window_constructed (NautilusWindow *window)
/* set up the sidebar */ /* set up the sidebar */
window->sidebar = nautilus_sidebar_new (); window->sidebar = nautilus_sidebar_new ();
gtk_widget_show (GTK_WIDGET (window->sidebar)); gtk_widget_show (GTK_WIDGET (window->sidebar));
g_signal_connect (window->sidebar, "location_changed", g_signal_connect_object (window->sidebar, "location_changed",
G_CALLBACK (go_to_callback), window); G_CALLBACK (go_to_callback), window, 0);
gtk_paned_pack1 (GTK_PANED (window->content_hbox), gtk_paned_pack1 (GTK_PANED (window->content_hbox),
GTK_WIDGET (window->sidebar), GTK_WIDGET (window->sidebar),
FALSE, TRUE); FALSE, TRUE);
@ -1045,14 +1048,11 @@ create_view_as_menu_item (NautilusWindow *window,
menu_item = gtk_menu_item_new_with_label (menu_label); menu_item = gtk_menu_item_new_with_label (menu_label);
g_free (menu_label); g_free (menu_label);
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_switch_views_callback),
G_CALLBACK (view_as_menu_switch_views_callback), window, 0);
window);
g_object_set_data (G_OBJECT (menu_item), g_object_set_data (G_OBJECT (menu_item), "viewer index", GINT_TO_POINTER (index));
"viewer index",
GINT_TO_POINTER (index));
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
@ -1382,10 +1382,8 @@ load_view_as_menus_callback (NautilusFile *file,
/* Add "View as..." extra bonus choice. */ /* Add "View as..." extra bonus choice. */
menu_item = gtk_menu_item_new_with_label (_("View as...")); menu_item = gtk_menu_item_new_with_label (_("View as..."));
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_choose_view_callback), window, 0);
G_CALLBACK (view_as_menu_choose_view_callback),
window);
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item);

View file

@ -572,11 +572,10 @@ nautilus_window_constructed (NautilusWindow *window)
window->navigation_bar = nautilus_switchable_navigation_bar_new (window); window->navigation_bar = nautilus_switchable_navigation_bar_new (window);
gtk_widget_show (GTK_WIDGET (window->navigation_bar)); gtk_widget_show (GTK_WIDGET (window->navigation_bar));
g_signal_connect (window->navigation_bar, "location_changed", g_signal_connect_object (window->navigation_bar, "location_changed",
G_CALLBACK (navigation_bar_location_changed_callback), window); G_CALLBACK (navigation_bar_location_changed_callback), window, 0);
g_signal_connect_object (window->navigation_bar, "mode_changed",
g_signal_connect (window->navigation_bar, "mode_changed", G_CALLBACK (navigation_bar_mode_changed_callback), window, 0);
G_CALLBACK (navigation_bar_mode_changed_callback), window);
gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar, gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar,
TRUE, TRUE, GNOME_PAD_SMALL); TRUE, TRUE, GNOME_PAD_SMALL);
@ -600,14 +599,18 @@ nautilus_window_constructed (NautilusWindow *window)
* It gets shown later, if the view-frame contains something zoomable. * It gets shown later, if the view-frame contains something zoomable.
*/ */
window->zoom_control = nautilus_zoom_control_new (); window->zoom_control = nautilus_zoom_control_new ();
g_signal_connect_swapped (window->zoom_control, "zoom_in", g_signal_connect_object (window->zoom_control, "zoom_in",
G_CALLBACK (nautilus_window_zoom_in), window); G_CALLBACK (nautilus_window_zoom_in),
g_signal_connect_swapped (window->zoom_control, "zoom_out", window, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_window_zoom_out), window); g_signal_connect_object (window->zoom_control, "zoom_out",
g_signal_connect_swapped (window->zoom_control, "zoom_to_level", G_CALLBACK (nautilus_window_zoom_out),
G_CALLBACK (nautilus_window_zoom_to_level), window); window, G_CONNECT_SWAPPED);
g_signal_connect_swapped (window->zoom_control, "zoom_to_fit", g_signal_connect_object (window->zoom_control, "zoom_to_level",
G_CALLBACK (nautilus_window_zoom_to_fit), window); G_CALLBACK (nautilus_window_zoom_to_level),
window, G_CONNECT_SWAPPED);
g_signal_connect_object (window->zoom_control, "zoom_to_fit",
G_CALLBACK (nautilus_window_zoom_to_fit),
window, G_CONNECT_SWAPPED);
gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0);
gtk_widget_show (location_bar_box); gtk_widget_show (location_bar_box);
@ -626,8 +629,8 @@ nautilus_window_constructed (NautilusWindow *window)
/* set up the sidebar */ /* set up the sidebar */
window->sidebar = nautilus_sidebar_new (); window->sidebar = nautilus_sidebar_new ();
gtk_widget_show (GTK_WIDGET (window->sidebar)); gtk_widget_show (GTK_WIDGET (window->sidebar));
g_signal_connect (window->sidebar, "location_changed", g_signal_connect_object (window->sidebar, "location_changed",
G_CALLBACK (go_to_callback), window); G_CALLBACK (go_to_callback), window, 0);
gtk_paned_pack1 (GTK_PANED (window->content_hbox), gtk_paned_pack1 (GTK_PANED (window->content_hbox),
GTK_WIDGET (window->sidebar), GTK_WIDGET (window->sidebar),
FALSE, TRUE); FALSE, TRUE);
@ -1045,14 +1048,11 @@ create_view_as_menu_item (NautilusWindow *window,
menu_item = gtk_menu_item_new_with_label (menu_label); menu_item = gtk_menu_item_new_with_label (menu_label);
g_free (menu_label); g_free (menu_label);
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_switch_views_callback),
G_CALLBACK (view_as_menu_switch_views_callback), window, 0);
window);
g_object_set_data (G_OBJECT (menu_item), g_object_set_data (G_OBJECT (menu_item), "viewer index", GINT_TO_POINTER (index));
"viewer index",
GINT_TO_POINTER (index));
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
@ -1382,10 +1382,8 @@ load_view_as_menus_callback (NautilusFile *file,
/* Add "View as..." extra bonus choice. */ /* Add "View as..." extra bonus choice. */
menu_item = gtk_menu_item_new_with_label (_("View as...")); menu_item = gtk_menu_item_new_with_label (_("View as..."));
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_choose_view_callback), window, 0);
G_CALLBACK (view_as_menu_choose_view_callback),
window);
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item);

View file

@ -535,8 +535,8 @@ preferences_dialog_populate_themes_group (EelPreferencesGroup *group)
/* Have the custom preferences item tell us when its time to update the displayed /* Have the custom preferences item tell us when its time to update the displayed
* with with the one stored in preferences * with with the one stored in preferences
*/ */
g_signal_connect (item, "custom_update_displayed_value", g_signal_connect_object (item, "custom_update_displayed_value",
G_CALLBACK (update_theme_selector_displayed_value_callback), child); G_CALLBACK (update_theme_selector_displayed_value_callback), child, 0);
update_theme_selector_displayed_value_callback (EEL_PREFERENCES_ITEM (item), child); update_theme_selector_displayed_value_callback (EEL_PREFERENCES_ITEM (item), child);
} }

View file

@ -197,10 +197,8 @@ dump_dialog_new (const char *title)
dump_dialog->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); dump_dialog->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
eel_gtk_window_set_up_close_accelerator eel_gtk_window_set_up_close_accelerator
(GTK_WINDOW (dump_dialog->window)); (GTK_WINDOW (dump_dialog->window));
g_signal_connect (dump_dialog->window, g_signal_connect (dump_dialog->window, "delete_event",
"delete_event", G_CALLBACK (window_delete_event), dump_dialog->window);
G_CALLBACK (window_delete_event),
dump_dialog->window);
gtk_widget_set_usize (dump_dialog->window, 700, 700); gtk_widget_set_usize (dump_dialog->window, 700, 700);
@ -214,15 +212,10 @@ dump_dialog_new (const char *title)
gtk_widget_set_sensitive (print_button, FALSE); gtk_widget_set_sensitive (print_button, FALSE);
gtk_widget_set_sensitive (save_button, FALSE); gtk_widget_set_sensitive (save_button, FALSE);
g_signal_connect (print_button, g_signal_connect_object (print_button, "clicked",
"clicked", G_CALLBACK (window_print_button_callback), dump_dialog, 0);
G_CALLBACK (window_print_button_callback), g_signal_connect_object (save_button, "clicked",
dump_dialog); G_CALLBACK (window_save_button_callback), dump_dialog, 0);
g_signal_connect (save_button,
"clicked",
G_CALLBACK (window_save_button_callback),
dump_dialog);
gtk_container_add (GTK_CONTAINER (dump_dialog->window), main_box); gtk_container_add (GTK_CONTAINER (dump_dialog->window), main_box);

View file

@ -355,7 +355,7 @@ nautilus_property_browser_init (GtkObject *object)
gtk_widget_show(temp_button); gtk_widget_show(temp_button);
gtk_box_pack_end (GTK_BOX(property_browser->details->bottom_box), temp_button, FALSE, FALSE, GNOME_PAD_SMALL); gtk_box_pack_end (GTK_BOX(property_browser->details->bottom_box), temp_button, FALSE, FALSE, GNOME_PAD_SMALL);
g_signal_connect(temp_button, "clicked", G_CALLBACK (done_button_callback), property_browser); g_signal_connect_object (temp_button, "clicked", G_CALLBACK (done_button_callback), property_browser, 0);
/* create the "add new" button */ /* create the "add new" button */
property_browser->details->add_button = gtk_button_new (); property_browser->details->add_button = gtk_button_new ();
@ -369,8 +369,8 @@ nautilus_property_browser_init (GtkObject *object)
gtk_box_pack_end (GTK_BOX(property_browser->details->bottom_box), gtk_box_pack_end (GTK_BOX(property_browser->details->bottom_box),
property_browser->details->add_button, FALSE, FALSE, GNOME_PAD_SMALL); property_browser->details->add_button, FALSE, FALSE, GNOME_PAD_SMALL);
g_signal_connect (property_browser->details->add_button, "clicked", g_signal_connect_object (property_browser->details->add_button, "clicked",
G_CALLBACK (add_new_button_callback), property_browser); G_CALLBACK (add_new_button_callback), property_browser, 0);
/* now create the "remove" button */ /* now create the "remove" button */
property_browser->details->remove_button = gtk_button_new(); property_browser->details->remove_button = gtk_button_new();
@ -388,10 +388,8 @@ nautilus_property_browser_init (GtkObject *object)
FALSE, FALSE,
GNOME_PAD_SMALL); GNOME_PAD_SMALL);
g_signal_connect (property_browser->details->remove_button, g_signal_connect_object (property_browser->details->remove_button, "clicked",
"clicked", G_CALLBACK (remove_button_callback), property_browser, 0);
G_CALLBACK (remove_button_callback),
property_browser);
/* now create the actual content, with the category pane and the content frame */ /* now create the actual content, with the category pane and the content frame */
@ -409,12 +407,9 @@ nautilus_property_browser_init (GtkObject *object)
property_browser); property_browser);
g_signal_connect (property_browser, "delete_event", g_signal_connect (property_browser, "delete_event",
G_CALLBACK (nautilus_property_browser_delete_event_callback), G_CALLBACK (nautilus_property_browser_delete_event_callback), NULL);
NULL);
g_signal_connect (property_browser, "hide", g_signal_connect (property_browser, "hide",
G_CALLBACK (nautilus_property_browser_hide_callback), G_CALLBACK (nautilus_property_browser_hide_callback), NULL);
NULL);
/* initially, display the top level */ /* initially, display the top level */
nautilus_property_browser_set_path(property_browser, BROWSER_CATEGORIES_FILE_NAME); nautilus_property_browser_set_path(property_browser, BROWSER_CATEGORIES_FILE_NAME);
@ -1191,8 +1186,8 @@ show_color_selection_window (GtkWidget *widget, gpointer *data)
eel_add_weak_pointer (&property_browser->details->dialog); eel_add_weak_pointer (&property_browser->details->dialog);
g_signal_connect (property_browser->details->dialog, "clicked", g_signal_connect_object (property_browser->details->dialog, "clicked",
G_CALLBACK (add_color_to_browser), property_browser); G_CALLBACK (add_color_to_browser), property_browser, 0);
gtk_window_set_position (GTK_WINDOW (property_browser->details->dialog), GTK_WIN_POS_MOUSE); gtk_window_set_position (GTK_WINDOW (property_browser->details->dialog), GTK_WIN_POS_MOUSE);
gtk_widget_show (GTK_WIDGET(property_browser->details->dialog)); gtk_widget_show (GTK_WIDGET(property_browser->details->dialog));
@ -1217,10 +1212,10 @@ add_new_color (NautilusPropertyBrowser *property_browser)
eel_add_weak_pointer (&property_browser->details->dialog); eel_add_weak_pointer (&property_browser->details->dialog);
g_signal_connect (color_dialog->ok_button, "clicked", g_signal_connect_object (color_dialog->ok_button, "clicked",
G_CALLBACK (show_color_selection_window), property_browser); G_CALLBACK (show_color_selection_window), property_browser, 0);
g_signal_connect_swapped (color_dialog->cancel_button, "clicked", g_signal_connect_object (color_dialog->cancel_button, "clicked",
G_CALLBACK (gtk_widget_destroy), color_dialog); G_CALLBACK (gtk_widget_destroy), color_dialog, G_CONNECT_SWAPPED);
gtk_widget_hide(color_dialog->help_button); gtk_widget_hide(color_dialog->help_button);
gtk_window_set_position (GTK_WINDOW (color_dialog), GTK_WIN_POS_MOUSE); gtk_window_set_position (GTK_WINDOW (color_dialog), GTK_WIN_POS_MOUSE);
@ -1382,8 +1377,8 @@ add_new_emblem (NautilusPropertyBrowser *property_browser)
eel_add_weak_pointer (&property_browser->details->dialog); eel_add_weak_pointer (&property_browser->details->dialog);
g_signal_connect (property_browser->details->dialog, "clicked", g_signal_connect_object (property_browser->details->dialog, "clicked",
G_CALLBACK (emblem_dialog_clicked), property_browser); G_CALLBACK (emblem_dialog_clicked), property_browser, 0);
gtk_window_set_position (GTK_WINDOW (property_browser->details->dialog), GTK_WIN_POS_MOUSE); gtk_window_set_position (GTK_WINDOW (property_browser->details->dialog), GTK_WIN_POS_MOUSE);
gtk_widget_show (GTK_WIDGET(property_browser->details->dialog)); gtk_widget_show (GTK_WIDGET(property_browser->details->dialog));
} }
@ -1870,11 +1865,9 @@ make_category_link (NautilusPropertyBrowser *property_browser,
/* add a signal to handle clicks */ /* add a signal to handle clicks */
g_object_set_data (G_OBJECT(button), "user_data", property_browser); g_object_set_data (G_OBJECT(button), "user_data", property_browser);
g_signal_connect_data g_signal_connect_data
(button, (button, "clicked",
"clicked",
G_CALLBACK (category_clicked_callback), G_CALLBACK (category_clicked_callback),
g_strdup (name), g_strdup (name), (GClosureNotify) g_free, 0);
(GClosureNotify)g_free, 0);
} }
/* update_contents populates the property browser with information specified by the path and other state variables */ /* update_contents populates the property browser with information specified by the path and other state variables */
@ -1919,10 +1912,8 @@ nautilus_property_browser_update_contents (NautilusPropertyBrowser *property_bro
eel_wrap_table_set_y_spacing (EEL_WRAP_TABLE (property_browser->details->content_table), eel_wrap_table_set_y_spacing (EEL_WRAP_TABLE (property_browser->details->content_table),
IMAGE_TABLE_Y_SPACING); IMAGE_TABLE_Y_SPACING);
g_signal_connect (property_browser->details->content_table, g_signal_connect_object (property_browser->details->content_table, "child_pressed",
"child_pressed", G_CALLBACK (element_clicked_callback), property_browser, 0);
G_CALLBACK (element_clicked_callback),
property_browser);
gtk_container_add(GTK_CONTAINER(viewport), property_browser->details->content_table); gtk_container_add(GTK_CONTAINER(viewport), property_browser->details->content_table);
gtk_container_add (GTK_CONTAINER (property_browser->details->content_frame), viewport); gtk_container_add (GTK_CONTAINER (property_browser->details->content_frame), viewport);

View file

@ -233,8 +233,6 @@ nautilus_search_bar_criterion_destroy (GtkObject *object)
criterion = NAUTILUS_SEARCH_BAR_CRITERION (object); criterion = NAUTILUS_SEARCH_BAR_CRITERION (object);
/* FIXME bugzilla.gnome.org 42437: need more freeage */ /* FIXME bugzilla.gnome.org 42437: need more freeage */
g_signal_handlers_disconnect_by_func (nautilus_signaller_get_current (),
G_CALLBACK (emblems_changed_callback), criterion);
/* nautilus_undo_editable_set_undo_key (GTK_EDITABLE (criterion->details->value_entry), FALSE); /* nautilus_undo_editable_set_undo_key (GTK_EDITABLE (criterion->details->value_entry), FALSE);
nautilus_undo_tear_down_nautilus_entry_for_undo (criterion->details->value_entry); nautilus_undo_tear_down_nautilus_entry_for_undo (criterion->details->value_entry);
*/ */
@ -297,10 +295,10 @@ nautilus_search_bar_criterion_new_from_values (NautilusSearchBarCriterionType ty
details->bar = bar; details->bar = bar;
details->box = gtk_hwrap_box_new (FALSE); details->box = gtk_hwrap_box_new (FALSE);
g_signal_connect (details->box, "need_reallocation", g_signal_connect_object (details->box, "need_reallocation",
G_CALLBACK (queue_bar_resize_callback), bar); G_CALLBACK (queue_bar_resize_callback), bar, 0);
g_signal_connect (nautilus_signaller_get_current (), "emblems_changed", g_signal_connect_object (nautilus_signaller_get_current (), "emblems_changed",
G_CALLBACK (emblems_changed_callback), criterion); G_CALLBACK (emblems_changed_callback), criterion, 0);
search_criteria_option_menu = gtk_option_menu_new (); search_criteria_option_menu = gtk_option_menu_new ();
@ -313,8 +311,8 @@ nautilus_search_bar_criterion_new_from_values (NautilusSearchBarCriterionType ty
g_free (context_stripped_criteria_title); g_free (context_stripped_criteria_title);
g_object_set_data (G_OBJECT(item), "type", GINT_TO_POINTER(i)); g_object_set_data (G_OBJECT(item), "type", GINT_TO_POINTER(i));
g_signal_connect (item, "activate", g_signal_connect_object (item, "activate",
G_CALLBACK (criterion_type_changed_callback), criterion); G_CALLBACK (criterion_type_changed_callback), criterion, 0);
gtk_menu_shell_append (GTK_MENU_SHELL (search_criteria_menu), gtk_menu_shell_append (GTK_MENU_SHELL (search_criteria_menu),
item); item);
gtk_widget_show (item); gtk_widget_show (item);
@ -349,14 +347,12 @@ nautilus_search_bar_criterion_new_from_values (NautilusSearchBarCriterionType ty
don't need a date, like "yesterday" */ don't need a date, like "yesterday" */
if (details->type == NAUTILUS_DATE_MODIFIED_SEARCH_CRITERION) { if (details->type == NAUTILUS_DATE_MODIFIED_SEARCH_CRITERION) {
if (modified_relation_should_show_value (i)) { if (modified_relation_should_show_value (i)) {
g_signal_connect (item, "activate", g_signal_connect_object (item, "activate",
G_CALLBACK (show_date_widget), G_CALLBACK (show_date_widget), criterion, 0);
criterion);
} }
else { else {
g_signal_connect (item, "activate", g_signal_connect_object (item, "activate",
G_CALLBACK (hide_date_widget), G_CALLBACK (hide_date_widget), criterion, 0);
criterion);
} }
} }
gtk_menu_shell_append (GTK_MENU_SHELL (relation_menu), gtk_menu_shell_append (GTK_MENU_SHELL (relation_menu),
@ -712,8 +708,8 @@ nautilus_search_bar_criterion_update_valid_criteria_choices (NautilusSearchBarCr
g_object_set_data (G_OBJECT(item), "type", GINT_TO_POINTER(i)); g_object_set_data (G_OBJECT(item), "type", GINT_TO_POINTER(i));
g_signal_connect (item, "activate", g_signal_connect_object (item, "activate",
G_CALLBACK (criterion_type_changed_callback), criterion); G_CALLBACK (criterion_type_changed_callback), criterion, 0);
gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), gtk_menu_shell_append (GTK_MENU_SHELL (new_menu),
item); item);
gtk_widget_show (item); gtk_widget_show (item);

View file

@ -84,16 +84,18 @@ static const char *default_font_name;
struct NautilusSidebarTitleDetails { struct NautilusSidebarTitleDetails {
NautilusFile *file; NautilusFile *file;
guint file_changed_connection; guint file_changed_connection;
gboolean monitoring_count;
char *title_text; char *title_text;
GtkWidget *icon; GtkWidget *icon;
GtkWidget *title_label; GtkWidget *title_label;
GtkWidget *more_info_label; GtkWidget *more_info_label;
GtkWidget *emblem_box; GtkWidget *emblem_box;
GtkWidget *notes; GtkWidget *notes;
int shadow_offset; int shadow_offset;
gboolean determined_icon; gboolean determined_icon;
}; };
EEL_CLASS_BOILERPLATE (NautilusSidebarTitle, nautilus_sidebar_title, gtk_vbox_get_type ()) EEL_CLASS_BOILERPLATE (NautilusSidebarTitle, nautilus_sidebar_title, gtk_vbox_get_type ())
@ -129,11 +131,8 @@ realize_callback (NautilusSidebarTitle *sidebar_title)
g_return_if_fail (background != NULL); g_return_if_fail (background != NULL);
g_signal_connect_object (background, g_signal_connect_object (background, "appearance_changed",
"appearance_changed", G_CALLBACK (appearance_changed_callback), sidebar_title, 0);
G_CALLBACK (appearance_changed_callback),
sidebar_title,
0);
} }
static void static void
@ -166,7 +165,7 @@ nautilus_sidebar_title_init (NautilusSidebarTitle *sidebar_title)
/* Register to find out about icon theme changes */ /* Register to find out about icon theme changes */
g_signal_connect_object (nautilus_icon_factory_get (), "icons_changed", g_signal_connect_object (nautilus_icon_factory_get (), "icons_changed",
G_CALLBACK (update_icon), G_OBJECT (sidebar_title), G_CONNECT_SWAPPED); G_CALLBACK (update_icon), sidebar_title, G_CONNECT_SWAPPED);
g_signal_connect (sidebar_title, "realize", g_signal_connect (sidebar_title, "realize",
G_CALLBACK (realize_callback), NULL); G_CALLBACK (realize_callback), NULL);
@ -707,6 +706,44 @@ nautilus_sidebar_title_set_text (NautilusSidebarTitle *sidebar_title,
update_title (sidebar_title); update_title (sidebar_title);
} }
static gboolean
item_count_ready (NautilusSidebarTitle *sidebar_title)
{
return sidebar_title->details->file != NULL
&& nautilus_file_get_directory_item_count
(sidebar_title->details->file, NULL, NULL) != 0;
}
static void
monitor_add (NautilusSidebarTitle *sidebar_title)
{
GList *attributes;
/* Monitor the things needed to get the right icon. Don't
* monitor a directory's item count at first even though the
* "size" attribute is based on that, because the main view
* will get it for us in most cases, and in other cases it's
* OK to not show the size -- if we did monitor it, we'd be in
* a race with the main view and could cause it to have to
* load twice. Once we have a size, though, we want to monitor
* the size to guarantee it stays up to date.
*/
sidebar_title->details->monitoring_count = item_count_ready (sidebar_title);
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA);
if (sidebar_title->details->monitoring_count) {
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
}
nautilus_file_monitor_add (sidebar_title->details->file, sidebar_title, attributes);
g_list_free (attributes);
}
static void static void
update_all (NautilusSidebarTitle *sidebar_title) update_all (NautilusSidebarTitle *sidebar_title)
{ {
@ -718,6 +755,12 @@ update_all (NautilusSidebarTitle *sidebar_title)
update_emblems (sidebar_title); update_emblems (sidebar_title);
update_notes (sidebar_title); update_notes (sidebar_title);
/* Redo monitor once the count is ready. */
if (!sidebar_title->details->monitoring_count && item_count_ready (sidebar_title)) {
nautilus_file_monitor_remove (sidebar_title->details->file, sidebar_title);
monitor_add (sidebar_title);
}
} }
void void
@ -725,8 +768,6 @@ nautilus_sidebar_title_set_file (NautilusSidebarTitle *sidebar_title,
NautilusFile *file, NautilusFile *file,
const char *initial_text) const char *initial_text)
{ {
GList *attributes;
if (file != sidebar_title->details->file) { if (file != sidebar_title->details->file) {
release_file (sidebar_title); release_file (sidebar_title);
sidebar_title->details->file = file; sidebar_title->details->file = file;
@ -736,24 +777,10 @@ nautilus_sidebar_title_set_file (NautilusSidebarTitle *sidebar_title,
/* attach file */ /* attach file */
if (file != NULL) { if (file != NULL) {
sidebar_title->details->file_changed_connection = sidebar_title->details->file_changed_connection =
g_signal_connect_swapped (sidebar_title->details->file, g_signal_connect_object
"changed", (sidebar_title->details->file, "changed",
G_CALLBACK (update_all), G_CALLBACK (update_all), sidebar_title, G_CONNECT_SWAPPED);
sidebar_title); monitor_add (sidebar_title);
/* Monitor the things needed to get the right
* icon. Don't monitor a directory's item
* count even though the "size" attribute is
* based on that, because the main view will
* get it for us in most cases, and in other
* cases it's OK to now show the size.
*/
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA);
nautilus_file_monitor_add (sidebar_title->details->file, sidebar_title,
attributes);
g_list_free (attributes);
} }
} }

View file

@ -84,7 +84,7 @@ struct NautilusSidebarDetails {
gboolean has_buttons; gboolean has_buttons;
char *uri; char *uri;
NautilusFile *file; NautilusFile *file;
gulong file_changed_connection; guint file_changed_connection;
char *default_background_color; char *default_background_color;
char *default_background_image; char *default_background_image;
int selected_index; int selected_index;
@ -342,8 +342,6 @@ nautilus_sidebar_finalize (GObject *object)
sidebar = NAUTILUS_SIDEBAR (object); sidebar = NAUTILUS_SIDEBAR (object);
if (sidebar->details->file != NULL) { if (sidebar->details->file != NULL) {
g_signal_handler_disconnect (sidebar->details->file,
sidebar->details->file_changed_connection);
nautilus_file_monitor_remove (sidebar->details->file, sidebar); nautilus_file_monitor_remove (sidebar->details->file, sidebar);
nautilus_file_unref (sidebar->details->file); nautilus_file_unref (sidebar->details->file);
} }
@ -509,17 +507,13 @@ sidebar_for_each_sidebar_panel (const char *name,
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
g_object_set_data (G_OBJECT (menu_item), "user_data", data->sidebar); g_object_set_data (G_OBJECT (menu_item), "user_data", data->sidebar);
gtk_menu_shell_append (GTK_MENU_SHELL (data->menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (data->menu), menu_item);
g_signal_connect_data (menu_item, g_signal_connect_data (menu_item, "activate",
"activate",
G_CALLBACK (toggle_sidebar_panel), G_CALLBACK (toggle_sidebar_panel),
g_strdup (iid), g_strdup (iid), (GClosureNotify) g_free, 0);
(GClosureNotify)g_free,
0);
g_object_set_data_full (G_OBJECT (menu_item), g_object_set_data_full (G_OBJECT (menu_item),
"nautilus-sidebar/preference-key", "nautilus-sidebar/preference-key",
g_strdup (preference_key), g_strdup (preference_key), g_free);
g_free);
} }
/* utility routine to add a menu item for each potential sidebar panel */ /* utility routine to add a menu item for each potential sidebar panel */
@ -574,8 +568,8 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
gtk_widget_set_sensitive (menu_item, has_background); gtk_widget_set_sensitive (menu_item, has_background);
g_signal_connect (menu_item, "activate", g_signal_connect_object (menu_item, "activate",
G_CALLBACK (reset_background_callback), sidebar); G_CALLBACK (reset_background_callback), sidebar, 0);
/* add a separator */ /* add a separator */
menu_item = gtk_menu_item_new (); menu_item = gtk_menu_item_new ();
@ -944,8 +938,8 @@ nautilus_sidebar_add_panel (NautilusSidebar *sidebar, NautilusViewFrame *panel)
gtk_widget_show (label); gtk_widget_show (label);
g_signal_connect (panel, "view_loaded", g_signal_connect_object (panel, "view_loaded",
G_CALLBACK (view_loaded_callback), sidebar); G_CALLBACK (view_loaded_callback), sidebar, 0);
gtk_notebook_append_page (GTK_NOTEBOOK (sidebar->details->notebook), gtk_notebook_append_page (GTK_NOTEBOOK (sidebar->details->notebook),
GTK_WIDGET (panel), label); GTK_WIDGET (panel), label);
@ -1398,7 +1392,7 @@ add_command_buttons (NautilusSidebar *sidebar, GList *application_list)
/* Catch-all button after all the others. */ /* Catch-all button after all the others. */
temp_button = gtk_button_new_with_label (_("Open with...")); temp_button = gtk_button_new_with_label (_("Open with..."));
g_signal_connect (temp_button, "clicked", g_signal_connect (temp_button, "clicked",
G_CALLBACK (open_with_callback), NULL); G_CALLBACK (open_with_callback), NULL);
g_object_set_data (G_OBJECT (temp_button), "user_data", sidebar); g_object_set_data (G_OBJECT (temp_button), "user_data", sidebar);
gtk_widget_show (temp_button); gtk_widget_show (temp_button);
gtk_box_pack_start (GTK_BOX (sidebar->details->button_box), gtk_box_pack_start (GTK_BOX (sidebar->details->button_box),
@ -1554,14 +1548,10 @@ nautilus_sidebar_update_appearance (NautilusSidebar *sidebar)
background = eel_get_widget_background (GTK_WIDGET (sidebar)); background = eel_get_widget_background (GTK_WIDGET (sidebar));
if (!sidebar->details->background_connected) { if (!sidebar->details->background_connected) {
sidebar->details->background_connected = TRUE; sidebar->details->background_connected = TRUE;
g_signal_connect (background, g_signal_connect_object (background,"settings_changed",
"settings_changed", G_CALLBACK (background_settings_changed_callback), sidebar, 0);
G_CALLBACK (background_settings_changed_callback), g_signal_connect_object (background, "reset",
sidebar); G_CALLBACK (background_reset_callback), sidebar, 0);
g_signal_connect (background,
"reset",
G_CALLBACK (background_reset_callback),
sidebar);
} }
/* Set up the background color and image from the metadata. */ /* Set up the background color and image from the metadata. */
@ -1650,7 +1640,6 @@ nautilus_sidebar_set_uri (NautilusSidebar *sidebar,
if (sidebar->details->file != NULL) { if (sidebar->details->file != NULL) {
g_signal_handler_disconnect (sidebar->details->file, g_signal_handler_disconnect (sidebar->details->file,
sidebar->details->file_changed_connection); sidebar->details->file_changed_connection);
nautilus_file_monitor_remove (sidebar->details->file, sidebar); nautilus_file_monitor_remove (sidebar->details->file, sidebar);
} }
@ -1662,10 +1651,9 @@ nautilus_sidebar_set_uri (NautilusSidebar *sidebar,
sidebar->details->file = file; sidebar->details->file = file;
sidebar->details->file_changed_connection = sidebar->details->file_changed_connection =
g_signal_connect_swapped (sidebar->details->file, g_signal_connect_object (sidebar->details->file, "changed",
"changed", G_CALLBACK (background_metadata_changed_callback),
G_CALLBACK (background_metadata_changed_callback), sidebar, G_CONNECT_SWAPPED);
sidebar);
attributes = nautilus_mime_actions_get_minimum_file_attributes (); attributes = nautilus_mime_actions_get_minimum_file_attributes ();
nautilus_file_monitor_add (sidebar->details->file, sidebar, attributes); nautilus_file_monitor_add (sidebar->details->file, sidebar, attributes);

View file

@ -132,17 +132,15 @@ nautilus_simple_search_bar_new (NautilusWindow *window)
nautilus_window_get_ui_container (window), nautilus_window_get_ui_container (window),
TRUE); TRUE);
g_signal_connect_swapped (bar->details->entry, "activate", g_signal_connect_object (bar->details->entry, "activate",
G_CALLBACK (gtk_widget_activate), G_CALLBACK (gtk_widget_activate), bar->details->find_button, G_CONNECT_SWAPPED);
bar->details->find_button); g_signal_connect_object (bar->details->entry, "changed",
g_signal_connect_swapped (bar->details->entry, "changed", G_CALLBACK (update_simple_find_button_state), bar, G_CONNECT_SWAPPED);
G_CALLBACK (update_simple_find_button_state), bar);
gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (bar->details->entry), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (bar->details->entry), TRUE, TRUE, 0);
g_signal_connect_swapped (bar->details->find_button, "clicked", g_signal_connect_object (bar->details->find_button, "clicked",
G_CALLBACK (nautilus_navigation_bar_location_changed), G_CALLBACK (nautilus_navigation_bar_location_changed), bar, G_CONNECT_SWAPPED);
bar);
gtk_box_pack_start (GTK_BOX (hbox), bar->details->find_button, FALSE, TRUE, 1); gtk_box_pack_start (GTK_BOX (hbox), bar->details->find_button, FALSE, TRUE, 1);
update_simple_find_button_state (bar); update_simple_find_button_state (bar);

View file

@ -572,11 +572,10 @@ nautilus_window_constructed (NautilusWindow *window)
window->navigation_bar = nautilus_switchable_navigation_bar_new (window); window->navigation_bar = nautilus_switchable_navigation_bar_new (window);
gtk_widget_show (GTK_WIDGET (window->navigation_bar)); gtk_widget_show (GTK_WIDGET (window->navigation_bar));
g_signal_connect (window->navigation_bar, "location_changed", g_signal_connect_object (window->navigation_bar, "location_changed",
G_CALLBACK (navigation_bar_location_changed_callback), window); G_CALLBACK (navigation_bar_location_changed_callback), window, 0);
g_signal_connect_object (window->navigation_bar, "mode_changed",
g_signal_connect (window->navigation_bar, "mode_changed", G_CALLBACK (navigation_bar_mode_changed_callback), window, 0);
G_CALLBACK (navigation_bar_mode_changed_callback), window);
gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar, gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar,
TRUE, TRUE, GNOME_PAD_SMALL); TRUE, TRUE, GNOME_PAD_SMALL);
@ -600,14 +599,18 @@ nautilus_window_constructed (NautilusWindow *window)
* It gets shown later, if the view-frame contains something zoomable. * It gets shown later, if the view-frame contains something zoomable.
*/ */
window->zoom_control = nautilus_zoom_control_new (); window->zoom_control = nautilus_zoom_control_new ();
g_signal_connect_swapped (window->zoom_control, "zoom_in", g_signal_connect_object (window->zoom_control, "zoom_in",
G_CALLBACK (nautilus_window_zoom_in), window); G_CALLBACK (nautilus_window_zoom_in),
g_signal_connect_swapped (window->zoom_control, "zoom_out", window, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_window_zoom_out), window); g_signal_connect_object (window->zoom_control, "zoom_out",
g_signal_connect_swapped (window->zoom_control, "zoom_to_level", G_CALLBACK (nautilus_window_zoom_out),
G_CALLBACK (nautilus_window_zoom_to_level), window); window, G_CONNECT_SWAPPED);
g_signal_connect_swapped (window->zoom_control, "zoom_to_fit", g_signal_connect_object (window->zoom_control, "zoom_to_level",
G_CALLBACK (nautilus_window_zoom_to_fit), window); G_CALLBACK (nautilus_window_zoom_to_level),
window, G_CONNECT_SWAPPED);
g_signal_connect_object (window->zoom_control, "zoom_to_fit",
G_CALLBACK (nautilus_window_zoom_to_fit),
window, G_CONNECT_SWAPPED);
gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0);
gtk_widget_show (location_bar_box); gtk_widget_show (location_bar_box);
@ -626,8 +629,8 @@ nautilus_window_constructed (NautilusWindow *window)
/* set up the sidebar */ /* set up the sidebar */
window->sidebar = nautilus_sidebar_new (); window->sidebar = nautilus_sidebar_new ();
gtk_widget_show (GTK_WIDGET (window->sidebar)); gtk_widget_show (GTK_WIDGET (window->sidebar));
g_signal_connect (window->sidebar, "location_changed", g_signal_connect_object (window->sidebar, "location_changed",
G_CALLBACK (go_to_callback), window); G_CALLBACK (go_to_callback), window, 0);
gtk_paned_pack1 (GTK_PANED (window->content_hbox), gtk_paned_pack1 (GTK_PANED (window->content_hbox),
GTK_WIDGET (window->sidebar), GTK_WIDGET (window->sidebar),
FALSE, TRUE); FALSE, TRUE);
@ -1045,14 +1048,11 @@ create_view_as_menu_item (NautilusWindow *window,
menu_item = gtk_menu_item_new_with_label (menu_label); menu_item = gtk_menu_item_new_with_label (menu_label);
g_free (menu_label); g_free (menu_label);
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_switch_views_callback),
G_CALLBACK (view_as_menu_switch_views_callback), window, 0);
window);
g_object_set_data (G_OBJECT (menu_item), g_object_set_data (G_OBJECT (menu_item), "viewer index", GINT_TO_POINTER (index));
"viewer index",
GINT_TO_POINTER (index));
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
@ -1382,10 +1382,8 @@ load_view_as_menus_callback (NautilusFile *file,
/* Add "View as..." extra bonus choice. */ /* Add "View as..." extra bonus choice. */
menu_item = gtk_menu_item_new_with_label (_("View as...")); menu_item = gtk_menu_item_new_with_label (_("View as..."));
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_choose_view_callback), window, 0);
G_CALLBACK (view_as_menu_choose_view_callback),
window);
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item);

View file

@ -121,10 +121,8 @@ create_search_bar_if_non_existant (NautilusSwitchableNavigationBar *bar)
bar->details->search_bar = NAUTILUS_SWITCHABLE_SEARCH_BAR (nautilus_switchable_search_bar_new (bar->details->window)); bar->details->search_bar = NAUTILUS_SWITCHABLE_SEARCH_BAR (nautilus_switchable_search_bar_new (bar->details->window));
g_signal_connect_swapped (bar->details->search_bar, g_signal_connect_object (bar->details->search_bar, "location_changed",
"location_changed", G_CALLBACK (nautilus_navigation_bar_location_changed), bar, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_navigation_bar_location_changed),
bar);
gtk_box_pack_start (GTK_BOX (bar->details->hbox), GTK_WIDGET (bar->details->search_bar), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (bar->details->hbox), GTK_WIDGET (bar->details->search_bar), TRUE, TRUE, 0);
} }
@ -144,10 +142,8 @@ nautilus_switchable_navigation_bar_new (NautilusWindow *window)
switchable_navigation_bar->details->window = window; switchable_navigation_bar->details->window = window;
switchable_navigation_bar->details->location_bar = NAUTILUS_LOCATION_BAR (nautilus_location_bar_new (window)); switchable_navigation_bar->details->location_bar = NAUTILUS_LOCATION_BAR (nautilus_location_bar_new (window));
g_signal_connect_swapped (switchable_navigation_bar->details->location_bar, g_signal_connect_object (switchable_navigation_bar->details->location_bar, "location_changed",
"location_changed", G_CALLBACK (nautilus_navigation_bar_location_changed), bar, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_navigation_bar_location_changed),
bar);
gtk_box_pack_start (GTK_BOX (switchable_navigation_bar->details->hbox), gtk_box_pack_start (GTK_BOX (switchable_navigation_bar->details->hbox),
GTK_WIDGET (switchable_navigation_bar->details->location_bar), TRUE, TRUE, 0); GTK_WIDGET (switchable_navigation_bar->details->location_bar), TRUE, TRUE, 0);

View file

@ -133,20 +133,16 @@ nautilus_switchable_search_bar_new (NautilusWindow *window)
bar->complex_search_bar = nautilus_complex_search_bar_new (window); bar->complex_search_bar = nautilus_complex_search_bar_new (window);
bar->simple_search_bar = nautilus_simple_search_bar_new (window); bar->simple_search_bar = nautilus_simple_search_bar_new (window);
g_signal_connect_swapped (bar->complex_search_bar, g_signal_connect_object (bar->complex_search_bar, "location_changed",
"location_changed", G_CALLBACK (nautilus_navigation_bar_location_changed),
G_CALLBACK (nautilus_navigation_bar_location_changed), bar, G_CONNECT_SWAPPED);
bar); g_signal_connect_object (bar->simple_search_bar, "location_changed",
g_signal_connect_swapped (bar->simple_search_bar, G_CALLBACK (nautilus_navigation_bar_location_changed),
"location_changed", bar, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_navigation_bar_location_changed),
bar);
gtk_box_pack_start (GTK_BOX (hbox), bar->complex_search_bar, TRUE, TRUE, gtk_box_pack_start (GTK_BOX (hbox), bar->complex_search_bar, TRUE, TRUE, 0);
0); gtk_box_pack_start (GTK_BOX (hbox), bar->simple_search_bar, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox), bar->simple_search_bar, TRUE, TRUE,
0);
gtk_container_add (GTK_CONTAINER (bar), hbox); gtk_container_add (GTK_CONTAINER (bar), hbox);

View file

@ -55,7 +55,7 @@ struct NautilusThemeSelectorDetails
EelImageChooser *remove_theme_selector; EelImageChooser *remove_theme_selector;
GtkWidget *scrolled_window; GtkWidget *scrolled_window;
GtkWidget *remove_scrolled_window; GtkWidget *remove_scrolled_window;
guint theme_selector_changed_connection; gulong remove_theme_selector_changed_connection;
GtkWindow *parent_window; GtkWindow *parent_window;
guint remove_idle_id; guint remove_idle_id;
}; };
@ -191,15 +191,13 @@ install_theme_button_clicked_callback (GtkWidget *button,
THEME_SELECTOR_DATA_KEY, THEME_SELECTOR_DATA_KEY,
callback_data); callback_data);
g_signal_connect (GTK_FILE_SELECTION (file_selection_dialog)->ok_button, g_signal_connect_object (GTK_FILE_SELECTION (file_selection_dialog)->ok_button, "clicked",
"clicked", G_CALLBACK (file_selection_ok_clicked_callback),
G_CALLBACK (file_selection_ok_clicked_callback), file_selection_dialog, 0);
file_selection_dialog);
g_signal_connect (GTK_FILE_SELECTION (file_selection_dialog)->cancel_button, g_signal_connect_object (GTK_FILE_SELECTION (file_selection_dialog)->cancel_button, "clicked",
"clicked", G_CALLBACK (file_selection_cancel_clicked_callback),
G_CALLBACK (file_selection_cancel_clicked_callback), file_selection_dialog, 0);
file_selection_dialog);
gtk_window_set_position (GTK_WINDOW (file_selection_dialog), GTK_WIN_POS_MOUSE); gtk_window_set_position (GTK_WINDOW (file_selection_dialog), GTK_WIN_POS_MOUSE);
if (theme_selector->details->parent_window != NULL) { if (theme_selector->details->parent_window != NULL) {
@ -288,10 +286,10 @@ remove_theme_selector_idle_callback (gpointer callback_data)
theme_to_remove_position)); theme_to_remove_position));
g_signal_handler_block (theme_selector->details->remove_theme_selector, g_signal_handler_block (theme_selector->details->remove_theme_selector,
theme_selector->details->theme_selector_changed_connection); theme_selector->details->remove_theme_selector_changed_connection);
theme_selector_finish_remove (theme_selector); theme_selector_finish_remove (theme_selector);
g_signal_handler_unblock (theme_selector->details->remove_theme_selector, g_signal_handler_unblock (theme_selector->details->remove_theme_selector,
theme_selector->details->theme_selector_changed_connection); theme_selector->details->remove_theme_selector_changed_connection);
selected_theme = nautilus_theme_selector_get_selected_theme (theme_selector); selected_theme = nautilus_theme_selector_get_selected_theme (theme_selector);
@ -514,22 +512,19 @@ nautilus_theme_selector_instance_init (NautilusThemeSelector *theme_selector)
gtk_box_pack_end (GTK_BOX (alignment_box), button_box, FALSE, FALSE, 2); gtk_box_pack_end (GTK_BOX (alignment_box), button_box, FALSE, FALSE, 2);
theme_selector->details->install_theme_button = gtk_button_new_with_label (_("Add New Theme...")); theme_selector->details->install_theme_button = gtk_button_new_with_label (_("Add New Theme..."));
g_signal_connect (theme_selector->details->install_theme_button, g_signal_connect_object (theme_selector->details->install_theme_button, "clicked",
"clicked", G_CALLBACK (install_theme_button_clicked_callback),
G_CALLBACK (install_theme_button_clicked_callback), theme_selector, 0);
theme_selector);
theme_selector->details->remove_theme_button = gtk_button_new_with_label (_("Remove Theme...")); theme_selector->details->remove_theme_button = gtk_button_new_with_label (_("Remove Theme..."));
g_signal_connect (theme_selector->details->remove_theme_button, g_signal_connect_object (theme_selector->details->remove_theme_button, "clicked",
"clicked", G_CALLBACK (remove_theme_button_clicked_callback),
G_CALLBACK (remove_theme_button_clicked_callback), theme_selector, 0);
theme_selector);
theme_selector->details->cancel_remove_button = gtk_button_new_with_label (_("Cancel Remove")); theme_selector->details->cancel_remove_button = gtk_button_new_with_label (_("Cancel Remove"));
g_signal_connect (theme_selector->details->cancel_remove_button, g_signal_connect_object (theme_selector->details->cancel_remove_button, "clicked",
"clicked", G_CALLBACK (cancel_remove_button_clicked_callback),
G_CALLBACK (cancel_remove_button_clicked_callback), theme_selector, 0);
theme_selector);
gtk_box_pack_start (GTK_BOX (button_box), theme_selector->details->cancel_remove_button, TRUE, FALSE, 0); gtk_box_pack_start (GTK_BOX (button_box), theme_selector->details->cancel_remove_button, TRUE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (button_box), theme_selector->details->install_theme_button, TRUE, FALSE, 4); gtk_box_pack_start (GTK_BOX (button_box), theme_selector->details->install_theme_button, TRUE, FALSE, 4);
@ -557,16 +552,14 @@ nautilus_theme_selector_instance_init (NautilusThemeSelector *theme_selector)
theme_selector_update_remove_theme_button (theme_selector); theme_selector_update_remove_theme_button (theme_selector);
g_signal_connect (theme_selector->details->theme_selector, g_signal_connect_object (theme_selector->details->theme_selector, "selection_changed",
"selection_changed", G_CALLBACK (theme_selector_changed_callback),
G_CALLBACK (theme_selector_changed_callback), theme_selector, 0);
theme_selector);
theme_selector->details->theme_selector_changed_connection = theme_selector->details->remove_theme_selector_changed_connection =
g_signal_connect (theme_selector->details->remove_theme_selector, g_signal_connect_object (theme_selector->details->remove_theme_selector, "selection_changed",
"selection_changed", G_CALLBACK (remove_theme_selector_changed_callback),
G_CALLBACK (remove_theme_selector_changed_callback), theme_selector, 0);
theme_selector);
} }
static void static void

View file

@ -599,9 +599,8 @@ update_for_new_location (NautilusWindow *window)
nautilus_window_set_viewed_file (window, file); nautilus_window_set_viewed_file (window, file);
window->details->viewed_file_seen = !nautilus_file_is_not_yet_confirmed (file); window->details->viewed_file_seen = !nautilus_file_is_not_yet_confirmed (file);
nautilus_file_monitor_add (file, &window->details->viewed_file, NULL); nautilus_file_monitor_add (file, &window->details->viewed_file, NULL);
g_signal_connect (file, "changed", g_signal_connect_object (file, "changed",
G_CALLBACK (viewed_file_changed_callback), G_CALLBACK (viewed_file_changed_callback), window, 0);
window);
nautilus_file_unref (file); nautilus_file_unref (file);
/* Check if we can go up. */ /* Check if we can go up. */

View file

@ -138,11 +138,11 @@ bookmark_holder_new (NautilusBookmark *bookmark,
new_bookmark_holder->prompt_for_removal = is_bookmarks_menu; new_bookmark_holder->prompt_for_removal = is_bookmarks_menu;
new_bookmark_holder->changed_handler_id = new_bookmark_holder->changed_handler_id =
g_signal_connect_swapped (bookmark, "appearance_changed", g_signal_connect_object (bookmark, "appearance_changed",
is_bookmarks_menu is_bookmarks_menu
? G_CALLBACK (schedule_refresh_bookmarks_menu) ? G_CALLBACK (schedule_refresh_bookmarks_menu)
: G_CALLBACK (schedule_refresh_go_menu), : G_CALLBACK (schedule_refresh_go_menu),
window); window, G_CONNECT_SWAPPED);
return new_bookmark_holder; return new_bookmark_holder;
} }
@ -353,10 +353,8 @@ forget_history_if_confirmed (NautilusWindow *window)
GTK_WINDOW (window)); GTK_WINDOW (window));
g_free (prompt); g_free (prompt);
g_signal_connect (dialog, g_signal_connect (dialog, "response",
"response", G_CALLBACK (forget_history_if_yes), NULL);
G_CALLBACK (forget_history_if_yes),
NULL);
gtk_dialog_set_default_response (dialog, GTK_RESPONSE_NO); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_NO);
} }
@ -1151,8 +1149,8 @@ nautilus_window_initialize_menus_part_1 (NautilusWindow *window)
nautilus_window_update_show_hide_menu_items (window); nautilus_window_update_show_hide_menu_items (window);
/* Register to catch Bonobo UI events so we can notice View As changes */ /* Register to catch Bonobo UI events so we can notice View As changes */
g_signal_connect (window->details->shell_ui, "ui_event", g_signal_connect_object (window->details->shell_ui, "ui_event",
G_CALLBACK (nautilus_window_handle_ui_event_callback), window); G_CALLBACK (nautilus_window_handle_ui_event_callback), window, 0);
bonobo_ui_component_thaw (window->details->shell_ui, NULL); bonobo_ui_component_thaw (window->details->shell_ui, NULL);

View file

@ -107,13 +107,11 @@ create_back_or_forward_menu (NautilusWindow *window, gboolean back)
menu_item = nautilus_bookmark_menu_item_new (NAUTILUS_BOOKMARK (list_link->data)); menu_item = nautilus_bookmark_menu_item_new (NAUTILUS_BOOKMARK (list_link->data));
g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index)); g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index));
gtk_widget_show (GTK_WIDGET (menu_item)); gtk_widget_show (GTK_WIDGET (menu_item));
g_signal_connect g_signal_connect_object (menu_item, "activate",
(menu_item, back
"activate", ? G_CALLBACK (activate_back_menu_item_callback)
back : G_CALLBACK (activate_forward_menu_item_callback),
? G_CALLBACK (activate_back_menu_item_callback) window, 0);
: G_CALLBACK (activate_forward_menu_item_callback),
window);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
list_link = g_list_next (list_link); list_link = g_list_next (list_link);
@ -370,14 +368,12 @@ create_back_or_forward_toolbar_item (NautilusWindow *window,
gtk_widget_show (GTK_WIDGET (item)); gtk_widget_show (GTK_WIDGET (item));
button = bonobo_ui_toolbar_button_item_get_button_widget (item); button = bonobo_ui_toolbar_button_item_get_button_widget (item);
g_signal_connect (button, g_signal_connect_object (button, "button_press_event",
"button_press_event", G_CALLBACK (back_or_forward_button_pressed_callback),
G_CALLBACK (back_or_forward_button_pressed_callback), window, 0);
window); g_signal_connect_object (button, "clicked",
g_signal_connect (button, G_CALLBACK (back_or_forward_button_clicked_callback),
"clicked", window, 0);
G_CALLBACK (back_or_forward_button_clicked_callback),
window);
wrapper = bonobo_control_new (GTK_WIDGET (item)); wrapper = bonobo_control_new (GTK_WIDGET (item));
pb = bonobo_property_bag_new ( pb = bonobo_property_bag_new (

View file

@ -572,11 +572,10 @@ nautilus_window_constructed (NautilusWindow *window)
window->navigation_bar = nautilus_switchable_navigation_bar_new (window); window->navigation_bar = nautilus_switchable_navigation_bar_new (window);
gtk_widget_show (GTK_WIDGET (window->navigation_bar)); gtk_widget_show (GTK_WIDGET (window->navigation_bar));
g_signal_connect (window->navigation_bar, "location_changed", g_signal_connect_object (window->navigation_bar, "location_changed",
G_CALLBACK (navigation_bar_location_changed_callback), window); G_CALLBACK (navigation_bar_location_changed_callback), window, 0);
g_signal_connect_object (window->navigation_bar, "mode_changed",
g_signal_connect (window->navigation_bar, "mode_changed", G_CALLBACK (navigation_bar_mode_changed_callback), window, 0);
G_CALLBACK (navigation_bar_mode_changed_callback), window);
gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar, gtk_box_pack_start (GTK_BOX (location_bar_box), window->navigation_bar,
TRUE, TRUE, GNOME_PAD_SMALL); TRUE, TRUE, GNOME_PAD_SMALL);
@ -600,14 +599,18 @@ nautilus_window_constructed (NautilusWindow *window)
* It gets shown later, if the view-frame contains something zoomable. * It gets shown later, if the view-frame contains something zoomable.
*/ */
window->zoom_control = nautilus_zoom_control_new (); window->zoom_control = nautilus_zoom_control_new ();
g_signal_connect_swapped (window->zoom_control, "zoom_in", g_signal_connect_object (window->zoom_control, "zoom_in",
G_CALLBACK (nautilus_window_zoom_in), window); G_CALLBACK (nautilus_window_zoom_in),
g_signal_connect_swapped (window->zoom_control, "zoom_out", window, G_CONNECT_SWAPPED);
G_CALLBACK (nautilus_window_zoom_out), window); g_signal_connect_object (window->zoom_control, "zoom_out",
g_signal_connect_swapped (window->zoom_control, "zoom_to_level", G_CALLBACK (nautilus_window_zoom_out),
G_CALLBACK (nautilus_window_zoom_to_level), window); window, G_CONNECT_SWAPPED);
g_signal_connect_swapped (window->zoom_control, "zoom_to_fit", g_signal_connect_object (window->zoom_control, "zoom_to_level",
G_CALLBACK (nautilus_window_zoom_to_fit), window); G_CALLBACK (nautilus_window_zoom_to_level),
window, G_CONNECT_SWAPPED);
g_signal_connect_object (window->zoom_control, "zoom_to_fit",
G_CALLBACK (nautilus_window_zoom_to_fit),
window, G_CONNECT_SWAPPED);
gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (location_bar_box), window->zoom_control, FALSE, FALSE, 0);
gtk_widget_show (location_bar_box); gtk_widget_show (location_bar_box);
@ -626,8 +629,8 @@ nautilus_window_constructed (NautilusWindow *window)
/* set up the sidebar */ /* set up the sidebar */
window->sidebar = nautilus_sidebar_new (); window->sidebar = nautilus_sidebar_new ();
gtk_widget_show (GTK_WIDGET (window->sidebar)); gtk_widget_show (GTK_WIDGET (window->sidebar));
g_signal_connect (window->sidebar, "location_changed", g_signal_connect_object (window->sidebar, "location_changed",
G_CALLBACK (go_to_callback), window); G_CALLBACK (go_to_callback), window, 0);
gtk_paned_pack1 (GTK_PANED (window->content_hbox), gtk_paned_pack1 (GTK_PANED (window->content_hbox),
GTK_WIDGET (window->sidebar), GTK_WIDGET (window->sidebar),
FALSE, TRUE); FALSE, TRUE);
@ -1045,14 +1048,11 @@ create_view_as_menu_item (NautilusWindow *window,
menu_item = gtk_menu_item_new_with_label (menu_label); menu_item = gtk_menu_item_new_with_label (menu_label);
g_free (menu_label); g_free (menu_label);
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_switch_views_callback),
G_CALLBACK (view_as_menu_switch_views_callback), window, 0);
window);
g_object_set_data (G_OBJECT (menu_item), g_object_set_data (G_OBJECT (menu_item), "viewer index", GINT_TO_POINTER (index));
"viewer index",
GINT_TO_POINTER (index));
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
@ -1382,10 +1382,8 @@ load_view_as_menus_callback (NautilusFile *file,
/* Add "View as..." extra bonus choice. */ /* Add "View as..." extra bonus choice. */
menu_item = gtk_menu_item_new_with_label (_("View as...")); menu_item = gtk_menu_item_new_with_label (_("View as..."));
g_signal_connect (menu_item, g_signal_connect_object (menu_item, "activate",
"activate", G_CALLBACK (view_as_menu_choose_view_callback), window, 0);
G_CALLBACK (view_as_menu_choose_view_callback),
window);
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (new_menu), menu_item);

View file

@ -556,9 +556,8 @@ create_zoom_menu_item (GtkMenu *menu, GtkWidget *widget, float zoom_level,
zoom_level == zoom_control->details->zoom_level); zoom_level == zoom_control->details->zoom_level);
g_object_set_data_full (G_OBJECT (menu_item), "zoom_level", zoom_level_ptr, g_free); g_object_set_data_full (G_OBJECT (menu_item), "zoom_level", zoom_level_ptr, g_free);
g_signal_connect (menu_item, "activate", g_signal_connect_object (menu_item, "activate",
G_CALLBACK (zoom_menu_callback), G_CALLBACK (zoom_menu_callback), zoom_control, 0);
zoom_control);
gtk_widget_show (menu_item); gtk_widget_show (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);

View file

@ -40,8 +40,8 @@ picker_new (const char *name,
string_picker = eel_string_picker_new (); string_picker = eel_string_picker_new ();
eel_caption_set_title_label (EEL_CAPTION (string_picker), name); eel_caption_set_title_label (EEL_CAPTION (string_picker), name);
g_signal_connect (string_picker, "changed", G_CALLBACK (int_picker_changed_callback), g_signal_connect (string_picker, "changed",
(gpointer) name); G_CALLBACK (int_picker_changed_callback), (gpointer) name);
eel_string_picker_set_string_list (EEL_STRING_PICKER (string_picker), entries); eel_string_picker_set_string_list (EEL_STRING_PICKER (string_picker), entries);
eel_string_picker_set_selected_string_index (EEL_STRING_PICKER (string_picker), eel_string_picker_set_selected_string_index (EEL_STRING_PICKER (string_picker),

View file

@ -40,14 +40,16 @@ main (int argc, char* argv[])
gtk_widget_show (scroller); gtk_widget_show (scroller);
#if 0
/* Get rid of default lowered shadow appearance. /* Get rid of default lowered shadow appearance.
* This must be done after the widget is realized, due to * This must be done after the widget is realized, due to
* an apparent bug in gtk_viewport_set_shadow_type. * an apparent bug in gtk_viewport_set_shadow_type.
*/ */
// g_signal_connect (GTK_BIN (scroller->child), g_signal_connect (GTK_BIN (scroller->child),
// "realize", "realize",
// remove_default_viewport_shadow, remove_default_viewport_shadow,
// NULL); NULL);
#endif
/* Use nautilus_customization to make the emblem widgets */ /* Use nautilus_customization to make the emblem widgets */

View file

@ -44,10 +44,8 @@ test_window_new (const char *title, guint border_width)
gtk_window_set_title (GTK_WINDOW (window), title); gtk_window_set_title (GTK_WINDOW (window), title);
} }
g_signal_connect (window, g_signal_connect (window, "delete_event",
"delete_event", G_CALLBACK (test_delete_event), NULL);
G_CALLBACK (test_delete_event),
NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), border_width); gtk_container_set_border_width (GTK_CONTAINER (window), border_width);