Mercurial > geeqie
diff src/view_file_icon.c @ 787:a2209b1f769d
use new notification in vficon
author | nadvornik |
---|---|
date | Thu, 05 Jun 2008 18:43:44 +0000 |
parents | d6a7fb4b8e7c |
children | 6d65167764ea |
line wrap: on
line diff
--- a/src/view_file_icon.c Thu Jun 05 09:24:42 2008 +0000 +++ b/src/view_file_icon.c Thu Jun 05 18:43:44 2008 +0000 @@ -65,6 +65,7 @@ FileData *fd; }; +static void vficon_notify_cb(FileData *fd, gpointer data); static gint vficon_index_by_id(ViewFile *vf, IconData *in_id); static IconData *vficon_icon_data(ViewFile *vf, FileData *fd) @@ -2233,6 +2234,8 @@ ViewFile *vf = data; if (VFICON_INFO(vf, sync_idle_id) != -1) g_source_remove(VFICON_INFO(vf, sync_idle_id)); + + file_data_unregister_notify_func(vficon_notify_cb, vf); tip_unschedule(vf); @@ -2298,6 +2301,8 @@ /* force VFICON_INFO(vf, columns) to be at least 1 (sane) - this will be corrected in the size_cb */ vficon_populate_at_new_size(vf, 1, 1, FALSE); + file_data_register_notify_func(vficon_notify_cb, vf); + return vf; } @@ -2369,7 +2374,10 @@ } } -gint vficon_maint_renamed(ViewFile *vf, FileData *fd) +static gint vficon_maint_removed(ViewFile *vf, FileData *fd, GList *ignore_list); + + +static gint vficon_maint_renamed(ViewFile *vf, FileData *fd) { gint ret = FALSE; gint row; @@ -2404,7 +2412,7 @@ return ret; } -gint vficon_maint_removed(ViewFile *vf, FileData *fd, GList *ignore_list) +static gint vficon_maint_removed(ViewFile *vf, FileData *fd, GList *ignore_list) { gint row; gint new_row = -1; @@ -2530,7 +2538,7 @@ return TRUE; } -gint vficon_maint_moved(ViewFile *vf, FileData *fd, GList *ignore_list) +static gint vficon_maint_moved(ViewFile *vf, FileData *fd, GList *ignore_list) { gint ret = FALSE; gchar *buf; @@ -2548,3 +2556,28 @@ return ret; } + +static void vficon_notify_cb(FileData *fd, gpointer data) +{ + ViewFile *vf = data; + + if (!fd->change) return; + + switch(fd->change->type) + { + case FILEDATA_CHANGE_MOVE: + vficon_maint_moved(vf, fd, NULL); + break; + case FILEDATA_CHANGE_COPY: + break; + case FILEDATA_CHANGE_RENAME: + vficon_maint_renamed(vf, fd); + break; + case FILEDATA_CHANGE_DELETE: + vficon_maint_removed(vf, fd, NULL); + break; + case FILEDATA_CHANGE_UNSPECIFIED: + break; + } + +}