fd->ref = 1;
fd->magick = FD_MAGICK;
fd->exifdate = 0;
+ fd->rating = 0;
if (disable_sidecars) fd->disable_grouping = TRUE;
}
}
+void set_rating_data(GList *files)
+{
+ gchar *rating_str;
+ DEBUG_1("%s set_rating_data: ...", get_exec_time());
+
+ while (files)
+ {
+ FileData *file = files->data;
+ rating_str = metadata_read_string(file, RATING_KEY, METADATA_PLAIN);
+ if (rating_str )
+ {
+ file->rating = atoi(rating_str);
+ g_free(rating_str);
+ }
+ files = files->next;
+ }
+}
+
FileData *file_data_new_no_grouping(const gchar *path_utf8)
{
struct stat st;
if (fa->exifdate > fb->exifdate) return 1;
/* fall back to name */
break;
+ case SORT_RATING:
+ if (fa->rating < fb->rating) return -1;
+ if (fa->rating > fb->rating) return 1;
+ /* fall back to name */
+ break;
#ifdef HAVE_STRVERSCMP
case SORT_NUMBER:
ret = strverscmp(fa->name, fb->name);
{
set_exif_time_data(list);
}
+ if (method == SORT_RATING)
+ {
+ set_rating_data(list);
+ }
return filelist_sort_full(list, method, ascend, (GCompareFunc) filelist_sort_file_cb);
}