Commit 2cac5492 authored by twanvl's avatar twanvl

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
parent f3f6249c
...@@ -278,9 +278,9 @@ IMPLEMENT_REFLECTION_ENUM(ChoiceRenderStyle) { ...@@ -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) {
......
...@@ -138,7 +138,7 @@ bool TextValue::update(Context& ctx) { ...@@ -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); ...@@ -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) { ...@@ -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 { ...@@ -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, ...@@ -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, ...@@ -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() { ...@@ -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');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment