void fm_file_info_job_add_gfile (FmFileInfoJob *job, GFile *gf) { FmPath *path = fm_path_new_for_gfile (gf); FmFileInfo *file_info = fm_file_info_new_for_path (path); fm_path_unref (path); fm_list_push_tail_noref (job->file_infos, file_info); }
FmPathList* fm_path_list_new_from_uris(const char** uris) { const char** uri; FmPathList* pl = fm_path_list_new(); for(uri = uris; *uri; ++uri) { FmPath* path; char* unescaped; if(g_str_has_prefix(*uri, "file:")) unescaped = g_filename_from_uri(*uri, NULL, NULL); else unescaped = g_uri_unescape_string(*uri, NULL); path = fm_path_new(unescaped); g_free(unescaped); fm_list_push_tail_noref(pl, path); } return pl; }
/********************************************************************* * ... * * ********************************************************************/ FmJob *fm_file_info_job_new (FmPathList *files_to_query, FmFileInfoJobFlags flags) { FmFileInfoJob *job = (FmFileInfoJob*) g_object_new (FM_TYPE_FILE_INFO_JOB, NULL); job->flags = flags; if (!files_to_query) return (FmJob*) job; FmFileInfoList *file_infos = job->file_infos; GList *l; for (l = fm_list_peek_head_link (files_to_query); l; l=l->next) { FmPath *path = (FmPath*) l->data; FmFileInfo *file_info = fm_file_info_new_for_path (path); fm_list_push_tail_noref (file_infos, file_info); } return (FmJob*) job; }
// This can only be called before running the job. void fm_file_info_job_add (FmFileInfoJob *job, FmPath *path) { FmFileInfo *file_info = fm_file_info_new_for_path (path); fm_list_push_tail_noref (job->file_infos, file_info); }