/pidgin/main: 09387009bb17: Drop PurpleConversationMessage in fa...

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 09387009bb175c793ef60f6a4ee8d0e83b63f6b3
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-06-13 23:42 +0200
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/09387009bb17

Description:

Drop PurpleConversationMessage in favor of PurpleMessage

diffstat:

 libpurple/conversation.c |  139 ++--------------------------------------------
 libpurple/conversation.h |   79 +-------------------------
 libpurple/message.c      |   16 ++--
 libpurple/message.h      |   16 ++--
 pidgin/gtkconv.c         |   52 ++++++-----------
 5 files changed, 45 insertions(+), 257 deletions(-)

diffs (truncated from 542 to 300 lines):

diff --git a/libpurple/conversation.c b/libpurple/conversation.c
--- a/libpurple/conversation.c
+++ b/libpurple/conversation.c
@@ -56,8 +56,7 @@ struct _PurpleConversationPrivate
 	PurpleConversationUiOps *ui_ops;  /* UI-specific operations.           */
 
 	PurpleConnectionFlags features;   /* The supported features            */
-	GList *message_history;           /* Message history, as a GList of
-	                                       PurpleConversationMessage's       */
+	GList *message_history; /* Message history, as a GList of PurpleMessages */
 
 	PurpleE2eeState *e2ee_state;      /* End-to-end encryption state.      */
 
@@ -67,19 +66,6 @@ struct _PurpleConversationPrivate
 	PurpleSmileyList *remote_smileys;
 };
 
-/*
- * Description of a conversation message
- */
-struct _PurpleConversationMessage
-{
-	char *who;
-	char *what;
-	PurpleMessageFlags flags;
-	time_t when;
-	PurpleConversation *conv;
-	char *alias;
-};
-
 /* GObject Property enums */
 enum
 {
@@ -216,58 +202,20 @@ open_log(PurpleConversation *conv)
 							   conv, time(NULL), NULL));
 }
 
-/* Functions that deal with PurpleConversationMessage */
+/* Functions that deal with PurpleMessage history */
 
 static void
-add_message_to_history(PurpleConversation *conv, const char *who, const char *alias,
-		const char *message, PurpleMessageFlags flags, time_t when)
+add_message_to_history(PurpleConversation *conv, PurpleMessage *msg)
 {
 	PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv);
-	PurpleConversationMessage *msg;
-	PurpleConnection *gc;
 
 	g_return_if_fail(priv != NULL);
+	g_return_if_fail(msg != NULL);
 
-	gc = purple_account_get_connection(priv->account);
-
-	if (flags & PURPLE_MESSAGE_SEND) {
-		const char *me = NULL;
-		if (gc)
-			me = purple_connection_get_display_name(gc);
-		if (!me)
-			me = purple_account_get_username(priv->account);
-		who = me;
-	}
-
-	msg = g_new0(PurpleConversationMessage, 1);
-	PURPLE_DBUS_REGISTER_POINTER(msg, PurpleConversationMessage);
-	msg->who = g_strdup(who);
-	msg->alias = g_strdup(alias);
-	msg->flags = flags;
-	msg->what = g_strdup(message);
-	msg->when = when;
-	msg->conv = conv;
-
+	g_object_ref(msg);
 	priv->message_history = g_list_prepend(priv->message_history, msg);
 }
 
-static void
-free_conv_message(PurpleConversationMessage *msg)
-{
-	g_free(msg->who);
-	g_free(msg->alias);
-	g_free(msg->what);
-	PURPLE_DBUS_UNREGISTER_POINTER(msg);
-	g_free(msg);
-}
-
-static void
-message_history_free(GList *list)
-{
-	g_list_foreach(list, (GFunc)free_conv_message, NULL);
-	g_list_free(list);
-}
-
 /**************************************************************************
  * Conversation API
  **************************************************************************/
@@ -681,12 +629,7 @@ void
 			ops->write_conv(conv, pmsg);
 	}
 
