Mercurial > pidgin
comparison src/buddy.c @ 4757:c4ebe1a8484b
[gaim-migrate @ 5074]
this fixes a bunch of little things, as well as a few big things, plugs a
few leaks, and makes the new buddy icon cache stuff much cooler. enjoy!
committer: Tailor Script <tailor@pidgin.im>
| author | Nathan Walp <nwalp@pidgin.im> |
|---|---|
| date | Fri, 14 Mar 2003 01:14:24 +0000 |
| parents | 54fbd9769677 |
| children | 2202f056a1c9 |
comparison
equal
deleted
inserted
replaced
| 4756:85637881b342 | 4757:c4ebe1a8484b |
|---|---|
| 733 GdkPixbuf *buf, *ret; | 733 GdkPixbuf *buf, *ret; |
| 734 | 734 |
| 735 if (!(blist_options & OPT_BLIST_SHOW_ICONS)) | 735 if (!(blist_options & OPT_BLIST_SHOW_ICONS)) |
| 736 return NULL; | 736 return NULL; |
| 737 | 737 |
| 738 file = g_build_filename(gaim_user_dir(), "icons", normalize(b->name), NULL); | 738 if ((file = gaim_buddy_get_setting(b, "buddy_icon")) == NULL) |
| 739 return NULL; | |
| 740 | |
| 739 buf = gdk_pixbuf_new_from_file(file, NULL); | 741 buf = gdk_pixbuf_new_from_file(file, NULL); |
| 740 g_free(file); | 742 g_free(file); |
| 741 | 743 |
| 742 | 744 |
| 743 if (buf) { | 745 if (buf) { |
| 781 if (prpl->status_text) { | 783 if (prpl->status_text) { |
| 782 char *tmp = prpl->status_text(b); | 784 char *tmp = prpl->status_text(b); |
| 783 | 785 |
| 784 if(tmp) { | 786 if(tmp) { |
| 785 if(strlen(tmp) > 20) | 787 if(strlen(tmp) > 20) |
| 786 statustext = g_strdup_printf("%.16s...", tmp); | 788 statustext = g_strdup_printf("%.20s... ", tmp); |
| 787 else | 789 else |
| 788 statustext = g_strdup(tmp); | 790 statustext = g_strdup_printf("%s ", tmp); |
| 789 g_free(tmp); | 791 g_free(tmp); |
| 790 } | 792 } |
| 791 } | 793 } |
| 792 | 794 |
| 793 if (b->idle) { | 795 if (b->idle) { |
| 794 if (ihrs) | 796 if (ihrs) |
| 795 idletime = g_strdup_printf(_("Idle (%dh%02dm)"), ihrs, imin); | 797 idletime = g_strdup_printf(_("Idle (%dh%02dm) "), ihrs, imin); |
| 796 else | 798 else |
| 797 idletime = g_strdup_printf(_("Idle (%dm)"), imin); | 799 idletime = g_strdup_printf(_("Idle (%dm) "), imin); |
| 798 } | 800 } |
| 799 | 801 |
| 800 if (b->evil > 0) | 802 if (b->evil > 0) |
| 801 warning = g_strdup_printf(_("Warned (%d%%)"), b->evil); | 803 warning = g_strdup_printf(_("Warned (%d%%) "), b->evil); |
| 802 | 804 |
| 803 if (b->idle && blist_options & OPT_BLIST_GREY_IDLERS) | 805 if (b->idle && blist_options & OPT_BLIST_GREY_IDLERS) |
| 804 text = g_strdup_printf("<span color='dim grey'>%s</span>\n<span color='dim grey' size='smaller'>%s %s %s</span>", | 806 text = g_strdup_printf("<span color='dim grey'>%s</span>\n<span color='dim grey' size='smaller'>%s%s%s</span>", |
| 805 esc, | 807 esc, |
| 806 statustext != NULL ? statustext : "", | 808 statustext != NULL ? statustext : "", |
| 807 idletime != NULL ? idletime : "", | 809 idletime != NULL ? idletime : "", |
| 808 warning != NULL ? warning : ""); | 810 warning != NULL ? warning : ""); |
| 809 else | 811 else |
| 810 text = g_strdup_printf("%s\n<span color='dim grey' size='smaller'>%s %s %s</span>", esc, | 812 text = g_strdup_printf("%s\n<span color='dim grey' size='smaller'>%s%s%s</span>", esc, |
| 811 statustext != NULL ? statustext : "", | 813 statustext != NULL ? statustext : "", |
| 812 idletime != NULL ? idletime : "", | 814 idletime != NULL ? idletime : "", |
| 813 warning != NULL ? warning : ""); | 815 warning != NULL ? warning : ""); |
| 814 if (idletime) | 816 if (idletime) |
| 815 g_free(idletime); | 817 g_free(idletime); |
| 1094 GaimBlistNode *oldersibling; | 1096 GaimBlistNode *oldersibling; |
| 1095 GtkTreeIter oldersiblingiter; | 1097 GtkTreeIter oldersiblingiter; |
| 1096 | 1098 |
| 1097 if(node->parent && !get_iter_from_node(node->parent, &groupiter)) { | 1099 if(node->parent && !get_iter_from_node(node->parent, &groupiter)) { |
| 1098 /* This buddy's group has not yet been added. We do that here */ | 1100 /* This buddy's group has not yet been added. We do that here */ |
| 1101 GdkPixbuf *groupicon = gtk_widget_render_icon(gtkblist->treeview, | |
| 1102 GTK_STOCK_OPEN, GTK_ICON_SIZE_SMALL_TOOLBAR, NULL); | |
| 1099 char *mark = g_strdup_printf("<span weight='bold'>%s</span>", ((struct group*)node->parent)->name); | 1103 char *mark = g_strdup_printf("<span weight='bold'>%s</span>", ((struct group*)node->parent)->name); |
| 1100 oldersibling = node->parent->prev; | 1104 oldersibling = node->parent->prev; |
| 1101 | 1105 |
| 1102 /* We traverse backwards through the buddy list to find the node in the tree to insert it after */ | 1106 /* We traverse backwards through the buddy list to find the node in the tree to insert it after */ |
| 1103 while (oldersibling && !get_iter_from_node(oldersibling, &oldersiblingiter)) | 1107 while (oldersibling && !get_iter_from_node(oldersibling, &oldersiblingiter)) |
| 1104 oldersibling = oldersibling->prev; | 1108 oldersibling = oldersibling->prev; |
| 1105 | 1109 |
| 1106 /* This is where we create the node and add it. */ | 1110 /* This is where we create the node and add it. */ |
| 1107 gtk_tree_store_insert_after(gtkblist->treemodel, &groupiter, NULL, oldersibling ? &oldersiblingiter : NULL); | 1111 gtk_tree_store_insert_after(gtkblist->treemodel, &groupiter, NULL, oldersibling ? &oldersiblingiter : NULL); |
| 1108 gtk_tree_store_set(gtkblist->treemodel, &groupiter, | 1112 gtk_tree_store_set(gtkblist->treemodel, &groupiter, |
| 1109 STATUS_ICON_COLUMN, gtk_widget_render_icon | 1113 STATUS_ICON_COLUMN, groupicon, |
| 1110 (gtkblist->treeview,GTK_STOCK_OPEN,GTK_ICON_SIZE_SMALL_TOOLBAR,NULL), | |
| 1111 NAME_COLUMN, mark, | 1114 NAME_COLUMN, mark, |
| 1112 NODE_COLUMN, node->parent, | 1115 NODE_COLUMN, node->parent, |
| 1113 -1); | 1116 -1); |
| 1114 | 1117 |
| 1115 g_free(mark); | 1118 g_free(mark); |
| 1119 g_object_unref(G_OBJECT(groupicon)); | |
| 1116 | 1120 |
| 1117 expand = TRUE; | 1121 expand = TRUE; |
| 1118 } | 1122 } |
| 1119 | 1123 |
| 1120 oldersibling = node->prev; | 1124 oldersibling = node->prev; |
