From 7230a79d854caeed3e756f5a52aa8a646130e3d6 Mon Sep 17 00:00:00 2001 From: twanvl Date: Fri, 18 May 2007 22:37:50 +0000 Subject: [PATCH] Fixed thumbnails for choices without images git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@391 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/gui/value/choice.cpp | 4 +++- src/script/image.cpp | 27 +++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/gui/value/choice.cpp b/src/gui/value/choice.cpp index d9d7cdd6..7c6712b5 100644 --- a/src/gui/value/choice.cpp +++ b/src/gui/value/choice.cpp @@ -43,7 +43,9 @@ Image ChoiceThumbnailRequest::generate() { ChoiceValueEditor& cve = *(ChoiceValueEditor*)owner; String name = cannocial_name_form(cve.field().choices->choiceName(id)); ScriptableImage& img = cve.style().choice_images[name]; - return img.generate(GeneratedImage::Options(16,16, stylesheet.get(), &cve.getSet(), ASPECT_BORDER, true), false); + return img.isReady() + ? img.generate(GeneratedImage::Options(16,16, stylesheet.get(), &cve.getSet(), ASPECT_BORDER, true), false) + : wxImage(); } void ChoiceThumbnailRequest::store(const Image& img) { diff --git a/src/script/image.cpp b/src/script/image.cpp index 74ac6ae4..ad492f84 100644 --- a/src/script/image.cpp +++ b/src/script/image.cpp @@ -33,21 +33,20 @@ Image ScriptableImage::generate(const GeneratedImage::Options& options, bool cac // cached, so we are done return cached; } - // generate blank image - Image image(1,1); - image.InitAlpha(); - image.SetAlpha(0,0,0); + // generate + Image image; if (isReady()) { - try { - image = value->generate(options); - } - catch (FileNotFoundError e) { - handle_error (e); - return image; - } - } - else { - return image; + // note: Don't catch exceptions here, we don't want to return an invalid image. + // We could return a blank one, but the thumbnail code does want an invalid + // image in case of errors. + // This allows the caller to catch errors. + image = value->generate(options); + } else { + // error, return blank image + Image i(1,1); + i.InitAlpha(); + i.SetAlpha(0,0,0); + image = i; } // resize? int iw = image.GetWidth(), ih = image.GetHeight();