diff src/view_file_list.c @ 800:a25b228978a0

various notification improvements
author nadvornik
date Sat, 07 Jun 2008 15:08:33 +0000
parents 99ea3d973ad3
children 9b676bb76a2e
line wrap: on
line diff
--- a/src/view_file_list.c	Sat Jun 07 10:45:33 2008 +0000
+++ b/src/view_file_list.c	Sat Jun 07 15:08:33 2008 +0000
@@ -726,7 +726,7 @@
 					FILE_COLUMN_DATE, text_from_time(fd->date),
 					FILE_COLUMN_COLOR, FALSE, -1);
 	for (i = 0; i < FILEDATA_MARKS_SIZE; i++)
-		gtk_tree_store_set(store, iter, FILE_COLUMN_MARKS + i, fd->marks[i], -1);
+		gtk_tree_store_set(store, iter, FILE_COLUMN_MARKS + i, file_data_get_mark(fd, i), -1);
 
 	g_free(size);
 	if (sidecars)
@@ -1405,7 +1405,7 @@
 		gboolean mark_val, selected;
 		gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, FILE_COLUMN_POINTER, &fd, -1);
 
-		mark_val = fd->marks[n];
+		mark_val = file_data_get_mark(fd, n);
 		selected = gtk_tree_selection_iter_is_selected(selection, &iter);
 
 		switch (mode)
@@ -1451,21 +1451,21 @@
 		gtk_tree_model_get_iter(store, &iter, tpath);
 		gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &fd, -1);
 
+		file_data_unregister_notify_func(vflist_notify_cb, vf); /* we don't need the notification */
+
 		switch (mode)
 			{
-			case STM_MODE_SET: fd->marks[n] = 1;
+			case STM_MODE_SET: file_data_set_mark(fd, n, 1);
 				break;
-			case STM_MODE_RESET: fd->marks[n] = 0;
+			case STM_MODE_RESET: file_data_set_mark(fd, n, 0);
 				break;
-			case STM_MODE_TOGGLE: fd->marks[n] = !fd->marks[n];
+			case STM_MODE_TOGGLE: file_data_set_mark(fd, n, !file_data_get_mark(fd, n));
 				break;
 			}
 		
-		file_data_unregister_notify_func(vflist_notify_cb, vf); /* we don't need the notification */
-		file_data_increment_version(fd);
 		file_data_register_notify_func(vflist_notify_cb, vf, NOTIFY_PRIORITY_MEDIUM);
 
-		gtk_tree_store_set(GTK_TREE_STORE(store), &iter, FILE_COLUMN_MARKS + n, fd->marks[n], -1);
+		gtk_tree_store_set(GTK_TREE_STORE(store), &iter, FILE_COLUMN_MARKS + n, file_data_get_mark(fd, n), -1);
 
 		work = work->next;
 		}
@@ -1708,9 +1708,8 @@
 
 	gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, FILE_COLUMN_POINTER, &fd, col_idx, &mark, -1);
 	mark = !mark;
-	fd->marks[col_idx - FILE_COLUMN_MARKS] = mark;
 	file_data_unregister_notify_func(vflist_notify_cb, vf); /* we don't need the notification */
-	file_data_increment_version(fd);
+	file_data_set_mark(fd, col_idx - FILE_COLUMN_MARKS, mark);
 	file_data_register_notify_func(vflist_notify_cb, vf, NOTIFY_PRIORITY_MEDIUM);
 
 	gtk_tree_store_set(store, &iter, col_idx, mark, -1);