From 09370acc7dec07da10d02365f983e89ee47385c8 Mon Sep 17 00:00:00 2001 From: IQuant Date: Tue, 21 Jan 2025 16:40:32 +0300 Subject: [PATCH] Automatically save lobby code to clipboard, closes #296. --- noita-proxy/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/noita-proxy/src/lib.rs b/noita-proxy/src/lib.rs index d380a92a..721c2fb4 100644 --- a/noita-proxy/src/lib.rs +++ b/noita-proxy/src/lib.rs @@ -654,6 +654,7 @@ pub struct App { connected_menu: ConnectedMenu, show_host_settings: bool, running_on_steamdeck: bool, + copied_lobby: bool, } fn filled_group(ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R) -> InnerResponse { @@ -799,6 +800,7 @@ impl App { connected_menu: ConnectedMenu::Normal, show_host_settings: false, running_on_steamdeck, + copied_lobby: true, } } @@ -865,6 +867,7 @@ impl App { } fn change_state_to_netman(&mut self, netman: Arc, player_path: PathBuf) { + self.copied_lobby = false; let handle = netman.clone().start(player_path); self.state = AppState::ConnectedLobby { netman: NetManStopOnDrop(netman, Some(handle)), @@ -1399,10 +1402,13 @@ impl App { ConnectedMenu::Normal => { if netman.peer.is_steam() { if let Some(id) = netman.peer.lobby_id() { - if ui.button(tr("netman_save_lobby")).clicked() { + if ui.button(tr("netman_save_lobby")).clicked() || !self.copied_lobby { let lobby_code = LobbyCode { kind, code: id }; ui.output_mut(|o| o.copied_text = lobby_code.serialize()); + self.copied_lobby = true; } + } else { + ui.label("No lobby created yet"); } } self.appearance.mina_color_picker(