Implementing sorting by file creation
[geeqie.git] / src / filedata.c
index c4e0525..cf24f7a 100644 (file)
@@ -165,6 +165,7 @@ static gboolean file_data_check_changed_single_file(FileData *fd, struct stat *s
                {
                fd->size = st->st_size;
                fd->date = st->st_mtime;
+               fd->cdate = st->st_ctime;
                fd->mode = st->st_mode;
                if (fd->thumb_pixbuf) g_object_unref(fd->thumb_pixbuf);
                fd->thumb_pixbuf = NULL;
@@ -394,6 +395,7 @@ static FileData *file_data_new(const gchar *path_utf8, struct stat *st, gboolean
 
        fd->size = st->st_size;
        fd->date = st->st_mtime;
+       fd->cdate = st->st_ctime;
        fd->mode = st->st_mode;
        fd->ref = 1;
        fd->magick = FD_MAGICK;
@@ -997,6 +999,11 @@ gint filelist_sort_compare_filedata(FileData *fa, FileData *fb)
                        if (fa->date > fb->date) return 1;
                        /* fall back to name */
                        break;
+               case SORT_CTIME:
+                       if (fa->cdate < fb->cdate) return -1;
+                       if (fa->cdate > fb->cdate) return 1;
+                       /* fall back to name */
+                       break;
                case SORT_EXIFTIME:
                        if (fa->exifdate < fb->exifdate) return -1;
                        if (fa->exifdate > fb->exifdate) return 1;