From d2b4640bda136b6f0e7cb6eb7ed55574ef0e5a90 Mon Sep 17 00:00:00 2001 From: twanvl Date: Sun, 13 May 2007 15:43:28 +0000 Subject: [PATCH] script for match string of keywords git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@353 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/game.cpp | 1 + src/data/game.hpp | 1 + src/gui/set/keywords_panel.cpp | 1 + src/script/script_manager.cpp | 3 +++ 4 files changed, 6 insertions(+) diff --git a/src/data/game.cpp b/src/data/game.cpp index b15208f2..377a72e4 100644 --- a/src/data/game.cpp +++ b/src/data/game.cpp @@ -49,6 +49,7 @@ IMPLEMENT_REFLECTION(Game) { REFLECT_NO_SCRIPT(statistics_dimensions); REFLECT_NO_SCRIPT(statistics_categories); REFLECT_NO_SCRIPT(pack_types); + REFLECT_NO_SCRIPT(keyword_match_script); REFLECT(has_keywords); REFLECT(keyword_modes); REFLECT(keyword_parameter_types); diff --git a/src/data/game.hpp b/src/data/game.hpp index 4363ea61..7d67f6a7 100644 --- a/src/data/game.hpp +++ b/src/data/game.hpp @@ -44,6 +44,7 @@ class Game : public Packaged { vector pack_types; ///< Types of random card packs to generate bool has_keywords; ///< Does this game use keywords? + OptionalScript keyword_match_script; ///< For the keyword editor vector keyword_parameter_types;///< Types of keyword parameters vector keyword_modes; ///< Modes of keywords vector keywords; ///< Keywords for use in text diff --git a/src/gui/set/keywords_panel.cpp b/src/gui/set/keywords_panel.cpp index ba9a40d4..e1895391 100644 --- a/src/gui/set/keywords_panel.cpp +++ b/src/gui/set/keywords_panel.cpp @@ -259,6 +259,7 @@ void KeywordsPanel::onChangeSet() { match ->getStyle().font.size = 12; match ->getStyle().padding_bottom = 1; match ->updateSize(); + match ->getField().script = set->game->keyword_match_script; reminder->setSet(set); reminder->getStyle().padding_bottom = 2; match ->getStyle().font.size = 10; diff --git a/src/script/script_manager.cpp b/src/script/script_manager.cpp index cfc6cd89..4ef35325 100644 --- a/src/script/script_manager.cpp +++ b/src/script/script_manager.cpp @@ -136,6 +136,9 @@ void SetScriptManager::onAction(const Action& action, bool undone) { KeywordTextValue* value = dynamic_cast(action.valueP.get()); if (value) { if (value->underlying == &value->keyword.match) { + // script + Context& ctx = getContext(set.stylesheet); + value->update(ctx); // changed the 'match' string of a keyword, rebuild database and regex so matching is correct value->keyword.prepare(set.game->keyword_parameter_types, true); set.keyword_db.clear();