--- a/libpurple/blistnodetypes.c Sun Nov 17 15:56:35 2013 +0530 +++ b/libpurple/blistnodetypes.c Sun Nov 17 18:11:04 2013 +0530 @@ -154,6 +154,8 @@ { purple_buddy_icon_unref(priv->icon); priv->icon = (icon != NULL ? purple_buddy_icon_ref(icon) : NULL); + + g_object_notify(G_OBJECT(buddy), "icon"); } purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy); @@ -195,14 +197,14 @@ g_free(priv->name); priv->name = purple_utf8_strip_unprintables(name); + g_object_notify(G_OBJECT(buddy), "name"); + if (ops) { if (ops->save_node) ops->save_node(PURPLE_BLIST_NODE(buddy)); if (ops->update) ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy)); } - - g_object_notify(G_OBJECT(buddy), "name"); } const char * @@ -324,6 +326,8 @@ g_free(new_alias); /* could be "\0" */ } + g_object_notify(G_OBJECT(buddy), "local-alias"); + if (ops && ops->save_node) ops->save_node(PURPLE_BLIST_NODE(buddy)); @@ -377,6 +381,8 @@ g_free(new_alias); /* could be "\0"; */ } + g_object_notify(G_OBJECT(buddy), "server-alias"); + if (ops) { if (ops->save_node) ops->save_node(PURPLE_BLIST_NODE(buddy)); @@ -682,44 +688,45 @@ g_object_class_install_property(obj_class, BUDDY_PROP_NAME, g_param_spec_string("name", "Name", "The name of the buddy.", NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_LOCAL_ALIAS, g_param_spec_string("local-alias", "Local alias", "Local alias of thee buddy.", NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_SERVER_ALIAS, g_param_spec_string("server-alias", "Server alias", "Server-side alias of the buddy.", NULL, - G_PARAM_READWRITE) + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_ICON, g_param_spec_pointer("icon", "Buddy icon", "The icon for the buddy.", - G_PARAM_READWRITE) + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_ACCOUNT, g_param_spec_object("account", "Account", "The account for the buddy.", PURPLE_TYPE_ACCOUNT, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_PRESENCE, g_param_spec_object("presence", "Presence", "The status information for the buddy.", PURPLE_TYPE_PRESENCE, - G_PARAM_READABLE) + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, BUDDY_PROP_MEDIA_CAPS, g_param_spec_enum("media-caps", "Media capabilities", "The media capabilities of the buddy.", PURPLE_MEDIA_TYPE_CAPS, PURPLE_MEDIA_CAPS_NONE, - G_PARAM_READWRITE) + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); g_type_class_add_private(klass, sizeof(PurpleBuddyPrivate)); @@ -813,6 +820,8 @@ priv->priority_buddy = new_priority; priv->priority_valid = TRUE; + + g_object_notify(G_OBJECT(contact), "priority-buddy"); } PurpleGroup * @@ -852,6 +861,8 @@ g_free(new_alias); /* could be "\0" */ } + g_object_notify(G_OBJECT(contact), "alias"); + if (ops) { if (ops->save_node) ops->save_node(PURPLE_BLIST_NODE(contact)); @@ -1043,13 +1054,13 @@ g_object_class_install_property(obj_class, CONTACT_PROP_ALIAS, g_param_spec_string("alias", "Alias", "The alias for the contact.", NULL, - G_PARAM_READWRITE) + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, CONTACT_PROP_PRIORITY_BUDDY, g_param_spec_object("priority-buddy", "Priority buddy", "The priority buddy of the contact.", - PURPLE_TYPE_BUDDY, G_PARAM_READABLE) + PURPLE_TYPE_BUDDY, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS) ); g_type_class_add_private(klass, sizeof(PurpleContactPrivate)); @@ -1155,6 +1166,8 @@ g_free(new_alias); /* could be "\0" */ } + g_object_notify(G_OBJECT(chat), "alias"); + if (ops) { if (ops->save_node) ops->save_node(PURPLE_BLIST_NODE(chat)); @@ -1299,19 +1312,21 @@ g_object_class_install_property(obj_class, CHAT_PROP_ALIAS, g_param_spec_string("alias", "Alias", "The alias for the chat.", NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, CHAT_PROP_ACCOUNT, g_param_spec_object("account", "Account", "The account that the chat belongs to.", PURPLE_TYPE_ACCOUNT, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS) ); g_object_class_install_property(obj_class, CHAT_PROP_COMPONENTS, g_param_spec_pointer("components", "Components", "The protocol components of the chat.", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS) ); g_type_class_add_private(klass, sizeof(PurpleChatPrivate)); @@ -1482,6 +1497,8 @@ old_name = priv->name; priv->name = new_name; + + g_object_notify(G_OBJECT(source), "name"); } /* Save our changes */ @@ -1641,7 +1658,7 @@ g_object_class_install_property(obj_class, GROUP_PROP_NAME, g_param_spec_string("name", "Name", "Name of the group.", NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT) + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS) ); g_type_class_add_private(klass, sizeof(PurpleGroupPrivate));