diff options
| author | Bert <ber.t@gmx.com> | 2011-02-27 13:03:16 +0100 | 
|---|---|---|
| committer | Bert <ber.t@gmx.com> | 2011-02-27 13:03:16 +0100 | 
| commit | 7334bdfa51778d143958811bd38d4719fcbf72f0 (patch) | |
| tree | 59003aec498d962aceaa35ccbb28b1c820082f40 | |
| parent | 090ee5405b70d6dfa16a8ca3a691dbd556c41bdb (diff) | |
Revert "Save rotated png-files with S-key"
This reverts commit 090ee5405b70d6dfa16a8ca3a691dbd556c41bdb.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | image.c | 37 | ||||
| -rw-r--r-- | image.h | 3 | ||||
| -rw-r--r-- | main.c | 68 | ||||
| -rw-r--r-- | thumbs.c | 18 | ||||
| -rw-r--r-- | thumbs.h | 3 | 
6 files changed, 50 insertions, 81 deletions
| @@ -1,6 +1,6 @@  all: sxiv -VERSION=git-20110227 +VERSION=0.7  CC?=gcc  PREFIX?=/usr/local @@ -16,7 +16,6 @@   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.   */ -#include <string.h>  #include <unistd.h>  #include "config.h" @@ -29,9 +28,6 @@ int zl_cnt;  float zoom_min;  float zoom_max; -const short ori_left[8] = { 8, 7, 6, 5, 2, 1, 4, 3 }; -const short ori_right[8] = { 6, 5, 8, 7, 4, 3, 2, 1 }; -  Imlib_Image *im_broken;  void img_init(img_t *img, win_t *win) { @@ -94,8 +90,8 @@ int img_load(img_t *img, const char *filename) {  		img->scalemode = SCALE_DOWN;  	} -	img->ori = img->o_ori = 1; -	img->re = img->checkpan = 0; +	img->re = 0; +	img->checkpan = 0;  	img->w = imlib_image_get_width();  	img->h = imlib_image_get_height(); @@ -103,25 +99,6 @@ int img_load(img_t *img, const char *filename) {  	return 1;  } -int img_save(img_t *img) { -	const char *fmt; - -	if (!img || !img->im) -		return 0; - -	imlib_context_set_image(img->im); - -	if (img->ori != img->o_ori) { -		fmt = imlib_image_format(); -		if (strcmp(fmt, "png") == 0) { -			imlib_save_image(imlib_image_get_filename()); -			return 1; -		} -	} - -	return 0; -} -  void img_close(img_t *img) {  	if (img && img->im) {  		imlib_context_set_image(img->im); @@ -364,17 +341,11 @@ void img_rotate(img_t *img, win_t *win, int d) {  }  void img_rotate_left(img_t *img, win_t *win) { -	if (img) { -		img_rotate(img, win, 3); -		img->ori = ori_left[img->ori]; -	} +	img_rotate(img, win, 3);  }  void img_rotate_right(img_t *img, win_t *win) { -	if (img) { -		img_rotate(img, win, 1); -		img->ori = ori_right[img->ori]; -	} +	img_rotate(img, win, 1);  }  void img_toggle_antialias(img_t *img) { @@ -41,8 +41,6 @@ typedef struct img_s {  	float zoom;  	scalemode_t scalemode; -	short ori; -	short o_ori;  	unsigned char re;  	unsigned char checkpan; @@ -59,7 +57,6 @@ void img_free(img_t*);  int img_check(const char*);  int img_load(img_t*, const char*); -int img_save(img_t*);  void img_close(img_t*);  void img_render(img_t*, win_t*); @@ -69,11 +69,10 @@ void cleanup() {  	}  } -int load_image(int new) { +int load_image() {  	struct stat fstats;  	img_close(&img); -	fileidx = new;  	if (!stat(filenames[fileidx], &fstats))  		filesize = fstats.st_size; @@ -141,7 +140,7 @@ int main(int argc, char **argv) {  	} else {  		mode = MODE_NORMAL;  		tns.thumbs = NULL; -		load_image(fileidx); +		load_image();  		img_render(&img, &win);  	} @@ -308,29 +307,41 @@ void on_keypress(XKeyEvent *kev) {  			/* navigate image list */  			case XK_n:  			case XK_space: -				if (fileidx + 1 < filecnt) -					changed = load_image(fileidx + 1); +				if (fileidx + 1 < filecnt) { +					++fileidx; +					changed = load_image(); +				}  				break;  			case XK_p:  			case XK_BackSpace: -				if (fileidx > 0) -					changed = load_image(fileidx - 1); +				if (fileidx > 0) { +					--fileidx; +					changed = load_image(); +				}  				break;  			case XK_bracketleft: -				if (fileidx != 0) -					changed = load_image(MAX(0, fileidx - 10)); +				if (fileidx != 0) { +					fileidx = MAX(0, fileidx - 10); +					changed = load_image(); +				}  				break;  			case XK_bracketright: -				if (fileidx != filecnt - 1) -					changed = load_image(MIN(fileidx + 10, filecnt - 1)); +				if (fileidx != filecnt - 1) { +					fileidx = MIN(fileidx + 10, filecnt - 1); +					changed = load_image(); +				}  				break;  			case XK_g: -				if (fileidx != 0) -					changed = load_image(0); +				if (fileidx != 0) { +					fileidx = 0; +					changed = load_image(); +				}  				break;  			case XK_G: -				if (fileidx != filecnt - 1) -					changed = load_image(filecnt - 1); +				if (fileidx != filecnt - 1) { +					fileidx = filecnt - 1; +					changed = load_image(); +				}  				break;  			/* zooming */ @@ -407,11 +418,7 @@ void on_keypress(XKeyEvent *kev) {  				changed = 1;  				break;  			case XK_r: -				changed = load_image(fileidx); -				break; -			case XK_S: -			  if (img_save(&img)) -					tns_load(&tns, &win, fileidx, filenames[fileidx]); +				changed = load_image();  				break;  		}  	} else { @@ -419,7 +426,8 @@ void on_keypress(XKeyEvent *kev) {  		switch (ksym) {  			/* open selected image */  			case XK_Return: -				load_image(tns.sel); +				fileidx = tns.sel; +				load_image();  				mode = MODE_NORMAL;  				win_set_cursor(&win, CURSOR_NONE);  				changed = 1; @@ -488,8 +496,10 @@ void on_buttonpress(XButtonEvent *bev) {  	if (mode == MODE_NORMAL) {  		switch (bev->button) {  			case Button1: -				if (fileidx + 1 < filecnt) -					changed = load_image(fileidx + 1); +				if (fileidx + 1 < filecnt) { +					++fileidx; +					changed = load_image(); +				}  				break;  			case Button2:  				mox = bev->x; @@ -499,8 +509,10 @@ void on_buttonpress(XButtonEvent *bev) {  				drag = 1;  				break;  			case Button3: -				if (fileidx > 0) -					changed = load_image(fileidx - 1); +				if (fileidx > 0) { +					--fileidx; +					changed = load_image(); +				}  				break;  			case Button4:  				if (mask == ControlMask) @@ -531,7 +543,8 @@ void on_buttonpress(XButtonEvent *bev) {  			case Button1:  				if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {  					if (sel == tns.sel) { -						load_image(tns.sel); +						fileidx = tns.sel; +						load_image();  						mode = MODE_NORMAL;  						timo_cursor = TO_CURSOR_HIDE;  					} else { @@ -587,8 +600,7 @@ void run() {  			gettimeofday(&t0, 0);  			while (!XPending(win.env.dpy) && tns.cnt < filecnt) { -				/* tns.cnt is increased inside tns_load */ -				tns_load(&tns, &win, tns.cnt, filenames[tns.cnt]); +				tns_load(&tns, &win, filenames[tns.cnt]);  				gettimeofday(&t1, 0);  				if (TV_TO_DOUBLE(t1) - TV_TO_DOUBLE(t0) >= 0.25)  					break; @@ -35,7 +35,6 @@ void tns_init(tns_t *tns, int cnt) {  	tns->cnt = tns->first = tns->sel = 0;  	tns->thumbs = (thumb_t*) s_malloc(cnt * sizeof(thumb_t));  	memset(tns->thumbs, 0, cnt * sizeof(thumb_t)); -	tns->cap = cnt;  	tns->dirty = 0;  } @@ -52,7 +51,7 @@ void tns_free(tns_t *tns, win_t *win) {  	tns->thumbs = NULL;  } -void tns_load(tns_t *tns, win_t *win, int n, const char *filename) { +void tns_load(tns_t *tns, win_t *win, const char *filename) {  	int w, h;  	float z, zw, zh;  	thumb_t *t; @@ -61,17 +60,10 @@ void tns_load(tns_t *tns, win_t *win, int n, const char *filename) {  	if (!tns || !win || !filename)  		return; -	if (n >= tns->cap) -		return; -	else if (n >= tns->cnt) -		tns->cnt = n + 1; - -	if ((im = imlib_load_image(filename))) { +	if ((im = imlib_load_image(filename)))  		imlib_context_set_image(im); -		imlib_image_set_changes_on_disk(); -	} else { +	else  		imlib_context_set_image(im_broken); -	}  	w = imlib_image_get_width();  	h = imlib_image_get_height(); @@ -81,12 +73,10 @@ void tns_load(tns_t *tns, win_t *win, int n, const char *filename) {  	if (!im && z > 1.0)  		z = 1.0; -	t = &tns->thumbs[n]; +	t = &tns->thumbs[tns->cnt++];  	t->w = z * w;  	t->h = z * h; -	if (t->pm) -		win_free_pixmap(win, t->pm);  	t->pm = win_create_pixmap(win, t->w, t->h);  	imlib_context_set_drawable(t->pm);  	imlib_context_set_anti_alias(1); @@ -38,7 +38,6 @@ typedef struct thumb_s {  typedef struct tns_s {  	thumb_t *thumbs; -	int cap;  	int cnt;  	int x;  	int y; @@ -52,7 +51,7 @@ typedef struct tns_s {  void tns_init(tns_t*, int);  void tns_free(tns_t*, win_t*); -void tns_load(tns_t*, win_t*, int, const char*); +void tns_load(tns_t*, win_t*, const char*);  void tns_render(tns_t*, win_t*);  void tns_highlight(tns_t*, win_t*, int, Bool); | 
