comparison src/image-overlay.c @ 263:c7fefb0a4b78

Display marks in overlay info only if at least one is set. Fix a missing g_string_free().
author zas_
date Mon, 07 Apr 2008 08:09:39 +0000
parents 62f2f8f7cb2d
children 3f14da3c3b9a
comparison
equal deleted inserted replaced
262:343dd4ae2b2b 263:c7fefb0a4b78
154 gchar *size; 154 gchar *size;
155 gint n, t; 155 gint n, t;
156 CollectionData *cd; 156 CollectionData *cd;
157 CollectInfo *info; 157 CollectInfo *info;
158 gchar *ct; 158 gchar *ct;
159 int i; 159 gint w, h;
160 gint w, h;
161 GHashTable *vars; 160 GHashTable *vars;
162 161
163 vars = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free); 162 vars = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
164 163
165 name = image_get_name(imd); 164 name = image_get_name(imd);
258 g_free(ct); 257 g_free(ct);
259 g_free(name_escaped); 258 g_free(name_escaped);
260 g_hash_table_destroy(vars); 259 g_hash_table_destroy(vars);
261 260
262 { 261 {
263 GString *buf = g_string_sized_new(FILEDATA_MARKS_SIZE * 2);
264 FileData *fd = image_get_fd(imd); 262 FileData *fd = image_get_fd(imd);
265 263 gint active_marks = 0;
266 for (i=0; i < FILEDATA_MARKS_SIZE; i++) 264 gint mark;
267 { 265
268 266 for (mark = 0; mark < FILEDATA_MARKS_SIZE; mark++)
269 g_string_append_printf(buf, fd->marks[i] ? " <span background='#FF00FF'>%c</span>" : " %c", '1' + i); 267 {
270 } 268 active_marks += fd->marks[mark];
271 text2 = g_strdup_printf("%s\n%s", text, buf->str); 269 }
270
271 if (active_marks > 0)
272 {
273 GString *buf = g_string_sized_new(FILEDATA_MARKS_SIZE * 2);
274
275 for (mark = 0; mark < FILEDATA_MARKS_SIZE; mark++)
276 {
277 g_string_append_printf(buf, fd->marks[mark] ? " <span background='#FF00FF'>%c</span>" : " %c", '1' + mark);
278 }
279
280 text2 = g_strdup_printf("%s\n%s", text, buf->str);
281 g_string_free(buf, TRUE);
282 g_free(text);
283 }
284 else
285 {
286 text2 = text;
287 }
272 } 288 }
273 289
274 layout = gtk_widget_create_pango_layout(imd->pr, NULL); 290 layout = gtk_widget_create_pango_layout(imd->pr, NULL);
275 pango_layout_set_markup(layout, text2, -1); 291 pango_layout_set_markup(layout, text2, -1);
276 g_free(text2); 292 g_free(text2);
277 g_free(text);
278 293
279 pango_layout_get_pixel_size(layout, &width, &height); 294 pango_layout_get_pixel_size(layout, &width, &height);
280 295
281 width += 10; 296 width += 10;
282 height += 10; 297 height += 10;