|
13 | 13 |
|
14 | 14 | template<> |
15 | 15 | struct matjson::Serialize<Settings> { |
16 | | - static Settings from_json(const matjson::Value& value) { |
17 | | - return Settings { |
18 | | - .GDInWindow = value["game_in_window"].as_bool(), |
19 | | - .attributesInTree = value["attributes_in_tree"].as_bool(), |
20 | | - .alwaysHighlight = value["always_highlight"].as_bool(), |
21 | | - .highlightLayouts = value["highlight_layouts"].as_bool(), |
22 | | - .arrowExpand = value["arrow_expand"].as_bool(), |
23 | | - .orderChildren = value["order_children"].as_bool(), |
24 | | - .advancedSettings = value["advanced_settings"].as_bool(), |
25 | | - .showMemoryViewer = value["show_memory_viewer"].as_bool(), |
26 | | - .theme = value["theme"].as_string(), |
27 | | - }; |
| 16 | + static Result<Settings> fromJson(const matjson::Value& value) { |
| 17 | + Settings defaults; |
| 18 | + |
| 19 | + return Ok(Settings { |
| 20 | + .GDInWindow = value["game_in_window"].asBool().unwrapOr(std::move(defaults.GDInWindow)), |
| 21 | + .attributesInTree = value["attributes_in_tree"].asBool().unwrapOr(std::move(defaults.attributesInTree)), |
| 22 | + .alwaysHighlight = value["always_highlight"].asBool().unwrapOr(std::move(defaults.alwaysHighlight)), |
| 23 | + .highlightLayouts = value["highlight_layouts"].asBool().unwrapOr(std::move(defaults.highlightLayouts)), |
| 24 | + .arrowExpand = value["arrow_expand"].asBool().unwrapOr(std::move(defaults.arrowExpand)), |
| 25 | + .orderChildren = value["order_children"].asBool().unwrapOr(std::move(defaults.orderChildren)), |
| 26 | + .advancedSettings = value["advanced_settings"].asBool().unwrapOr(std::move(defaults.advancedSettings)), |
| 27 | + .showMemoryViewer = value["show_memory_viewer"].asBool().unwrapOr(std::move(defaults.showMemoryViewer)), |
| 28 | + .theme = value["theme"].asString().unwrapOr(std::move(defaults.theme)), |
| 29 | + }); |
28 | 30 | } |
29 | 31 |
|
30 | | - static matjson::Value to_json(const Settings& settings) { |
31 | | - auto obj = matjson::Object(); |
32 | | - obj["game_in_window"] = settings.GDInWindow; |
33 | | - obj["attributes_in_tree"] = settings.attributesInTree; |
34 | | - obj["always_highlight"] = settings.alwaysHighlight; |
35 | | - obj["highlight_layouts"] = settings.highlightLayouts; |
36 | | - obj["arrow_expand"] = settings.arrowExpand; |
37 | | - obj["order_children"] = settings.orderChildren; |
38 | | - obj["advanced_settings"] = settings.advancedSettings; |
39 | | - obj["show_memory_viewer"] = settings.showMemoryViewer; |
40 | | - obj["theme"] = settings.theme; |
41 | | - return obj; |
42 | | - } |
43 | | - |
44 | | - static bool is_json(matjson::Value const& val) { |
45 | | - return val.is_object(); |
| 32 | + static matjson::Value toJson(const Settings& settings) { |
| 33 | + return matjson::makeObject({ |
| 34 | + { "game_in_window", settings.GDInWindow }, |
| 35 | + { "attributes_in_tree", settings.attributesInTree }, |
| 36 | + { "always_highlight", settings.alwaysHighlight }, |
| 37 | + { "highlight_layouts", settings.highlightLayouts }, |
| 38 | + { "arrow_expand", settings.arrowExpand }, |
| 39 | + { "order_children", settings.orderChildren }, |
| 40 | + { "advanced_settings", settings.advancedSettings }, |
| 41 | + { "show_memory_viewer", settings.showMemoryViewer }, |
| 42 | + { "theme", settings.theme }, |
| 43 | + }); |
46 | 44 | } |
47 | 45 | }; |
48 | 46 |
|
@@ -169,7 +167,7 @@ void DevTools::draw(GLRenderCtx* ctx) { |
169 | 167 | } |
170 | 168 |
|
171 | 169 | m_dockspaceID = ImGui::DockSpaceOverViewport( |
172 | | - 0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode |
| 170 | + 0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode |
173 | 171 | ); |
174 | 172 |
|
175 | 173 | ImGui::PushFont(m_defaultFont); |
|
0 commit comments