-	add_message_to_history(conv,
-		(purple_message_get_flags(pmsg) & PURPLE_MESSAGE_SEND) ? purple_message_get_recipient(pmsg) : purple_message_get_author(pmsg),
-		purple_message_get_author_alias(pmsg),
-		purple_message_get_contents(pmsg),
-		purple_message_get_flags(pmsg),
-		purple_message_get_time(pmsg));
+	add_message_to_history(conv, pmsg);
 
 	purple_signal_emit(purple_conversations_get_handle(),
 		(PURPLE_IS_IM_CONVERSATION(conv) ? "wrote-im-msg" : "wrote-chat-msg"),
@@ -835,7 +778,7 @@ void purple_conversation_clear_message_h
 	g_return_if_fail(priv != NULL);
 
 	list = priv->message_history;
-	message_history_free(list);
+	g_list_free_full(list, g_object_unref);
 	priv->message_history = NULL;
 
 	purple_signal_emit(purple_conversations_get_handle(),
@@ -851,74 +794,6 @@ GList *purple_conversation_get_message_h
 	return priv->message_history;
 }
 
-const char *purple_conversation_message_get_sender(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, NULL);
-	return msg->who;
-}
-
-const char *purple_conversation_message_get_message(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, NULL);
-	return msg->what;
-}
-
-PurpleMessageFlags purple_conversation_message_get_flags(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, 0);
-	return msg->flags;
-}
-
-time_t purple_conversation_message_get_timestamp(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, 0);
-	return msg->when;
-}
-
-const char *purple_conversation_message_get_alias(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, NULL);
-	return msg->alias;
-}
-
-PurpleConversation *purple_conversation_message_get_conversation(const PurpleConversationMessage *msg)
-{
-	g_return_val_if_fail(msg, NULL);
-	return msg->conv;
-}
-
-static PurpleConversationMessage *
-copy_conv_message(PurpleConversationMessage *msg)
-{
-	PurpleConversationMessage *newmsg;
-
-	g_return_val_if_fail(msg != NULL, NULL);
-
-	newmsg  = g_new(PurpleConversationMessage, 1);
-	PURPLE_DBUS_REGISTER_POINTER(newmsg, PurpleConversationMessage);
-
-	*newmsg = *msg;
-	newmsg->who   = g_strdup(msg->who);
-	newmsg->what  = g_strdup(msg->what);
-	newmsg->alias = g_strdup(msg->alias);
-
-	return newmsg;
-}
-
-GType
-purple_conversation_message_get_type(void)
-{
-	static GType type = 0;
-
-	if (type == 0) {
-		type = g_boxed_type_register_static("PurpleConversationMessage",
-				(GBoxedCopyFunc)copy_conv_message,
-				(GBoxedFreeFunc)free_conv_message);
-	}
-
-	return type;
-}
-
 void purple_conversation_set_ui_data(PurpleConversation *conv, gpointer ui_data)
 {
 	g_return_if_fail(PURPLE_IS_CONVERSATION(conv));
diff --git a/libpurple/conversation.h b/libpurple/conversation.h
--- a/libpurple/conversation.h
+++ b/libpurple/conversation.h
@@ -48,8 +48,6 @@ typedef struct _PurpleConversationClass 
 
 typedef struct _PurpleConversationUiOps      PurpleConversationUiOps;
 
-typedef struct _PurpleConversationMessage    PurpleConversationMessage;
-
 /**
  * PurpleConversationUpdateType:
  * @PURPLE_CONVERSATION_UPDATE_ADD:      The buddy associated with the
@@ -556,9 +554,9 @@ void purple_conversation_update(PurpleCo
  *
  * Retrieve the message history of a conversation.
  *
- * Returns:  A GList of PurpleConversationMessage's. The must not modify the
- *           list or the data within. The list contains the newest message at
- *           the beginning, and the oldest message at the end.
+ * Returns: (transfer none): A GList of PurpleMessage's. You must not modify the
+ *          list or the data within. The list contains the newest message at
+ *          the beginning, and the oldest message at the end.
  */
 GList *purple_conversation_get_message_history(PurpleConversation *conv);
 
@@ -714,77 +712,6 @@ purple_conversation_get_remote_smileys(P
  */
 gboolean purple_conversation_present_error(const char *who, PurpleAccount *account, const char *what);
 
-/**************************************************************************/
-/* Conversation Message API                                               */
-/**************************************************************************/
-
-/**
- * purple_conversation_message_get_type:
- *
- * Returns: The #GType for the #PurpleConversationMessage boxed structure.
- */
-GType purple_conversation_message_get_type(void);
-
-/**
- * purple_conversation_message_get_sender:
- * @msg:   A PurpleConversationMessage
- *
- * Get the sender from a PurpleConversationMessage
- *
- * Returns:   The name of the sender of the message
- */
-const char *purple_conversation_message_get_sender(const PurpleConversationMessage *msg);
-
-/**
- * purple_conversation_message_get_message:
- * @msg:   A PurpleConversationMessage
- *
- * Get the message from a PurpleConversationMessage
- *
- * Returns:   The name of the sender of the message
- */
-const char *purple_conversation_message_get_message(const PurpleConversationMessage *msg);
-
-/**
- * purple_conversation_message_get_flags:
- * @msg:   A PurpleConversationMessage
- *
- * Get the message-flags of a PurpleConversationMessage
- *
- * Returns:   The message flags
- */
-PurpleMessageFlags purple_conversation_message_get_flags(const PurpleConversationMessage *msg);
-
-/**
- * purple_conversation_message_get_timestamp:
- * @msg:   A PurpleConversationMessage
- *
- * Get the timestamp of a PurpleConversationMessage
- *
- * Returns:   The timestamp of the message
- */
-time_t purple_conversation_message_get_timestamp(const PurpleConversationMessage *msg);
-
-/**
- * purple_conversation_message_get_alias:
- * @msg:   A PurpleConversationMessage
- *
- * Get the alias from a PurpleConversationMessage
- *
- * Returns:   The alias of the sender of the message
- */
-const char *purple_conversation_message_get_alias(const PurpleConversationMessage *msg);
-
-/**
- * purple_conversation_message_get_conversation:
- * @msg:   A PurpleConversationMessage
- *
- * Get the conversation associated with the PurpleConversationMessage
- *
- * Returns:   The conversation
- */
-PurpleConversation *purple_conversation_message_get_conversation(const PurpleConversationMessage *msg);
-
 G_END_DECLS
 
 #endif /* _PURPLE_CONVERSATION_H_ */
diff --git a/libpurple/message.c b/libpurple/message.c
--- a/libpurple/message.c
+++ b/libpurple/message.c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.