Example #1
0
static void _list_add(Trash * trash, Config * config, char const * path,
		char const * filename, const time_t sixmonths)
{
	const char ext[] = DATA_EXTENSION;
	const char section[] = DATA_SECTION;
	BrowserPluginHelper * helper = trash->helper;
	size_t len;
	GtkTreeIter iter;
	GdkPixbuf * pixbuf;
	char * p;
	char const * q;
	struct tm tm;
	time_t t = -1;
	char const * u;
	char buf[16];

	if((len = strlen(filename)) <= sizeof(ext))
		return;
	if(strncmp(&filename[len - sizeof(ext) + 1], ext, sizeof(ext)) != 0)
		return;
	config_reset(config);
	p = g_strdup_printf("%s/%s", path, filename);
	if(config_load(config, p) != 0
			|| (q = config_get(config, section, DATA_PATH)) == NULL)
	{
		g_free(p);
		return;
	}
	pixbuf = helper->get_icon(helper->browser, q, NULL, NULL, NULL, 24);
	if((u = config_get(config, section, DATA_DELETIONDATE)) != NULL
			&& strptime(u, "%Y-%m-%dT%H:%M:%S", &tm) != NULL)
	{
		t = mktime(&tm);
		len = strftime(buf, sizeof(buf), (t >= sixmonths)
				? "%b %e %H:%M" : "%b %e %Y", &tm);
		buf[len] = '\0';
		u = buf;
	}
	else
		u = "";
	_list_get_iter(trash, &iter, p);
	gtk_list_store_set(trash->store, &iter, TC_PIXBUF, pixbuf,
			TC_FILENAME, filename, TC_PATH, p,
			TC_PATH_ORIGINAL, q, TC_DELETED, t,
			TC_DELETED_DISPLAY, u, TC_UPDATED, TRUE, -1);
	g_free(p);
}
Example #2
0
static void _refresh_type(Properties * properties, struct stat * lst)
{
	BrowserPluginHelper * helper = properties->helper;
	char const * type = NULL;
	GdkPixbuf * pixbuf;
	const int iconsize = 48;

	type = helper->get_type(helper->browser, properties->filename,
			lst->st_mode);
	pixbuf = helper->get_icon(helper->browser, properties->filename, type,
			lst, NULL, iconsize);
	gtk_image_set_from_pixbuf(GTK_IMAGE(properties->image), pixbuf);
	g_object_unref(pixbuf);
	if(type == NULL)
		type = _("Unknown type");
	gtk_label_set_text(GTK_LABEL(properties->type), type);
}
Example #3
0
/* selection_refresh */
static void _selection_refresh(Selection * selection, GList * selected)
{
	BrowserPluginHelper * helper = selection->helper;
	GList * l;
	gchar * basename;
	GtkTreeIter iter;
	GdkPixbuf * pixbuf;
	struct stat lst;
	struct stat st;
	struct stat * plst;
	struct stat * pst;
	size_t cnt;
	size_t size;
	char buf[64];

	gtk_list_store_clear(selection->store);
	for(l = selected, cnt = 0, size = 0; l != NULL; l = l->next, cnt++)
	{
		plst = (lstat(l->data, &lst) == 0) ? &lst : NULL;
		pst = (stat(l->data, &st) == 0) ? &st : NULL;
		pixbuf = helper->get_icon(helper->browser, l->data, NULL, plst,
				pst, 16);
		basename = g_path_get_basename(l->data);
		gtk_list_store_append(selection->store, &iter);
		gtk_list_store_set(selection->store, &iter, SC_ICON, pixbuf,
				SC_FILENAME, l->data,
				SC_FILENAME_DISPLAY, basename,
				SC_SIZE, lst.st_size,
				SC_SIZE_DISPLAY, _common_size(lst.st_size),
				SC_ELLIPSIZE, PANGO_ELLIPSIZE_END, -1);
		g_free(basename);
		if(plst != NULL)
			size += lst.st_size;
	}
	snprintf(buf, sizeof(buf), "%lu selected (%s)", cnt,
			_common_size(size));
	gtk_label_set_text(GTK_LABEL(selection->status), buf);
}