pidgin/pidgin

Parents 22d709f9f47b
Children f1f61c62fea6
Add item-type and n-items properties to PurpleFileTransferManager

Testing Done:
Compiled

Bugs closed: PIDGIN-17856

Reviewed at https://reviews.imfreedom.org/r/3058/
--- a/libpurple/purplefiletransfermanager.c Tue Apr 09 22:28:27 2024 -0500
+++ b/libpurple/purplefiletransfermanager.c Tue Apr 09 22:34:17 2024 -0500
@@ -24,6 +24,14 @@
#include "purplefiletransfermanagerprivate.h"
enum {
+ PROP_0,
+ PROP_ITEM_TYPE,
+ PROP_N_ITEMS,
+ N_PROPERTIES,
+};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
+
+enum {
SIG_ADDED,
SIG_REMOVED,
SIG_TRANSFER_CHANGED,
@@ -106,6 +114,27 @@
}
static void
+purple_file_transfer_manager_get_property(GObject *obj, guint param_id,
+ GValue *value, GParamSpec *pspec)
+{
+ PurpleFileTransferManager *manager = PURPLE_FILE_TRANSFER_MANAGER(obj);
+
+ switch(param_id) {
+ case PROP_ITEM_TYPE:
+ g_value_set_gtype(value,
+ purple_file_transfer_manager_get_item_type(G_LIST_MODEL(manager)));
+ break;
+ case PROP_N_ITEMS:
+ g_value_set_uint(value,
+ purple_file_transfer_manager_get_n_items(G_LIST_MODEL(manager)));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
purple_file_transfer_manager_init(PurpleFileTransferManager *manager) {
manager->transfers = g_ptr_array_new_with_free_func(g_object_unref);
}
@@ -116,6 +145,35 @@
GObjectClass *obj_class = G_OBJECT_CLASS(klass);
obj_class->finalize = purple_file_transfer_manager_finalize;
+ obj_class->get_property = purple_file_transfer_manager_get_property;
+
+ /**
+ * PurpleFileTransferManager: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);
+
+ /**
+ * PurpleFileTransferManager: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);
+
+ g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
/**
* PurpleFileTransferManager::added: