pidgin/pidgin

88cf3cdfd5d9
Parents e4e10a90e4a2
Children bd9e01f23bf4
Add item-type and n-items properties to PurplePresenceManager

Testing Done:
Compiled

Bugs closed: PIDGIN-17856

Reviewed at https://reviews.imfreedom.org/r/3061/
--- 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