Tue, 09 Apr 2024 22:49:24 -0500
Add item-type and n-items properties to PurplePresenceManager
Testing Done:
Compiled
Bugs closed: PIDGIN-17856
Reviewed at https://reviews.imfreedom.org/r/3061/
| libpurple/purplepresencemanager.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/purplepresencemanager.c Tue Apr 09 22:41:55 2024 -0500 +++ b/libpurple/purplepresencemanager.c Tue Apr 09 22:49:24 2024 -0500 @@ -38,6 +38,8 @@ enum { PROP_0, + PROP_ITEM_TYPE, + PROP_N_ITEMS, PROP_PATH, PROP_ACTIVE, N_PROPERTIES, @@ -387,17 +389,23 @@ PurplePresenceManager *manager = PURPLE_PRESENCE_MANAGER(obj); switch(param_id) { - case PROP_PATH: - g_value_set_string(value, - purple_presence_manager_get_path(manager)); - break; - case PROP_ACTIVE: - g_value_set_object(value, - purple_presence_manager_get_active(manager)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); - break; + case PROP_ITEM_TYPE: + g_value_set_gtype(value, + purple_presence_manager_get_item_type(G_LIST_MODEL(manager))); + break; + case PROP_N_ITEMS: + g_value_set_uint(value, + purple_presence_manager_get_n_items(G_LIST_MODEL(manager))); + break; + case PROP_PATH: + g_value_set_string(value, purple_presence_manager_get_path(manager)); + break; + case PROP_ACTIVE: + g_value_set_object(value, purple_presence_manager_get_active(manager)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; } } @@ -408,17 +416,17 @@ PurplePresenceManager *manager = PURPLE_PRESENCE_MANAGER(obj); switch(param_id) { - case PROP_PATH: - purple_presence_manager_set_path(manager, - g_value_get_string(value)); - break; - case PROP_ACTIVE: - purple_presence_manager_set_active(manager, - g_value_get_object(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); - break; + case PROP_PATH: + purple_presence_manager_set_path(manager, + g_value_get_string(value)); + break; + case PROP_ACTIVE: + purple_presence_manager_set_active(manager, + g_value_get_object(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; } } @@ -438,6 +446,32 @@ obj_class->set_property = purple_presence_manager_set_property; /** + * PurplePresenceManager:item-type: + * + * The type of items. See [iface@Gio.ListModel.get_item_type]. + * + * Since: 3.0 + */ + properties[PROP_ITEM_TYPE] = g_param_spec_gtype( + "item-type", "item-type", + "The type of the contained items.", + G_TYPE_OBJECT, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + /** + * PurplePresenceManager:n-items: + * + * The number of items. See [iface@Gio.ListModel.get_n_items]. + * + * Since: 3.0 + */ + properties[PROP_N_ITEMS] = g_param_spec_uint( + "n-items", "n-items", + "The number of contained items.", + 0, G_MAXUINT, 0, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + /** * PurplePresenceManager:path: * * The directory path where settings should be stored. If this is %NULL