From 8ad38f381e866817413575cd0a604ec22fb82008 Mon Sep 17 00:00:00 2001 From: ardocrat Date: Wed, 2 Apr 2025 15:49:07 +0300 Subject: [PATCH] ui: change values on enter press at node settings modals --- src/gui/views/network/setup/dandelion.rs | 20 ++++ src/gui/views/network/setup/node.rs | 17 +++- src/gui/views/network/setup/p2p.rs | 113 ++++++++++++++--------- src/gui/views/network/setup/pool.rs | 26 ++++++ src/gui/views/network/setup/stratum.rs | 17 +++- 5 files changed, 148 insertions(+), 45 deletions(-) diff --git a/src/gui/views/network/setup/dandelion.rs b/src/gui/views/network/setup/dandelion.rs index 02ac7e26..ada33b25 100644 --- a/src/gui/views/network/setup/dandelion.rs +++ b/src/gui/views/network/setup/dandelion.rs @@ -193,6 +193,11 @@ impl DandelionSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -269,6 +274,11 @@ impl DandelionSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -346,6 +356,11 @@ impl DandelionSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -423,6 +438,11 @@ impl DandelionSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { diff --git a/src/gui/views/network/setup/node.rs b/src/gui/views/network/setup/node.rs index 3773bf26..db31668c 100644 --- a/src/gui/views/network/setup/node.rs +++ b/src/gui/views/network/setup/node.rs @@ -310,7 +310,7 @@ impl NodeSetup { ui.spacing_mut().item_spacing = egui::Vec2::new(8.0, 0.0); // Save button callback. - let on_save = || { + let mut on_save = || { // Check if port is available. let (api_ip, _) = NodeConfig::get_api_ip_port(); let available = NodeConfig::is_api_port_available(&api_ip, &self.api_port_edit); @@ -330,6 +330,11 @@ impl NodeSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -427,6 +432,11 @@ impl NodeSetup { modal.close(); }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -509,6 +519,11 @@ impl NodeSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { diff --git a/src/gui/views/network/setup/p2p.rs b/src/gui/views/network/setup/p2p.rs index 99a644a7..d47da008 100644 --- a/src/gui/views/network/setup/p2p.rs +++ b/src/gui/views/network/setup/p2p.rs @@ -249,16 +249,16 @@ impl P2PSetup { View::button(ui, format!("{} {}", PLUG, &port), Colors::white_or_black(false), || { - // Setup values for modal. - self.port_edit = port; - self.port_available_edit = self.is_port_available; - // Show p2p port modal. - Modal::new(PORT_MODAL) - .position(ModalPosition::CenterTop) - .title(t!("network_settings.change_value")) - .show(); - cb.show_keyboard(); - }); + // Setup values for modal. + self.port_edit = port; + self.port_available_edit = self.is_port_available; + // Show p2p port modal. + Modal::new(PORT_MODAL) + .position(ModalPosition::CenterTop) + .title(t!("network_settings.change_value")) + .show(); + cb.show_keyboard(); + }); ui.add_space(6.0); // Show error when p2p port is unavailable. @@ -300,7 +300,7 @@ impl P2PSetup { ui.spacing_mut().item_spacing = egui::Vec2::new(8.0, 0.0); // Save button callback. - let on_save = || { + let mut on_save = || { // Check if port is available. let available = NodeConfig::is_p2p_port_available(&self.port_edit); self.port_available_edit = available; @@ -317,6 +317,11 @@ impl P2PSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -370,8 +375,10 @@ impl P2PSetup { ui.label(RichText::new(desc) .size(16.0) .color(Colors::inactive_text())); + ui.add_space(12.0); + } else if !peers.is_empty() { + ui.add_space(12.0); } - ui.add_space(12.0); let add_text = if peer_type == &PeerType::CustomSeed { format!("{} {}", PLUS_CIRCLE, t!("network_settings.add_seed")) @@ -438,7 +445,7 @@ impl P2PSetup { ui.spacing_mut().item_spacing = egui::Vec2::new(8.0, 0.0); // Save button callback. - let on_save = || { + let mut on_save = || { // Check if peer is correct and/or available. let peer = self.peer_edit.clone(); let is_correct_address = PeersConfig::peer_to_addr(peer.clone()).is_some(); @@ -460,6 +467,11 @@ impl P2PSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -509,15 +521,15 @@ impl P2PSetup { View::button(ui, format!("{} {}", PROHIBIT_INSET, &ban_window), Colors::white_or_black(false), || { - // Setup values for modal. - self.ban_window_edit = ban_window; - // Show ban window period setup modal. - Modal::new(BAN_WINDOW_MODAL) - .position(ModalPosition::CenterTop) - .title(t!("network_settings.change_value")) - .show(); - cb.show_keyboard(); - }); + // Setup values for modal. + self.ban_window_edit = ban_window; + // Show ban window period setup modal. + Modal::new(BAN_WINDOW_MODAL) + .position(ModalPosition::CenterTop) + .title(t!("network_settings.change_value")) + .show(); + cb.show_keyboard(); + }); ui.add_space(6.0); ui.label(RichText::new(t!("network_settings.ban_window_desc")) .size(16.0) @@ -565,6 +577,11 @@ impl P2PSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -593,15 +610,15 @@ impl P2PSetup { View::button(ui, format!("{} {}", ARROW_FAT_LINES_DOWN, &max_inbound), Colors::white_or_black(false), || { - // Setup values for modal. - self.max_inbound_count = max_inbound; - // Show maximum number of inbound peers setup modal. - Modal::new(MAX_INBOUND_MODAL) - .position(ModalPosition::CenterTop) - .title(t!("network_settings.change_value")) - .show(); - cb.show_keyboard(); - }); + // Setup values for modal. + self.max_inbound_count = max_inbound; + // Show maximum number of inbound peers setup modal. + Modal::new(MAX_INBOUND_MODAL) + .position(ModalPosition::CenterTop) + .title(t!("network_settings.change_value")) + .show(); + cb.show_keyboard(); + }); ui.add_space(6.0); } @@ -644,6 +661,11 @@ impl P2PSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -671,15 +693,15 @@ impl P2PSetup { View::button(ui, format!("{} {}", ARROW_FAT_LINES_UP, &max_outbound), Colors::white_or_black(false), || { - // Setup values for modal. - self.max_outbound_count = max_outbound; - // Show maximum number of outbound peers setup modal. - Modal::new(MAX_OUTBOUND_MODAL) - .position(ModalPosition::CenterTop) - .title(t!("network_settings.change_value")) - .show(); - cb.show_keyboard(); - }); + // Setup values for modal. + self.max_outbound_count = max_outbound; + // Show maximum number of outbound peers setup modal. + Modal::new(MAX_OUTBOUND_MODAL) + .position(ModalPosition::CenterTop) + .title(t!("network_settings.change_value")) + .show(); + cb.show_keyboard(); + }); ui.add_space(6.0); } @@ -722,6 +744,11 @@ impl P2PSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -745,9 +772,9 @@ impl P2PSetup { format!("{} {}", TRASH, t!("network_settings.reset_peers")), Colors::red(), Colors::white_or_black(false), || { - Node::reset_peers(false); - self.peers_reset = true; - }); + Node::reset_peers(false); + self.peers_reset = true; + }); ui.add_space(6.0); ui.label(RichText::new(t!("network_settings.reset_peers_desc")) .size(16.0) diff --git a/src/gui/views/network/setup/pool.rs b/src/gui/views/network/setup/pool.rs index a6d9543a..adb6bcd5 100644 --- a/src/gui/views/network/setup/pool.rs +++ b/src/gui/views/network/setup/pool.rs @@ -195,6 +195,12 @@ impl PoolSetup { modal.close(); } }; + + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -273,6 +279,11 @@ impl PoolSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -350,6 +361,11 @@ impl PoolSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -429,6 +445,11 @@ impl PoolSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -508,6 +529,11 @@ impl PoolSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { diff --git a/src/gui/views/network/setup/stratum.rs b/src/gui/views/network/setup/stratum.rs index a681e562..3c98022b 100644 --- a/src/gui/views/network/setup/stratum.rs +++ b/src/gui/views/network/setup/stratum.rs @@ -316,7 +316,7 @@ impl StratumSetup { ui.spacing_mut().item_spacing = egui::Vec2::new(8.0, 0.0); // Save button callback. - let on_save = || { + let mut on_save = || { // Check if port is available. let (stratum_ip, _) = NodeConfig::get_stratum_address(); let available = NodeConfig::is_stratum_port_available( @@ -335,6 +335,11 @@ impl StratumSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -419,6 +424,11 @@ impl StratumSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || { @@ -497,6 +507,11 @@ impl StratumSetup { } }; + // Continue on Enter key press. + View::on_enter_key(ui, || { + on_save(); + }); + ui.columns(2, |columns| { columns[0].vertical_centered_justified(|ui| { View::button(ui, t!("modal.cancel"), Colors::white_or_black(false), || {