fix: 修复配置页面输入框无法输入问题
This commit is contained in:
22
src/gui.rs
22
src/gui.rs
@@ -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();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user