static void open_windows (NautilusApplication *application, gboolean force_new, GFile **files, gint n_files, GdkScreen *screen, const char *geometry) { guint i; if (files == NULL || files[0] == NULL) { /* Open a window pointing at the default location. */ open_window (application, NULL, screen, geometry); } else { /* Open windows at each requested location. */ for (i = 0; i < n_files; ++i) { NautilusWindowSlot *slot = NULL; if (!force_new) slot = get_window_slot_for_location (application, files[i]); if (!slot) { open_window (application, files[i], screen, geometry); } else { /* We open the location again to update any possible selection */ nautilus_window_slot_open_location (slot, files[i], 0); NautilusWindow *window = nautilus_window_slot_get_window (slot); nautilus_window_set_active_slot (window, slot); gtk_window_present (GTK_WINDOW (window)); } } } }
void nautilus_window_slot_set_content_view_widget (NautilusWindowSlot *slot, NautilusView *new_view) { NautilusWindow *window; GtkWidget *widget; window = nautilus_window_slot_get_window (slot); if (slot->content_view != NULL) { /* disconnect old view */ nautilus_window_disconnect_content_view (window, slot->content_view); widget = GTK_WIDGET (slot->content_view); gtk_widget_destroy (widget); g_object_unref (slot->content_view); slot->content_view = NULL; } if (new_view != NULL) { widget = GTK_WIDGET (new_view); gtk_container_add (GTK_CONTAINER (slot->view_overlay), widget); gtk_widget_show (widget); slot->content_view = new_view; g_object_ref (slot->content_view); /* connect new view */ nautilus_window_connect_content_view (window, new_view); } }
/* nautilus_window_slot_update_title: * * Re-calculate the slot title. * Called when the location or view has changed. * @slot: The NautilusWindowSlot in question. * */ void nautilus_window_slot_update_title (NautilusWindowSlot *slot) { NautilusWindow *window; char *title; gboolean do_sync = FALSE; title = nautilus_compute_title_for_location (slot->location); window = nautilus_window_slot_get_window (slot); if (g_strcmp0 (title, slot->title) != 0) { do_sync = TRUE; g_free (slot->title); slot->title = title; title = NULL; } if (strlen (slot->title) > 0 && slot->current_location_bookmark != NULL) { do_sync = TRUE; } if (do_sync) { nautilus_window_sync_title (window, slot); } if (title != NULL) { g_free (title); } }
void nautilus_window_slot_make_hosting_pane_active (NautilusWindowSlot *slot) { g_assert (NAUTILUS_IS_WINDOW_PANE (slot->details->pane)); nautilus_window_set_active_slot (nautilus_window_slot_get_window (slot), slot); }
static void real_inactive (NautilusWindowSlot *slot) { NautilusWindow *window; window = nautilus_window_slot_get_window (slot); g_assert (slot == nautilus_window_get_active_slot (window)); }
gboolean nautilus_window_slot_handle_event (NautilusWindowSlot *slot, GdkEventKey *event) { NautilusWindow *window; window = nautilus_window_slot_get_window (slot); if (NAUTILUS_IS_DESKTOP_WINDOW (window)) return FALSE; return nautilus_query_editor_handle_event (slot->query_editor, event); }
void nautilus_window_slot_set_allow_stop (NautilusWindowSlot *slot, gboolean allow) { NautilusWindow *window; g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); slot->allow_stop = allow; window = nautilus_window_slot_get_window (slot); nautilus_window_sync_allow_stop (window, slot); }
void nautilus_application_open_location (NautilusApplication *application, GFile *location, GFile *selection, const char *startup_id) { NautilusWindow *window; NautilusWindowSlot *slot; GList *sel_list = NULL; nautilus_profile_start (NULL); slot = get_window_slot_for_location (application, location); if (!slot) { window = nautilus_application_create_window (application, gdk_screen_get_default ()); slot = nautilus_window_get_active_slot (window); } else { window = nautilus_window_slot_get_window (slot); nautilus_window_set_active_slot (window, slot); gtk_window_present (GTK_WINDOW (window)); } if (selection != NULL) { sel_list = g_list_prepend (sel_list, nautilus_file_get (selection)); } gtk_window_set_startup_id (GTK_WINDOW (window), startup_id); nautilus_window_slot_open_location_full (slot, location, 0, sel_list, NULL, NULL); if (sel_list != NULL) { nautilus_file_list_free (sel_list); } nautilus_profile_end (NULL); }
static void real_slot_set_short_status (NautilusWindowSlot *slot, const gchar *primary_status, const gchar *detail_status) { gboolean disable_chrome; nautilus_floating_bar_cleanup_actions (NAUTILUS_FLOATING_BAR (slot->floating_bar)); nautilus_floating_bar_set_show_spinner (NAUTILUS_FLOATING_BAR (slot->floating_bar), FALSE); g_object_get (nautilus_window_slot_get_window (slot), "disable-chrome", &disable_chrome, NULL); if ((primary_status == NULL && detail_status == NULL) || disable_chrome) { gtk_widget_hide (slot->floating_bar); return; } nautilus_floating_bar_set_labels (NAUTILUS_FLOATING_BAR (slot->floating_bar), primary_status, detail_status); gtk_widget_show (slot->floating_bar); }