Mercurial > geeqie.yaz
diff src/filedata.c @ 1662:7a4034d32503
warn if another operation is performed on a file with unsaved metadata
author | nadvornik |
---|---|
date | Sun, 28 Jun 2009 09:08:25 +0000 |
parents | 8b2ba0e1fc09 |
children | ece97f3f2305 |
line wrap: on
line diff
--- a/src/filedata.c Sat Jun 27 22:58:20 2009 +0000 +++ b/src/filedata.c Sun Jun 28 09:08:25 2009 +0000 @@ -1855,6 +1855,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)) { @@ -2129,6 +2139,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); }