Mercurial > geeqie.yaz
comparison src/metadata.c @ 1702:9efd43f52b5b
remove deleted files from metadata queue
| author | nadvornik |
|---|---|
| date | Sat, 22 Aug 2009 21:58:49 +0000 |
| parents | 2ec2f6827127 |
| children |
comparison
equal
deleted
inserted
replaced
| 1701:f80ee95314dd | 1702:9efd43f52b5b |
|---|---|
| 124 ret = ret && metadata_write_queue_remove(fd); | 124 ret = ret && metadata_write_queue_remove(fd); |
| 125 } | 125 } |
| 126 return ret; | 126 return ret; |
| 127 } | 127 } |
| 128 | 128 |
| 129 void metadata_notify_cb(FileData *fd, NotifyType type, gpointer data) | |
| 130 { | |
| 131 if ((type & (NOTIFY_REREAD | NOTIFY_CHANGE)) && g_list_find(metadata_write_queue, fd)) | |
| 132 { | |
| 133 DEBUG_1("Notify metadata: %s %04x", fd->path, type); | |
| 134 if (!isname(fd->path)) | |
| 135 { | |
| 136 /* ignore deleted files */ | |
| 137 metadata_write_queue_remove(fd); | |
| 138 } | |
| 139 } | |
| 140 } | |
| 129 | 141 |
| 130 gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_data) | 142 gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_data) |
| 131 { | 143 { |
| 132 GList *work; | 144 GList *work; |
| 133 GList *to_approve = NULL; | 145 GList *to_approve = NULL; |
| 135 work = metadata_write_queue; | 147 work = metadata_write_queue; |
| 136 while (work) | 148 while (work) |
| 137 { | 149 { |
| 138 FileData *fd = work->data; | 150 FileData *fd = work->data; |
| 139 work = work->next; | 151 work = work->next; |
| 152 | |
| 153 if (!isname(fd->path)) | |
| 154 { | |
| 155 /* ignore deleted files */ | |
| 156 metadata_write_queue_remove(fd); | |
| 157 continue; | |
| 158 } | |
| 140 | 159 |
| 141 if (fd->change) continue; /* another operation in progress, skip this file for now */ | 160 if (fd->change) continue; /* another operation in progress, skip this file for now */ |
| 142 | 161 |
| 143 to_approve = g_list_prepend(to_approve, file_data_ref(fd)); | 162 to_approve = g_list_prepend(to_approve, file_data_ref(fd)); |
| 144 } | 163 } |
