/*
* Geeqie
* (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2012 The Geeqie Team
*
* Author: John Ellis
*
*/
-#include "gqview.h"
+#include "main.h"
#include "pan-types.h"
+#include <glib/gprintf.h>
#include <math.h>
gint x, y, w, h;
gint grid;
gint column;
-
+
while ((pi = pan_item_find_by_key(pw, PAN_ITEM_NONE, "day_bubble"))) pan_item_remove(pw, pi);
if (!pi_day || pi_day->type != PAN_ITEM_BOX ||
pan_layout_resize(pw);
}
-void pan_calendar_compute(PanWindow *pw, const gchar *path, gint *width, gint *height)
+void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height)
{
GList *list;
GList *work;
time_t tc;
gint count;
gint day_max;
- gint day_width;
- gint day_height;
gint grid;
gint year = 0;
gint month = 0;
gint end_year = 0;
gint end_month = 0;
- list = pan_list_tree(path, SORT_NONE, TRUE, pw->ignore_symlinks);
+ list = pan_list_tree(dir_fd, SORT_NONE, TRUE, pw->ignore_symlinks);
if (pw->cache_list && pw->exif_date_enable)
{
}
}
- if (debug) printf("biggest day contains %d images\n", day_max);
+ DEBUG_1("biggest day contains %d images", day_max);
- grid = (gint)(sqrt((double)day_max) + 0.5) * (PAN_THUMB_SIZE + PAN_SHADOW_OFFSET * 2 + PAN_THUMB_GAP);
- day_width = MAX(PAN_CAL_DAY_WIDTH, grid);
- day_height = MAX(PAN_CAL_DAY_HEIGHT, grid);
+ grid = (gint)(sqrt((gdouble)day_max) + 0.5) * (PAN_THUMB_SIZE + PAN_SHADOW_OFFSET * 2 + PAN_THUMB_GAP);
if (list)
{
PanItem *pi_day;
gint dx, dy;
gint n = 0;
+ gchar fake_path[20];
dt = pan_date_to_time(year, month, day);
- fd = g_new0(FileData, 1);
- /* path and name must be non NULL, so make them an invalid filename */
- fd->path = g_strdup("//");
- fd->name = path;
+ /*
+ * Create a FileData entry that represents the given day.
+ * It does not correspond to any real file
+ */
+
+ g_snprintf(fake_path, sizeof(fake_path), "//%04d-%02d-%02d", year, month, day);
+ fd = file_data_new_no_grouping(fake_path);
fd->date = dt;
pi_day = pan_item_box_new(pw, fd, x, y, PAN_CAL_DAY_WIDTH, PAN_CAL_DAY_HEIGHT,
PAN_CAL_DAY_BORDER,
g_list_free(list);
}
-
-
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */