From 78c5d5b8c6837d05b2e959840c4f09e9fe3d3265 Mon Sep 17 00:00:00 2001 From: twanvl Date: Sat, 30 Jun 2007 19:35:38 +0000 Subject: [PATCH] Thumbnails for choice fields with scripted image instead of choice_images git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@456 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/gui/value/choice.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/gui/value/choice.cpp b/src/gui/value/choice.cpp index b4da29ea..0f03abc9 100644 --- a/src/gui/value/choice.cpp +++ b/src/gui/value/choice.cpp @@ -179,9 +179,23 @@ void DropDownChoiceListBase::generateThumbnailImages() { } int image_count = style().thumbnails->GetImageCount(); int end = group->lastId(); + // init choice images + if (style().choice_images.empty() && style().image.isScripted()) { + Context& ctx = cve.viewer.getContext(); + for (int i = 0 ; i < end ; ++i) { + try { + String name = cannocial_name_form(field().choices->choiceName(i)); + ctx.setVariable(_("input"), to_script(name)); + GeneratedImageP img = image_from_script(style().image.getScript().eval(ctx)); + style().choice_images.insert(make_pair(name, ScriptableImage(img))); + } catch (const Error& e) { + handle_error(Error(e.what() + _("\n while generating choice images for drop down list")),true,false); + } + } + } + // request thumbnails style().thumbnails_status.resize(end, THUMB_NOT_MADE); for (int i = 0 ; i < end ; ++i) { - String name = cannocial_name_form(group->choiceName(i)); ThumbnailStatus status = style().thumbnails_status[i]; if (i >= image_count || status != THUMB_OK) { // request this thumbnail