/dev/twasilczyk/imgupload: cb8995eb4a73: Imgupload: hook convers...

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: cb8995eb4a73fc58b2203a725eef13d999e604af
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-05-19 11:04 +0200
Branch:	 default
URL: https://hg.pidgin.im/dev/twasilczyk/imgupload/rev/cb8995eb4a73

Description:

Imgupload: hook conversations too

diffstat:

 pidgin/plugins/imgupload.c |  44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diffs (68 lines):

diff --git a/pidgin/plugins/imgupload.c b/pidgin/plugins/imgupload.c
--- a/pidgin/plugins/imgupload.c
+++ b/pidgin/plugins/imgupload.c
@@ -48,6 +48,38 @@ imgup_conn_is_hooked(PurpleConnection *g
  ******************************************************************************/
 
 static void
+imgup_conv_init(PurpleConversation *conv)
+{
+	PurpleConnection *gc;
+
+	gc = purple_conversation_get_connection(conv);
+	if (!gc)
+		return;
+	if (!imgup_conn_is_hooked(gc))
+		return;
+
+	purple_conversation_set_features(conv,
+		purple_conversation_get_features(conv) &
+		~PURPLE_CONNECTION_FLAG_NO_IMAGES);
+}
+
+static void
+imgup_conv_uninit(PurpleConversation *conv)
+{
+	PurpleConnection *gc;
+
+	gc = purple_conversation_get_connection(conv);
+	if (!gc)
+		return;
+	if (!imgup_conn_is_hooked(gc))
+		return;
+
+	purple_conversation_set_features(conv,
+		purple_conversation_get_features(conv) |
+		PURPLE_CONNECTION_FLAG_NO_IMAGES);
+}
+
+static void
 imgup_conn_init(PurpleConnection *gc)
 {
 	PurpleConnectionFlags flags;
@@ -86,6 +118,12 @@ imgup_plugin_load(PurplePlugin *plugin)
 		imgup_conn_init(gc);
 	}
 
+	it = purple_conversations_get_all();
+	for (; it; it = g_list_next(it)) {
+		PurpleConversation *conv = it->data;
+		imgup_conv_init(conv);
+	}
+
 	return TRUE;
 }
 
@@ -94,6 +132,12 @@ imgup_plugin_unload(PurplePlugin *plugin
 {
 	GList *it;
 
+	it = purple_conversations_get_all();
+	for (; it; it = g_list_next(it)) {
+		PurpleConversation *conv = it->data;
+		imgup_conv_uninit(conv);
+	}
+
 	it = purple_connections_get_all();
 	for (; it; it = g_list_next(it)) {
 		PurpleConnection *gc = it->data;
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.