pidgin/gtklog.c

changeset 22237
8865b5d78095
parent 22214
e8a9916cb99e
child 22384
0a2c39b4a6b1
equal deleted inserted replaced
22236:d6762c285789 22237:8865b5d78095
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);

mercurial