Mercurial > pidgin.yaz
comparison pidgin/gtkaccount.c @ 23128:ce984959bda0
Add a utility function to create a pixbuf from a stored image.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 28 Apr 2008 06:24:01 +0000 |
parents | 42724bd41274 |
children | ac567757d236 |
comparison
equal
deleted
inserted
replaced
23127:3da84b370eda | 23128:ce984959bda0 |
---|---|
174 else | 174 else |
175 g_free(data); | 175 g_free(data); |
176 } | 176 } |
177 | 177 |
178 if (dialog->icon_img != NULL) { | 178 if (dialog->icon_img != NULL) { |
179 GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); | 179 pixbuf = pidgin_pixbuf_from_imgstore(dialog->icon_img); |
180 gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(dialog->icon_img), | |
181 purple_imgstore_get_size(dialog->icon_img), NULL); | |
182 gdk_pixbuf_loader_close(loader, NULL); | |
183 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); | |
184 if (pixbuf) | |
185 g_object_ref(pixbuf); | |
186 g_object_unref(loader); | |
187 } | 180 } |
188 | 181 |
189 if (pixbuf && dialog->prpl_info && | 182 if (pixbuf && dialog->prpl_info && |
190 (dialog->prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY)) | 183 (dialog->prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY)) |
191 { | 184 { |
1973 img = purple_buddy_icons_find_account_icon(account); | 1966 img = purple_buddy_icons_find_account_icon(account); |
1974 } | 1967 } |
1975 } | 1968 } |
1976 | 1969 |
1977 if (img != NULL) { | 1970 if (img != NULL) { |
1978 GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); | |
1979 GdkPixbuf *buddyicon_pixbuf; | 1971 GdkPixbuf *buddyicon_pixbuf; |
1980 | 1972 buddyicon_pixbuf = pidgin_pixbuf_from_imgstore(img); |
1981 gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(img), | |
1982 purple_imgstore_get_size(img), NULL); | |
1983 gdk_pixbuf_loader_close(loader, NULL); | |
1984 buddyicon_pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); | |
1985 | |
1986 purple_imgstore_unref(img); | 1973 purple_imgstore_unref(img); |
1987 | 1974 |
1988 if (buddyicon_pixbuf != NULL) { | 1975 if (buddyicon_pixbuf != NULL) { |
1989 buddyicon = gdk_pixbuf_scale_simple(buddyicon_pixbuf, 22, 22, GDK_INTERP_HYPER); | 1976 buddyicon = gdk_pixbuf_scale_simple(buddyicon_pixbuf, 22, 22, GDK_INTERP_HYPER); |
1977 g_object_unref(G_OBJECT(buddyicon_pixbuf)); | |
1990 } | 1978 } |
1991 | |
1992 g_object_unref(loader); | |
1993 } | 1979 } |
1994 | 1980 |
1995 gtk_list_store_set(store, iter, | 1981 gtk_list_store_set(store, iter, |
1996 COLUMN_ICON, pixbuf, | 1982 COLUMN_ICON, pixbuf, |
1997 COLUMN_BUDDYICON, buddyicon, | 1983 COLUMN_BUDDYICON, buddyicon, |