Skip to content

Commit

Permalink
https://github.com/rustdesk/rustdesk/issues/58
Browse files Browse the repository at this point in the history
  • Loading branch information
rustdesk committed Jun 14, 2021
1 parent 673986d commit fda1e5e
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 9 deletions.
10 changes: 5 additions & 5 deletions libs/hbb_common/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()))
Expand All @@ -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;
Expand Down
27 changes: 24 additions & 3 deletions src/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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)
})
Expand Down Expand Up @@ -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);
Expand Down
15 changes: 14 additions & 1 deletion src/ui/index.tis
Original file line number Diff line number Diff line change
Expand Up @@ -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 <div .remote-session id={id} platform={platform} style={"background:"+string2RGB(id+platform, 0.5)}>
<div .platform>
{platformSvg(platform, "white")}
<div .username>{username}@{hostname}</div>
</div>
<div .text>
<div>{formatId(id)}</div>
<div #alias>{alias ? alias : formatId(id)}</div>
{svg_menu}
</div>
</div>;
Expand Down Expand Up @@ -109,6 +110,17 @@ event click $(menu#remote-context li) (evt, me) {
createNewConnect(id, "rdp");
} else if (action == "tunnel") {
createNewConnect(id, "port-forward");
} else if (action == "rename") {
var old_name = handler.get_peer_option(id, "alias");
handler.msgbox("custom-rename", "Rename", "<div .form> \
<div><input name='name' style='width: *; height: 23px', value='" + old_name + "' /></div> \
</div> \
", function(res=null) {
if (!res) return;
var name = (res.name || "").trim();
if (name != old_name) handler.set_peer_option(id, "alias", name);
self.select('#' + id).select('#alias').text = name || id;
});
}
}

Expand Down Expand Up @@ -318,6 +330,7 @@ class App: Reactor.Component
<li #transfer>Transfer File</li>
<li #tunnel>TCP Tunneling</li>
<li #rdp>RDP</li>
<li #rename>Rename</li>
<li #remove>Remove</li>
{is_win && <li #shortcut>Create Desktop Shortcut</li>}
</menu>
Expand Down

0 comments on commit fda1e5e

Please sign in to comment.