| 137 |
137 |
| 138 if (lv->search != NULL && !strcmp(lv->search, search_term)) |
138 if (lv->search != NULL && !strcmp(lv->search, search_term)) |
| 139 { |
139 { |
| 140 /* Searching for the same term acts as "Find Next" */ |
140 /* Searching for the same term acts as "Find Next" */ |
| 141 gtk_imhtml_search_find(GTK_IMHTML(lv->imhtml), lv->search); |
141 gtk_imhtml_search_find(GTK_IMHTML(lv->imhtml), lv->search); |
| 142 return; |
142 return; |
| 143 } |
143 } |
| 144 |
144 |
| 145 pidgin_set_cursor(lv->window, GDK_WATCH); |
145 pidgin_set_cursor(lv->window, GDK_WATCH); |
| 146 |
146 |
| 147 g_free(lv->search); |
147 g_free(lv->search); |
| 319 * either way. */ |
319 * either way. */ |
| 320 data2 = g_new(gpointer, 3); |
320 data2 = g_new(gpointer, 3); |
| 321 data2[0] = lv->treestore; |
321 data2[0] = lv->treestore; |
| 322 data2[1] = data[3]; /* iter */ |
322 data2[1] = data[3]; /* iter */ |
| 323 data2[2] = log; |
323 data2[2] = log; |
| 324 purple_request_action(lv, NULL, "Delete Log?", tmp, 0, |
324 purple_request_action(lv, NULL, "Delete Log?", tmp, 0, |
| 325 NULL, NULL, NULL, |
325 NULL, NULL, NULL, |
| 326 data2, 2, |
326 data2, 2, |
| 327 _("Delete"), delete_log_cb, |
327 _("Delete"), delete_log_cb, |
| 328 _("Cancel"), delete_log_cleanup_cb); |
328 _("Cancel"), delete_log_cleanup_cb); |
| 329 g_free(tmp); |
329 g_free(tmp); |
| 554 log_preferences = _("Instant messages will only be logged if the \"Log all instant messages\" preference is enabled."); |
554 log_preferences = _("Instant messages will only be logged if the \"Log all instant messages\" preference is enabled."); |
| 555 } else if (ht->type == PURPLE_LOG_CHAT) { |
555 } else if (ht->type == PURPLE_LOG_CHAT) { |
| 556 if (!purple_prefs_get_bool("/purple/logging/log_chats")) |
556 if (!purple_prefs_get_bool("/purple/logging/log_chats")) |
| 557 log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled."); |
557 log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled."); |
| 558 } |
558 } |
| |
559 g_free(ht->screenname); |
| |
560 g_free(ht); |
| 559 } |
561 } |
| |
562 |
| |
563 if(icon != NULL) |
| |
564 gtk_widget_destroy(icon); |
| 560 |
565 |
| 561 purple_notify_info(NULL, title, _("No logs were found"), log_preferences); |
566 purple_notify_info(NULL, title, _("No logs were found"), log_preferences); |
| 562 return NULL; |
567 return NULL; |
| 563 } |
568 } |
| 564 |
569 |
| 729 g_object_unref(prpl_icon); |
734 g_object_unref(prpl_icon); |
| 730 g_free(title); |
735 g_free(title); |
| 731 } |
736 } |
| 732 |
737 |
| 733 void pidgin_log_show_contact(PurpleContact *contact) { |
738 void pidgin_log_show_contact(PurpleContact *contact) { |
| 734 struct log_viewer_hash_t *ht = g_new0(struct log_viewer_hash_t, 1); |
739 struct log_viewer_hash_t *ht; |
| 735 PurpleBlistNode *child; |
740 PurpleBlistNode *child; |
| 736 PidginLogViewer *lv = NULL; |
741 PidginLogViewer *lv = NULL; |
| 737 GList *logs = NULL; |
742 GList *logs = NULL; |
| 738 GdkPixbuf *pixbuf; |
743 GdkPixbuf *pixbuf; |
| 739 GtkWidget *image = gtk_image_new(); |
744 GtkWidget *image; |
| 740 const char *name = NULL; |
745 const char *name = NULL; |
| 741 char *title; |
746 char *title; |
| 742 int total_log_size = 0; |
747 int total_log_size = 0; |
| 743 |
748 |
| 744 g_return_if_fail(contact != NULL); |
749 g_return_if_fail(contact != NULL); |
| 745 |
750 |
| |
751 ht = g_new0(struct log_viewer_hash_t, 1); |
| 746 ht->type = PURPLE_LOG_IM; |
752 ht->type = PURPLE_LOG_IM; |
| 747 ht->contact = contact; |
753 ht->contact = contact; |
| 748 |
754 |
| 749 if (log_viewers == NULL) { |
755 if (log_viewers == NULL) { |
| 750 log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal); |
756 log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal); |
| 762 ((PurpleBuddy *)child)->account), logs); |
768 ((PurpleBuddy *)child)->account), logs); |
| 763 total_log_size += purple_log_get_total_size(PURPLE_LOG_IM, ((PurpleBuddy *)child)->name, ((PurpleBuddy *)child)->account); |
769 total_log_size += purple_log_get_total_size(PURPLE_LOG_IM, ((PurpleBuddy *)child)->name, ((PurpleBuddy *)child)->account); |
| 764 } |
770 } |
| 765 logs = g_list_sort(logs, purple_log_compare); |
771 logs = g_list_sort(logs, purple_log_compare); |
| 766 |
772 |
| |
773 image = gtk_image_new(); |
| 767 pixbuf = gtk_widget_render_icon(image, PIDGIN_STOCK_STATUS_PERSON, |
774 pixbuf = gtk_widget_render_icon(image, PIDGIN_STOCK_STATUS_PERSON, |
| 768 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL), "GtkWindow"); |
775 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL), "GtkWindow"); |
| 769 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); |
776 if (pixbuf) { |
| |
777 gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); |
| |
778 g_object_unref(pixbuf); |
| |
779 } else { |
| |
780 gtk_widget_destroy(image); |
| |
781 image = NULL; |
| |
782 } |
| 770 |
783 |
| 771 if (contact->alias != NULL) |
784 if (contact->alias != NULL) |
| 772 name = contact->alias; |
785 name = contact->alias; |
| 773 else if (contact->priority != NULL) |
786 else if (contact->priority != NULL) |
| 774 name = purple_buddy_get_contact_alias(contact->priority); |
787 name = purple_buddy_get_contact_alias(contact->priority); |