/soc/2013/ankitkv/gobjectification: c0eccc6696da: Merged default...
Ankit Vani <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: c0eccc6696dad15cb50cf7bc3e3d46b292dc3d4e Author: Ankit Vani <[email protected]> Date: 2014-06-15 03:46 +0530 Branch: soc.2013.gobjectification.plugins URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/c0eccc6696da Description: Merged default branch diffstat: doc/reference/libpurple/libpurple-docs.xml | 18 +- finch/gntconv.c | 38 +--- finch/plugins/gnttinyurl.c | 28 +- libpurple/conversation.c | 227 +++++++-------------------- libpurple/conversation.h | 87 +---------- libpurple/conversations.c | 22 +- libpurple/conversationtypes.c | 32 +--- libpurple/example/nullclient.c | 19 +- libpurple/internal.h | 27 ++- libpurple/message.c | 21 +- libpurple/message.h | 163 ++++++++++++++++++- libpurple/plugins/signals-test.c | 14 +- libpurple/protocols/jabber/message.c | 2 +- libpurple/server.c | 7 +- pidgin/gtkblist.c | 16 +- pidgin/gtkconv.c | 157 ++++++++++-------- pidgin/plugins/crazychat/cc_pidgin_plugin.c | 7 +- pidgin/plugins/gtk-signals-test.c | 24 +- pidgin/plugins/notify.c | 5 +- pidgin/plugins/unity.c | 5 +- pidgin/win32/gtkwin32dep.c | 14 +- pidgin/win32/gtkwin32dep.h | 2 +- 22 files changed, 438 insertions(+), 497 deletions(-) diffs (truncated from 1840 to 300 lines): diff --git a/doc/reference/libpurple/libpurple-docs.xml b/doc/reference/libpurple/libpurple-docs.xml --- a/doc/reference/libpurple/libpurple-docs.xml +++ b/doc/reference/libpurple/libpurple-docs.xml @@ -38,7 +38,6 @@ <xi:include href="xml/pounce.xml" /> <xi:include href="xml/circularbuffer.xml" /> <xi:include href="xml/cipher.xml" /> - <xi:include href="xml/cmds.xml" /> <xi:include href="xml/connection.xml" /> <xi:include href="xml/conversation.xml" /> <xi:include href="xml/conversationtypes.xml" /> @@ -54,7 +53,6 @@ <xi:include href="xml/http.xml" /> <xi:include href="xml/idle.xml" /> <xi:include href="xml/keyring.xml" /> - <xi:include href="xml/log.xml" /> <xi:include href="xml/memorypool.xml" /> <xi:include href="xml/desktopitem.xml" /> <xi:include href="xml/mime.xml" /> @@ -98,6 +96,14 @@ <reference label=""> <reference label="a"> + <title>Messaging</title> + + <xi:include href="xml/message.xml" /> + <xi:include href="xml/log.xml" /> + <xi:include href="xml/cmds.xml" /> + </reference> + + <reference label="b"> <title>Ciphers and Hashes</title> <xi:include href="xml/aescipher.xml" /> @@ -112,7 +118,7 @@ <xi:include href="xml/sha256hash.xml" /> </reference> - <reference label="b"> + <reference label="c"> <title>Smiley APIs</title> <xi:include href="xml/smiley.xml" /> @@ -122,7 +128,7 @@ <xi:include href="xml/smiley-parser.xml" /> </reference> - <reference label="c"> + <reference label="d"> <title>Graphics</title> <xi:include href="xml/image.xml" /> @@ -130,7 +136,7 @@ <xi:include href="xml/whiteboard.xml" /> </reference> - <reference label="d"> + <reference label="e"> <title>Media APIs</title> <xi:include href="xml/media.xml" /> @@ -142,7 +148,7 @@ <xi:include href="xml/enum-types.xml" /> </reference> - <reference label="e"> + <reference label="f"> <title>D-Bus Server APIs</title> <xi:include href="xml/dbus-bindings.xml" /> diff --git a/finch/gntconv.c b/finch/gntconv.c --- a/finch/gntconv.c +++ b/finch/gntconv.c @@ -60,8 +60,6 @@ #include "config.h" -static void finch_write_common(PurpleConversation *conv, const char *who, - const char *message, PurpleMessageFlags flags, time_t mtime); static void generate_send_to_menu(FinchConv *ggc); static void generate_e2ee_menu(FinchConv *ggc); @@ -309,8 +307,8 @@ update_buddy_typing(PurpleAccount *accou static void chat_left_cb(PurpleConversation *conv, gpointer null) { - finch_write_common(conv, NULL, _("You have left this chat."), - PURPLE_MESSAGE_SYSTEM, time(NULL)); + purple_conversation_write_system_message(conv, + _("You have left this chat."), 0); } static void @@ -987,13 +985,13 @@ finch_destroy_conversation(PurpleConvers } static void -finch_write_common(PurpleConversation *conv, const char *who, const char *message, - PurpleMessageFlags flags, time_t mtime) +finch_write_conv(PurpleConversation *conv, PurpleMessage *msg) { FinchConv *ggconv = FINCH_CONV(conv); char *strip, *newline; GntTextFormatFlags fl = 0; int pos; + PurpleMessageFlags flags = purple_message_get_flags(msg); g_return_if_fail(ggconv != NULL); @@ -1015,6 +1013,7 @@ finch_write_common(PurpleConversation *c /* Unnecessary to print the timestamp for delayed message */ if (purple_prefs_get_bool("/finch/conversations/timestamps")) { + time_t mtime = purple_message_get_time(msg); if (!mtime) time(&mtime); gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), @@ -1027,15 +1026,16 @@ finch_write_common(PurpleConversation *c gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), _("<AUTO-REPLY> "), GNT_TEXT_FLAG_BOLD); - if (who && *who && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) && + if (purple_message_get_author(msg) && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) && !(flags & PURPLE_MESSAGE_NOTIFY)) { char * name = NULL; GntTextFormatFlags msgflags = GNT_TEXT_FLAG_NORMAL; gboolean me = FALSE; + gchar *msg_text = g_strdup(purple_message_get_contents(msg)); - if (purple_message_meify((char*)message, -1)) { - name = g_strdup_printf("*** %s", who); + if (purple_message_meify(msg_text, -1)) { + name = g_strdup_printf("*** %s", purple_message_get_author(msg)); if (!(flags & PURPLE_MESSAGE_SEND) && (flags & PURPLE_MESSAGE_NICK)) msgflags = gnt_color_pair(color_message_highlight); @@ -1043,7 +1043,7 @@ finch_write_common(PurpleConversation *c msgflags = gnt_color_pair(color_message_action); me = TRUE; } else { - name = g_strdup_printf("%s", who); + name = g_strdup_printf("%s", purple_message_get_author(msg)); if (flags & PURPLE_MESSAGE_SEND) msgflags = gnt_color_pair(color_message_send); else if (flags & PURPLE_MESSAGE_NICK) @@ -1051,6 +1051,7 @@ finch_write_common(PurpleConversation *c else msgflags = gnt_color_pair(color_message_receive); } + purple_message_set_contents(msg, msg_text); /* might be "meified" */ gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), name, msgflags); gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), me ? " " : ": ", GNT_TEXT_FLAG_NORMAL); @@ -1062,7 +1063,7 @@ finch_write_common(PurpleConversation *c fl |= GNT_TEXT_FLAG_BOLD; /* XXX: Remove this workaround when textview can parse messages. */ - newline = purple_strdup_withhtml(message); + newline = purple_strdup_withhtml(purple_message_get_contents(msg)); strip = purple_markup_strip_html(newline); gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), strip, fl); @@ -1090,21 +1091,6 @@ finch_write_common(PurpleConversation *c } } -static void -finch_write_conv(PurpleConversation *conv, const char *who, const char *alias, - const char *message, PurpleMessageFlags flags, time_t mtime) -{ - const char *name; - if (alias && *alias) - name = alias; - else if (who && *who) - name = who; - else - name = NULL; - - finch_write_common(conv, name, message, flags, mtime); -} - static const char * chat_flag_text(PurpleChatUserFlags flags) { diff --git a/finch/plugins/gnttinyurl.c b/finch/plugins/gnttinyurl.c --- a/finch/plugins/gnttinyurl.c +++ b/finch/plugins/gnttinyurl.c @@ -246,26 +246,24 @@ static void free_urls(gpointer data, gpo g_free(data); } -static gboolean writing_msg(PurpleAccount *account, char *sender, char **message, - PurpleConversation *conv, PurpleMessageFlags flags) +static gboolean writing_msg(PurpleConversation *conv, PurpleMessage *msg, gpointer _unused) { GString *t; GList *iter, *urls, *next; int c = 0; - if ((flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_INVISIBLE))) + if (purple_message_get_flags(msg) & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_INVISIBLE)) return FALSE; urls = g_object_get_data(G_OBJECT(conv), "TinyURLs"); if (urls != NULL) /* message was cancelled somewhere? Reset. */ g_list_foreach(urls, free_urls, NULL); g_list_free(urls); - urls = extract_urls(*message); + urls = extract_urls(purple_message_get_contents(msg)); if (!urls) return FALSE; - t = g_string_new(*message); - g_free(*message); + t = g_string_new(g_strdup(purple_message_get_contents(msg))); for (iter = urls; iter; iter = next) { next = iter->next; if (g_utf8_strlen((char *)iter->data, -1) >= purple_prefs_get_int(PREF_LENGTH)) { @@ -289,21 +287,23 @@ static gboolean writing_msg(PurpleAccoun urls = g_list_delete_link(urls, iter); } } - *message = t->str; - g_string_free(t, FALSE); - if (conv == NULL) - conv = PURPLE_CONVERSATION(purple_im_conversation_new(account, sender)); - g_object_set_data(G_OBJECT(conv), "TinyURLs", urls); + purple_message_set_contents(msg, t->str); + g_string_free(t, TRUE); + if (conv != NULL) + g_object_set_data(G_OBJECT(conv), "TinyURLs", urls); return FALSE; } -static void wrote_msg(PurpleAccount *account, char *sender, char *message, - PurpleConversation *conv, PurpleMessageFlags flags) +static void wrote_msg(PurpleConversation *conv, PurpleMessage *pmsg, + gpointer _unused) { GList *urls; + if (purple_message_get_flags(pmsg) & PURPLE_MESSAGE_SEND) + return; + urls = g_object_get_data(G_OBJECT(conv), "TinyURLs"); - if ((flags & PURPLE_MESSAGE_SEND) || urls == NULL) + if (urls == NULL) return; process_urls(conv, urls); 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;