mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-12 13:37:00 -04:00
Fixed: keys without save_value caused reader to loop
Fixed: first line of multi line text value could cause warnings about whitespace Fixed some copy/paste errors in choice style reading; Text viewer correctly uses mask for first line git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@604 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -278,9 +278,9 @@ IMPLEMENT_REFLECTION_ENUM(ChoiceRenderStyle) {
|
|||||||
VALUE_N("checklist", RENDER_TEXT_CHECKLIST);
|
VALUE_N("checklist", RENDER_TEXT_CHECKLIST);
|
||||||
VALUE_N("image checklist", RENDER_IMAGE_CHECKLIST);
|
VALUE_N("image checklist", RENDER_IMAGE_CHECKLIST);
|
||||||
VALUE_N("both checklist", RENDER_BOTH_CHECKLIST);
|
VALUE_N("both checklist", RENDER_BOTH_CHECKLIST);
|
||||||
VALUE_N("text list", RENDER_IMAGE_LIST);
|
VALUE_N("text list", RENDER_TEXT_LIST);
|
||||||
VALUE_N("image list", RENDER_IMAGE_LIST);
|
VALUE_N("image list", RENDER_IMAGE_LIST);
|
||||||
VALUE_N("both list", RENDER_IMAGE_LIST);
|
VALUE_N("both list", RENDER_BOTH_LIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_REFLECTION(ChoiceStyle) {
|
IMPLEMENT_REFLECTION(ChoiceStyle) {
|
||||||
|
|||||||
@@ -119,8 +119,8 @@ enum ChoiceRenderStyle
|
|||||||
, RENDER_HIDDEN = 0x20 // don't render anything, only have a menu
|
, RENDER_HIDDEN = 0x20 // don't render anything, only have a menu
|
||||||
, RENDER_CHECKLIST = 0x100 // render as a checklist, intended for multiple choice
|
, RENDER_CHECKLIST = 0x100 // render as a checklist, intended for multiple choice
|
||||||
, RENDER_LIST = 0x200 // render as a list of images/text, intended for multiple choice
|
, RENDER_LIST = 0x200 // render as a list of images/text, intended for multiple choice
|
||||||
, RENDER_BOTH = RENDER_TEXT | RENDER_IMAGE
|
, RENDER_BOTH = RENDER_TEXT | RENDER_IMAGE
|
||||||
, RENDER_HIDDEN_IMAGE = RENDER_HIDDEN | RENDER_IMAGE
|
, RENDER_HIDDEN_IMAGE = RENDER_HIDDEN | RENDER_IMAGE
|
||||||
, RENDER_TEXT_CHECKLIST = RENDER_CHECKLIST | RENDER_TEXT
|
, RENDER_TEXT_CHECKLIST = RENDER_CHECKLIST | RENDER_TEXT
|
||||||
, RENDER_IMAGE_CHECKLIST = RENDER_CHECKLIST | RENDER_IMAGE
|
, RENDER_IMAGE_CHECKLIST = RENDER_CHECKLIST | RENDER_IMAGE
|
||||||
, RENDER_BOTH_CHECKLIST = RENDER_CHECKLIST | RENDER_BOTH
|
, RENDER_BOTH_CHECKLIST = RENDER_CHECKLIST | RENDER_BOTH
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ bool TextValue::update(Context& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
IMPLEMENT_REFLECTION_NAMELESS(TextValue) {
|
IMPLEMENT_REFLECTION_NAMELESS(TextValue) {
|
||||||
if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(value);
|
if (fieldP->save_value || tag.scripting() || tag.reading()) REFLECT_NAMELESS(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------- : FakeTextValue
|
// ----------------------------------------------------------------------------- : FakeTextValue
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ DECLARE_DYNAMIC_ARG(SymbolFont*, symbol_font_for_reading);
|
|||||||
IMPLEMENT_DYNAMIC_ARG(SymbolFont*, symbol_font_for_reading, nullptr);
|
IMPLEMENT_DYNAMIC_ARG(SymbolFont*, symbol_font_for_reading, nullptr);
|
||||||
|
|
||||||
SymbolFont::SymbolFont()
|
SymbolFont::SymbolFont()
|
||||||
: img_size(12), min_size(1)
|
: img_size(12)
|
||||||
, spacing(1,1)
|
, spacing(1,1)
|
||||||
, scale_text(false)
|
, scale_text(false)
|
||||||
, text_margin_left(0), text_margin_right(0)
|
, text_margin_left(0), text_margin_right(0)
|
||||||
@@ -51,7 +51,6 @@ IMPLEMENT_REFLECTION(SymbolFont) {
|
|||||||
REFLECT_ALIAS(300, "text align", "text alignment");
|
REFLECT_ALIAS(300, "text align", "text alignment");
|
||||||
|
|
||||||
REFLECT_N("image font size", img_size);
|
REFLECT_N("image font size", img_size);
|
||||||
REFLECT_N("scale down to", min_size);
|
|
||||||
REFLECT_N("horizontal space", spacing.width);
|
REFLECT_N("horizontal space", spacing.width);
|
||||||
REFLECT_N("vertical space", spacing.height);
|
REFLECT_N("vertical space", spacing.height);
|
||||||
WITH_DYNAMIC_ARG(symbol_font_for_reading, this);
|
WITH_DYNAMIC_ARG(symbol_font_for_reading, this);
|
||||||
|
|||||||
@@ -77,8 +77,7 @@ class SymbolFont : public Packaged {
|
|||||||
String insertSymbolCode(int menu_id) const;
|
String insertSymbolCode(int menu_id) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UInt img_size; ///< Font size that the images use
|
double img_size; ///< Font size that the images use
|
||||||
UInt min_size; ///< Minimum font size
|
|
||||||
RealSize spacing; ///< Spacing between sybmols (for the default font size)
|
RealSize spacing; ///< Spacing between sybmols (for the default font size)
|
||||||
// writing text
|
// writing text
|
||||||
bool scale_text; ///< Should text be scaled down to fit in a symbol?
|
bool scale_text; ///< Should text be scaled down to fit in a symbol?
|
||||||
|
|||||||
@@ -414,6 +414,11 @@ bool TextViewer::prepareLinesScale(RotatedDC& dc, const vector<CharInfo>& chars,
|
|||||||
line.top = style.padding_top;
|
line.top = style.padding_top;
|
||||||
// size of the line so far
|
// size of the line so far
|
||||||
RealSize line_size(lineLeft(dc, style, 0), 0);
|
RealSize line_size(lineLeft(dc, style, 0), 0);
|
||||||
|
while (line.top < style.height && line_size.width + 1 >= style.width - style.padding_right) {
|
||||||
|
// nothing fits on this line, move down one pixel
|
||||||
|
line.top += 1;
|
||||||
|
line_size.width = lineLeft(dc, style, line.top);
|
||||||
|
}
|
||||||
line.positions.push_back(line_size.width);
|
line.positions.push_back(line_size.width);
|
||||||
// The word we are currently reading
|
// The word we are currently reading
|
||||||
RealSize word_size;
|
RealSize word_size;
|
||||||
@@ -513,7 +518,7 @@ bool TextViewer::prepareLinesScale(RotatedDC& dc, const vector<CharInfo>& chars,
|
|||||||
while (line.top < style.height && line_size.width + 1 >= style.width - style.padding_right) {
|
while (line.top < style.height && line_size.width + 1 >= style.width - style.padding_right) {
|
||||||
// nothing fits on this line, move down one pixel
|
// nothing fits on this line, move down one pixel
|
||||||
line.top += 1;
|
line.top += 1;
|
||||||
line_size = RealSize(lineLeft(dc, style, line.top), 0);
|
line_size.width = lineLeft(dc, style, line.top);
|
||||||
}
|
}
|
||||||
line.positions.push_back(line_size.width); // start position
|
line.positions.push_back(line_size.width); // start position
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ const String& Reader::getValue() {
|
|||||||
previous_value.clear();
|
previous_value.clear();
|
||||||
bool first = true;
|
bool first = true;
|
||||||
// read all lines that are indented enough
|
// read all lines that are indented enough
|
||||||
readLine();
|
readLine(true);
|
||||||
previous_line_number = line_number;
|
previous_line_number = line_number;
|
||||||
while (indent >= expected_indent && !input->Eof()) {
|
while (indent >= expected_indent && !input->Eof()) {
|
||||||
if (!first) previous_value += _('\n');
|
if (!first) previous_value += _('\n');
|
||||||
|
|||||||
Reference in New Issue
Block a user