From: John Ellis Date: Tue, 12 Apr 2005 12:11:31 +0000 (+0000) Subject: Tue Apr 12 07:59:20 2005 John Ellis X-Git-Tag: v1.0.0~1767 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=bc7d72623b55664b87aff54b652a475f8ddb5055 Tue Apr 12 07:59:20 2005 John Ellis * pan-view.c: Use mostly neutral (gray) colors in the pan view to avoid tainting user perspective of image hues. * pixbuf-renderer.c (pixbuf_renderer_move): Free tile cache of source to avoid wasteful memory allocation, this will reduce memory waste when in full screen. ##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. ##### --- diff --git a/ChangeLog b/ChangeLog index d7dcb533..70ba8918 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Apr 12 07:59:20 2005 John Ellis + + * pan-view.c: Use mostly neutral (gray) colors in the pan view to avoid + tainting user perspective of image hues. + * pixbuf-renderer.c (pixbuf_renderer_move): Free tile cache of source + to avoid wasteful memory allocation, this will reduce memory waste + when in full screen. + Fri Apr 8 15:31:38 2005 John Ellis * pan-view.c: Optimize pan_layout_intersect by dividing object list diff --git a/TODO b/TODO index 492c5fce..772164b5 100644 --- a/TODO +++ b/TODO @@ -9,6 +9,8 @@ Major: d> fix image_change_from_image (to do this need a pixbuf_renderer_move_image). d> fix broken zoom out drawing when using source tiles. d> fix 2pass zoom when using source tiles and zoomed out (not always rendering second pass) + d> pixbuf_renderer_move should be clearing the tiles of the source image since they are no longer + valid and are then wasting memory (for example when full screen is active). > image.c: d> need to keep a list of ImageWindows and provide function to sync options to each object. diff --git a/src/pan-view.c b/src/pan-view.c index 40ab0d87..b1e2bebc 100644 --- a/src/pan-view.c +++ b/src/pan-view.c @@ -66,29 +66,56 @@ #define PAN_OUTLINE_COLOR_2 64, 64, 64 #define PAN_OUTLINE_ALPHA 180 -#define PAN_BACKGROUND_COLOR 255, 255, 230 +#define PAN_BACKGROUND_COLOR 150, 150, 150 -#define PAN_GRID_SIZE 10 +#define PAN_GRID_SIZE 60 #define PAN_GRID_COLOR 0, 0, 0 #define PAN_GRID_ALPHA 20 -#define PAN_FOLDER_BOX_COLOR 0, 0, 255 -#define PAN_FOLDER_BOX_ALPHA 10 +#define PAN_FOLDER_BOX_COLOR 255, 255, 255 +#define PAN_FOLDER_BOX_ALPHA 100 #define PAN_FOLDER_BOX_BORDER 20 #define PAN_FOLDER_BOX_OUTLINE_THICKNESS 4 -#define PAN_FOLDER_BOX_OUTLINE_COLOR 0, 0, 255 -#define PAN_FOLDER_BOX_OUTLINE_ALPHA 64 +#define PAN_FOLDER_BOX_OUTLINE_COLOR 0, 0, 0 +#define PAN_FOLDER_BOX_OUTLINE_ALPHA 128 #define PAN_TEXT_BORDER_SIZE 4 #define PAN_TEXT_COLOR 0, 0, 0 -#define PAN_POPUP_COLOR 255, 255, 220 +#define PAN_POPUP_COLOR 255, 255, 225 #define PAN_POPUP_ALPHA 255 #define PAN_POPUP_BORDER 1 #define PAN_POPUP_BORDER_COLOR 0, 0, 0 #define PAN_POPUP_TEXT_COLOR 0, 0, 0 +#define PAN_CAL_POPUP_COLOR 220, 220, 220 +#define PAN_CAL_POPUP_ALPHA 255 +#define PAN_CAL_POPUP_BORDER 1 +#define PAN_CAL_POPUP_BORDER_COLOR 0, 0, 0 +#define PAN_CAL_POPUP_TEXT_COLOR 0, 0, 0 + +#define PAN_CAL_DAY_WIDTH 100 +#define PAN_CAL_DAY_HEIGHT 80 + +#define PAN_CAL_DAY_COLOR 255, 255, 255 +#define PAN_CAL_DAY_ALPHA 220 +#define PAN_CAL_DAY_BORDER 2 +#define PAN_CAL_DAY_BORDER_COLOR 0, 0, 0 +#define PAN_CAL_DAY_TEXT_COLOR 0, 0, 0 + +#define PAN_CAL_MONTH_COLOR 255, 255, 255 +#define PAN_CAL_MONTH_ALPHA 200 +#define PAN_CAL_MONTH_BORDER 4 +#define PAN_CAL_MONTH_BORDER_COLOR 0, 0, 0 +#define PAN_CAL_MONTH_TEXT_COLOR 0, 0, 0 + +#define PAN_CAL_DOT_SIZE 3 +#define PAN_CAL_DOT_GAP 2 +#define PAN_CAL_DOT_COLOR 128, 128, 128 +#define PAN_CAL_DOT_ALPHA 128 + + #define PAN_GROUP_MAX 16 #define ZOOM_INCREMENT 1.0 @@ -1652,13 +1679,6 @@ static void pan_window_layout_compute_folders_linear(PanWindow *pw, const gchar *----------------------------------------------------------------------------- */ -#define PAN_CAL_DAY_WIDTH 100 -#define PAN_CAL_DAY_HEIGHT 80 -#define PAN_CAL_DOT_SIZE 3 -#define PAN_CAL_DOT_GAP 2 -#define PAN_CAL_DOT_COLOR 0, 0, 0 -#define PAN_CAL_DOT_ALPHA 32 - static void pan_calendar_update(PanWindow *pw, PanItem *pi_day) { PanItem *pbox; @@ -1711,9 +1731,9 @@ static void pan_calendar_update(PanWindow *pw, PanItem *pi_day) #endif pbox = pan_item_new_box(pw, NULL, x, y, PAN_FOLDER_BOX_BORDER, PAN_FOLDER_BOX_BORDER, - PAN_POPUP_BORDER, - PAN_POPUP_COLOR, PAN_POPUP_ALPHA, - PAN_POPUP_BORDER_COLOR, PAN_POPUP_ALPHA); + PAN_CAL_POPUP_BORDER, + PAN_CAL_POPUP_COLOR, PAN_CAL_POPUP_ALPHA, + PAN_CAL_POPUP_BORDER_COLOR, PAN_CAL_POPUP_ALPHA); pan_item_set_key(pbox, "day_bubble"); if (pi_day->fd) @@ -1723,7 +1743,7 @@ static void pan_calendar_update(PanWindow *pw, PanItem *pi_day) buf = date_value_string(pi_day->fd->date, DATE_LENGTH_WEEK); plabel = pan_item_new_text(pw, x, y, buf, TEXT_ATTR_BOLD | TEXT_ATTR_HEADING, - PAN_POPUP_TEXT_COLOR, 255); + PAN_CAL_POPUP_TEXT_COLOR, 255); pan_item_set_key(plabel, "day_bubble"); g_free(buf); @@ -1782,8 +1802,8 @@ static void pan_calendar_update(PanWindow *pw, PanItem *pi_day) pi = pan_item_new_tri(pw, NULL, x, y, w, h, x1, y1, x2, y2, x3, y3, - PAN_POPUP_COLOR, PAN_POPUP_ALPHA); - pan_item_tri_border(pi, BORDER_1 | BORDER_3, PAN_POPUP_BORDER_COLOR, PAN_POPUP_ALPHA); + PAN_CAL_POPUP_COLOR, PAN_CAL_POPUP_ALPHA); + pan_item_tri_border(pi, BORDER_1 | BORDER_3, PAN_CAL_POPUP_BORDER_COLOR, PAN_CAL_POPUP_ALPHA); pan_item_set_key(pi, "day_bubble"); pan_item_added(pw, pi); @@ -1885,13 +1905,13 @@ static void pan_window_layout_compute_calendar(PanWindow *pw, const gchar *path, x = PAN_FOLDER_BOX_BORDER; pi_month = pan_item_new_box(pw, NULL, x, y, PAN_CAL_DAY_WIDTH * 7, PAN_CAL_DAY_HEIGHT / 4, - PAN_FOLDER_BOX_OUTLINE_THICKNESS, - PAN_FOLDER_BOX_COLOR, PAN_FOLDER_BOX_ALPHA, - PAN_FOLDER_BOX_OUTLINE_COLOR, PAN_FOLDER_BOX_OUTLINE_ALPHA); + PAN_CAL_MONTH_BORDER, + PAN_CAL_MONTH_COLOR, PAN_CAL_MONTH_ALPHA, + PAN_CAL_MONTH_BORDER_COLOR, PAN_CAL_MONTH_ALPHA); buf = date_value_string(dt, DATE_LENGTH_MONTH); pi_text = pan_item_new_text(pw, x, y, buf, TEXT_ATTR_BOLD | TEXT_ATTR_HEADING, - PAN_TEXT_COLOR, 255); + PAN_CAL_MONTH_TEXT_COLOR, 255); g_free(buf); pi_text->x = pi_month->x + (pi_month->width - pi_text->width) / 2; @@ -1915,9 +1935,9 @@ static void pan_window_layout_compute_calendar(PanWindow *pw, const gchar *path, fd->name = path; fd->date = dt; pi_day = pan_item_new_box(pw, fd, x, y, PAN_CAL_DAY_WIDTH, PAN_CAL_DAY_HEIGHT, - PAN_FOLDER_BOX_OUTLINE_THICKNESS, - PAN_FOLDER_BOX_COLOR, PAN_FOLDER_BOX_ALPHA, - PAN_FOLDER_BOX_OUTLINE_COLOR, PAN_FOLDER_BOX_OUTLINE_ALPHA); + PAN_CAL_DAY_BORDER, + PAN_CAL_DAY_COLOR, PAN_CAL_DAY_ALPHA, + PAN_CAL_DAY_BORDER_COLOR, PAN_CAL_DAY_ALPHA); pan_item_set_key(pi_day, "day"); dx = x + PAN_CAL_DOT_GAP * 2; @@ -1946,7 +1966,6 @@ static void pan_window_layout_compute_calendar(PanWindow *pw, const gchar *path, dy = y + PAN_CAL_DOT_GAP * 2; } - pi_day->color_a = MIN(PAN_FOLDER_BOX_ALPHA + 64 + n, 255); n++; work = work->next; @@ -1957,9 +1976,12 @@ static void pan_window_layout_compute_calendar(PanWindow *pw, const gchar *path, { PanItem *pi; + pi_day->color_r = MAX(pi_day->color_r - 61 - n * 3, 80); + pi_day->color_g = pi_day->color_r; + buf = g_strdup_printf("( %d )", n); pi = pan_item_new_text(pw, x, y, buf, TEXT_ATTR_NONE, - PAN_TEXT_COLOR, 255); + PAN_CAL_DAY_TEXT_COLOR, 255); g_free(buf); pi->x = pi_day->x + (pi_day->width - pi->width) / 2; @@ -1968,7 +1990,7 @@ static void pan_window_layout_compute_calendar(PanWindow *pw, const gchar *path, buf = g_strdup_printf("%d", day); pan_item_new_text(pw, x + 4, y + 4, buf, TEXT_ATTR_BOLD | TEXT_ATTR_HEADING, - PAN_TEXT_COLOR, 255); + PAN_CAL_DAY_TEXT_COLOR, 255); g_free(buf); diff --git a/src/pixbuf-renderer.c b/src/pixbuf-renderer.c index f8f76dfa..169aa750 100644 --- a/src/pixbuf-renderer.c +++ b/src/pixbuf-renderer.c @@ -3116,6 +3116,8 @@ void pixbuf_renderer_move(PixbufRenderer *pr, PixbufRenderer *source) pr->scroll_reset = scroll_reset; pixbuf_renderer_set_pixbuf(source, NULL, source->zoom); + pr_queue_clear(pr); + pr_tile_free_all(source); } void pixbuf_renderer_area_changed(PixbufRenderer *pr, gint x, gint y, gint width, gint height)