From ff0e68327de2165e03c32d6350b79171845f7a3d Mon Sep 17 00:00:00 2001 From: Micke Nordin Date: Mon, 29 Aug 2022 13:49:56 +0200 Subject: [PATCH] A bit better error handling --- coordinates_extension.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/coordinates_extension.py b/coordinates_extension.py index 2cef4f5..6366203 100755 --- a/coordinates_extension.py +++ b/coordinates_extension.py @@ -207,6 +207,7 @@ class CoordinatesExtension(inkex.EffectExtension): def effect(self) -> None: images = self.svg.selection.get(IImage) + pilimages = list() for elem in images: xlink = elem.get("xlink:href") if xlink is not None and xlink[:5] == "data:": @@ -221,15 +222,30 @@ class CoordinatesExtension(inkex.EffectExtension): else: imgdata = base64.b64decode(data) pilimage = Image.open(io.BytesIO(imgdata)) + pilimages.append(pilimage) - if not pilimage: + if len(pilimages) == 0: self.window.message_box("Could not find image in selection") self.window.show_all() self.window.destroy() else: - self.window.add_image(pilimage, mimetype) - self.window.show_all() - Gtk.main() + breakout = False + for pilimage in pilimages: + try: + self.window.add_image(pilimage, mimetype) + breakout = True + except gi.repository.GLib.GError as e: + self.window.message_box( + "Could not load image type: {}, error was: {}".format( + mimetype, e)) + breakout = False + if breakout: + break + if breakout: + self.window.show_all() + Gtk.main() + else: + self.window.destroy() if __name__ == '__main__':