git.lucas.co / cce-graph
node-based graph editor
git clone https://git.lucas.co/cce-graph.git

commit9592208342a17349aaa7d63c4918b88e4abe0b75
parentd7d5667ee9
authorLucas Galante <[email protected]>
date2026-06-29 13:45
Transition from JSON to KDL format configuration

 src/main.rs | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index b19ffe4..bda90e8 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -403,8 +403,9 @@ impl Application for GraphApp {
 }
 
 fn load_config() -> (bool, bool, bool, f32, f32, f32) {
-    let content = std::fs::read_to_string("/home/lsgalante/.config/cce/config.json").unwrap_or_default();
-    let val: serde_json::Value = serde_json::from_str(&content).unwrap_or_default();
+    let path = cce_ui::config::get_config_path();
+    let content = std::fs::read_to_string(&path).unwrap_or_default();
+    let val = cce_ui::config::parse_kdl_to_json(&content);
     
     let show_grid = val.pointer("/layout/graph_show_grid").and_then(|v| v.as_bool()).unwrap_or(true);
     let snap_enabled = val.pointer("/layout/graph_snap_enabled").and_then(|v| v.as_bool()).unwrap_or(true);
@@ -418,21 +419,9 @@ fn load_config() -> (bool, bool, bool, f32, f32, f32) {
 }
 
 fn write_config_value(key: &str, value: &str) -> bool {
-    let path = "/home/lsgalante/.config/cce/config.json";
-    let content = std::fs::read_to_string(path).unwrap_or_default();
-    let mut val: serde_json::Value = serde_json::from_str(&content).unwrap_or_default();
-    if let Some(obj) = val.get_mut("layout").and_then(|l| l.as_object_mut()) {
-        let j_val = if let Ok(parsed_val) = serde_json::from_str::<serde_json::Value>(value) {
-            parsed_val
-        } else {
-            serde_json::json!(value)
-        };
-        obj.insert(key.to_string(), j_val);
-        if let Ok(updated_str) = serde_json::to_string_pretty(&val) {
-            return std::fs::write(path, updated_str).is_ok();
-        }
-    }
-    false
+    let path = cce_ui::config::get_config_path();
+    let path_str = path.to_string_lossy();
+    cce_ui::config::write_config_value(&path_str, key, value, "layout")
 }
 
 fn main() {