@@ -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