pidgin/pidgin

Remove the Roomlist API

2 weeks ago, Gary Kramlich
6f71c59e437e
Parents b87a01be99af
Children 22c42a8405ad
Remove the Roomlist API

This doesn't exactly fit into modern networks, so we'll be overhauling it in
the near future.

Testing Done:
Ran with the turtles.

Reviewed at https://reviews.imfreedom.org/r/3117/
--- a/ChangeLog.API Sat Apr 13 22:24:47 2024 -0500
+++ b/ChangeLog.API Sat Apr 13 22:28:40 2024 -0500
@@ -681,15 +681,30 @@
* purple_request_fields_get_autosensitive
* purple_request_fields_get_ui_data
* purple_request_fields_set_ui_data
+ * PurpleRoomlist
+ * PurpleRoomlistField
+ * PurpleRoomlistFieldType
* PurpleRoomlistRoomType
+ * PurpleRoomlistUiOps
+ * purple_roomlist_cancel_get_list
* purple_roomlist_expand_category
* purple_roomlist_field_get_field_type
* purple_roomlist_field_get_hidden
* purple_roomlist_field_get_label
* purple_roomlist_field_new
* purple_roomlist_get_fields
+ * purple_roomlist_get_in_progress
+ * purple_roomlist_get_list
* purple_roomlist_get_protocol_data
+ * purple_roomlist_get_ui_ops
+ * purple_roomlist_new
+ * purple_roomlist_room_add
+ * purple_roomlist_room_get_name
+ * purple_roomlist_set_fields
+ * purple_roomlist_set_in_progress
* purple_roomlist_set_protocol_data
+ * purple_roomlist_set_ui_ops
+ * purple_roomlist_show_with_account
* purple_running_osx
* purple_serv_add_deny
* purple_serv_add_permit
--- a/libpurple/meson.build Sat Apr 13 22:24:47 2024 -0500
+++ b/libpurple/meson.build Sat Apr 13 22:28:40 2024 -0500
@@ -76,12 +76,10 @@
'purpleprotocolfiletransfer.c',
'purpleprotocolmanager.c',
'purpleprotocolmedia.c',
- 'purpleprotocolroomlist.c',
'purpleprotocolroster.c',
'purpleprotocolserver.c',
'purpleprotocolwhiteboard.c',
'purpleproxyinfo.c',
- 'purpleroomlistroom.c',
'purplesavedpresence.c',
'purplesqlite3.c',
'purplesqlitehistoryadapter.c',
@@ -105,7 +103,6 @@
'request/purplerequestgroup.c',
'request/purplerequestpage.c',
'request-datasheet.c',
- 'roomlist.c',
'server.c',
'signals.c',
'util.c',
@@ -187,12 +184,10 @@
'purpleprotocolfiletransfer.h',
'purpleprotocolmedia.h',
'purpleprotocolmanager.h',
- 'purpleprotocolroomlist.h',
'purpleprotocolroster.h',
'purpleprotocolserver.h',
'purpleprotocolwhiteboard.h',
'purpleproxyinfo.h',
- 'purpleroomlistroom.h',
'purplesavedpresence.h',
'purplesqlite3.h',
'purplesqlitehistoryadapter.h',
@@ -206,7 +201,6 @@
'purplewhiteboarduiops.h',
'request.h',
'request-datasheet.h',
- 'roomlist.h',
'server.h',
'signals.h',
'util.h',
@@ -293,7 +287,6 @@
'purpleprotocol.h',
'purpleproxyinfo.h',
'purpletyping.h',
- 'roomlist.h',
'xmlnode.h'
]
--- a/libpurple/purpleprotocolroomlist.c Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#include "purpleprotocolroomlist.h"
-
-/******************************************************************************
- * GObject Implementation
- *****************************************************************************/
-G_DEFINE_INTERFACE(PurpleProtocolRoomlist, purple_protocol_roomlist,
- PURPLE_TYPE_PROTOCOL)
-
-static void
-purple_protocol_roomlist_default_init(G_GNUC_UNUSED PurpleProtocolRoomlistInterface *iface)
-{
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-PurpleRoomlist *
-purple_protocol_roomlist_get_list(PurpleProtocolRoomlist *protocol_roomlist,
- PurpleConnection *gc)
-{
- PurpleProtocolRoomlistInterface *iface = NULL;
-
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_ROOMLIST(protocol_roomlist), NULL);
- g_return_val_if_fail(PURPLE_IS_CONNECTION(gc), NULL);
-
- iface = PURPLE_PROTOCOL_ROOMLIST_GET_IFACE(protocol_roomlist);
- if(iface != NULL && iface->get_list != NULL) {
- return iface->get_list(protocol_roomlist, gc);
- }
-
- return NULL;
-}
-
-void
-purple_protocol_roomlist_cancel(PurpleProtocolRoomlist *protocol_roomlist,
- PurpleRoomlist *list)
-{
- PurpleProtocolRoomlistInterface *iface = NULL;
-
- g_return_if_fail(PURPLE_IS_PROTOCOL_ROOMLIST(protocol_roomlist));
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
-
- iface = PURPLE_PROTOCOL_ROOMLIST_GET_IFACE(protocol_roomlist);
- if(iface != NULL && iface->cancel != NULL) {
- iface->cancel(protocol_roomlist, list);
- }
-}
-
-void
-purple_protocol_roomlist_expand_category(PurpleProtocolRoomlist *protocol_roomlist,
- PurpleRoomlist *list,
- PurpleRoomlistRoom *category)
-{
- PurpleProtocolRoomlistInterface *iface = NULL;
-
- g_return_if_fail(PURPLE_IS_PROTOCOL_ROOMLIST(protocol_roomlist));
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
-
- iface = PURPLE_PROTOCOL_ROOMLIST_GET_IFACE(protocol_roomlist);
- if(iface != NULL && iface->expand_category != NULL) {
- iface->expand_category(protocol_roomlist, list, category);
- }
-}
-
-gchar *
-purple_protocol_roomlist_room_serialize(PurpleProtocolRoomlist *protocol_roomlist,
- PurpleRoomlistRoom *room)
-{
- PurpleProtocolRoomlistInterface *iface = NULL;
-
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_ROOMLIST(protocol_roomlist), NULL);
- g_return_val_if_fail(room != NULL, NULL);
-
- iface = PURPLE_PROTOCOL_ROOMLIST_GET_IFACE(protocol_roomlist);
- if(iface != NULL && iface->room_serialize != NULL) {
- return iface->room_serialize(protocol_roomlist, room);
- }
-
- return NULL;
-}
--- a/libpurple/purpleprotocolroomlist.h Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
-# error "only <purple.h> may be included directly"
-#endif
-
-#ifndef PURPLE_PROTOCOL_ROOMLIST_H
-#define PURPLE_PROTOCOL_ROOMLIST_H
-
-#include <glib.h>
-
-#include "connection.h"
-#include "roomlist.h"
-#include "purpleprotocol.h"
-#include "purpleversion.h"
-
-G_BEGIN_DECLS
-
-#define PURPLE_TYPE_PROTOCOL_ROOMLIST (purple_protocol_roomlist_get_type())
-
-PURPLE_AVAILABLE_IN_3_0
-G_DECLARE_INTERFACE(PurpleProtocolRoomlist, purple_protocol_roomlist, PURPLE,
- PROTOCOL_ROOMLIST, PurpleProtocol)
-
-/**
- * PurpleProtocolRoomlist:
- *
- * The protocol roomlist interface.
- *
- * #PurpleProtocolRoomlist is an interface to abstract how to handle room
- * lists at the protocol level.
- *
- * Since: 3.0
- */
-struct _PurpleProtocolRoomlistInterface {
- /*< private >*/
- GTypeInterface parent_iface;
-
- /*< public >*/
- PurpleRoomlist *(*get_list)(PurpleProtocolRoomlist *protocol_roomlist, PurpleConnection *gc);
-
- void (*cancel)(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlist *list);
-
- void (*expand_category)(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlist *list, PurpleRoomlistRoom *category);
-
- gchar *(*room_serialize)(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlistRoom *room);
-
- /*< private >*/
- gpointer reserved[4];
-};
-
-/**
- * purple_protocol_roomlist_get_list:
- * @protocol_roomlist: The #PurpleProtocolRoomlist instance.
- * @gc: The #PurpleAccount to get the roomlist for.
- *
- * Gets the list of rooms for @gc.
- *
- * Returns: (transfer full): The roomlist for @gc.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-PurpleRoomlist *purple_protocol_roomlist_get_list(PurpleProtocolRoomlist *protocol_roomlist, PurpleConnection *gc);
-
-/**
- * purple_protocol_roomlist_cancel:
- * @protocol_roomlist: The #PurpleProtocolRoomlist instance.
- * @list: The #PurpleRoomlist instance.
- *
- * Requesting a roomlist can take a long time. This function cancels a request
- * that's already in progress.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_protocol_roomlist_cancel(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlist *list);
-
-/**
- * purple_protocol_roomlist_expand_category:
- * @protocol_roomlist: The #PurpleProtocolRoomlist instance.
- * @list: The #PurpleRoomlist instance.
- * @category: The category to expand.
- *
- * Expands the given @category for @list.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_protocol_roomlist_expand_category(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlist *list, PurpleRoomlistRoom *category);
-
-/**
- * purple_protocol_roomlist_room_serialize:
- * @protocol_roomlist: The #PurpleProtocolRoomlist instance.
- * @room: The #PurpleRoomlistRoom instance.
- *
- * Serializes @room into a string that will be displayed in a user interface.
- *
- * Returns: (transfer full): The serialized form of @room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-char *purple_protocol_roomlist_room_serialize(PurpleProtocolRoomlist *protocol_roomlist, PurpleRoomlistRoom *room);
-
-G_END_DECLS
-
-#endif /* PURPLE_PROTOCOL_ROOMLIST_H */
--- a/libpurple/purpleroomlistroom.c Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#include "purpleroomlistroom.h"
-
-typedef struct {
- gchar *name;
- gchar *description;
- gchar *category;
- guint user_count;
-
- GHashTable *components;
-} PurpleRoomlistRoomPrivate;
-
-enum {
- PROP_0,
- PROP_NAME,
- PROP_DESCRIPTION,
- PROP_CATEGORY,
- PROP_USER_COUNT,
- N_PROPERTIES,
-};
-static GParamSpec *properties[N_PROPERTIES] = {NULL, };
-
-G_DEFINE_TYPE_WITH_PRIVATE(PurpleRoomlistRoom, purple_roomlist_room,
- G_TYPE_OBJECT)
-
-/******************************************************************************
- * Helpers
- *****************************************************************************/
-static void
-purple_roomlist_room_set_name(PurpleRoomlistRoom *room, const gchar *name) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- g_clear_pointer(&priv->name, g_free);
- priv->name = g_strdup(name);
-
- g_object_notify_by_pspec(G_OBJECT(room), properties[PROP_NAME]);
-}
-
-static void
-purple_roomlist_room_set_description(PurpleRoomlistRoom *room,
- const gchar *description)
-{
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- g_clear_pointer(&priv->description, g_free);
- priv->description = g_strdup(description);
-
- g_object_notify_by_pspec(G_OBJECT(room), properties[PROP_DESCRIPTION]);
-}
-
-/******************************************************************************
- * GObject Implementation
- *****************************************************************************/
-static void
-purple_roomlist_room_get_property(GObject *obj, guint param_id, GValue *value,
- GParamSpec *pspec)
-{
- PurpleRoomlistRoom *room = PURPLE_ROOMLIST_ROOM(obj);
-
- switch(param_id) {
- case PROP_NAME:
- g_value_set_string(value, purple_roomlist_room_get_name(room));
- break;
- case PROP_DESCRIPTION:
- g_value_set_string(value,
- purple_roomlist_room_get_description(room));
- break;
- case PROP_CATEGORY:
- g_value_set_string(value, purple_roomlist_room_get_category(room));
- break;
- case PROP_USER_COUNT:
- g_value_set_uint(value, purple_roomlist_room_get_user_count(room));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
- break;
- }
-}
-
-static void
-purple_roomlist_room_set_property(GObject *obj, guint param_id,
- const GValue *value, GParamSpec *pspec)
-{
- PurpleRoomlistRoom *room = PURPLE_ROOMLIST_ROOM(obj);
-
- switch(param_id) {
- case PROP_NAME:
- purple_roomlist_room_set_name(room, g_value_get_string(value));
- break;
- case PROP_DESCRIPTION:
- purple_roomlist_room_set_description(room,
- g_value_get_string(value));
- break;
- case PROP_CATEGORY:
- purple_roomlist_room_set_category(room, g_value_get_string(value));
- break;
- case PROP_USER_COUNT:
- purple_roomlist_room_set_user_count(room, g_value_get_uint(value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
- break;
- }
-}
-
-static void
-purple_roomlist_room_finalize(GObject *obj) {
- PurpleRoomlistRoom *room = NULL;
- PurpleRoomlistRoomPrivate *priv = NULL;;
-
- room = PURPLE_ROOMLIST_ROOM(obj);
- priv = purple_roomlist_room_get_instance_private(room);
-
- g_clear_pointer(&priv->name, g_free);
- g_clear_pointer(&priv->description, g_free);
- g_clear_pointer(&priv->category, g_free);
-
- g_clear_pointer(&priv->components, g_hash_table_destroy);
-
- G_OBJECT_CLASS(purple_roomlist_room_parent_class)->finalize(obj);
-}
-
-static void
-purple_roomlist_room_init(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- priv->components = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,
- g_free);
-}
-
-static void
-purple_roomlist_room_class_init(PurpleRoomlistRoomClass *klass) {
- GObjectClass *obj_class = G_OBJECT_CLASS(klass);
-
- obj_class->get_property = purple_roomlist_room_get_property;
- obj_class->set_property = purple_roomlist_room_set_property;
- obj_class->finalize = purple_roomlist_room_finalize;
-
- /**
- * PurpleRoomlistRoom:name:
- *
- * The name of the room.
- *
- * Since: 3.0
- */
- properties[PROP_NAME] = g_param_spec_string(
- "name", "name",
- "The name of the room",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
-
- /**
- * PurpleRoomlistRoom:description:
- *
- * The description of the room.
- *
- * Since: 3.0
- */
- properties[PROP_DESCRIPTION] = g_param_spec_string(
- "description", "description",
- "The description of the room",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
-
- /**
- * PurpleRoomlistRoom:category:
- *
- * The category of the room.
- *
- * Since: 3.0
- */
- properties[PROP_CATEGORY] = g_param_spec_string(
- "category", "category",
- "The category of the room",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
-
- /**
- * PurpleRoomlistRoom:user-count:
- *
- * The number of users in the room.
- *
- * Since: 3.0
- */
- properties[PROP_USER_COUNT] = g_param_spec_uint(
- "user-count", "user-count",
- "The user count of the room",
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
-
- g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-PurpleRoomlistRoom *
-purple_roomlist_room_new(const gchar *name, const gchar *description) {
- return g_object_new(
- PURPLE_TYPE_ROOMLIST_ROOM,
- "name", name,
- "description", description,
- NULL);
-}
-
-const gchar *
-purple_roomlist_room_get_name(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return priv->name;
-}
-
-const gchar *
-purple_roomlist_room_get_description(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return priv->description;
-}
-
-const gchar *
-purple_roomlist_room_get_category(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return priv->category;
-}
-
-void
-purple_roomlist_room_set_category(PurpleRoomlistRoom *room,
- const gchar *category)
-{
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- g_clear_pointer(&priv->category, g_free);
- priv->category = g_strdup(category);
-
- g_object_notify_by_pspec(G_OBJECT(room), properties[PROP_CATEGORY]);
-}
-
-guint
-purple_roomlist_room_get_user_count(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), 0);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return priv->user_count;
-}
-
-void
-purple_roomlist_room_set_user_count(PurpleRoomlistRoom *room,
- guint user_count)
-{
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- priv->user_count = user_count;
-
- g_object_notify_by_pspec(G_OBJECT(room), properties[PROP_USER_COUNT]);
-}
-
-void
-purple_roomlist_room_add_field(PurpleRoomlistRoom *room, const gchar *field,
- const gchar *value)
-{
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
- g_return_if_fail(field != NULL);
- g_return_if_fail(value != NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- g_hash_table_replace(priv->components, (gpointer)field, g_strdup(value));
-}
-
-const gchar *
-purple_roomlist_room_get_field(PurpleRoomlistRoom *room, const gchar *field) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), NULL);
- g_return_val_if_fail(field != NULL, NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return g_hash_table_lookup(priv->components, field);
-}
-
-GHashTable *
-purple_roomlist_room_get_components(PurpleRoomlistRoom *room) {
- PurpleRoomlistRoomPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST_ROOM(room), NULL);
-
- priv = purple_roomlist_room_get_instance_private(room);
-
- return priv->components;
-}
--- a/libpurple/purpleroomlistroom.h Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
-# error "only <purple.h> may be included directly"
-#endif
-
-#ifndef PURPLE_ROOMLIST_ROOM_H
-#define PURPLE_ROOMLIST_ROOM_H
-
-#include <glib.h>
-#include <glib-object.h>
-
-#include "purpleversion.h"
-
-G_BEGIN_DECLS
-
-#define PURPLE_TYPE_ROOMLIST_ROOM (purple_roomlist_room_get_type())
-
-/**
- * purple_roomlist_room_get_type:
- *
- * Gets the #GType of #PurpleRoomlistRoom.
- *
- * Returns: The #GType of #PurpleRoomlistRoom.
- *
- * Since: 3.0
- */
-
-/**
- * PurpleRoomlistRoom:
- *
- * #PurpleRoomlistRoom keeps track of all #PurpleConversation's inside
- * of libpurple and allows searching of them.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-G_DECLARE_DERIVABLE_TYPE(PurpleRoomlistRoom, purple_roomlist_room, PURPLE,
- ROOMLIST_ROOM, GObject)
-
-struct _PurpleRoomlistRoomClass {
- /*< private >*/
- GObjectClass parent;
-
- gpointer reserved[4];
-};
-
-/**
- * purple_roomlist_room_new:
- * @name: The name for the room.
- * @description: The description or topic of the room.
- *
- * Creates a new room to be added to a [class@Purple.Roomlist].
- *
- * Returns: (transfer full): The new room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-PurpleRoomlistRoom *purple_roomlist_room_new(const gchar *name, const gchar *description);
-
-/**
- * purple_roomlist_room_get_name:
- * @room: The instance.
- *
- * Gets the name of @room.
- *
- * Returns: The name of @room.
- *
- * Since: 2.4
- */
-PURPLE_AVAILABLE_IN_2_4
-const gchar *purple_roomlist_room_get_name(PurpleRoomlistRoom *room);
-
-/**
- * purple_roomlist_room_get_description:
- * @room: The instance.
- *
- * Gets the description of @room.
- *
- * Returns: The description of @room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-const gchar *purple_roomlist_room_get_description(PurpleRoomlistRoom *room);
-
-/**
- * purple_roomlist_room_get_category:
- * @room: The instance.
- *
- * Gets the category of @room. It is up to the user interface on whether or not
- * this will be used.
- *
- * Returns: The category of @room if set otherwise %NULL.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-const gchar *purple_roomlist_room_get_category(PurpleRoomlistRoom *room);
-
-/**
- * purple_roomlist_room_set_category:
- * @room: The instance.
- * @category: (nullable): The new category.
- *
- * Sets the category of @room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_roomlist_room_set_category(PurpleRoomlistRoom *room, const gchar *category);
-
-/**
- * purple_roomlist_room_get_user_count:
- * @room: The instance.
- *
- * Gets the number of users in @room.
- *
- * Returns: The number of users in @room if set, otherwise 0.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-guint purple_roomlist_room_get_user_count(PurpleRoomlistRoom *room);
-
-/**
- * purple_roomlist_room_set_user_count:
- * @room: The instance.
- * @user_count: The new user count.
- *
- * Sets the user count of @room to @user_count.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_roomlist_room_set_user_count(PurpleRoomlistRoom *room, guint user_count);
-
-/**
- * purple_roomlist_room_add_field:
- * @room: This instance.
- * @field: The name of the field. This should be a static string.
- * @value: The value of the field. This should be a copy of the value.
- *
- * Adds a new field to @room with the name of @field and value of @value.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_roomlist_room_add_field(PurpleRoomlistRoom *room, const gchar *field, const gchar *value);
-
-/**
- * purple_roomlist_room_get_field:
- * @room: The instance.
- * @field: The name of the field to get.
- *
- * Gets the value of the field named @field in @room.
- *
- * Returns: The value of @field.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-const gchar *purple_roomlist_room_get_field(PurpleRoomlistRoom *room, const gchar *field);
-
-/**
- * purple_roomlist_room_get_components:
- * @room: The instance.
- *
- * Gets the components that can be passed to purple_serv_join_chat() to join
- * the room.
- *
- * Returns: (transfer none): The components used to join the room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-GHashTable *purple_roomlist_room_get_components(PurpleRoomlistRoom *room);
-
-G_END_DECLS
-
-#endif /* PURPLE_ROOMLIST_ROOM_H */
--- a/libpurple/roomlist.c Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#include "connection.h"
-#include "debug.h"
-#include "purpleaccount.h"
-#include "roomlist.h"
-#include "server.h"
-
-/* This must be after roomlist.h otherwise you'll get an include cycle. */
-#include "purpleprotocolroomlist.h"
-
-/*
- * Private data for a room list.
- */
-typedef struct {
- PurpleAccount *account; /* The account this list belongs to. */
- GList *rooms; /* The list of rooms. */
- gboolean in_progress; /* The listing is in progress. */
-} PurpleRoomlistPrivate;
-
-/* Room list property enums */
-enum
-{
- PROP_0,
- PROP_ACCOUNT,
- PROP_IN_PROGRESS,
- N_PROPERTIES,
-};
-
-static GParamSpec *properties[N_PROPERTIES] = {NULL, };
-static PurpleRoomlistUiOps *ops = NULL;
-
-G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleRoomlist, purple_roomlist,
- G_TYPE_OBJECT)
-
-/**************************************************************************/
-/* Room List API */
-/**************************************************************************/
-
-void purple_roomlist_show_with_account(PurpleAccount *account)
-{
- if (ops && ops->show_with_account)
- ops->show_with_account(account);
-}
-
-PurpleAccount *purple_roomlist_get_account(PurpleRoomlist *list)
-{
- PurpleRoomlistPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST(list), NULL);
-
- priv = purple_roomlist_get_instance_private(list);
- return priv->account;
-}
-
-void purple_roomlist_set_in_progress(PurpleRoomlist *list, gboolean in_progress)
-{
- PurpleRoomlistPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
-
- priv = purple_roomlist_get_instance_private(list);
- priv->in_progress = in_progress;
-
- g_object_notify_by_pspec(G_OBJECT(list), properties[PROP_IN_PROGRESS]);
-}
-
-gboolean purple_roomlist_get_in_progress(PurpleRoomlist *list)
-{
- PurpleRoomlistPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_ROOMLIST(list), FALSE);
-
- priv = purple_roomlist_get_instance_private(list);
- return priv->in_progress;
-}
-
-void purple_roomlist_room_add(PurpleRoomlist *list, PurpleRoomlistRoom *room)
-{
- PurpleRoomlistPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
- g_return_if_fail(room != NULL);
-
- priv = purple_roomlist_get_instance_private(list);
- priv->rooms = g_list_append(priv->rooms, room);
-
- if (ops && ops->add_room)
- ops->add_room(list, room);
-}
-
-PurpleRoomlist *purple_roomlist_get_list(PurpleConnection *gc)
-{
- PurpleProtocol *protocol = NULL;
-
- g_return_val_if_fail(PURPLE_IS_CONNECTION(gc), NULL);
- g_return_val_if_fail(PURPLE_CONNECTION_IS_CONNECTED(gc), NULL);
-
- protocol = purple_connection_get_protocol(gc);
-
- if(PURPLE_IS_PROTOCOL_ROOMLIST(protocol)) {
- return purple_protocol_roomlist_get_list(PURPLE_PROTOCOL_ROOMLIST(protocol),
- gc);
- }
-
- return NULL;
-}
-
-void purple_roomlist_cancel_get_list(PurpleRoomlist *list)
-{
- PurpleRoomlistPrivate *priv = NULL;
- PurpleProtocol *protocol = NULL;
- PurpleConnection *gc;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
-
- priv = purple_roomlist_get_instance_private(list);
-
- gc = purple_account_get_connection(priv->account);
- g_return_if_fail(PURPLE_IS_CONNECTION(gc));
-
- if(gc)
- protocol = purple_connection_get_protocol(gc);
-
- if(PURPLE_IS_PROTOCOL_ROOMLIST(protocol)) {
- purple_protocol_roomlist_cancel(PURPLE_PROTOCOL_ROOMLIST(protocol), list);
- }
-}
-
-void
-purple_roomlist_join_room(PurpleRoomlist *list, PurpleRoomlistRoom *room) {
- PurpleRoomlistPrivate *priv = NULL;
- PurpleConnection *connection = NULL;
- GHashTable *components = NULL, *adjusted = NULL;
- GHashTableIter iter;
- const gchar *name = NULL;
- gpointer key, value;
-
- g_return_if_fail(PURPLE_IS_ROOMLIST(list));
- g_return_if_fail(PURPLE_IS_ROOMLIST_ROOM(room));
-
- priv = purple_roomlist_get_instance_private(list);
-
- connection = purple_account_get_connection(priv->account);
- if(connection == NULL) {
- return;
- }
-
- components = purple_roomlist_room_get_components(room);
-
- /* Make a copy of the components as we make sure the name is included. */
- adjusted = g_hash_table_new(g_str_hash, g_str_equal);
- g_hash_table_iter_init(&iter, components);
- while(g_hash_table_iter_next(&iter, &key, &value)) {
- g_hash_table_insert(adjusted, key, value);
- }
-
- name = purple_roomlist_room_get_name(room);
- g_hash_table_replace(adjusted, "name", (gpointer)name);
-
- /* purple_serv_join_chat(connection, adjusted); */
-
- g_hash_table_destroy(adjusted);
-}
-
-/**************************************************************************/
-/* Room List GObject code */
-/**************************************************************************/
-
-/* Set method for GObject properties */
-static void
-purple_roomlist_set_property(GObject *obj, guint param_id, const GValue *value,
- GParamSpec *pspec)
-{
- PurpleRoomlist *list = PURPLE_ROOMLIST(obj);
- PurpleRoomlistPrivate *priv =
- purple_roomlist_get_instance_private(list);
-
- switch (param_id) {
- case PROP_ACCOUNT:
- priv->account = g_value_get_object(value);
- break;
- case PROP_IN_PROGRESS:
- purple_roomlist_set_in_progress(list, g_value_get_boolean(value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
- break;
- }
-}
-
-/* Get method for GObject properties */
-static void
-purple_roomlist_get_property(GObject *obj, guint param_id, GValue *value,
- GParamSpec *pspec)
-{
- PurpleRoomlist *list = PURPLE_ROOMLIST(obj);
-
- switch (param_id) {
- case PROP_ACCOUNT:
- g_value_set_object(value, purple_roomlist_get_account(list));
- break;
- case PROP_IN_PROGRESS:
- g_value_set_boolean(value, purple_roomlist_get_in_progress(list));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
- break;
- }
-}
-
-static void
-purple_roomlist_init(G_GNUC_UNUSED PurpleRoomlist *list)
-{
-}
-
-/* Called when done constructing */
-static void
-purple_roomlist_constructed(GObject *object)
-{
- PurpleRoomlist *list = PURPLE_ROOMLIST(object);
-
- G_OBJECT_CLASS(purple_roomlist_parent_class)->constructed(object);
-
- if (ops && ops->create)
- ops->create(list);
-}
-
-/* GObject finalize function */
-static void
-purple_roomlist_finalize(GObject *object)
-{
- PurpleRoomlist *list = PURPLE_ROOMLIST(object);
- PurpleRoomlistPrivate *priv =
- purple_roomlist_get_instance_private(list);
-
- purple_debug_misc("roomlist", "destroying list %p\n", list);
-
- g_list_free_full(priv->rooms, g_object_unref);
-
- G_OBJECT_CLASS(purple_roomlist_parent_class)->finalize(object);
-}
-
-/* Class initializer function */
-static void
-purple_roomlist_class_init(PurpleRoomlistClass *klass)
-{
- GObjectClass *obj_class = G_OBJECT_CLASS(klass);
-
- obj_class->finalize = purple_roomlist_finalize;
- obj_class->constructed = purple_roomlist_constructed;
-
- /* Setup properties */
- obj_class->get_property = purple_roomlist_get_property;
- obj_class->set_property = purple_roomlist_set_property;
-
- /**
- * PurpleRoomlist:account:
- *
- * The account this room list belongs to.
- *
- * Since: 3.0
- */
- properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account",
- "The account for the room list.",
- PURPLE_TYPE_ACCOUNT,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS);
-
- /**
- * PurpleRoomlist:in-progress:
- *
- * Whether or not the room list is being fetched.
- *
- * Since: 3.0
- */
- properties[PROP_IN_PROGRESS] = g_param_spec_boolean("in-progress",
- "In progress",
- "Whether the room list is being fetched.", FALSE,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
-
- g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
-}
-
-PurpleRoomlist *purple_roomlist_new(PurpleAccount *account)
-{
- return g_object_new(PURPLE_TYPE_ROOMLIST,
- "account", account,
- NULL
- );
-}
-
-/**************************************************************************/
-/* UI Registration Functions */
-/**************************************************************************/
-
-void purple_roomlist_set_ui_ops(PurpleRoomlistUiOps *ui_ops)
-{
- ops = ui_ops;
-}
-
-PurpleRoomlistUiOps *purple_roomlist_get_ui_ops(void)
-{
- return ops;
-}
-
-/**************************************************************************
- * UI Ops GBoxed code
- **************************************************************************/
-
-static PurpleRoomlistUiOps *
-purple_roomlist_ui_ops_copy(PurpleRoomlistUiOps *ops)
-{
- PurpleRoomlistUiOps *ops_new;
-
- g_return_val_if_fail(ops != NULL, NULL);
-
- ops_new = g_new(PurpleRoomlistUiOps, 1);
- *ops_new = *ops;
-
- return ops_new;
-}
-
-GType
-purple_roomlist_ui_ops_get_type(void)
-{
- static GType type = 0;
-
- if (type == 0) {
- type = g_boxed_type_register_static("PurpleRoomlistUiOps",
- (GBoxedCopyFunc)purple_roomlist_ui_ops_copy,
- (GBoxedFreeFunc)g_free);
- }
-
- return type;
-}
--- a/libpurple/roomlist.h Sat Apr 13 22:24:47 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-/*
- * Purple - Internet Messaging Library
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this library; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
-# error "only <purple.h> may be included directly"
-#endif
-
-#ifndef PURPLE_ROOMLIST_H
-#define PURPLE_ROOMLIST_H
-
-#include "purpleversion.h"
-
-#define PURPLE_TYPE_ROOMLIST (purple_roomlist_get_type())
-typedef struct _PurpleRoomlist PurpleRoomlist;
-
-/**
- * PurpleRoomlistField:
- *
- * A field for the room list.
- *
- * Since: 2.0
- */
-#define PURPLE_TYPE_ROOMLIST_FIELD (purple_roomlist_field_get_type())
-typedef struct _PurpleRoomlistField PurpleRoomlistField;
-
-#define PURPLE_TYPE_ROOMLIST_UI_OPS (purple_roomlist_ui_ops_get_type())
-typedef struct _PurpleRoomlistUiOps PurpleRoomlistUiOps;
-
-/**
- * PurpleRoomlistFieldType:
- * @PURPLE_ROOMLIST_FIELD_BOOL: The field is a boolean.
- * @PURPLE_ROOMLIST_FIELD_INT: The field is an integer.
- * @PURPLE_ROOMLIST_FIELD_STRING: We do a g_strdup on the passed value if it's
- * this type.
- *
- * The types of fields.
- *
- * Since: 2.0
- */
-typedef enum
-{
- PURPLE_ROOMLIST_FIELD_BOOL,
- PURPLE_ROOMLIST_FIELD_INT,
- PURPLE_ROOMLIST_FIELD_STRING
-
-} PurpleRoomlistFieldType;
-
-#include <glib.h>
-
-#include "purpleaccount.h"
-#include "purpleroomlistroom.h"
-
-/**************************************************************************/
-/* Data Structures */
-/**************************************************************************/
-
-/**
- * PurpleRoomlistUiOps:
- * @show_with_account: Force the ui to pop up a dialog and get the list.
- * @create: A new list was created.
- * @set_fields: Sets the columns.
- * @add_room: Add a room to the list.
- *
- * The room list ops to be filled out by the UI.
- *
- * Since: 2.0
- */
-struct _PurpleRoomlistUiOps {
- void (*show_with_account)(PurpleAccount *account);
- void (*create)(PurpleRoomlist *list);
- void (*set_fields)(PurpleRoomlist *list, GList *fields);
- void (*add_room)(PurpleRoomlist *list, PurpleRoomlistRoom *room);
-
- /*< private >*/
- void (*_purple_reserved1)(void);
- void (*_purple_reserved2)(void);
- void (*_purple_reserved3)(void);
- void (*_purple_reserved4)(void);
-};
-
-/**
- * PurpleRoomlist:
- *
- * Represents a list of rooms for a given connection on a given protocol.
- *
- * Since: 2.0
- */
-struct _PurpleRoomlist {
- GObject gparent;
-};
-
-G_BEGIN_DECLS
-
-/**************************************************************************/
-/* Room List API */
-/**************************************************************************/
-
-/**
- * purple_roomlist_get_type:
- *
- * The standard _get_type function for #PurpleRoomlist.
- *
- * Returns: The #GType for the Room List object.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-G_DECLARE_FINAL_TYPE(PurpleRoomlist, purple_roomlist, PURPLE, ROOMLIST, GObject)
-
-/**
- * purple_roomlist_show_with_account:
- * @account: The account to get the list on.
- *
- * This is used to get the room list on an account, asking the UI
- * to pop up a dialog with the specified account already selected,
- * and pretend the user clicked the get list button.
- * While we're pretending, predend I didn't say anything about dialogs
- * or buttons, since this is the core.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_show_with_account(PurpleAccount *account);
-
-/**
- * purple_roomlist_new:
- * @account: The account that's listing rooms.
- *
- * Returns a newly created room list object.
- *
- * Returns: The new room list handle.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-PurpleRoomlist *purple_roomlist_new(PurpleAccount *account);
-
-/**
- * purple_roomlist_get_account:
- * @list: The room list.
- *
- * Retrieve the PurpleAccount that was given when the room list was
- * created.
- *
- * Returns: (transfer none): The PurpleAccount tied to this room list.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-PurpleAccount *purple_roomlist_get_account(PurpleRoomlist *list);
-
-/**
- * purple_roomlist_set_fields:
- * @list: The room list.
- * @fields: (element-type PurpleRoomlistField) (transfer full): UI's are
- * encouraged to default to displaying these fields in the order given.
- *
- * Set the different field types and their names for this protocol.
- *
- * This must be called before purple_roomlist_room_add().
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_set_fields(PurpleRoomlist *list, GList *fields);
-
-/**
- * purple_roomlist_set_in_progress:
- * @list: The room list.
- * @in_progress: We're downloading it, or we're not.
- *
- * Set the "in progress" state of the room list.
- *
- * The UI is encouraged to somehow hint to the user
- * whether or not we're busy downloading a room list or not.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_set_in_progress(PurpleRoomlist *list, gboolean in_progress);
-
-/**
- * purple_roomlist_get_in_progress:
- * @list: The room list.
- *
- * Gets the "in progress" state of the room list.
- *
- * The UI is encouraged to somehow hint to the user
- * whether or not we're busy downloading a room list or not.
- *
- * Returns: True if we're downloading it, or false if we're not.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-gboolean purple_roomlist_get_in_progress(PurpleRoomlist *list);
-
-/**
- * purple_roomlist_room_add:
- * @list: The room list.
- * @room: The room to add to the list. The GList of fields must be in the same
- order as was given in purple_roomlist_set_fields().
- *
- * Adds a room to the list of them.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_room_add(PurpleRoomlist *list, PurpleRoomlistRoom *room);
-
-/**
- * purple_roomlist_get_list:
- * @gc: The PurpleConnection to have get a list.
- *
- * Returns a PurpleRoomlist structure from the protocol, and
- * instructs the protocol to start fetching the list.
- *
- * Returns: (transfer full): A PurpleRoomlist* or %NULL if the protocol doesn't
- * support that.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-PurpleRoomlist *purple_roomlist_get_list(PurpleConnection *gc);
-
-/**
- * purple_roomlist_cancel_get_list:
- * @list: The room list to cancel a get_list on.
- *
- * Tells the protocol to stop fetching the list.
- * If this is possible and done, the protocol will
- * call set_in_progress with %FALSE and possibly
- * unref the list if it took a reference.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_cancel_get_list(PurpleRoomlist *list);
-
-/**
- * purple_roomlist_join_room:
- * @list: The room list whose room to join.
- * @room: The room to join.
- *
- * Create a new conversation for @room.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-void purple_roomlist_join_room(PurpleRoomlist *list, PurpleRoomlistRoom *room);
-
-/**************************************************************************/
-/* UI Registration Functions */
-/**************************************************************************/
-
-/**
- * purple_roomlist_ui_ops_get_type:
- *
- * The standard _get_type function for #PurpleRoomlistUiOps.
- *
- * Returns: The #GType for the #PurpleRoomlistUiOps boxed structure.
- *
- * Since: 3.0
- */
-PURPLE_AVAILABLE_IN_3_0
-GType purple_roomlist_ui_ops_get_type(void);
-
-/**
- * purple_roomlist_set_ui_ops:
- * @ops: The UI operations structure.
- *
- * Sets the UI operations structure to be used in all purple room lists.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-void purple_roomlist_set_ui_ops(PurpleRoomlistUiOps *ops);
-
-/**
- * purple_roomlist_get_ui_ops:
- *
- * Returns the purple window UI operations structure to be used in
- * new windows.
- *
- * Returns: A filled-out PurpleRoomlistUiOps structure.
- *
- * Since: 2.0
- */
-PURPLE_AVAILABLE_IN_ALL
-PurpleRoomlistUiOps *purple_roomlist_get_ui_ops(void);
-
-G_END_DECLS
-
-#endif /* PURPLE_ROOMLIST_H */
--- a/po/POTFILES.in Sat Apr 13 22:24:47 2024 -0500
+++ b/po/POTFILES.in Sat Apr 13 22:28:40 2024 -0500
@@ -67,7 +67,6 @@
libpurple/purpleprotocolclient.c
libpurple/purpleprotocolmanager.c
libpurple/purpleprotocolmedia.c
-libpurple/purpleprotocolroomlist.c
libpurple/purpleprotocolserver.c
libpurple/purpleprotocolwhiteboard.c
libpurple/purplesqlitehistoryadapter.c
@@ -90,7 +89,6 @@
libpurple/request/purplerequestfieldstring.c
libpurple/request/purplerequestgroup.c
libpurple/request/purplerequestpage.c
-libpurple/roomlist.c
libpurple/server.c
libpurple/signals.c
libpurple/tests/test_account_manager.c