static void nautilus_window_slot_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (object); switch (property_id) { case PROP_PANE: g_value_set_object (value, slot->details->pane); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void nautilus_window_slot_constructed (GObject *object) { NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (object); GtkWidget *extras_vbox; G_OBJECT_CLASS (nautilus_window_slot_parent_class)->constructed (object); gtk_orientable_set_orientation (GTK_ORIENTABLE (slot), GTK_ORIENTATION_VERTICAL); gtk_widget_show (GTK_WIDGET (slot)); extras_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); slot->extra_location_widgets = extras_vbox; gtk_box_pack_start (GTK_BOX (slot), extras_vbox, FALSE, FALSE, 0); gtk_widget_show (extras_vbox); slot->query_editor = NAUTILUS_QUERY_EDITOR (nautilus_query_editor_new ()); nautilus_window_slot_add_extra_location_widget (slot, GTK_WIDGET (slot->query_editor)); g_object_add_weak_pointer (G_OBJECT (slot->query_editor), (gpointer *) &slot->query_editor); slot->view_overlay = gtk_overlay_new (); gtk_widget_add_events (slot->view_overlay, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_box_pack_start (GTK_BOX (slot), slot->view_overlay, TRUE, TRUE, 0); gtk_widget_show (slot->view_overlay); slot->floating_bar = nautilus_floating_bar_new (NULL, NULL, FALSE); gtk_widget_set_halign (slot->floating_bar, GTK_ALIGN_END); gtk_widget_set_valign (slot->floating_bar, GTK_ALIGN_END); gtk_overlay_add_overlay (GTK_OVERLAY (slot->view_overlay), slot->floating_bar); g_signal_connect (slot->floating_bar, "action", G_CALLBACK (floating_bar_action_cb), slot); slot->title = g_strdup (_("Loading...")); }
static NautilusWindowSlot * get_window_slot_for_location (NautilusApplication *application, GFile *location) { NautilusWindowSlot *slot; GList *l, *sl; slot = NULL; if (g_file_query_file_type (location, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY) { location = g_file_get_parent (location); } else { g_object_ref (location); } for (l = gtk_application_get_windows (GTK_APPLICATION (application)); l; l = l->next) { NautilusWindow *win = NAUTILUS_WINDOW (l->data); if (NAUTILUS_IS_DESKTOP_WINDOW (win)) continue; for (sl = nautilus_window_get_slots (win); sl; sl = sl->next) { NautilusWindowSlot *current = NAUTILUS_WINDOW_SLOT (sl->data); GFile *slot_location = nautilus_window_slot_get_location (current); if (g_file_equal (slot_location, location)) { slot = current; break; } } if (slot) { break; } } g_object_unref (location); return slot; }
static void switch_tab (NautilusDragSlotProxyInfo *drag_info) { GtkWidget *notebook, *slot; gint idx, n_pages; if (drag_info->target_slot == NULL) { return; } notebook = gtk_widget_get_ancestor (GTK_WIDGET (drag_info->target_slot), NAUTILUS_TYPE_NOTEBOOK); n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)); for (idx = 0; idx < n_pages; idx++) { slot = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), idx); if (NAUTILUS_WINDOW_SLOT (slot) == drag_info->target_slot) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), idx); break; } } }
static void nautilus_window_slot_dispose (GObject *object) { NautilusWindowSlot *slot; GtkWidget *widget; slot = NAUTILUS_WINDOW_SLOT (object); nautilus_window_slot_clear_forward_list (slot); nautilus_window_slot_clear_back_list (slot); if (slot->content_view) { widget = GTK_WIDGET (slot->content_view); gtk_widget_destroy (widget); g_object_unref (slot->content_view); slot->content_view = NULL; } if (slot->new_content_view) { widget = GTK_WIDGET (slot->new_content_view); gtk_widget_destroy (widget); g_object_unref (slot->new_content_view); slot->new_content_view = NULL; } if (slot->set_status_timeout_id != 0) { g_source_remove (slot->set_status_timeout_id); slot->set_status_timeout_id = 0; } nautilus_window_slot_set_viewed_file (slot, NULL); /* TODO? why do we unref here? the file is NULL. * It was already here before the slot move, though */ nautilus_file_unref (slot->viewed_file); if (slot->location) { /* TODO? why do we ref here, instead of unreffing? * It was already here before the slot migration, though */ g_object_ref (slot->location); } g_list_free_full (slot->pending_selection, g_object_unref); slot->pending_selection = NULL; g_clear_object (&slot->current_location_bookmark); g_clear_object (&slot->last_location_bookmark); if (slot->find_mount_cancellable != NULL) { g_cancellable_cancel (slot->find_mount_cancellable); slot->find_mount_cancellable = NULL; } slot->pane = NULL; g_free (slot->title); slot->title = NULL; g_free (slot->status_text); slot->status_text = NULL; G_OBJECT_CLASS (parent_class)->dispose (object); }