diff --git a/src/profile_window.py b/src/profile_window.py index 1e1bda1dc..4f98e20a8 100644 --- a/src/profile_window.py +++ b/src/profile_window.py @@ -132,7 +132,7 @@ class ProfileWindow: try: pixbuf = gtk.gdk.pixbuf_new_from_file(path_to_file) # get the image at 'notification size' - # and use that user did not specify in ACE crazy size + # and hope that user did not specify in ACE crazy size scaled_pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'tooltip') except gobject.GError, msg: # unknown format @@ -149,13 +149,17 @@ class ProfileWindow: 'avatar_scaled.png') scaled_pixbuf.save(path_to_file, 'png') must_delete = True - self.dialog.destroy() - + fd = open(path_to_file, 'rb') data = fd.read() pixbuf = gtkgui_helpers.get_pixbuf_from_data(data) - # rescale it - pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'vcard') + try: + # rescale it + pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'vcard') + except AttributeError: # unknown format + dialogs.ErrorDialog(_('Could not load image'), msg) + return + self.dialog.destroy() button = self.xml.get_widget('PHOTO_button') image = button.get_image() image.set_from_pixbuf(pixbuf) diff --git a/src/vcard.py b/src/vcard.py index d98e58eb8..51113854f 100644 --- a/src/vcard.py +++ b/src/vcard.py @@ -139,16 +139,17 @@ class VcardWindow: if invalid_file: dialogs.ErrorDialog(_('Could not load image'), msg) return - pixbuf = gtk.gdk.pixbuf_new_from_file(path_to_file) - if filesize > 16384: # 16 kb - try: + try: + pixbuf = gtk.gdk.pixbuf_new_from_file(path_to_file) + if filesize > 16384: # 16 kb # get the image at 'notification size' - # and use that user did not specify in ACE crazy size + # and hope that user did not specify in ACE crazy size pixbuf = gtkgui_helpers.get_scaled_pixbuf(pixbuf, 'tooltip') - except gobject.GError, msg: # unknown format - # msg should be string, not object instance - msg = str(msg) - invalid_file = True + except gobject.GError, msg: # unknown format + # msg should be string, not object instance + msg = str(msg) + dialogs.ErrorDialog(_('Could not load image'), msg) + return puny_jid = helpers.sanitize_filename(self.contact.jid) path_to_file = os.path.join(gajim.AVATAR_PATH, puny_jid) + '_local.png' pixbuf.save(path_to_file, 'png')