[grilo] core: Add "metadata-key-added" signal
- From: Juan A. Suarez Romero <jasuarez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo] core: Add "metadata-key-added" signal
- Date: Sun, 9 Mar 2014 19:36:02 +0000 (UTC)
commit f2a3ad3cadffb35833dd8ab00280aaa62b0c2110
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date: Sun Mar 9 19:31:21 2014 +0000
core: Add "metadata-key-added" signal
This signal is emitted when a source registers a new custom metadata key.
src/grl-registry.c | 36 ++++++++++++++++++++++++++++++++----
1 files changed, 32 insertions(+), 4 deletions(-)
---
diff --git a/src/grl-registry.c b/src/grl-registry.c
index 868bbe8..dc3cff8 100644
--- a/src/grl-registry.c
+++ b/src/grl-registry.c
@@ -114,6 +114,7 @@ static void configs_free (GList *configs);
enum {
SIG_SOURCE_ADDED,
SIG_SOURCE_REMOVED,
+ SIG_METADATA_KEY_ADDED,
SIG_LAST
};
static gint registry_signals[SIG_LAST];
@@ -162,6 +163,23 @@ grl_registry_class_init (GrlRegistryClass *klass)
NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, GRL_TYPE_SOURCE);
+
+ /**
+ * GrlRegistry::metadata-key-added:
+ * @registry: the registry
+ * @key: the name of the new key added
+ *
+ * Signals that a new metadata key has been registered.
+ */
+ registry_signals[SIG_METADATA_KEY_ADDED] =
+ g_signal_new("metadata-key-added",
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
}
static void
@@ -1380,10 +1398,20 @@ grl_registry_register_metadata_key (GrlRegistry *registry,
GParamSpec *param_spec,
GError **error)
{
- return grl_registry_register_metadata_key_full (registry,
- param_spec,
- GRL_METADATA_KEY_INVALID,
- error);
+ GrlKeyID key;
+
+ key = grl_registry_register_metadata_key_full (registry,
+ param_spec,
+ GRL_METADATA_KEY_INVALID,
+ error);
+
+ if (key != GRL_METADATA_KEY_INVALID) {
+ g_signal_emit (registry, registry_signals[SIG_METADATA_KEY_ADDED],
+ 0,
+ grl_metadata_key_get_name (key));
+ }
+
+ return key;
}
/*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]