pidgin/pidgin

Imgupload: hook conversations too

2014-05-19, Tomasz Wasilczyk
cb8995eb4a73
Parents d94f3563172b
Children c568fcefdb82
Imgupload: hook conversations too
--- a/pidgin/plugins/imgupload.c Mon May 19 10:43:56 2014 +0200
+++ b/pidgin/plugins/imgupload.c Mon May 19 11:04:59 2014 +0200
@@ -48,6 +48,38 @@
******************************************************************************/
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_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 @@
{
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;