Mercurial > geeqie.yaz
comparison src/metadata.c @ 1214:31402ecb2aed
write metadata after timeout, image change or dir change
author | nadvornik |
---|---|
date | Mon, 22 Dec 2008 18:29:25 +0000 |
parents | e2bbe90b0dcd |
children | 46e4fda574dd |
comparison
equal
deleted
inserted
replaced
1213:bbec86370ef4 | 1214:31402ecb2aed |
---|---|
121 if (g_list_find(metadata_write_queue, fd)) return; | 121 if (g_list_find(metadata_write_queue, fd)) return; |
122 | 122 |
123 metadata_write_queue = g_list_prepend(metadata_write_queue, fd); | 123 metadata_write_queue = g_list_prepend(metadata_write_queue, fd); |
124 file_data_ref(fd); | 124 file_data_ref(fd); |
125 | 125 |
126 if (metadata_write_idle_id == -1) metadata_write_idle_id = g_idle_add(metadata_write_queue_idle_cb, NULL); | 126 if (metadata_write_idle_id != -1) |
127 { | |
128 g_source_remove(metadata_write_idle_id); | |
129 metadata_write_idle_id = -1; | |
130 } | |
131 | |
132 if (options->metadata.confirm_timeout > 0) | |
133 { | |
134 metadata_write_idle_id = g_timeout_add(options->metadata.confirm_timeout * 1000, metadata_write_queue_idle_cb, NULL); | |
135 } | |
127 } | 136 } |
128 | 137 |
129 | 138 |
130 gboolean metadata_write_queue_remove(FileData *fd) | 139 gboolean metadata_write_queue_remove(FileData *fd) |
131 { | 140 { |
159 } | 168 } |
160 return ret; | 169 return ret; |
161 } | 170 } |
162 | 171 |
163 | 172 |
164 static gboolean metadata_write_queue_idle_cb(gpointer data) | 173 gboolean metadata_write_queue_confirm() |
165 { | 174 { |
166 GList *work; | 175 GList *work; |
167 GList *to_approve = NULL; | 176 GList *to_approve = NULL; |
168 | 177 |
169 work = metadata_write_queue; | 178 work = metadata_write_queue; |
182 } | 191 } |
183 | 192 |
184 file_util_write_metadata(NULL, to_approve, NULL); | 193 file_util_write_metadata(NULL, to_approve, NULL); |
185 | 194 |
186 filelist_free(to_approve); | 195 filelist_free(to_approve); |
187 | 196 |
197 return (metadata_write_queue != NULL); | |
198 } | |
199 | |
200 static gboolean metadata_write_queue_idle_cb(gpointer data) | |
201 { | |
202 metadata_write_queue_confirm(); | |
188 metadata_write_idle_id = -1; | 203 metadata_write_idle_id = -1; |
189 return FALSE; | 204 return FALSE; |
190 } | 205 } |
206 | |
191 | 207 |
192 gboolean metadata_write_exif(FileData *fd, FileData *sfd) | 208 gboolean metadata_write_exif(FileData *fd, FileData *sfd) |
193 { | 209 { |
194 gboolean success; | 210 gboolean success; |
195 ExifData *exif; | 211 ExifData *exif; |