summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan R. García Blanco <juanrgar@gmail.com>2015-08-07 09:15:39 +0200
committerJuan R. García Blanco <juanrgar@gmail.com>2015-08-18 13:49:00 +0200
commit9e272d825433e92ec63dc2a24f15cde52acd25ed (patch)
treec98e9174744405c8a9154970c33e87c973bd0b01
parent9956da01d466f863c0a28e9ca50412e2362ae68f (diff)
downloadgnome-dictionary-9e272d825433e92ec63dc2a24f15cde52acd25ed.tar.gz
gdict: Split lookup-start/end signals
Create separate database-lookup-start/end signals for notification of these events when searching for databases in a given source.
-rw-r--r--libgdict/gdict-client-context.c5
-rw-r--r--libgdict/gdict-context.c36
-rw-r--r--libgdict/gdict-context.h22
-rw-r--r--libgdict/gdict-database-chooser.c4
4 files changed, 54 insertions, 13 deletions
diff --git a/libgdict/gdict-client-context.c b/libgdict/gdict-client-context.c
index 407a6d0..1a960f2 100644
--- a/libgdict/gdict-client-context.c
+++ b/libgdict/gdict-client-context.c
@@ -1347,6 +1347,9 @@ gdict_client_context_parse_line (GdictClientContext *context,
* we issue them ourselves
*/
if ((last_cmd != CMD_CLIENT) && (last_cmd != CMD_QUIT))
+ if (last_cmd == CMD_SHOW_DB)
+ g_signal_emit_by_name (context, "database-lookup-end");
+
g_signal_emit_by_name (context, "lookup-end");
/* pop the next command from the queue */
@@ -2036,7 +2039,7 @@ gdict_client_context_get_databases (GdictContext *context,
client_ctx = GDICT_CLIENT_CONTEXT (context);
- g_signal_emit_by_name (context, "lookup-start");
+ g_signal_emit_by_name (context, "database-lookup-start");
if (!gdict_client_context_is_connected (client_ctx))
{
diff --git a/libgdict/gdict-context.c b/libgdict/gdict-context.c
index 83783bd..639c82e 100644
--- a/libgdict/gdict-context.c
+++ b/libgdict/gdict-context.c
@@ -137,6 +137,42 @@ gdict_context_class_init (gpointer g_iface)
G_TYPE_NONE, 1,
G_TYPE_POINTER);
/**
+ * GdictContext::database-lookup-start
+ * @context: the object which received the signal
+ *
+ * This signal is emitted when a database look up operation has been issued
+ * using a #GdictContext. Since every operation using a context is
+ * asynchronous, you can use this signal to know if the request has been
+ * issued or not.
+ *
+ * Since: 1.0
+ */
+ g_signal_new ("database-lookup-start",
+ iface_type,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdictContextIface, database_lookup_start),
+ NULL, NULL,
+ gdict_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ /**
+ * GdictContext::database-lookup-end
+ * @context: the object which received the signal
+ *
+ * This signal is emitted when a database look up operation that has been
+ * issued using a #GdictContext has been completed. Since every operation
+ * using a context is asynchronous, you can use this signal to know if the
+ * request has been completed or not.
+ *
+ * Since: 1.0
+ */
+ g_signal_new ("database-lookup-end",
+ iface_type,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdictContextIface, database_lookup_end),
+ NULL, NULL,
+ gdict_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ /**
* GdictContext::database-found
* @context: the object which received the signal
* @database: a #GdictDatabase
diff --git a/libgdict/gdict-context.h b/libgdict/gdict-context.h
index 1c44faf..3b103af 100644
--- a/libgdict/gdict-context.h
+++ b/libgdict/gdict-context.h
@@ -157,17 +157,19 @@ struct _GdictContextIface
GError **error);
/* signals */
- void (*lookup_start) (GdictContext *context);
- void (*lookup_end) (GdictContext *context);
+ void (*lookup_start) (GdictContext *context);
+ void (*lookup_end) (GdictContext *context);
- void (*database_found) (GdictContext *context,
- GdictDatabase *database);
- void (*strategy_found) (GdictContext *context,
- GdictStrategy *strategy);
- void (*match_found) (GdictContext *context,
- GdictMatch *match);
- void (*definition_found) (GdictContext *context,
- GdictDefinition *definition);
+ void (*database_lookup_start) (GdictContext *context);
+ void (*database_lookup_end) (GdictContext *context);
+ void (*database_found) (GdictContext *context,
+ GdictDatabase *database);
+ void (*strategy_found) (GdictContext *context,
+ GdictStrategy *strategy);
+ void (*match_found) (GdictContext *context,
+ GdictMatch *match);
+ void (*definition_found) (GdictContext *context,
+ GdictDefinition *definition);
/* fired each time there's an error; the GError is owned
* by the context, and should never be modified or freed
diff --git a/libgdict/gdict-database-chooser.c b/libgdict/gdict-database-chooser.c
index b1090b6..6bd8727 100644
--- a/libgdict/gdict-database-chooser.c
+++ b/libgdict/gdict-database-chooser.c
@@ -877,13 +877,13 @@ gdict_database_chooser_refresh (GdictDatabaseChooser *chooser)
if (!priv->start_id)
{
- priv->start_id = g_signal_connect (priv->context, "lookup-start",
+ priv->start_id = g_signal_connect (priv->context, "database-lookup-start",
G_CALLBACK (lookup_start_cb),
chooser);
priv->match_id = g_signal_connect (priv->context, "database-found",
G_CALLBACK (database_found_cb),
chooser);
- priv->end_id = g_signal_connect (priv->context, "lookup-end",
+ priv->end_id = g_signal_connect (priv->context, "database-lookup-end",
G_CALLBACK (lookup_end_cb),
chooser);
}