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,