From 53f8bde02a3508efde04c677eaa5e313fc69efba Mon Sep 17 00:00:00 2001 From: loki5512344 Date: Mon, 15 Jun 2026 21:34:29 +0200 Subject: [PATCH] add port field to onboarding card --- src/ui/app.rs | 72 +++++++++++++++++++++++++++---------------------- src/ui/state.rs | 2 ++ 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/src/ui/app.rs b/src/ui/app.rs index 315beab..24fa66c 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -89,6 +89,7 @@ impl FileManagerApp { self.state.onboarding_host.clear(); self.state.onboarding_user.clear(); self.state.onboarding_pass.clear(); + self.state.onboarding_port.clear(); } Err(e) => { self.state.status_message = format!("Connection failed: {}", e); @@ -224,46 +225,53 @@ impl eframe::App for FileManagerApp { ui.label("Connect to a server"); ui.add_space(12.0); - ui.horizontal(|ui| { - ui.label("Host:"); - ui.add( - egui::TextEdit::singleline(&mut self.state.onboarding_host) - .id("onb_host".into()) - .desired_width(200.0) - .hint_text("hostname"), - ); - }); + ui.horizontal(|ui| { + ui.label("Host:"); + ui.add( + egui::TextEdit::singleline(&mut self.state.onboarding_host) + .id("onb_host".into()) + .desired_width(150.0) + .hint_text("hostname"), + ); + ui.label("Port:"); + ui.add( + egui::TextEdit::singleline(&mut self.state.onboarding_port) + .id("onb_port".into()) + .desired_width(60.0) + .hint_text("22"), + ); + }); - ui.horizontal(|ui| { - ui.label("User:"); - ui.add( - egui::TextEdit::singleline(&mut self.state.onboarding_user) - .id("onb_user".into()) - .desired_width(200.0) - .hint_text("username"), - ); - }); + ui.horizontal(|ui| { + ui.label("User:"); + ui.add( + egui::TextEdit::singleline(&mut self.state.onboarding_user) + .id("onb_user".into()) + .desired_width(200.0) + .hint_text("username"), + ); + }); - ui.horizontal(|ui| { - ui.label("Pass:"); - ui.add( - egui::TextEdit::singleline(&mut self.state.onboarding_pass) - .password(true) - .id("onb_pass".into()) - .desired_width(200.0) - .hint_text("password"), - ); - }); + ui.horizontal(|ui| { + ui.label("Pass:"); + ui.add( + egui::TextEdit::singleline(&mut self.state.onboarding_pass) + .password(true) + .id("onb_pass".into()) + .desired_width(200.0) + .hint_text("password"), + ); + }); - ui.add_space(12.0); - let conn_btn = egui::Button::new("Connect") - .fill(ACCENT) + ui.add_space(12.0); + let conn_btn = egui::Button::new("Connect") + .fill(ACCENT) .min_size(egui::vec2(200.0, 32.0)); if ui.add(conn_btn).clicked() { self.state.connect_host = self.state.onboarding_host.clone(); self.state.connect_user = self.state.onboarding_user.clone(); self.state.connect_pass = self.state.onboarding_pass.clone(); - self.state.connect_port = "22".into(); + self.state.connect_port = self.state.onboarding_port.clone(); self.state.connect_protocol = 0; self.state.show_connect_dialog = true; } diff --git a/src/ui/state.rs b/src/ui/state.rs index 2c0e640..241af8a 100644 --- a/src/ui/state.rs +++ b/src/ui/state.rs @@ -38,6 +38,7 @@ pub struct AppState { pub onboarding_host: String, pub onboarding_user: String, pub onboarding_pass: String, + pub onboarding_port: String, pub connect_label: String, pub connect_host: String, pub connect_port: String, @@ -72,6 +73,7 @@ impl Default for AppState { onboarding_host: String::new(), onboarding_user: String::new(), onboarding_pass: String::new(), + onboarding_port: "22".into(), connect_label: String::new(), connect_host: String::new(), connect_port: "22".into(),