diff options
author | Iain Holmes <iain@src.gnome.org> | 2000-10-11 07:58:49 +0800 |
---|---|---|
committer | Iain Holmes <iain@src.gnome.org> | 2000-10-11 07:58:49 +0800 |
commit | fcfe968ab56dfa2493265a83a1227c2849328a63 (patch) | |
tree | b164ec5e9bdb494b8ce99bd5463184b079f6cfec /composer | |
parent | 169085b6806eac8a49ab32ee6b7aba6c530a39ea (diff) | |
download | gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar.gz gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar.bz2 gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar.lz gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar.xz gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.tar.zst gsoc2013-evolution-fcfe968ab56dfa2493265a83a1227c2849328a63.zip |
Handle missing icons better.
svn path=/trunk/; revision=5827
Diffstat (limited to 'composer')
-rw-r--r-- | composer/ChangeLog | 7 | ||||
-rw-r--r-- | composer/e-icon-list.c | 8 | ||||
-rw-r--r-- | composer/e-msg-composer-attachment-bar.c | 17 |
3 files changed, 29 insertions, 3 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog index 6791f3d7b0..4896e00c80 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,10 @@ +2000-10-10 Iain Holmes <iain@helixcode.com> + + * e-icon-list.c: Allow NULL pixbufs, and load the "broken" image + + * e-msg-composer-attachment-bar.c (update): If the image isn't + found load the default text/plain icon. + 2000-10-02 Jeffrey Stedfast <fejj@helixcode.com> * e-msg-composer.c (build_message): If the body of the message has diff --git a/composer/e-icon-list.c b/composer/e-icon-list.c index 18790784d1..bdff6c5abe 100644 --- a/composer/e-icon-list.c +++ b/composer/e-icon-list.c @@ -982,6 +982,11 @@ icon_new_from_pixbuf (EIconList *eil, GdkPixbuf *im, else icon->icon_filename = NULL; + if (im == NULL) + im = gdk_pixbuf_new_from_xpm_data ((const char**) bad_icon_xpm); + else + gdk_pixbuf_ref (im); + icon->image = GNOME_CANVAS_PIXBUF (gnome_canvas_item_new ( group, gnome_canvas_pixbuf_get_type (), @@ -991,6 +996,7 @@ icon_new_from_pixbuf (EIconList *eil, GdkPixbuf *im, "height", (double) gdk_pixbuf_get_height (im), "pixbuf", im, NULL)); + gdk_pixbuf_unref (im); icon->text = GNOME_ICON_TEXT_ITEM (gnome_canvas_item_new ( group, @@ -1139,7 +1145,6 @@ e_icon_list_insert_pixbuf (EIconList *eil, int pos, GdkPixbuf *im, g_return_if_fail (eil != NULL); g_return_if_fail (IS_EIL (eil)); - g_return_if_fail (im != NULL); icon = icon_new_from_pixbuf (eil, im, icon_filename, text); icon_list_insert (eil, pos, icon); @@ -1187,7 +1192,6 @@ e_icon_list_append_pixbuf (EIconList *eil, GdkPixbuf *im, g_return_val_if_fail (eil != NULL, -1); g_return_val_if_fail (IS_EIL (eil), -1); - g_return_val_if_fail (im != NULL, -1); icon = icon_new_from_pixbuf (eil, im, icon_filename, text); return icon_list_append (eil, icon); diff --git a/composer/e-msg-composer-attachment-bar.c b/composer/e-msg-composer-attachment-bar.c index 3743c310af..0a7428b2ea 100644 --- a/composer/e-msg-composer-attachment-bar.c +++ b/composer/e-msg-composer-attachment-bar.c @@ -305,7 +305,22 @@ update (EMsgComposerAttachmentBar *bar) if (image) { e_icon_list_append_pixbuf (icon_list, attachment->pixbuf_cache, icon_name, label); } else { - e_icon_list_append (icon_list, icon_name, label); + if (icon_name) + pixbuf = gdk_pixbuf_new_from_file (icon_name); + else + pixbuf = NULL; + + /* Get the default */ + if (pixbuf == NULL) { + icon_name = gnome_vfs_mime_get_value ("text/plain", + "icon-filename"); + if (icon_name != NULL) + pixbuf = gdk_pixbuf_new_from_file (icon_name); + } + e_icon_list_append_pixbuf (icon_list, pixbuf, + icon_name, label); + if (pixbuf) + gdk_pixbuf_unref (pixbuf); } g_free (label); |