diff options
Diffstat (limited to 'gui/ThemeParser.cpp')
-rw-r--r-- | gui/ThemeParser.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/gui/ThemeParser.cpp b/gui/ThemeParser.cpp index 5b1faa4075..db45b5a995 100644 --- a/gui/ThemeParser.cpp +++ b/gui/ThemeParser.cpp @@ -352,11 +352,8 @@ bool ThemeParser::parserCallback_drawdata(ParserNode *node) { } if (node->values.contains("cache")) { - if (node->values["cache"] == "true") - cached = true; - else if (node->values["cache"] == "false") - cached = false; - else return parserError("'Parsed' value must be either true or false."); + if (!Common::parseBool(node->values["cache"], cached)) + return parserError("'Parsed' value must be either true or false."); } if (_theme->addDrawData(node->values["id"], cached) == false) @@ -595,9 +592,7 @@ bool ThemeParser::parserCallback_widget(ParserNode *node) { bool enabled = true; if (node->values.contains("enabled")) { - if (node->values["enabled"] == "false") - enabled = false; - else if (node->values["enabled"] != "true") + if (!Common::parseBool(node->values["enabled"], enabled)) return parserError("Invalid value for Widget enabling (expecting true/false)"); } @@ -641,9 +636,7 @@ bool ThemeParser::parserCallback_dialog(ParserNode *node) { } if (node->values.contains("enabled")) { - if (node->values["enabled"] == "false") - enabled = false; - else if (node->values["enabled"] != "true") + if (!Common::parseBool(node->values["enabled"], enabled)) return parserError("Invalid value for Dialog enabling (expecting true/false)"); } @@ -677,16 +670,19 @@ bool ThemeParser::parserCallback_import(ParserNode *node) { bool ThemeParser::parserCallback_layout(ParserNode *node) { int spacing = -1; + bool center = false; if (node->values.contains("spacing")) { if (!parseIntegerKey(node->values["spacing"], 1, &spacing)) return false; } + Common::parseBool(node->values["center"], center); + if (node->values["type"] == "vertical") - _theme->getEvaluator()->addLayout(GUI::ThemeLayout::kLayoutVertical, spacing, node->values["center"] == "true"); + _theme->getEvaluator()->addLayout(GUI::ThemeLayout::kLayoutVertical, spacing, center); else if (node->values["type"] == "horizontal") - _theme->getEvaluator()->addLayout(GUI::ThemeLayout::kLayoutHorizontal, spacing, node->values["center"] == "true"); + _theme->getEvaluator()->addLayout(GUI::ThemeLayout::kLayoutHorizontal, spacing, center); else return parserError("Invalid layout type. Only 'horizontal' and 'vertical' layouts allowed."); |