comparison pidgin/gtkconv.c @ 25520:3b0d12179262

propagate from branch 'im.pidgin.pidgin' (head 6526dd22033b4ab26156c07b7a84e53e092b4a21) to branch 'im.pidgin.pidgin.yaz' (head 1e0961bba6cada5150be76488761f22afe65547c)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 27 Jun 2007 05:22:14 +0000
parents db41905e7cc4 0d948cac4afa
children 636679fb98ad
comparison
equal deleted inserted replaced
25519:abe50b986b15 25520:3b0d12179262
349 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); 349 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL));
350 return PURPLE_CMD_STATUS_OK; 350 return PURPLE_CMD_STATUS_OK;
351 } 351 }
352 } 352 }
353 353
354 static void clear_conversation_scrollback(PurpleConversation *conv)
355 {
356 PidginConversation *gtkconv = NULL;
357
358 gtkconv = PIDGIN_CONVERSATION(conv);
359
360 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml));
361 }
362
354 static PurpleCmdRet 363 static PurpleCmdRet
355 clear_command_cb(PurpleConversation *conv, 364 clear_command_cb(PurpleConversation *conv,
356 const char *cmd, char **args, char **error, void *data) 365 const char *cmd, char **args, char **error, void *data)
357 { 366 {
358 PidginConversation *gtkconv = NULL; 367 clear_conversation_scrollback(conv);
359 368 return PURPLE_CMD_STATUS_OK;
360 gtkconv = PIDGIN_CONVERSATION(conv); 369 }
361 370
362 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); 371 static PurpleCmdRet
372 clearall_command_cb(PurpleConversation *conv,
373 const char *cmd, char **args, char **error, void *data)
374 {
375 purple_conversation_foreach(clear_conversation_scrollback);
363 return PURPLE_CMD_STATUS_OK; 376 return PURPLE_CMD_STATUS_OK;
364 } 377 }
365 378
366 static PurpleCmdRet 379 static PurpleCmdRet
367 help_command_cb(PurpleConversation *conv, 380 help_command_cb(PurpleConversation *conv,
530 PurpleMessageFlags flags = 0; 543 PurpleMessageFlags flags = 0;
531 char *buf, *clean; 544 char *buf, *clean;
532 545
533 account = purple_conversation_get_account(conv); 546 account = purple_conversation_get_account(conv);
534 547
535 if (!purple_account_is_connected(account))
536 return;
537
538 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) &&
539 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv)))
540 return;
541
542 if (check_for_and_do_command(conv)) { 548 if (check_for_and_do_command(conv)) {
543 if (gtkconv->entry_growing) { 549 if (gtkconv->entry_growing) {
544 reset_default_size(gtkconv); 550 reset_default_size(gtkconv);
545 gtkconv->entry_growing = FALSE; 551 gtkconv->entry_growing = FALSE;
546 } 552 }
547 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); 553 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry));
548 return; 554 return;
549 } 555 }
556
557 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) &&
558 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv)))
559 return;
560
561 if (!purple_account_is_connected(account))
562 return;
550 563
551 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); 564 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry));
552 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); 565 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL);
553 566
554 gtk_widget_grab_focus(gtkconv->entry); 567 gtk_widget_grab_focus(gtkconv->entry);
3899 gtk_tree_model_get(model, &iter, 3912 gtk_tree_model_get(model, &iter,
3900 CHAT_USERS_NAME_COLUMN, &name, 3913 CHAT_USERS_NAME_COLUMN, &name,
3901 CHAT_USERS_ALIAS_COLUMN, &alias, 3914 CHAT_USERS_ALIAS_COLUMN, &alias,
3902 -1); 3915 -1);
3903 3916
3904 if (strcmp(name, alias)) 3917 if (name && alias && strcmp(name, alias))
3905 tab_complete_process_item(&most_matched, entered, &partial, nick_partial, 3918 tab_complete_process_item(&most_matched, entered, &partial, nick_partial,
3906 &matches, FALSE, alias); 3919 &matches, FALSE, alias);
3907 g_free(name); 3920 g_free(name);
3908 g_free(alias); 3921 g_free(alias);
3909 3922
7264 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, 7277 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7265 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL); 7278 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL);
7266 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, 7279 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT,
7267 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, 7280 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7268 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); 7281 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL);
7282 purple_cmd_register("clearall", "", PURPLE_CMD_P_DEFAULT,
7283 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
7284 clearall_command_cb, _("clear: Clears all conversation scrollbacks."), NULL);
7269 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, 7285 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT,
7270 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, 7286 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
7271 help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL); 7287 help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL);
7272 7288
7273 /********************************************************************** 7289 /**********************************************************************