summaryrefslogtreecommitdiff
path: root/src/eom-jobs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eom-jobs.c')
-rw-r--r--src/eom-jobs.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/eom-jobs.c b/src/eom-jobs.c
index bde2517..0b51800 100644
--- a/src/eom-jobs.c
+++ b/src/eom-jobs.c
@@ -30,6 +30,7 @@
#include "eom-list-store.h"
#include "eom-thumbnail.h"
#include "eom-pixbuf-util.h"
+#include "eom-util.h"
#include <gdk-pixbuf/gdk-pixbuf.h>
@@ -351,6 +352,7 @@ eom_job_model_class_init (EomJobModelClass *class)
/**
* eom_job_model_new:
* @file_list: (element-type GFile): a #GFile list
+ * @preserve_order: Flag to indicate whether to honor the order of input parameters.
*
* Creates a new #EomJob model.
*
@@ -358,13 +360,14 @@ eom_job_model_class_init (EomJobModelClass *class)
*/
EomJob *
-eom_job_model_new (GSList *file_list)
+eom_job_model_new (GSList *file_list, gboolean preserve_order)
{
EomJobModel *job;
job = g_object_new (EOM_TYPE_JOB_MODEL, NULL);
job->file_list = file_list;
+ job->preserve_order = preserve_order;
return EOM_JOB (job);
}
@@ -383,7 +386,9 @@ filter_files (GSList *files, GList **file_list, GList **error_list)
if (file != NULL) {
file_info = g_file_query_info (file,
- G_FILE_ATTRIBUTE_STANDARD_TYPE","G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
+ G_FILE_ATTRIBUTE_STANDARD_TYPE","
+ G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
+ G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
if (file_info == NULL) {
type = G_FILE_TYPE_UNKNOWN;
@@ -395,7 +400,7 @@ filter_files (GSList *files, GList **file_list, GList **error_list)
if (G_UNLIKELY (type == G_FILE_TYPE_UNKNOWN)) {
const gchar *ctype;
- ctype = g_file_info_get_content_type (file_info);
+ ctype = eom_util_get_content_type_with_fallback (file_info);
/* If the content type is supported
adjust the file_type */
@@ -438,7 +443,7 @@ eom_job_model_run (EomJob *ejob)
job->store = EOM_LIST_STORE (eom_list_store_new ());
- eom_list_store_add_files (job->store, filtered_list);
+ eom_list_store_add_files (job->store, filtered_list, job->preserve_order);
g_list_free_full (filtered_list, g_object_unref);
g_list_free_full (error_list, g_free);