diff --git a/libs/hbb_common/src/config.rs b/libs/hbb_common/src/config.rs index 72eee9309..409a97439 100644 --- a/libs/hbb_common/src/config.rs +++ b/libs/hbb_common/src/config.rs @@ -646,7 +646,7 @@ impl PeerConfig { Config::path(path).with_extension("toml") } - pub fn peers() -> Vec<(String, SystemTime, PeerInfoSerde)> { + pub fn peers() -> Vec<(String, SystemTime, PeerConfig)> { if let Ok(peers) = Config::path(PEERS).read_dir() { if let Ok(peers) = peers .map(|res| res.map(|e| e.path())) @@ -667,13 +667,13 @@ impl PeerConfig { .map(|p| p.to_str().unwrap_or("")) .unwrap_or("") .to_owned(); - let info = PeerConfig::load(&id).info; - if info.platform.is_empty() { + let c = PeerConfig::load(&id); + if c.info.platform.is_empty() { fs::remove_file(&p).ok(); } - (id, t, info) + (id, t, c) }) - .filter(|p| !p.2.platform.is_empty()) + .filter(|p| !p.2.info.platform.is_empty()) .collect(); peers.sort_unstable_by(|a, b| b.1.cmp(&a.1)); return peers; diff --git a/src/ui.rs b/src/ui.rs index 4f4506d00..f4d6253c9 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -266,6 +266,21 @@ impl UI { } } + fn get_peer_option(&self, id: String, name: String) -> String { + let c = PeerConfig::load(&id); + c.options.get(&name).unwrap_or(&"".to_owned()).to_owned() + } + + fn set_peer_option(&self, id: String, name: String, value: String) { + let mut c = PeerConfig::load(&id); + if value.is_empty() { + c.options.remove(&name); + } else { + c.options.insert(name, value); + } + c.store(&id); + } + fn get_options(&self) -> Value { let mut m = Value::map(); for (k, v) in self.2.lock().unwrap().iter() { @@ -364,9 +379,13 @@ impl UI { .map(|p| { let values = vec![ p.0.clone(), - p.2.username.clone(), - p.2.hostname.clone(), - p.2.platform.clone(), + p.2.info.username.clone(), + p.2.info.hostname.clone(), + p.2.info.platform.clone(), + p.2.options + .get("alias") + .unwrap_or(&"".to_owned()) + .to_owned(), ]; Value::from_iter(values) }) @@ -535,6 +554,8 @@ impl sciter::EventHandler for UI { fn fix_login_wayland(); fn get_options(); fn get_option(String); + fn get_peer_option(String, String); + fn set_peer_option(String, String, String); fn test_if_valid_server(String); fn get_sound_inputs(); fn set_options(Value); diff --git a/src/ui/index.tis b/src/ui/index.tis index 1af803470..ae965ddf9 100644 --- a/src/ui/index.tis +++ b/src/ui/index.tis @@ -64,13 +64,14 @@ class RecentSessions: Reactor.Component { var username = s[1]; var hostname = s[2]; var platform = s[3]; + var alias = s[4]; return