void nemo_location_bar_set_location (NemoLocationBar *bar, const char *location) { char *formatted_location; GFile *file; g_assert (location != NULL); /* Note: This is called in reaction to external changes, and * thus should not emit the LOCATION_CHANGED signal. */ if (eel_uri_is_search (location)) { nemo_location_entry_set_special_text (NEMO_LOCATION_ENTRY (bar->details->entry), ""); } else { file = g_file_new_for_uri (location); formatted_location = g_file_get_parse_name (file); g_object_unref (file); nemo_location_entry_update_current_location (NEMO_LOCATION_ENTRY (bar->details->entry), formatted_location); g_free (formatted_location); } /* remember the original location for later comparison */ if (bar->details->last_location != location) { g_free (bar->details->last_location); bar->details->last_location = g_strdup (location); } nemo_location_bar_update_icon (bar); }
void nautilus_location_entry_set_location (NautilusLocationEntry *entry, GFile *location) { gchar *uri, *formatted_uri; g_assert (location != NULL); /* Note: This is called in reaction to external changes, and * thus should not emit the LOCATION_CHANGED signal. */ uri = g_file_get_uri (location); formatted_uri = g_file_get_parse_name (location); if (eel_uri_is_search (uri)) { nautilus_location_entry_set_special_text (entry, ""); } else { nautilus_location_entry_update_current_uri (entry, formatted_uri); } /* remember the original location for later comparison */ if (!entry->details->last_location || !g_file_equal (entry->details->last_location, location)) { g_clear_object (&entry->details->last_location); entry->details->last_location = g_object_ref (location); } nautilus_location_entry_update_action (entry); g_free (uri); g_free (formatted_uri); }
void nautilus_recent_add_file (NautilusFile *file, GAppInfo *application) { GtkRecentData recent_data; char *uri; uri = nautilus_file_get_activation_uri (file); if (uri == NULL) { uri = nautilus_file_get_uri (file); } /* do not add trash:// etc */ if (eel_uri_is_trash (uri) || eel_uri_is_search (uri) || eel_uri_is_recent (uri) || eel_uri_is_desktop (uri)) { g_free (uri); return; } recent_data.display_name = NULL; recent_data.description = NULL; recent_data.mime_type = nautilus_file_get_mime_type (file); recent_data.app_name = g_strdup (g_get_application_name ()); if (application != NULL) recent_data.app_exec = g_strdup (g_app_info_get_commandline (application)); else recent_data.app_exec = g_strdup (DEFAULT_APP_EXEC); recent_data.groups = NULL; recent_data.is_private = FALSE; gtk_recent_manager_add_full (nautilus_recent_get_manager (), uri, &recent_data); g_free (recent_data.mime_type); g_free (recent_data.app_name); g_free (recent_data.app_exec); g_free (uri); }
static NautilusDirectory * nautilus_directory_new (GFile *location) { NautilusDirectory *directory; GType type; char *uri; uri = g_file_get_uri (location); if (eel_uri_is_desktop (uri)) { type = NAUTILUS_TYPE_DESKTOP_DIRECTORY; } else if (eel_uri_is_search (uri)) { type = NAUTILUS_TYPE_SEARCH_DIRECTORY; } else { type = NAUTILUS_TYPE_VFS_DIRECTORY; } g_free (uri); directory = g_object_new (type, "location", location, NULL); return directory; }
static NautilusDirectory * nautilus_directory_new (GFile *location) { NautilusDirectory *directory; char *uri; uri = g_file_get_uri (location); if (eel_uri_is_desktop (uri)) { directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_DESKTOP_DIRECTORY, NULL)); } else if (eel_uri_is_search (uri)) { directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_SEARCH_DIRECTORY, NULL)); } else if (g_str_has_suffix (uri, NAUTILUS_SAVED_SEARCH_EXTENSION)) { directory = NAUTILUS_DIRECTORY (nautilus_search_directory_new_from_saved_search (uri)); } else { directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, NULL)); } set_directory_location (directory, location); g_free (uri); return directory; }
gboolean nemo_link_local_create (const char *directory_uri, const char *base_name, const char *display_name, const char *image, const char *target_uri, const GdkPoint *point, int screen, gboolean unique_filename) { char *real_directory_uri; char *uri, *contents; GFile *file; GList dummy_list; NemoFileChangesQueuePosition item; g_return_val_if_fail (directory_uri != NULL, FALSE); g_return_val_if_fail (base_name != NULL, FALSE); g_return_val_if_fail (display_name != NULL, FALSE); g_return_val_if_fail (target_uri != NULL, FALSE); if (eel_uri_is_trash (directory_uri) || eel_uri_is_search (directory_uri)) { return FALSE; } if (eel_uri_is_desktop (directory_uri)) { real_directory_uri = nemo_get_desktop_directory_uri (); } else { real_directory_uri = g_strdup (directory_uri); } if (unique_filename) { uri = nemo_ensure_unique_file_name (real_directory_uri, base_name, ".desktop"); if (uri == NULL) { g_free (real_directory_uri); return FALSE; } file = g_file_new_for_uri (uri); g_free (uri); } else { char *link_name; GFile *dir; link_name = g_strdup_printf ("%s.desktop", base_name); /* replace '/' with '-', just in case */ g_strdelimit (link_name, "/", '-'); dir = g_file_new_for_uri (directory_uri); file = g_file_get_child (dir, link_name); g_free (link_name); g_object_unref (dir); } g_free (real_directory_uri); contents = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "URL=%s\n" "%s%s\n", display_name, target_uri, image != NULL ? "Icon=" : "", image != NULL ? image : ""); if (!g_file_replace_contents (file, contents, strlen (contents), NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, NULL)) { g_free (contents); g_object_unref (file); return FALSE; } g_free (contents); dummy_list.data = file; dummy_list.next = NULL; dummy_list.prev = NULL; nemo_directory_notify_files_added (&dummy_list); if (point != NULL) { item.location = file; item.set = TRUE; item.point.x = point->x; item.point.y = point->y; item.screen = screen; dummy_list.data = &item; dummy_list.next = NULL; dummy_list.prev = NULL; nemo_directory_schedule_position_set (&dummy_list); } g_object_unref (file); return TRUE; }