From 076b3504d69cd7ea0e396ccea6805aa25c4eae4c Mon Sep 17 00:00:00 2001 From: uncor3 Date: Fri, 22 May 2026 12:07:40 +0000 Subject: [PATCH] return json in get_cable_info --- src/service_manager.rs | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/service_manager.rs b/src/service_manager.rs index afa915f..735cb42 100644 --- a/src/service_manager.rs +++ b/src/service_manager.rs @@ -181,9 +181,10 @@ impl ServiceManager { match res { Some(dict) => { - let mut buf = Vec::new(); - // ditch this, and return map instead - if Value::Dictionary(dict).to_writer_xml(&mut buf).is_err() { + //FIXME: return a qvariantmap instead + let val = Value::Dictionary(dict); + let res = serde_json::to_string_pretty(&val); + if res.is_err() { eprintln!( "get_cable_info: Failed to serialize ioregistry values to XML for device {udid}." ); @@ -193,21 +194,11 @@ impl ServiceManager { return; } - match String::from_utf8(buf) { - Ok(s) => { - let _ = qt_thread.queue(move |t| { - t.cable_info_retrieved(QString::from(s)); - }); - } - Err(_) => { - eprintln!( - "get_cable_info: Failed to convert ioregistry XML data to string for device {udid}." - ); - let _ = qt_thread.queue(|t| { - t.cable_info_retrieved(QString::from("")); - }); - } - } + + let _ = qt_thread.queue(move |t| { + t.cable_info_retrieved(QString::from(res.unwrap())); + }); + } None => { eprintln!("get_cable_info: Failed to get ioregistry for device {udid}");