Skip to content

Commit 25ec645

Browse files
committed
Small fixes for json settings importing
1 parent c59dacd commit 25ec645

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

Source/Utility/SettingsFile.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,24 @@ DynamicObject::Ptr SettingsFile::xmlThemeToJson(ValueTree tree)
5252
{
5353
DynamicObject::Ptr result { new DynamicObject };
5454
result->setProperty("name", tree.getProperty("theme"));
55+
56+
auto intProperties = StringArray{"connection_style"};
57+
auto boolProperties = StringArray{"straight_connections", "connection_look", "square_iolets", "square_object_corners", "iolet_spacing_edge", "object_flag_outlined", "highlight_syntax"};
5558
for (int i = 0; i < tree.getNumProperties(); ++i) {
5659
auto const name = tree.getPropertyName(i);
57-
result->setProperty(name, tree.getProperty(name));
60+
auto const value = tree.getProperty(name);
61+
62+
if(intProperties.contains(name))
63+
{
64+
result->setProperty(name, static_cast<int>(tree.getProperty(name)));
65+
}
66+
else if(boolProperties.contains(name))
67+
{
68+
result->setProperty(name, static_cast<bool>(tree.getProperty(name)));
69+
}
70+
else {
71+
result->setProperty(name, tree.getProperty(name));
72+
}
5873
}
5974
result->removeProperty("theme");
6075
return result;
@@ -96,12 +111,12 @@ static var convertFromLegacyFormat(ValueTree s)
96111
copyInt("cpu_meter_mapping_mode", "cpu_meter_mapping_mode");
97112
copyInt("autosave_interval", "autosave_interval");
98113
copyInt("show_minimap", "show_minimap");
99-
copyInt("hvcc_mode", "hvcc_mode");
100114
copyInt("last_welcome_panel", "last_welcome_panel");
101115

102116
copyFloat("global_scale", "global_scale");
103117
copyFloat("default_zoom", "default_zoom");
104118

119+
copyBool("hvcc_mode", "hvcc_mode");
105120
copyBool("protected", "protected");
106121
copyBool("debug_connections", "debug_connections");
107122
copyBool("grid_enabled", "grid_enabled");
@@ -155,10 +170,10 @@ static var convertFromLegacyFormat(ValueTree s)
155170
Array<var> recent;
156171
if (auto recentTree = s.getChildWithName("RecentlyOpened"); recentTree.isValid()) {
157172
for (auto item : recentTree) {
158-
auto* entry = new DynamicObject();
173+
DynamicObject::Ptr entry = new DynamicObject();
159174
entry->setProperty("path", item["Path"].toString());
160175
entry->setProperty("time", static_cast<int64>(item["Time"]));
161-
recent.add(var(entry));
176+
recent.add(var(entry.get()));
162177
}
163178
}
164179
root->setProperty("recently_opened", recent);
@@ -172,12 +187,12 @@ static var convertFromLegacyFormat(ValueTree s)
172187

173188
// Overlays
174189
if (auto overlaysTree = s.getChildWithName("Overlays"); overlaysTree.isValid()) {
175-
auto* overlays = new DynamicObject();
190+
DynamicObject::Ptr overlays = new DynamicObject();
176191
overlays->setProperty("edit", static_cast<int>(overlaysTree["edit"]));
177192
overlays->setProperty("lock", static_cast<int>(overlaysTree["lock"]));
178193
overlays->setProperty("run", static_cast<int>(overlaysTree["run"]));
179194
overlays->setProperty("alt", static_cast<int>(overlaysTree["alt"]));
180-
root->setProperty("overlays", var(overlays));
195+
root->setProperty("overlays", var(overlays.get()));
181196
}
182197

183198
return result;

0 commit comments

Comments
 (0)