diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2010-08-31 02:41:32 +0200 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2010-09-20 17:04:45 +0200 |
commit | 24515b87a91afd32885e07e32e2b4080584673a4 (patch) | |
tree | bca83c7f814809d175371c4bdca6798ad3261262 | |
parent | 42cc7bd181d2f57dbc008bea54a40f02be40ce39 (diff) | |
download | nautilus-24515b87a91afd32885e07e32e2b4080584673a4.tar.gz |
window: add _full() versions of _go_to and _open() methods
These also have a callback to get the result of the operation.
-rw-r--r-- | libnautilus-private/nautilus-window-info.h | 4 | ||||
-rw-r--r-- | libnautilus-private/nautilus-window-slot-info.c | 16 | ||||
-rw-r--r-- | libnautilus-private/nautilus-window-slot-info.h | 15 | ||||
-rw-r--r-- | src/nautilus-window-manage-views.c | 8 | ||||
-rw-r--r-- | src/nautilus-window-slot.h | 11 | ||||
-rw-r--r-- | src/nautilus-window.c | 14 | ||||
-rw-r--r-- | src/nautilus-window.h | 4 |
7 files changed, 56 insertions, 16 deletions
diff --git a/libnautilus-private/nautilus-window-info.h b/libnautilus-private/nautilus-window-info.h index 8ae0fa1d3..d798a7711 100644 --- a/libnautilus-private/nautilus-window-info.h +++ b/libnautilus-private/nautilus-window-info.h @@ -82,6 +82,10 @@ typedef NautilusWindow NautilusWindowInfo; typedef struct _NautilusWindowInfoIface NautilusWindowInfoIface; +typedef void (* NautilusWindowGoToCallback) (NautilusWindow *window, + GError *error, + gpointer user_data); + struct _NautilusWindowInfoIface { GTypeInterface g_iface; diff --git a/libnautilus-private/nautilus-window-slot-info.c b/libnautilus-private/nautilus-window-slot-info.c index 9adff6cbc..8b2f2f4b9 100644 --- a/libnautilus-private/nautilus-window-slot-info.c +++ b/libnautilus-private/nautilus-window-slot-info.c @@ -104,11 +104,13 @@ nautilus_window_slot_info_make_hosting_pane_active (NautilusWindowSlotInfo *slot } void -nautilus_window_slot_info_open_location (NautilusWindowSlotInfo *slot, - GFile *location, - NautilusWindowOpenMode mode, - NautilusWindowOpenFlags flags, - GList *selection) +nautilus_window_slot_info_open_location_full (NautilusWindowSlotInfo *slot, + GFile *location, + NautilusWindowOpenMode mode, + NautilusWindowOpenFlags flags, + GList *selection, + NautilusWindowGoToCallback callback, + gpointer user_data) { g_assert (NAUTILUS_IS_WINDOW_SLOT_INFO (slot)); @@ -116,7 +118,9 @@ nautilus_window_slot_info_open_location (NautilusWindowSlotInfo *slot, location, mode, flags, - selection); + selection, + callback, + user_data); } char * diff --git a/libnautilus-private/nautilus-window-slot-info.h b/libnautilus-private/nautilus-window-slot-info.h index bc4a066fa..5515278d2 100644 --- a/libnautilus-private/nautilus-window-slot-info.h +++ b/libnautilus-private/nautilus-window-slot-info.h @@ -72,18 +72,27 @@ struct _NautilusWindowSlotInfoIface GFile *location, NautilusWindowOpenMode mode, NautilusWindowOpenFlags flags, - GList *selection); + GList *selection, + NautilusWindowGoToCallback callback, + gpointer user_data); void (* make_hosting_pane_active) (NautilusWindowSlotInfo *slot); }; GType nautilus_window_slot_info_get_type (void); NautilusWindowInfo * nautilus_window_slot_info_get_window (NautilusWindowSlotInfo *slot); -void nautilus_window_slot_info_open_location (NautilusWindowSlotInfo *slot, + +#define nautilus_window_slot_info_open_location(slot, location, mode, flags, selection) \ + nautilus_window_slot_info_open_location_full(slot, location, mode, \ + flags, selection, NULL, NULL) + +void nautilus_window_slot_info_open_location_full (NautilusWindowSlotInfo *slot, GFile *location, NautilusWindowOpenMode mode, NautilusWindowOpenFlags flags, - GList *selection); + GList *selection, + NautilusWindowGoToCallback callback, + gpointer user_data); void nautilus_window_slot_info_set_status (NautilusWindowSlotInfo *slot, const char *status); void nautilus_window_slot_info_make_hosting_pane_active (NautilusWindowSlotInfo *slot); diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c index 9d8247232..655ea715b 100644 --- a/src/nautilus-window-manage-views.c +++ b/src/nautilus-window-manage-views.c @@ -656,7 +656,7 @@ nautilus_window_slot_open_location (NautilusWindowSlot *slot, nautilus_window_slot_open_location_full (slot, location, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, - flags, NULL); + flags, NULL, NULL, NULL); } void @@ -673,7 +673,7 @@ nautilus_window_slot_open_location_with_selection (NautilusWindowSlot *slot, } nautilus_window_slot_open_location_full (slot, location, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, - flags, selection); + flags, selection, NULL, NULL); } @@ -694,7 +694,7 @@ nautilus_window_slot_go_home (NautilusWindowSlot *slot, gboolean new_tab) home = g_file_new_for_path (g_get_home_dir ()); nautilus_window_slot_open_location_full (slot, home, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, - flags, NULL); + flags, NULL, NULL, NULL); g_object_unref (home); } @@ -2057,7 +2057,7 @@ nautilus_navigation_window_back_or_forward (NautilusNavigationWindow *window, nautilus_window_slot_open_location_full (slot, location, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB, - NULL); + NULL, NULL, NULL); } else { char *scroll_pos; diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h index 9f95d2026..a7c60fb32 100644 --- a/src/nautilus-window-slot.h +++ b/src/nautilus-window-slot.h @@ -136,7 +136,9 @@ void nautilus_window_slot_open_location_full (NautilusWindowSlot *slot, GFile *location, NautilusWindowOpenMode mode, NautilusWindowOpenFlags flags, - GList *new_selection); + GList *new_selection, + NautilusWindowGoToCallback callback, + gpointer user_data); void nautilus_window_slot_stop_loading (NautilusWindowSlot *slot); void nautilus_window_slot_set_content_view (NautilusWindowSlot *slot, @@ -153,7 +155,12 @@ void nautilus_window_slot_disconnect_content_view (NautilusW #define nautilus_window_slot_go_to(slot,location, new_tab) \ nautilus_window_slot_open_location_full(slot, location, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, \ (new_tab ? NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB : 0), \ - NULL) + NULL, NULL, NULL) + +#define nautilus_window_slot_go_to_full(slot, location, new_tab, callback, user_data) \ + nautilus_window_slot_open_location_full(slot, location, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, \ + (new_tab ? NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB : 0), \ + NULL, callback, user_data) #define nautilus_window_slot_go_to_with_selection(slot,location,new_selection) \ nautilus_window_slot_open_location_with_selection(slot, location, new_selection, FALSE) diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 2f7215f90..eb1b6b51a 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -234,6 +234,17 @@ nautilus_window_go_to (NautilusWindow *window, GFile *location) } void +nautilus_window_go_to_full (NautilusWindow *window, + GFile *location, + NautilusWindowGoToCallback callback, + gpointer user_data) +{ + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + + nautilus_window_slot_go_to_full (window->details->active_pane->active_slot, location, FALSE, callback, user_data); +} + +void nautilus_window_go_to_with_selection (NautilusWindow *window, GFile *location, GList *new_selection) { g_return_if_fail (NAUTILUS_IS_WINDOW (window)); @@ -318,7 +329,8 @@ nautilus_window_go_up (NautilusWindow *window, gboolean close_behind, gboolean n nautilus_window_slot_open_location_full (slot, parent, NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE, flags, - selection); + selection, + NULL, NULL); g_object_unref (parent); diff --git a/src/nautilus-window.h b/src/nautilus-window.h index 491557c67..10751d815 100644 --- a/src/nautilus-window.h +++ b/src/nautilus-window.h @@ -132,6 +132,10 @@ void nautilus_window_disconnect_content_view (NautilusWindow *win void nautilus_window_go_to (NautilusWindow *window, GFile *location); +void nautilus_window_go_to_full (NautilusWindow *window, + GFile *location, + NautilusWindowGoToCallback callback, + gpointer user_data); void nautilus_window_go_to_with_selection (NautilusWindow *window, GFile *location, GList *new_selection); |