Mercurial > pidgin.yaz
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 <option>: Send various debug information to the current conversation."), NULL); | 7278 debug_command_cb, _("debug <option>: 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 <command>: Help on a specific command."), NULL); | 7287 help_command_cb, _("help <command>: Help on a specific command."), NULL); |
7272 | 7288 |
7273 /********************************************************************** | 7289 /********************************************************************** |