static FmJobErrorAction on_query_target_info_error(FmJob* job, GError* err, FmJobErrorSeverity severity, QueryErrorData* data) { if(data->launcher->error && !data->launcher->error(data->ctx, err, fm_file_info_job_get_current(FM_FILE_INFO_JOB(job)), data->user_data)) return FM_JOB_RETRY; return FM_JOB_CONTINUE; }
gboolean fm_launch_paths(GAppLaunchContext* ctx, GList* paths, FmFileLauncher* launcher, gpointer user_data) { FmJob* job = fm_file_info_job_new(NULL); GList* l; gboolean ret; for(l=paths;l;l=l->next) fm_file_info_job_add(FM_FILE_INFO_JOB(job), (FmPath*)l->data); ret = fm_job_run_sync_with_mainloop(job); if(ret) { GList* file_infos = fm_list_peek_head_link(FM_FILE_INFO_JOB(job)->file_infos); if(file_infos) ret = fm_launch_files(ctx, file_infos, launcher, user_data); else ret = FALSE; } g_object_unref(job); return ret; }
static void fm_file_info_job_finalize (GObject *object) { FmFileInfoJob *self; g_return_if_fail (object != NULL); g_return_if_fail (IS_FM_FILE_INFO_JOB (object)); self = FM_FILE_INFO_JOB (object); fm_list_unref (self->file_infos); G_OBJECT_CLASS (fm_file_info_job_parent_class)->finalize (object); }