diff src/filedata.c @ 964:ba1d3c4bc0cd

implemented marks filter
author nadvornik
date Sat, 16 Aug 2008 20:34:14 +0000
parents d7cb8d5714d1
children cbdabb499684
line wrap: on
line diff
--- a/src/filedata.c	Sat Aug 16 07:18:16 2008 +0000
+++ b/src/filedata.c	Sat Aug 16 20:34:14 2008 +0000
@@ -1068,6 +1068,33 @@
 	file_data_send_notification(fd, NOTIFY_TYPE_INTERNAL);
 }
 
+gboolean file_data_filter_marks(FileData *fd, guint filter)
+{
+	return ((fd->marks & filter) == filter);
+}
+
+GList *file_data_filter_marks_list(GList *list, guint filter)
+{
+	GList *work;
+
+	work = list;
+	while (work)
+		{
+		FileData *fd = work->data;
+		GList *link = work;
+		work = work->next;
+
+		if (!file_data_filter_marks(fd, filter))
+			{
+			list = g_list_remove_link(list, link);
+			file_data_unref(fd);
+			g_list_free(link);
+			}
+		}
+
+	return list;
+}
+
 gint file_data_get_user_orientation(FileData *fd)
 {
 	return fd->user_orientation;