Revision: 1776
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1776&view=rev
Author:   nadvornik
Date:     2009-06-28 09:08:25 +0000 (Sun, 28 Jun 2009)

Log Message:
-----------
warn if another operation is performed on a file with unsaved metadata

Modified Paths:
--------------
    trunk/src/filedata.c
    trunk/src/typedefs.h

Modified: trunk/src/filedata.c
===================================================================
--- trunk/src/filedata.c        2009-06-28 08:49:28 UTC (rev 1775)
+++ trunk/src/filedata.c        2009-06-28 09:08:25 UTC (rev 1776)
@@ -1863,7 +1863,17 @@
        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))
                {
                ret |= CHANGE_NO_READ_PERM;
@@ -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);
 }
 

Modified: trunk/src/typedefs.h
===================================================================
--- trunk/src/typedefs.h        2009-06-28 08:49:28 UTC (rev 1775)
+++ trunk/src/typedefs.h        2009-06-28 09:08:25 UTC (rev 1776)
@@ -157,14 +157,15 @@
        CHANGE_WARN_NO_WRITE_PERM      = 1 << 1,
        CHANGE_WARN_SAME               = 1 << 2,
        CHANGE_WARN_CHANGED_EXT        = 1 << 3,
-       CHANGE_ERROR_MASK              = (~0) << 4, /* the values below are 
fatal errors */
-       CHANGE_NO_READ_PERM            = 1 << 4,
-       CHANGE_NO_WRITE_PERM_DIR       = 1 << 5,
-       CHANGE_NO_DEST_DIR             = 1 << 6,
-       CHANGE_NO_WRITE_PERM_DEST_DIR  = 1 << 7,
-       CHANGE_NO_WRITE_PERM_DEST      = 1 << 8,
-       CHANGE_DEST_EXISTS             = 1 << 9,
-       CHANGE_NO_SRC                  = 1 << 10,
+       CHANGE_WARN_UNSAVED_META       = 1 << 4,
+       CHANGE_ERROR_MASK              = (~0) << 8, /* the values below are 
fatal errors */
+       CHANGE_NO_READ_PERM            = 1 << 8,
+       CHANGE_NO_WRITE_PERM_DIR       = 1 << 9,
+       CHANGE_NO_DEST_DIR             = 1 << 10,
+       CHANGE_NO_WRITE_PERM_DEST_DIR  = 1 << 11,
+       CHANGE_NO_WRITE_PERM_DEST      = 1 << 12,
+       CHANGE_DEST_EXISTS             = 1 << 13,
+       CHANGE_NO_SRC                  = 1 << 14,
        CHANGE_GENERIC_ERROR           = 1 << 16
 } ChangeError;
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to