fix: 修复配置页面输入框无法输入问题

This commit is contained in:
xiaji
2026-04-13 21:53:50 +08:00
parent cef9330d87
commit ca8ff39d32

View File

@@ -383,6 +383,7 @@ impl eframe::App for App {
let mut token_id = st.token_id.clone(); let mut token_id = st.token_id.clone();
let mut token_secret = st.token_secret.clone(); let mut token_secret = st.token_secret.clone();
let state_clone = state.clone(); let state_clone = state.clone();
let ctx_clone = ctx.clone();
drop(st); drop(st);
@@ -390,7 +391,7 @@ impl eframe::App for App {
egui::Window::new("设置") egui::Window::new("设置")
.collapsible(false) .collapsible(false)
.resizable(false) .resizable(false)
.min_size(Vec2::new(350.0, 320.0)) .min_size(Vec2::new(350.0, 340.0))
.anchor(egui::Align2::CENTER_CENTER, [0.0, 0.0]) .anchor(egui::Align2::CENTER_CENTER, [0.0, 0.0])
.show(ctx, |ui| { .show(ctx, |ui| {
ui.set_width(320.0); ui.set_width(320.0);
@@ -408,7 +409,7 @@ impl eframe::App for App {
// Host 输入 // Host 输入
ui.horizontal(|ui| { ui.horizontal(|ui| {
ui.label("Host:"); ui.label("Host:");
ui.text_edit_singleline(&mut host); ui.add(egui::TextEdit::singleline(&mut host).desired_width(200.0));
}); });
// Port 输入 // Port 输入
@@ -420,13 +421,13 @@ impl eframe::App for App {
// 令牌ID 输入 // 令牌ID 输入
ui.horizontal(|ui| { ui.horizontal(|ui| {
ui.label("令牌ID:"); ui.label("令牌ID:");
ui.text_edit_singleline(&mut token_id); ui.add(egui::TextEdit::singleline(&mut token_id).desired_width(200.0));
}); });
// 密钥 输入(密码框) // 密钥 输入(密码框)
ui.horizontal(|ui| { ui.horizontal(|ui| {
ui.label("密钥:"); ui.label("密钥:");
ui.add(egui::TextEdit::singleline(&mut token_secret).password(true)); ui.add(egui::TextEdit::singleline(&mut token_secret).password(true).desired_width(200.0));
}); });
ui.add_space(12.0); ui.add_space(12.0);
@@ -436,24 +437,29 @@ impl eframe::App for App {
if ui.button("💾 保存").clicked() { if ui.button("💾 保存").clicked() {
let ts = token_secret.clone(); let ts = token_secret.clone();
let tid = token_id.clone(); let tid = token_id.clone();
if !host.is_empty() && !tid.is_empty() && !ts.is_empty() { let h = host.clone();
let p = port;
if !h.is_empty() && !tid.is_empty() && !ts.is_empty() {
let mut state = state_clone.write().unwrap(); let mut state = state_clone.write().unwrap();
state.host = host.clone(); state.host = h.clone();
state.port = port; state.port = p;
state.token_id = tid.clone(); state.token_id = tid.clone();
state.token_secret = ts.clone(); state.token_secret = ts.clone();
let client = ProxmoxClient::new(&host, port, &tid, &ts); let client = ProxmoxClient::new(&h, p, &tid, &ts);
state.client = Arc::new(Mutex::new(Some(client))); state.client = Arc::new(Mutex::new(Some(client)));
state.is_connected = true; state.is_connected = true;
state.save_config(); state.save_config();
state.add_log("配置已保存"); state.add_log("配置已保存");
state_clone.write().unwrap().show_settings = false;
ctx_clone.request_repaint();
} }
} }
if ui.button("取消").clicked() { if ui.button("取消").clicked() {
state_clone.write().unwrap().show_settings = false; state_clone.write().unwrap().show_settings = false;
ctx_clone.request_repaint();
} }
}); });