Mercurial > pidgin.yaz
comparison finch/gntconv.c @ 31894:a9e077fb65e9
Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
This stems out of an email discussion with Andrew Victor back in July 2010
regarding letting protocol plugins clear the message scrollback area for
UIs. At the time, nobody objected to having the libpurple-clearing function
call the UI clearing function.
This should also be happily backward-compatible.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Thu, 31 Mar 2011 04:41:27 +0000 |
parents | a8cc50c2279f |
children | 62b11ad353eb |
comparison
equal
deleted
inserted
replaced
31893:1551c9a140fd | 31894:a9e077fb65e9 |
---|---|
394 static int handle; | 394 static int handle; |
395 return &handle; | 395 return &handle; |
396 } | 396 } |
397 | 397 |
398 static void | 398 static void |
399 cleared_message_history_cb(PurpleConversation *conv, gpointer data) | |
400 { | |
401 FinchConv *ggc = FINCH_GET_DATA(conv); | |
402 if (ggc) | |
403 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv)); | |
404 } | |
405 | |
406 static void | |
399 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv) | 407 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv) |
400 { | 408 { |
401 FinchConv *ggc = ggconv; | 409 FinchConv *ggc = ggconv; |
402 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv)); | 410 purple_conversation_clear_message_history(ggc->active_conv); |
403 } | 411 } |
404 | 412 |
405 static void | 413 static void |
406 send_file_cb(GntMenuItem *item, gpointer ggconv) | 414 send_file_cb(GntMenuItem *item, gpointer ggconv) |
407 { | 415 { |
1262 /* Xerox */ | 1270 /* Xerox */ |
1263 static PurpleCmdRet | 1271 static PurpleCmdRet |
1264 clear_command_cb(PurpleConversation *conv, | 1272 clear_command_cb(PurpleConversation *conv, |
1265 const char *cmd, char **args, char **error, void *data) | 1273 const char *cmd, char **args, char **error, void *data) |
1266 { | 1274 { |
1267 FinchConv *ggconv = FINCH_GET_DATA(conv); | |
1268 gnt_text_view_clear(GNT_TEXT_VIEW(ggconv->tv)); | |
1269 purple_conversation_clear_message_history(conv); | 1275 purple_conversation_clear_message_history(conv); |
1270 return PURPLE_CMD_RET_OK; | 1276 return PURPLE_CMD_RET_OK; |
1271 } | 1277 } |
1272 | 1278 |
1273 /* Xerox */ | 1279 /* Xerox */ |
1457 PURPLE_CALLBACK(update_buddy_typing), NULL); | 1463 PURPLE_CALLBACK(update_buddy_typing), NULL); |
1458 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(), | 1464 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(), |
1459 PURPLE_CALLBACK(update_buddy_typing), NULL); | 1465 PURPLE_CALLBACK(update_buddy_typing), NULL); |
1460 purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(), | 1466 purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(), |
1461 PURPLE_CALLBACK(chat_left_cb), NULL); | 1467 PURPLE_CALLBACK(chat_left_cb), NULL); |
1468 purple_signal_connect(purple_conversations_get_handle(), "cleared-message-history", finch_conv_get_handle(), | |
1469 PURPLE_CALLBACK(cleared_message_history_cb), NULL); | |
1462 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(), | 1470 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(), |
1463 PURPLE_CALLBACK(buddy_signed_on_off), NULL); | 1471 PURPLE_CALLBACK(buddy_signed_on_off), NULL); |
1464 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(), | 1472 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(), |
1465 PURPLE_CALLBACK(buddy_signed_on_off), NULL); | 1473 PURPLE_CALLBACK(buddy_signed_on_off), NULL); |
1466 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(), | 1474 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(), |