Added force parameter to tns_load() to disregard cache
This commit is contained in:
		
							parent
							
								
									421f012022
								
							
						
					
					
						commit
						1d7849efc1
					
				
							
								
								
									
										8
									
								
								events.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								events.c
									
									
									
									
									
								
							| @ -163,7 +163,7 @@ void run() { | |||||||
| 			gettimeofday(&t0, 0); | 			gettimeofday(&t0, 0); | ||||||
| 
 | 
 | ||||||
| 			while (tns.cnt < filecnt && !XPending(win.env.dpy)) { | 			while (tns.cnt < filecnt && !XPending(win.env.dpy)) { | ||||||
| 				if (tns_load(&tns, tns.cnt, &files[tns.cnt], 0)) | 				if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False)) | ||||||
| 					tns.cnt++; | 					tns.cnt++; | ||||||
| 				else | 				else | ||||||
| 					remove_file(tns.cnt, 0); | 					remove_file(tns.cnt, 0); | ||||||
| @ -279,7 +279,7 @@ int it_toggle_fullscreen(arg_t a) { | |||||||
| int it_reload_image(arg_t a) { | int it_reload_image(arg_t a) { | ||||||
| 	if (mode == MODE_IMAGE) { | 	if (mode == MODE_IMAGE) { | ||||||
| 		load_image(fileidx); | 		load_image(fileidx); | ||||||
| 	} else if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) { | 	} else if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) { | ||||||
| 		remove_file(tns.sel, 0); | 		remove_file(tns.sel, 0); | ||||||
| 		tns.dirty = 1; | 		tns.dirty = 1; | ||||||
| 		if (tns.sel >= tns.cnt) | 		if (tns.sel >= tns.cnt) | ||||||
| @ -578,11 +578,11 @@ int it_shell_cmd(arg_t a) { | |||||||
| 	 | 	 | ||||||
| 	if (mode == MODE_IMAGE) { | 	if (mode == MODE_IMAGE) { | ||||||
| 		if (fileidx < tns.cnt) | 		if (fileidx < tns.cnt) | ||||||
| 			tns_load(&tns, fileidx, &files[fileidx], 1); | 			tns_load(&tns, fileidx, &files[fileidx], False, True); | ||||||
| 		img_close(&img, 1); | 		img_close(&img, 1); | ||||||
| 		load_image(fileidx); | 		load_image(fileidx); | ||||||
| 	} else { | 	} else { | ||||||
| 		if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) { | 		if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) { | ||||||
| 			remove_file(tns.sel, 0); | 			remove_file(tns.sel, 0); | ||||||
| 			tns.dirty = 1; | 			tns.dirty = 1; | ||||||
| 			if (tns.sel >= tns.cnt) | 			if (tns.sel >= tns.cnt) | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.c
									
									
									
									
									
								
							| @ -240,7 +240,7 @@ int main(int argc, char **argv) { | |||||||
| 	if (options->thumbnails) { | 	if (options->thumbnails) { | ||||||
| 		mode = MODE_THUMB; | 		mode = MODE_THUMB; | ||||||
| 		tns_init(&tns, filecnt); | 		tns_init(&tns, filecnt); | ||||||
| 		while (!tns_load(&tns, 0, &files[0], 0)) | 		while (!tns_load(&tns, 0, &files[0], False, False)) | ||||||
| 			remove_file(0, 0); | 			remove_file(0, 0); | ||||||
| 		tns.cnt = 1; | 		tns.cnt = 1; | ||||||
| 	} else { | 	} else { | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								thumbs.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								thumbs.c
									
									
									
									
									
								
							| @ -212,9 +212,11 @@ void tns_free(tns_t *tns) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) { | int tns_load(tns_t *tns, int n, const fileinfo_t *file, | ||||||
|  |              Bool force, Bool silent) | ||||||
|  | { | ||||||
| 	int w, h; | 	int w, h; | ||||||
| 	int use_cache, cached = 0; | 	int use_cache, cache_hit = 0; | ||||||
| 	float z, zw, zh; | 	float z, zw, zh; | ||||||
| 	thumb_t *t; | 	thumb_t *t; | ||||||
| 	Imlib_Image *im; | 	Imlib_Image *im; | ||||||
| @ -234,11 +236,11 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ((use_cache = tns_cache_enabled())) { | 	if ((use_cache = tns_cache_enabled())) { | ||||||
| 		if ((im = tns_cache_load(file->path))) | 		if (!force && (im = tns_cache_load(file->path))) | ||||||
| 			cached = 1; | 			cache_hit = 1; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!cached && | 	if (!cache_hit && | ||||||
| 	    (access(file->path, R_OK) || !(im = imlib_load_image(file->path)))) | 	    (access(file->path, R_OK) || !(im = imlib_load_image(file->path)))) | ||||||
| 	{ | 	{ | ||||||
| 		if (!silent) | 		if (!silent) | ||||||
| @ -262,7 +264,7 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) { | |||||||
| 
 | 
 | ||||||
| 	imlib_free_image_and_decache(); | 	imlib_free_image_and_decache(); | ||||||
| 
 | 
 | ||||||
| 	if (use_cache && !cached) | 	if (use_cache && !cache_hit) | ||||||
| 		tns_cache_write(t, False); | 		tns_cache_write(t, False); | ||||||
| 
 | 
 | ||||||
| 	tns->dirty = 1; | 	tns->dirty = 1; | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								thumbs.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								thumbs.h
									
									
									
									
									
								
							| @ -51,7 +51,7 @@ void tns_clean_cache(tns_t*); | |||||||
| void tns_init(tns_t*, int); | void tns_init(tns_t*, int); | ||||||
| void tns_free(tns_t*); | void tns_free(tns_t*); | ||||||
| 
 | 
 | ||||||
| int tns_load(tns_t*, int, const fileinfo_t*, unsigned char); | int tns_load(tns_t*, int, const fileinfo_t*, Bool, Bool); | ||||||
| 
 | 
 | ||||||
| void tns_render(tns_t*, win_t*); | void tns_render(tns_t*, win_t*); | ||||||
| void tns_highlight(tns_t*, win_t*, int, Bool); | void tns_highlight(tns_t*, win_t*, int, Bool); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert