/pidgin/main: 12ce09a23094: Move PurpleChat to it's own file

Gary Kramlich <[email protected]> Thu, 25 Aug 2016 23:54:12 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 12ce09a23094726089f6be144972cee15f979bcd
Author:	 Gary Kramlich <[email protected]>
Date:	 2016-08-12 18:53 -0500
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/12ce09a23094

Description:

Move PurpleChat to it's own file

diffstat:

 libpurple/Makefile.am      |    2 +
 libpurple/blistnodetypes.c |  297 ---------------------------------------
 libpurple/blistnodetypes.h |  119 +---------------
 libpurple/buddylist.h      |    2 +
 libpurple/chat.c           |  337 +++++++++++++++++++++++++++++++++++++++++++++
 libpurple/chat.h           |  153 ++++++++++++++++++++
 6 files changed, 495 insertions(+), 415 deletions(-)

diffs (truncated from 991 to 300 lines):

diff --git a/libpurple/Makefile.am b/libpurple/Makefile.am
--- a/libpurple/Makefile.am
+++ b/libpurple/Makefile.am
@@ -43,6 +43,7 @@ purple_coresources = \
 	blistnodetypes.c \
 	buddylist.c \
 	buddyicon.c \
+	chat.c \
 	ciphers/aescipher.c \
 	ciphers/descipher.c \
 	ciphers/des3cipher.c \
@@ -140,6 +141,7 @@ purple_coreheaders = \
 	blistnodetypes.h \
 	buddylist.h \
 	buddyicon.h \
+	chat.h \
 	cipher.h \
 	circularbuffer.h \
 	cmds.h \
diff --git a/libpurple/blistnodetypes.c b/libpurple/blistnodetypes.c
--- a/libpurple/blistnodetypes.c
+++ b/libpurple/blistnodetypes.c
@@ -69,31 +69,9 @@ enum
 	BUDDY_PROP_LAST
 };
 
-/* Private data for a chat node */
-struct _PurpleChatPrivate {
-	char *alias;              /* The display name of this chat.             */
-	PurpleAccount *account;   /* The account this chat is attached to       */
-	GHashTable *components;   /* the stuff the protocol needs to know to
-	                             join the chat                              */
-
-	gboolean is_constructed;  /* Indicates if the chat has finished being
-	                             constructed.                               */
-};
-
-/* Chat property enums */
-enum
-{
-	CHAT_PROP_0,
-	CHAT_PROP_ALIAS,
-	CHAT_PROP_ACCOUNT,
-	CHAT_PROP_COMPONENTS,
-	CHAT_PROP_LAST
-};
-
 static PurpleBlistNode     *blistnode_parent_class;
 
 static GParamSpec *bd_properties[BUDDY_PROP_LAST];
-static GParamSpec *ch_properties[CHAT_PROP_LAST];
 
 static gboolean
 purple_strings_are_different(const char *one, const char *two)
@@ -737,278 +715,3 @@ purple_buddy_new(PurpleAccount *account,
 			"local-alias",  alias,
 			NULL);
 }
