comparison pidgin/gtkconv.c @ 18306:a3469318cf35

merge of '1021f142edad27e5a1f750f8d439c3bc5bf07b81' and '194d749288549e6af3c41d354c2196295e8eac5f'
author Sean Egan <seanegan@gmail.com>
date Wed, 27 Jun 2007 17:24:32 +0000
parents 2e7a9f33cfd3 ffd706ec0220
children 6fa1bbf6b0a9
comparison
equal deleted inserted replaced
18291:db4b0aa4ed8c 18306:a3469318cf35
345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); 345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL));
346 return PURPLE_CMD_STATUS_OK; 346 return PURPLE_CMD_STATUS_OK;
347 } 347 }
348 } 348 }
349 349
350 static void clear_conversation_scrollback(PurpleConversation *conv)
351 {
352 PidginConversation *gtkconv = NULL;
353
354 gtkconv = PIDGIN_CONVERSATION(conv);
355
356 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml));
357 }
358
350 static PurpleCmdRet 359 static PurpleCmdRet
351 clear_command_cb(PurpleConversation *conv, 360 clear_command_cb(PurpleConversation *conv,
352 const char *cmd, char **args, char **error, void *data) 361 const char *cmd, char **args, char **error, void *data)
353 { 362 {
354 PidginConversation *gtkconv = NULL; 363 clear_conversation_scrollback(conv);
355 364 return PURPLE_CMD_STATUS_OK;
356 gtkconv = PIDGIN_CONVERSATION(conv); 365 }
357 366
358 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); 367 static PurpleCmdRet
368 clearall_command_cb(PurpleConversation *conv,
369 const char *cmd, char **args, char **error, void *data)
370 {
371 purple_conversation_foreach(clear_conversation_scrollback);
359 return PURPLE_CMD_STATUS_OK; 372 return PURPLE_CMD_STATUS_OK;
360 } 373 }
361 374
362 static PurpleCmdRet 375 static PurpleCmdRet
363 help_command_cb(PurpleConversation *conv, 376 help_command_cb(PurpleConversation *conv,
526 PurpleMessageFlags flags = 0; 539 PurpleMessageFlags flags = 0;
527 char *buf, *clean; 540 char *buf, *clean;
528 541
529 account = purple_conversation_get_account(conv); 542 account = purple_conversation_get_account(conv);
530 543
531 if (!purple_account_is_connected(account))
532 return;
533
534 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) &&
535 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv)))
536 return;
537
538 if (check_for_and_do_command(conv)) { 544 if (check_for_and_do_command(conv)) {
539 if (gtkconv->entry_growing) { 545 if (gtkconv->entry_growing) {
540 reset_default_size(gtkconv); 546 reset_default_size(gtkconv);
541 gtkconv->entry_growing = FALSE; 547 gtkconv->entry_growing = FALSE;
542 } 548 }
543 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); 549 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry));
544 return; 550 return;
545 } 551 }
552
553 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) &&
554 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv)))
555 return;
556
557 if (!purple_account_is_connected(account))
558 return;
546 559
547 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); 560 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry));
548 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); 561 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL);
549 562
550 gtk_widget_grab_focus(gtkconv->entry); 563 gtk_widget_grab_focus(gtkconv->entry);
3669 pixbuf = get_chat_buddy_status_icon(chat, name, flags); 3682 pixbuf = get_chat_buddy_status_icon(chat, name, flags);
3670 3683
3671 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name))) 3684 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name)))
3672 is_me = TRUE; 3685 is_me = TRUE;
3673 3686
3674 is_buddy = (purple_find_buddy(conv->account, name) != NULL); 3687 is_buddy = cb->buddy;
3675 3688
3676 tmp = g_utf8_casefold(alias, -1); 3689 tmp = g_utf8_casefold(alias, -1);
3677 alias_key = g_utf8_collate_key(tmp, -1); 3690 alias_key = g_utf8_collate_key(tmp, -1);
3678 g_free(tmp); 3691 g_free(tmp);
3679 3692
5561 if (!purple_conv_chat_find_user(chat, old_name)) 5574 if (!purple_conv_chat_find_user(chat, old_name))
5562 return; 5575 return;
5563 5576
5564 g_return_if_fail(new_alias != NULL); 5577 g_return_if_fail(new_alias != NULL);
5565 5578
5566 cbuddy = purple_conv_chat_cb_new(new_name, new_alias, flags); 5579 cbuddy = purple_conv_chat_cb_find(chat, new_name);
5567 5580
5568 add_chat_buddy_common(conv, cbuddy, old_name); 5581 add_chat_buddy_common(conv, cbuddy, old_name);
5569 } 5582 }
5570 5583
5571 static void 5584 static void
7201 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, 7214 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7202 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL); 7215 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL);
7203 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, 7216 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT,
7204 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, 7217 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7205 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); 7218 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL);
7219 purple_cmd_register("clearall", "", PURPLE_CMD_P_DEFAULT,
7220 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7221 clearall_command_cb, _("clear: Clears all conversation scrollbacks."), NULL);
7206 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, 7222 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT,
7207 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, 7223 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
7208 help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL); 7224 help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL);
7209 7225
7210 /********************************************************************** 7226 /**********************************************************************