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) {
VALUE_N("checklist", RENDER_TEXT_CHECKLIST);
VALUE_N("image checklist", RENDER_IMAGE_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("both list", RENDER_IMAGE_LIST);
VALUE_N("both list", RENDER_BOTH_LIST);
}
IMPLEMENT_REFLECTION(ChoiceStyle) {
......
......@@ -138,7 +138,7 @@ bool TextValue::update(Context& ctx) {
}
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
......
......@@ -26,7 +26,7 @@ DECLARE_DYNAMIC_ARG(SymbolFont*, symbol_font_for_reading);
IMPLEMENT_DYNAMIC_ARG(SymbolFont*, symbol_font_for_reading, nullptr);
SymbolFont::SymbolFont()
: img_size(12), min_size(1)
: img_size(12)
, spacing(1,1)
, scale_text(false)
, text_margin_left(0), text_margin_right(0)
......@@ -51,7 +51,6 @@ IMPLEMENT_REFLECTION(SymbolFont) {
REFLECT_ALIAS(300, "text align", "text alignment");
REFLECT_N("image font size", img_size);
REFLECT_N("scale down to", min_size);
REFLECT_N("horizontal space", spacing.width);
REFLECT_N("vertical space", spacing.height);
WITH_DYNAMIC_ARG(symbol_font_for_reading, this);
......
......@@ -77,8 +77,7 @@ class SymbolFont : public Packaged {
String insertSymbolCode(int menu_id) const;
private:
UInt img_size; ///< Font size that the images use
UInt min_size; ///< Minimum font size
double img_size; ///< Font size that the images use
RealSize spacing; ///< Spacing between sybmols (for the default font size)
// writing text
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;
// size of the line so far
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);
// The word we are currently reading
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) {
// nothing fits on this line, move down one pixel
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
}
......
......@@ -241,7 +241,7 @@ const String& Reader::getValue() {
previous_value.clear();
bool first = true;
// read all lines that are indented enough
readLine();
readLine(true);
previous_line_number = line_number;
while (indent >= expected_indent && !input->Eof()) {
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