-
-/**************************************************************************/
-/* Chat API                                                               */
-/**************************************************************************/
-
-const char *purple_chat_get_name(PurpleChat *chat)
-{
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	g_return_val_if_fail(priv != NULL, NULL);
-
-	if ((priv->alias != NULL) && (*priv->alias != '\0'))
-		return priv->alias;
-
-	return purple_chat_get_name_only(chat);
-}
-
-const char *purple_chat_get_name_only(PurpleChat *chat)
-{
-	char *ret = NULL;
-	PurpleProtocol *protocol = NULL;
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	g_return_val_if_fail(priv != NULL, NULL);
-
-	protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
-
-	if (PURPLE_PROTOCOL_IMPLEMENTS(protocol, CHAT_IFACE, info)) {
-		PurpleProtocolChatEntry *pce;
-		GList *parts = purple_protocol_chat_iface_info(protocol, purple_account_get_connection(priv->account));
-		pce = parts->data;
-		ret = g_hash_table_lookup(priv->components, pce->identifier);
-		g_list_foreach(parts, (GFunc)g_free, NULL);
-		g_list_free(parts);
-	}
-
-	return ret;
-}
-
-void
-purple_chat_set_alias(PurpleChat *chat, const char *alias)
-{
-	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
-	char *old_alias;
-	char *new_alias = NULL;
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	g_return_if_fail(priv != NULL);
-
-	if ((alias != NULL) && (*alias != '\0'))
-		new_alias = purple_utf8_strip_unprintables(alias);
-
-	if (!purple_strings_are_different(priv->alias, new_alias)) {
-		g_free(new_alias);
-		return;
-	}
-
-	old_alias = priv->alias;
-
-	if ((new_alias != NULL) && (*new_alias != '\0'))
-		priv->alias = new_alias;
-	else {
-		priv->alias = NULL;
-		g_free(new_alias); /* could be "\0" */
-	}
-
-	g_object_notify_by_pspec(G_OBJECT(chat), ch_properties[CHAT_PROP_ALIAS]);
-
-	if (ops) {
-		if (ops->save_node)
-			ops->save_node(PURPLE_BLIST_NODE(chat));
-		if (ops->update)
-			ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(chat));
-	}
-
-	purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
-					 chat, old_alias);
-	g_free(old_alias);
-}
-
-PurpleGroup *
-purple_chat_get_group(PurpleChat *chat)
-{
-	g_return_val_if_fail(PURPLE_IS_CHAT(chat), NULL);
-
-	return PURPLE_GROUP(PURPLE_BLIST_NODE(chat)->parent);
-}
-
-PurpleAccount *
-purple_chat_get_account(PurpleChat *chat)
-{
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	g_return_val_if_fail(priv != NULL, NULL);
-
-	return priv->account;
-}
-
-GHashTable *
-purple_chat_get_components(PurpleChat *chat)
-{
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	g_return_val_if_fail(priv != NULL, NULL);
-
-	return priv->components;
-}
-
-/**************************************************************************
- * GObject code for PurpleChat
- **************************************************************************/
-
-/* Set method for GObject properties */
-static void
-purple_chat_set_property(GObject *obj, guint param_id, const GValue *value,
-		GParamSpec *pspec)
-{
-	PurpleChat *chat = PURPLE_CHAT(obj);
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	switch (param_id) {
-		case CHAT_PROP_ALIAS:
-			if (priv->is_constructed)
-				purple_chat_set_alias(chat, g_value_get_string(value));
-			else
-				priv->alias =
-					purple_utf8_strip_unprintables(g_value_get_string(value));
-			break;
-		case CHAT_PROP_ACCOUNT:
-			priv->account = g_value_get_object(value);
-			break;
-		case CHAT_PROP_COMPONENTS:
-			priv->components = g_value_get_pointer(value);
-			break;
-		default:
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-			break;
-	}
-}
-
-/* Get method for GObject properties */
-static void
-purple_chat_get_property(GObject *obj, guint param_id, GValue *value,
-		GParamSpec *pspec)
-{
-	PurpleChat *chat = PURPLE_CHAT(obj);
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-
-	switch (param_id) {
-		case CHAT_PROP_ALIAS:
-			g_value_set_string(value, priv->alias);
-			break;
-		case CHAT_PROP_ACCOUNT:
-			g_value_set_object(value, purple_chat_get_account(chat));
-			break;
-		case CHAT_PROP_COMPONENTS:
-			g_value_set_pointer(value, purple_chat_get_components(chat));
-			break;
-		default:
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-			break;
-	}
-}
-
-/* GObject initialization function */
-static void
-purple_chat_init(GTypeInstance *instance, gpointer klass)
-{
-	PURPLE_DBUS_REGISTER_POINTER(PURPLE_CHAT(instance), PurpleChat);
-}
-
-/* Called when done constructing */
-static void
-purple_chat_constructed(GObject *object)
-{
-	PurpleChat *chat = PURPLE_CHAT(object);
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
-	PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
-
-	G_OBJECT_CLASS(blistnode_parent_class)->constructed(object);
-
-	if (ops != NULL && ops->new_node != NULL)
-		ops->new_node(PURPLE_BLIST_NODE(chat));
-
-	priv->is_constructed = TRUE;
-}
-
-/* GObject finalize function */
-static void
-purple_chat_finalize(GObject *object)
-{
-	PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(object);
-
-	g_free(priv->alias);
-	g_hash_table_destroy(priv->components);
-
-	PURPLE_DBUS_UNREGISTER_POINTER(object);
-
-	G_OBJECT_CLASS(blistnode_parent_class)->finalize(object);
-}
-
-/* Class initializer function */
-static void purple_chat_class_init(PurpleChatClass *klass)
-{
-	GObjectClass *obj_class = G_OBJECT_CLASS(klass);
-
-	blistnode_parent_class = g_type_class_peek_parent(klass);
-
-	obj_class->finalize = purple_chat_finalize;
-
-	/* Setup properties */
-	obj_class->get_property = purple_chat_get_property;
-	obj_class->set_property = purple_chat_set_property;
-	obj_class->constructed = purple_chat_constructed;
-
-	g_type_class_add_private(klass, sizeof(PurpleChatPrivate));
-
-	ch_properties[CHAT_PROP_ALIAS] = g_param_spec_string("alias", "Alias",
-				"The alias for the chat.", NULL,
-				G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-
-	ch_properties[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_STATIC_STRINGS);
-
-	ch_properties[CHAT_PROP_COMPONENTS] = g_param_spec_pointer("components",
-				"Components",
-				"The protocol components of the chat.",
-				G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
-				G_PARAM_STATIC_STRINGS);
-
-	g_object_class_install_properties(obj_class, CHAT_PROP_LAST, ch_properties);
-}
-
-GType
-purple_chat_get_type(void)
-{
-	static GType type = 0;
-
-	if(type == 0) {
-		static const GTypeInfo info = {

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits