| Index: src/ibusenginedesc.c
|
| diff --git a/src/ibusenginedesc.c b/src/ibusenginedesc.c
|
| index 5563cc0ce81f2bbdbb2984d1c627b58f27fc8f8c..e9a62484d752e3e4051e0d7b087b8215a087f31c 100644
|
| --- a/src/ibusenginedesc.c
|
| +++ b/src/ibusenginedesc.c
|
| @@ -64,7 +64,7 @@ ibus_engine_desc_class_init (IBusEngineDescClass *klass)
|
| serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_engine_desc_deserialize;
|
| serializable_class->copy = (IBusSerializableCopyFunc) ibus_engine_desc_copy;
|
|
|
| - g_string_append (serializable_class->signature, "ssssssssu");
|
| + g_string_append (serializable_class->signature, "sssssssssu");
|
| }
|
|
|
| static void
|
| @@ -79,6 +79,7 @@ ibus_engine_desc_init (IBusEngineDesc *desc)
|
| desc->author = NULL;
|
| desc->icon = NULL;
|
| desc->layout = NULL;
|
| + desc->hotkeys = NULL;
|
| desc->rank = 0;
|
| }
|
|
|
| @@ -93,6 +94,7 @@ ibus_engine_desc_destroy (IBusEngineDesc *desc)
|
| g_free (desc->author);
|
| g_free (desc->icon);
|
| g_free (desc->layout);
|
| + g_free (desc->hotkeys);
|
|
|
| IBUS_OBJECT_CLASS (ibus_engine_desc_parent_class)->destroy (IBUS_OBJECT (desc));
|
| }
|
| @@ -130,6 +132,9 @@ ibus_engine_desc_serialize (IBusEngineDesc *desc,
|
| retval = ibus_message_iter_append (iter, G_TYPE_STRING, &desc->layout);
|
| g_return_val_if_fail (retval, FALSE);
|
|
|
| + retval = ibus_message_iter_append (iter, G_TYPE_STRING, &desc->hotkeys);
|
| + g_return_val_if_fail (retval, FALSE);
|
| +
|
| retval = ibus_message_iter_append (iter, G_TYPE_UINT, &desc->rank);
|
| g_return_val_if_fail (retval, FALSE);
|
|
|
| @@ -186,6 +191,11 @@ ibus_engine_desc_deserialize (IBusEngineDesc *desc,
|
| ibus_message_iter_next (iter);
|
| desc->layout = g_strdup (str);
|
|
|
| + retval = ibus_message_iter_get (iter, G_TYPE_STRING, &str);
|
| + g_return_val_if_fail (retval, FALSE);
|
| + ibus_message_iter_next (iter);
|
| + desc->hotkeys = g_strdup (str);
|
| +
|
| retval = ibus_message_iter_get (iter, G_TYPE_UINT, &desc->rank);
|
| g_return_val_if_fail (retval, FALSE);
|
| ibus_message_iter_next (iter);
|
| @@ -212,6 +222,7 @@ ibus_engine_desc_copy (IBusEngineDesc *dest,
|
| dest->author = g_strdup (src->author);
|
| dest->icon = g_strdup (src->icon);
|
| dest->layout = g_strdup (src->layout);
|
| + dest->hotkeys = g_strdup (src->hotkeys);
|
|
|
| return TRUE;
|
| }
|
| @@ -248,6 +259,7 @@ ibus_engine_desc_output (IBusEngineDesc *desc,
|
| OUTPUT_ENTRY_1(author);
|
| OUTPUT_ENTRY_1(icon);
|
| OUTPUT_ENTRY_1(layout);
|
| + OUTPUT_ENTRY_1(hotkeys);
|
| g_string_append_indent (output, indent + 1);
|
| g_string_append_printf (output, "<rank>%u</rank>\n", desc->rank);
|
| #undef OUTPUT_ENTRY
|
| @@ -279,8 +291,9 @@ ibus_engine_desc_parse_xml_node (IBusEngineDesc *desc,
|
| PARSE_ENTRY_1(author);
|
| PARSE_ENTRY_1(icon);
|
| PARSE_ENTRY_1(layout);
|
| + PARSE_ENTRY_1(hotkeys);
|
| #undef PARSE_ENTRY
|
| -#undef PARSE_ENTRY1
|
| +#undef PARSE_ENTRY_1
|
| if (g_strcmp0 (sub_node->name , "rank") == 0) {
|
| desc->rank = atoi (sub_node->text);
|
| continue;
|
| @@ -300,6 +313,21 @@ ibus_engine_desc_new (const gchar *name,
|
| const gchar *icon,
|
| const gchar *layout)
|
| {
|
| + return ibus_engine_desc_new2 (name, longname, description, language,
|
| + license, author, icon, layout, "");
|
| +}
|
| +
|
| +IBusEngineDesc *
|
| +ibus_engine_desc_new2 (const gchar *name,
|
| + const gchar *longname,
|
| + const gchar *description,
|
| + const gchar *language,
|
| + const gchar *license,
|
| + const gchar *author,
|
| + const gchar *icon,
|
| + const gchar *layout,
|
| + const gchar *hotkeys)
|
| +{
|
| g_assert (name);
|
| g_assert (longname);
|
| g_assert (description);
|
| @@ -308,6 +336,7 @@ ibus_engine_desc_new (const gchar *name,
|
| g_assert (author);
|
| g_assert (icon);
|
| g_assert (layout);
|
| + g_assert (hotkeys);
|
|
|
| IBusEngineDesc *desc;
|
| desc = (IBusEngineDesc *)g_object_new (IBUS_TYPE_ENGINE_DESC, NULL);
|
| @@ -320,6 +349,7 @@ ibus_engine_desc_new (const gchar *name,
|
| desc->author = g_strdup (author);
|
| desc->icon = g_strdup (icon);
|
| desc->layout = g_strdup (layout);
|
| + desc->hotkeys = g_strdup (hotkeys);
|
|
|
| return desc;
|
| }
|
| @@ -344,4 +374,3 @@ ibus_engine_desc_new_from_xml_node (XMLNode *node)
|
|
|
| return desc;
|
| }
|
| -
|
|
|