summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2010-12-29 17:59:22 +0100
committerCosimo Cecchi <cosimoc@gnome.org>2011-01-11 11:43:55 +0100
commit69c2c9f8c5855a7993f23998cff3ce3eab87fd45 (patch)
tree38173420ca827db0a8f4b44b54f867b60dd1fb47 /src
parenteb178062ec31bf6a877e5bc61f697f85a3f927fe (diff)
downloadnautilus-69c2c9f8c5855a7993f23998cff3ce3eab87fd45.tar.gz
view: use NautilusFile objects for the view selection
Use them in a consistent way, so to cleanup the previous GFile/NautilusFile confusion.
Diffstat (limited to 'src')
-rw-r--r--src/file-manager/fm-desktop-icon-view.c2
-rw-r--r--src/file-manager/fm-icon-view.c10
-rw-r--r--src/file-manager/fm-list-view.c2
-rw-r--r--src/nautilus-spatial-window.c4
-rw-r--r--src/nautilus-trash-bar.c11
-rw-r--r--src/nautilus-view.c137
-rw-r--r--src/nautilus-view.h27
-rw-r--r--src/nautilus-window-manage-views.c2
-rw-r--r--src/nautilus-window-slot.c6
-rw-r--r--src/nautilus-window-slot.h2
10 files changed, 80 insertions, 123 deletions
diff --git a/src/file-manager/fm-desktop-icon-view.c b/src/file-manager/fm-desktop-icon-view.c
index c0d1770d9..858d0013d 100644
--- a/src/file-manager/fm-desktop-icon-view.c
+++ b/src/file-manager/fm-desktop-icon-view.c
@@ -703,7 +703,7 @@ trash_link_is_selection (FMDirectoryView *view)
result = FALSE;
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (eel_g_list_exactly_one_item (selection) &&
NAUTILUS_IS_DESKTOP_ICON_FILE (selection->data)) {
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index d45f60a7d..6f4e0fb28 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -1730,7 +1730,6 @@ static void
fm_icon_view_update_menus (FMDirectoryView *view)
{
FMIconView *icon_view;
- GList *selection;
int selection_count;
GtkAction *action;
NautilusIconContainer *icon_container;
@@ -1740,8 +1739,7 @@ fm_icon_view_update_menus (FMDirectoryView *view)
FM_DIRECTORY_VIEW_CLASS (fm_icon_view_parent_class)->update_menus(view);
- selection = fm_directory_view_get_selection (view);
- selection_count = g_list_length (selection);
+ selection_count = nautilus_view_get_selection_count (view);
icon_container = get_icon_container (icon_view);
action = gtk_action_group_get_action (icon_view->details->icon_action_group,
@@ -1757,7 +1755,7 @@ fm_icon_view_update_menus (FMDirectoryView *view)
action = gtk_action_group_get_action (icon_view->details->icon_action_group,
FM_ACTION_UNSTRETCH);
g_object_set (action, "label",
- eel_g_list_more_than_one_item (selection)
+ (selection_count > 1)
? _("Restore Icons' Original Si_zes")
: _("Restore Icon's Original Si_ze"),
NULL);
@@ -1768,8 +1766,6 @@ fm_icon_view_update_menus (FMDirectoryView *view)
gtk_action_set_visible (action,
fm_icon_view_supports_scaling (icon_view));
- nautilus_file_list_free (selection);
-
editable = fm_directory_view_is_editable (view);
action = gtk_action_group_get_action (icon_view->details->icon_action_group,
FM_ACTION_MANUAL_LAYOUT);
@@ -1816,7 +1812,7 @@ fm_icon_view_reveal_selection (FMDirectoryView *view)
g_return_if_fail (FM_IS_ICON_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
/* Make sure at least one of the selected items is scrolled into view */
if (selection != NULL) {
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 153fde398..89b08e2fb 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -1062,7 +1062,7 @@ fm_list_view_reveal_selection (FMDirectoryView *view)
g_return_if_fail (FM_IS_LIST_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
/* Make sure at least one of the selected items is scrolled into view */
if (selection != NULL) {
diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c
index 67c5601cc..4e3171eaf 100644
--- a/src/nautilus-spatial-window.c
+++ b/src/nautilus-spatial-window.c
@@ -501,7 +501,7 @@ location_menu_item_activated_callback (GtkWidget *menu_item,
child = g_object_get_data (G_OBJECT(menu_item), "child_location");
if (child != NULL) {
- selection = g_list_prepend (NULL, g_object_ref (child));
+ selection = g_list_prepend (NULL, nautilus_file_get (child));
}
if (event != NULL && ((GdkEventAny *) event)->type == GDK_BUTTON_RELEASE &&
@@ -513,7 +513,7 @@ location_menu_item_activated_callback (GtkWidget *menu_item,
nautilus_window_slot_open_location (slot, dest,
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
- NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND,
+ close_behind ? NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND : 0,
selection);
g_list_free_full (selection, g_object_unref);
diff --git a/src/nautilus-trash-bar.c b/src/nautilus-trash-bar.c
index 08b43a67d..5d0990e65 100644
--- a/src/nautilus-trash-bar.c
+++ b/src/nautilus-trash-bar.c
@@ -56,19 +56,12 @@ static void
restore_button_clicked_cb (GtkWidget *button,
NautilusTrashBar *bar)
{
- GList *locations, *files, *l;
-
- locations = nautilus_view_get_selection (bar->priv->view);
- files = NULL;
-
- for (l = locations; l != NULL; l = l->next) {
- files = g_list_prepend (files, nautilus_file_get (l->data));
- }
+ GList *files;
+ files = nautilus_view_get_selection (bar->priv->view);
nautilus_restore_files_from_trash (files, GTK_WINDOW (gtk_widget_get_toplevel (button)));
nautilus_file_list_free (files);
- g_list_free_full (locations, g_object_unref);
}
static void
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index b165497df..a15e7212c 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -206,7 +206,7 @@ struct FMDirectoryViewDetails
GList *old_added_files;
GList *old_changed_files;
- GList *pending_locations_selected;
+ GList *pending_selection;
/* whether we are in the active slot */
gboolean active;
@@ -725,7 +725,7 @@ nautilus_view_set_is_active (FMDirectoryView *view,
}
/**
- * fm_directory_view_get_selection:
+ * nautilus_view_get_selection:
*
* Get a list of NautilusFile pointers that represents the
* currently-selected items in this view. Subclasses must override
@@ -737,12 +737,12 @@ nautilus_view_set_is_active (FMDirectoryView *view,
*
**/
GList *
-fm_directory_view_get_selection (FMDirectoryView *view)
+nautilus_view_get_selection (NautilusView *view)
{
- g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), NULL);
+ g_return_val_if_fail (NAUTILUS_IS_VIEW (view), NULL);
return EEL_CALL_METHOD_WITH_RETURN_VALUE
- (FM_DIRECTORY_VIEW_CLASS, view,
+ (NAUTILUS_VIEW_CLASS, view,
get_selection, (view));
}
@@ -1114,7 +1114,7 @@ action_open_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
fm_directory_view_activate_files (view,
selection,
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
@@ -1132,7 +1132,7 @@ action_open_close_parent_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
fm_directory_view_activate_files (view,
selection,
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
@@ -1151,7 +1151,7 @@ action_open_alternate_callback (GtkAction *action,
GtkWindow *window;
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
window = fm_directory_view_get_containing_window (view);
@@ -1171,7 +1171,7 @@ action_open_new_tab_callback (GtkAction *action,
GtkWindow *window;
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
window = fm_directory_view_get_containing_window (view);
@@ -1195,7 +1195,7 @@ action_open_folder_window_callback (GtkAction *action,
GtkWindow *window;
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
window = fm_directory_view_get_containing_window (view);
@@ -1275,7 +1275,7 @@ open_with_other_program (FMDirectoryView *view)
g_assert (FM_IS_DIRECTORY_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (selection_contains_one_item_in_menu_callback (view, selection)) {
choose_program (view, NAUTILUS_FILE (selection->data));
@@ -1462,7 +1462,7 @@ action_create_link_callback (GtkAction *action,
g_assert (FM_IS_DIRECTORY_VIEW (callback_data));
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (selection_not_empty_in_menu_callback (view, selection)) {
selected_item_locations = fm_directory_view_get_selected_icon_locations (view);
fm_directory_view_create_links_for_files (view, selection, selected_item_locations);
@@ -2139,7 +2139,7 @@ action_properties_callback (GtkAction *action,
g_assert (FM_IS_DIRECTORY_VIEW (callback_data));
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (g_list_length (selection) == 0) {
if (view->details->directory_as_file != NULL) {
files = g_list_append (NULL, nautilus_file_ref (view->details->directory_as_file));
@@ -2200,7 +2200,7 @@ all_selected_items_in_trash (FMDirectoryView *view)
* check that parent directory. Otherwise we have to inspect
* each selected item.
*/
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
result = (selection == NULL) ? FALSE : all_files_in_trash (selection);
nautilus_file_list_free (selection);
@@ -2486,52 +2486,17 @@ nautilus_view_get_selection_count (NautilusView *view)
GList *files;
int len;
- files = fm_directory_view_get_selection (FM_DIRECTORY_VIEW (view));
+ files = nautilus_view_get_selection (FM_DIRECTORY_VIEW (view));
len = g_list_length (files);
nautilus_file_list_free (files);
return len;
}
-GList *
-nautilus_view_get_selection (NautilusView *view)
-{
- GList *files;
- GList *locations;
- GFile *location;
- GList *l;
-
- files = fm_directory_view_get_selection (FM_DIRECTORY_VIEW (view));
- locations = NULL;
- for (l = files; l != NULL; l = l->next) {
- location = nautilus_file_get_location (NAUTILUS_FILE (l->data));
- locations = g_list_prepend (locations, location);
- }
- nautilus_file_list_free (files);
-
- return g_list_reverse (locations);
-}
-
-static GList *
-file_list_from_location_list (const GList *uri_list)
-{
- GList *file_list;
- const GList *node;
-
- file_list = NULL;
- for (node = uri_list; node != NULL; node = node->next) {
- file_list = g_list_prepend
- (file_list,
- nautilus_file_get (node->data));
- }
- return g_list_reverse (file_list);
-}
-
void
nautilus_view_set_selection (NautilusView *nautilus_view,
- GList *selection_locations)
+ GList *selection)
{
- GList *selection;
FMDirectoryView *view;
view = FM_DIRECTORY_VIEW (nautilus_view);
@@ -2540,19 +2505,17 @@ nautilus_view_set_selection (NautilusView *nautilus_view,
/* If we aren't still loading, set the selection right now,
* and reveal the new selection.
*/
- selection = file_list_from_location_list (selection_locations);
view->details->selection_change_is_due_to_shell = TRUE;
fm_directory_view_set_selection (view, selection);
view->details->selection_change_is_due_to_shell = FALSE;
fm_directory_view_reveal_selection (view);
- nautilus_file_list_free (selection);
} else {
/* If we are still loading, set the list of pending URIs instead.
* done_loading() will eventually select the pending URIs and reveal them.
*/
- g_list_free_full (view->details->pending_locations_selected, g_object_unref);
- view->details->pending_locations_selected =
- eel_g_object_list_copy (selection_locations);
+ g_list_free_full (view->details->pending_selection, g_object_unref);
+ view->details->pending_selection =
+ eel_g_object_list_copy (selection);
}
}
@@ -2811,7 +2774,7 @@ fm_directory_view_display_selection_info (FMDirectoryView *view)
g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
folder_item_count_known = TRUE;
folder_count = 0;
@@ -3074,7 +3037,7 @@ static void
done_loading (FMDirectoryView *view,
gboolean all_files_seen)
{
- GList *locations_selected, *selection;
+ GList *selection;
if (!view->details->loading) {
return;
@@ -3092,16 +3055,13 @@ done_loading (FMDirectoryView *view,
schedule_update_status (view);
reset_update_interval (view);
- locations_selected = view->details->pending_locations_selected;
- if (locations_selected != NULL && all_files_seen) {
- view->details->pending_locations_selected = NULL;
-
- selection = file_list_from_location_list (locations_selected);
+ selection = view->details->pending_selection;
+ if (selection != NULL && all_files_seen) {
+ view->details->pending_selection = NULL;
view->details->selection_change_is_due_to_shell = TRUE;
fm_directory_view_set_selection (view, selection);
view->details->selection_change_is_due_to_shell = FALSE;
- nautilus_file_list_free (selection);
if (FM_IS_LIST_VIEW (view)) {
/* HACK: We should be able to directly call reveal_selection here,
@@ -3120,7 +3080,7 @@ done_loading (FMDirectoryView *view,
fm_directory_view_reveal_selection (view);
}
}
- g_list_free_full (locations_selected, g_object_unref);
+ g_list_free_full (selection, g_object_unref);
fm_directory_view_display_selection_info (view);
}
@@ -3500,7 +3460,7 @@ process_old_files (FMDirectoryView *view)
g_signal_emit (view, signals[END_FILE_CHANGES], 0);
if (files_changed != NULL) {
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
files = file_and_directory_list_to_files (files_changed);
send_selection_change = eel_g_lists_sort_and_check_for_intersection
(&files, &selection);
@@ -4114,7 +4074,7 @@ special_link_in_selection (FMDirectoryView *view)
saw_link = FALSE;
- selection = fm_directory_view_get_selection (FM_DIRECTORY_VIEW (view));
+ selection = nautilus_view_get_selection (FM_DIRECTORY_VIEW (view));
for (node = selection; node != NULL; node = node->next) {
file = NAUTILUS_FILE (node->data);
@@ -4147,7 +4107,7 @@ desktop_or_home_dir_in_selection (FMDirectoryView *view)
saw_desktop_or_home_dir = FALSE;
- selection = fm_directory_view_get_selection (FM_DIRECTORY_VIEW (view));
+ selection = nautilus_view_get_selection (FM_DIRECTORY_VIEW (view));
for (node = selection; node != NULL; node = node->next) {
file = NAUTILUS_FILE (node->data);
@@ -5162,7 +5122,7 @@ set_script_environment_variables (FMDirectoryView *view, GList *selected_files)
next_view = get_directory_view_of_extra_pane (view);
if (next_view) {
GList *next_pane_selected_files;
- next_pane_selected_files = fm_directory_view_get_selection (next_view);
+ next_pane_selected_files = nautilus_view_get_selection (next_view);
get_strings_for_environment_variables (next_view, next_pane_selected_files,
&file_paths, &uris, &uri);
@@ -5221,7 +5181,7 @@ run_script_callback (GtkAction *action, gpointer callback_data)
old_working_dir = change_to_view_directory (launch_parameters->directory_view);
- selected_files = fm_directory_view_get_selection (launch_parameters->directory_view);
+ selected_files = nautilus_view_get_selection (launch_parameters->directory_view);
set_script_environment_variables (launch_parameters->directory_view, selected_files);
parameters = get_file_names_as_parameter_array (selected_files,
@@ -6149,7 +6109,7 @@ action_paste_files_into_callback (GtkAction *action,
GList *selection;
view = FM_DIRECTORY_VIEW (callback_data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (selection != NULL) {
paste_into (view, NAUTILUS_FILE (selection->data));
nautilus_file_list_free (selection);
@@ -6197,7 +6157,7 @@ real_action_rename (FMDirectoryView *view,
g_assert (FM_IS_DIRECTORY_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (selection_not_empty_in_menu_callback (view, selection)) {
/* If there is more than one file selected, invoke a batch renamer */
@@ -6327,7 +6287,7 @@ action_mount_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6352,7 +6312,7 @@ action_unmount_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6379,7 +6339,7 @@ action_format_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6401,7 +6361,7 @@ action_eject_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6444,7 +6404,7 @@ action_start_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6468,7 +6428,7 @@ action_stop_volume_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6493,7 +6453,7 @@ action_detect_media_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
for (l = selection; l != NULL; l = l->next) {
file = NAUTILUS_FILE (l->data);
@@ -6851,7 +6811,7 @@ action_connect_to_server_link_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (data);
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
if (!eel_g_list_exactly_one_item (selection)) {
nautilus_file_list_free (selection);
@@ -7594,7 +7554,7 @@ clipboard_targets_received (GtkClipboard *clipboard,
}
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
count = g_list_length (selection);
action = gtk_action_group_get_action (view->details->dir_action_group,
@@ -8505,7 +8465,7 @@ clipboard_changed_callback (NautilusClipboardMonitor *monitor, FMDirectoryView *
return;
}
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
selection_count = g_list_length (selection);
real_update_paste_menu (view, selection, selection_count);
@@ -8572,7 +8532,7 @@ real_update_menus (FMDirectoryView *view)
gboolean next_pane_is_writable;
gboolean show_properties;
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
selection_count = g_list_length (selection);
selection_contains_special_link = special_link_in_selection (view);
@@ -9206,7 +9166,7 @@ fm_directory_view_notify_selection_changed (FMDirectoryView *view)
g_return_if_fail (FM_IS_DIRECTORY_VIEW (view));
- selection = fm_directory_view_get_selection (view);
+ selection = nautilus_view_get_selection (view);
window = fm_directory_view_get_containing_window (view);
DEBUG_FILES (selection, "Selection changed in window %p", window);
nautilus_file_list_free (selection);
@@ -9551,15 +9511,20 @@ nautilus_view_stop_loading (FMDirectoryView *view)
/* Free extra undisplayed files */
file_and_directory_list_free (view->details->new_added_files);
view->details->new_added_files = NULL;
+
file_and_directory_list_free (view->details->new_changed_files);
view->details->new_changed_files = NULL;
+
g_hash_table_foreach_remove (view->details->non_ready_files, remove_all, NULL);
+
file_and_directory_list_free (view->details->old_added_files);
view->details->old_added_files = NULL;
+
file_and_directory_list_free (view->details->old_changed_files);
view->details->old_changed_files = NULL;
- g_list_free_full (view->details->pending_locations_selected, g_object_unref);
- view->details->pending_locations_selected = NULL;
+
+ g_list_free_full (view->details->pending_selection, g_object_unref);
+ view->details->pending_selection = NULL;
if (view->details->model != NULL) {
nautilus_directory_file_monitor_remove (view->details->model, view);
diff --git a/src/nautilus-view.h b/src/nautilus-view.h
index 1f4e00dcd..9b65cb97b 100644
--- a/src/nautilus-view.h
+++ b/src/nautilus-view.h
@@ -60,7 +60,7 @@ typedef FMDirectoryViewClass NautilusViewClass;
#define NAUTILUS_TYPE_VIEW FM_TYPE_DIRECTORY_VIEW
#define NAUTILUS_VIEW(obj) FM_DIRECTORY_VIEW(obj)
#define NAUTILUS_IS_VIEW(obj) FM_IS_DIRECTORY_VIEW(obj)
-#define NAUTILUS_VIEW_CLASS(klass) FM_IS_DIRECTORY_VIEW_CLASS(klass)
+#define NAUTILUS_VIEW_CLASS(klass) FM_DIRECTORY_VIEW_CLASS(klass)
#define NAUTILUS_VIEW_GET_CLASS(obj) FM_DIRECTORY_VIEW_GET_CLASS(obj)
typedef struct FMDirectoryViewDetails FMDirectoryViewDetails;
@@ -352,7 +352,6 @@ NautilusWindowSlot *fm_directory_view_get_nautilus_window_slot (FMDirectoryV
char * fm_directory_view_get_uri (FMDirectoryView *view);
void fm_directory_view_display_selection_info (FMDirectoryView *view);
-GList * fm_directory_view_get_selection (FMDirectoryView *view);
GdkAtom fm_directory_view_get_copied_files_atom (FMDirectoryView *view);
gboolean fm_directory_view_get_active (FMDirectoryView *view);
@@ -414,20 +413,24 @@ void nautilus_view_move_copy_items (NautilusView *v
int copy_action,
int x,
int y);
-void nautilus_view_new_file_with_initial_contents (NautilusView *view,
- const char *parent_uri,
- const char *filename,
- const char *initial_contents,
- int length,
- GdkPoint *pos);
+void nautilus_view_new_file_with_initial_contents
+ (NautilusView *view,
+ const char *parent_uri,
+ const char *filename,
+ const char *initial_contents,
+ int length,
+ GdkPoint *pos);
+
+/* selection handling */
+int nautilus_view_get_selection_count (NautilusView *view);
+GList * nautilus_view_get_selection (NautilusView *view);
+void nautilus_view_set_selection (NautilusView *view,
+ GList *selection);
+
void nautilus_view_load_location (NautilusView *view,
const char *location_uri);
void nautilus_view_stop_loading (NautilusView *view);
-int nautilus_view_get_selection_count (NautilusView *view);
-GList * nautilus_view_get_selection (NautilusView *view);
-void nautilus_view_set_selection (NautilusView *view,
- GList *list);
char * nautilus_view_get_first_visible_file (NautilusView *view);
void nautilus_view_scroll_to_file (NautilusView *view,
diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
index b70f817e4..fa5b0efe8 100644
--- a/src/nautilus-window-manage-views.c
+++ b/src/nautilus-window-manage-views.c
@@ -895,7 +895,7 @@ setup_new_spatial_window (NautilusWindowSlot *slot, NautilusFile *file)
} else {
/* If there is a pending selection, we want to scroll to an item in
* the pending selection list. */
- scroll_string = g_file_get_uri (slot->pending_selection->data);
+ scroll_string = nautilus_file_get_uri (slot->pending_selection->data);
}
/* scroll_string might be NULL if there was no saved scroll position. */
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index 8bc815845..6f5ea8c7d 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -195,7 +195,7 @@ nautilus_window_slot_dispose (GObject *object)
g_object_ref (slot->location);
}
- g_list_free_full (slot->pending_selection, g_free);
+ g_list_free_full (slot->pending_selection, g_object_unref);
slot->pending_selection = NULL;
g_clear_object (&slot->current_location_bookmark);
@@ -611,8 +611,8 @@ nautilus_window_slot_go_up (NautilusWindowSlot *slot,
return;
}
- selection = g_list_prepend (NULL, g_object_ref (slot->location));
-
+ selection = g_list_prepend (NULL, nautilus_file_get (slot->location));
+
flags = 0;
if (close_behind) {
flags |= NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND;
diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h
index a9cdbeae2..c72e94667 100644
--- a/src/nautilus-window-slot.h
+++ b/src/nautilus-window-slot.h
@@ -132,7 +132,7 @@ void nautilus_window_slot_open_location_full (NautilusWindowSlot *slot,
GFile *location,
NautilusWindowOpenMode mode,
NautilusWindowOpenFlags flags,
- GList *new_selection,
+ GList *new_selection, /* NautilusFile list */
NautilusWindowGoToCallback callback,
gpointer user_data);