diff options
author | Nick Schermer <nick@xfce.org> | 2012-12-16 15:30:09 +0100 |
---|---|---|
committer | Nick Schermer <nick@xfce.org> | 2012-12-27 11:28:27 +0100 |
commit | 8913e999caed579d62b0021f32db6dfef65ff7f4 (patch) | |
tree | 1315cca4400154e20ca4def7908ab7f0759b8544 /tumbler/tumbler-abstract-thumbnailer.c | |
parent | f7a3eda07ec55d43f92dd2ebbe717cb5c1ddd81c (diff) | |
download | tumbler-8913e999caed579d62b0021f32db6dfef65ff7f4.tar.gz |
Add config file system to control thumbnailing plugin.
Settings that allow to change the plugin priority, max file
size to act on, white-listed locations or completely disable
them.
Diffstat (limited to 'tumbler/tumbler-abstract-thumbnailer.c')
-rw-r--r-- | tumbler/tumbler-abstract-thumbnailer.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tumbler/tumbler-abstract-thumbnailer.c b/tumbler/tumbler-abstract-thumbnailer.c index ea05c0f..0bb2649 100644 --- a/tumbler/tumbler-abstract-thumbnailer.c +++ b/tumbler/tumbler-abstract-thumbnailer.c @@ -42,6 +42,9 @@ enum PROP_URI_SCHEMES, PROP_MIME_TYPES, PROP_HASH_KEYS, + PROP_PRIORITY, + PROP_MAX_FILE_SIZE, + PROP_LOCATIONS }; @@ -68,6 +71,9 @@ struct _TumblerAbstractThumbnailerPrivate gchar **hash_keys; gchar **mime_types; gchar **uri_schemes; + gint priority; + gint64 max_file_size; + GSList *locations; }; @@ -97,6 +103,9 @@ tumbler_abstract_thumbnailer_class_init (TumblerAbstractThumbnailerClass *klass) g_object_class_override_property (gobject_class, PROP_MIME_TYPES, "mime-types"); g_object_class_override_property (gobject_class, PROP_URI_SCHEMES, "uri-schemes"); g_object_class_override_property (gobject_class, PROP_HASH_KEYS, "hash-keys"); + g_object_class_override_property (gobject_class, PROP_PRIORITY, "priority"); + g_object_class_override_property (gobject_class, PROP_MAX_FILE_SIZE, "max-file-size"); + g_object_class_override_property (gobject_class, PROP_LOCATIONS, "locations"); } @@ -173,6 +182,9 @@ tumbler_abstract_thumbnailer_finalize (GObject *object) g_strfreev (thumbnailer->priv->mime_types); g_strfreev (thumbnailer->priv->uri_schemes); + g_slist_foreach (thumbnailer->priv->locations, (GFunc) g_object_unref, NULL); + g_slist_free (thumbnailer->priv->locations); + (*G_OBJECT_CLASS (tumbler_abstract_thumbnailer_parent_class)->finalize) (object); } @@ -185,18 +197,36 @@ tumbler_abstract_thumbnailer_get_property (GObject *object, GParamSpec *pspec) { TumblerAbstractThumbnailer *thumbnailer = TUMBLER_ABSTRACT_THUMBNAILER (object); + GSList *dup; switch (prop_id) { case PROP_MIME_TYPES: g_value_set_pointer (value, g_strdupv (thumbnailer->priv->mime_types)); break; + case PROP_URI_SCHEMES: g_value_set_pointer (value, g_strdupv (thumbnailer->priv->uri_schemes)); break; + case PROP_HASH_KEYS: g_value_set_pointer (value, g_strdupv (thumbnailer->priv->hash_keys)); break; + + case PROP_PRIORITY: + g_value_set_int (value, thumbnailer->priv->priority); + break; + + case PROP_MAX_FILE_SIZE: + g_value_set_int64 (value, thumbnailer->priv->max_file_size); + break; + + case PROP_LOCATIONS: + dup = g_slist_copy (thumbnailer->priv->locations); + g_slist_foreach (dup, (GFunc) g_object_ref, NULL); + g_value_set_pointer (value, dup); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -212,18 +242,36 @@ tumbler_abstract_thumbnailer_set_property (GObject *object, GParamSpec *pspec) { TumblerAbstractThumbnailer *thumbnailer = TUMBLER_ABSTRACT_THUMBNAILER (object); + GSList *dup; switch (prop_id) { case PROP_MIME_TYPES: thumbnailer->priv->mime_types = g_strdupv (g_value_get_pointer (value)); break; + case PROP_URI_SCHEMES: thumbnailer->priv->uri_schemes = g_strdupv (g_value_get_pointer (value)); break; + case PROP_HASH_KEYS: thumbnailer->priv->hash_keys = g_strdupv (g_value_get_pointer (value)); break; + + case PROP_PRIORITY: + thumbnailer->priv->priority = g_value_get_int (value); + break; + + case PROP_MAX_FILE_SIZE: + thumbnailer->priv->max_file_size = g_value_get_int64 (value); + break; + + case PROP_LOCATIONS: + dup = g_slist_copy (g_value_get_pointer (value)); + g_slist_foreach (dup, (GFunc) g_object_ref, NULL); + thumbnailer->priv->locations = dup; + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; |