44* @licence: MIT
55*/
66
7- #include " OvEditor/Settings/EditorSettings.h"
7+ #include " OvEditor/Settings/EditorSettings.h"
8+ #include < OvTools/Filesystem/IniFile.h>
9+
10+ template <class T >
11+ void LoadIniEntry (OvTools::Filesystem::IniFile& iniFile, const std::string& entry, OvEditor::Settings::EditorSettings::Property<T>& out)
12+ {
13+ if (iniFile.IsKeyExisting (entry))
14+ {
15+ out = iniFile.Get <T>(entry);
16+ }
17+ }
18+
19+ void OvEditor::Settings::EditorSettings::Save ()
20+ {
21+ std::string editorSettingsPath = std::string (getenv (" APPDATA" )) + " \\ OverloadTech\\ OvEditor\\ editor.ini" ;
22+ OvTools::Filesystem::IniFile iniFile (editorSettingsPath);
23+ iniFile.RemoveAll ();
24+ iniFile.Add (" show_geometry_bounds" , ShowGeometryBounds.Get ());
25+ iniFile.Add (" show_light_bounds" , ShowLightBounds.Get ());
26+ iniFile.Add (" editor_frustum_geometry_culling" , EditorFrustumGeometryCulling.Get ());
27+ iniFile.Add (" editor_frustum_light_culling" , EditorFrustumLightCulling.Get ());
28+ iniFile.Add (" light_billboard_scale" , LightBillboardScale.Get ());
29+ iniFile.Add (" translation_snap_unit" , TranslationSnapUnit.Get ());
30+ iniFile.Add (" rotation_snap_unit" , RotationSnapUnit.Get ());
31+ iniFile.Add (" scaling_snap_unit" , ScalingSnapUnit.Get ());
32+ iniFile.Rewrite ();
33+ }
34+
35+ void OvEditor::Settings::EditorSettings::Load ()
36+ {
37+ std::string editorSettingsPath = std::string (getenv (" APPDATA" )) + " \\ OverloadTech\\ OvEditor\\ editor.ini" ;
38+ OvTools::Filesystem::IniFile iniFile (editorSettingsPath);
39+
40+ LoadIniEntry<bool >(iniFile, " show_geometry_bounds" , ShowGeometryBounds);
41+ LoadIniEntry<bool >(iniFile, " show_light_bounds" , ShowLightBounds);
42+ LoadIniEntry<bool >(iniFile, " show_geometry_frustum_culling_in_scene_view" , EditorFrustumGeometryCulling);
43+ LoadIniEntry<bool >(iniFile, " show_light_frustum_culling_in_scene_view" , EditorFrustumLightCulling);
44+ LoadIniEntry<float >(iniFile, " light_billboard_scale" , LightBillboardScale);
45+ LoadIniEntry<float >(iniFile, " translation_snap_unit" , TranslationSnapUnit);
46+ LoadIniEntry<float >(iniFile, " rotation_snap_unit" , RotationSnapUnit);
47+ LoadIniEntry<float >(iniFile, " scaling_snap_unit" , ScalingSnapUnit);
48+ }
0 commit comments