Mercurial > geeqie
diff src/filedata.c @ 1677:c5c7e19fbb23
warn if another operation is performed on a file with unsaved metadata
| author | nadvornik |
|---|---|
| date | Sun, 28 Jun 2009 09:08:25 +0000 |
| parents | b874e5697fbf |
| children | 59c72fd324ce |
line wrap: on
line diff
--- a/src/filedata.c Sun Jun 28 08:49:28 2009 +0000 +++ b/src/filedata.c Sun Jun 28 09:08:25 2009 +0000 @@ -1863,6 +1863,16 @@ dir = remove_level_from_path(fd->path); if (fd->change->type != FILEDATA_CHANGE_DELETE && + fd->change->type != FILEDATA_CHANGE_MOVE && /* the unsaved metadata should survive move and rename operations */ + fd->change->type != FILEDATA_CHANGE_RENAME && + fd->change->type != FILEDATA_CHANGE_WRITE_METADATA && + fd->modified_xmp) + { + ret |= CHANGE_WARN_UNSAVED_META; + DEBUG_1("Change checked: unsaved metadata: %s", fd->path); + } + + if (fd->change->type != FILEDATA_CHANGE_DELETE && fd->change->type != FILEDATA_CHANGE_WRITE_METADATA && !access_file(fd->path, R_OK)) { @@ -2137,6 +2147,12 @@ g_string_append(result, _("source and destination have different extension")); } + if (error & CHANGE_WARN_UNSAVED_META) + { + if (result->len > 0) g_string_append(result, ", "); + g_string_append(result, _("there are unsaved metadata changes for the file")); + } + return g_string_free(result, FALSE); }
