From 3b60a57bd4e30f40d3bd3efae52a8e488bc060da Mon Sep 17 00:00:00 2001 From: edouardparis Date: Mon, 17 Jun 2024 17:11:52 +0200 Subject: [PATCH] Remove bitcoind from settings panel if remote backend --- gui/src/app/mod.rs | 10 ++++++++- gui/src/app/state/settings/mod.rs | 11 ++++++++-- gui/src/app/view/settings.rs | 36 +++++++++++++++++-------------- 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/gui/src/app/mod.rs b/gui/src/app/mod.rs index c4793501..cddfb770 100644 --- a/gui/src/app/mod.rs +++ b/gui/src/app/mod.rs @@ -58,6 +58,7 @@ impl Panels { cache: &Cache, wallet: Arc, data_dir: PathBuf, + daemon_backend: DaemonBackend, internal_bitcoind: Option<&Bitcoind>, ) -> Panels { Self { @@ -77,6 +78,7 @@ impl Panels { settings: state::SettingsState::new( data_dir, wallet.clone(), + daemon_backend, internal_bitcoind.is_some(), ), } @@ -134,7 +136,13 @@ impl App { data_dir: PathBuf, internal_bitcoind: Option, ) -> (App, Command) { - let mut panels = Panels::new(&cache, wallet.clone(), data_dir, internal_bitcoind.as_ref()); + let mut panels = Panels::new( + &cache, + wallet.clone(), + data_dir, + daemon.backend(), + internal_bitcoind.as_ref(), + ); let cmd = panels.home.reload(daemon.clone(), wallet.clone()); ( Self { diff --git a/gui/src/app/state/settings/mod.rs b/gui/src/app/state/settings/mod.rs index d3e72e6d..0d758bf8 100644 --- a/gui/src/app/state/settings/mod.rs +++ b/gui/src/app/state/settings/mod.rs @@ -21,15 +21,22 @@ pub struct SettingsState { data_dir: PathBuf, wallet: Arc, setting: Option>, + daemon_backend: DaemonBackend, internal_bitcoind: bool, } impl SettingsState { - pub fn new(data_dir: PathBuf, wallet: Arc, internal_bitcoind: bool) -> Self { + pub fn new( + data_dir: PathBuf, + wallet: Arc, + daemon_backend: DaemonBackend, + internal_bitcoind: bool, + ) -> Self { Self { data_dir, wallet, setting: None, + daemon_backend, internal_bitcoind, } } @@ -97,7 +104,7 @@ impl State for SettingsState { if let Some(setting) = &self.setting { setting.view(cache) } else { - view::settings::list(cache) + view::settings::list(cache, self.daemon_backend == DaemonBackend::RemoteBackend) } } diff --git a/gui/src/app/view/settings.rs b/gui/src/app/view/settings.rs index 433a6f5a..92352f9d 100644 --- a/gui/src/app/view/settings.rs +++ b/gui/src/app/view/settings.rs @@ -32,7 +32,7 @@ use crate::{ hw::HardwareWallet, }; -pub fn list(cache: &Cache) -> Element { +pub fn list(cache: &Cache, is_remote_backend: bool) -> Element { dashboard( &Menu::Settings, cache, @@ -44,23 +44,27 @@ pub fn list(cache: &Cache) -> Element { Button::new(text("Settings").size(30).bold()) .style(theme::Button::Transparent) .on_press(Message::Menu(Menu::Settings))) - .push( - Container::new( - Button::new( - Row::new() - .push(badge::Badge::new(icon::bitcoin_icon())) - .push(text("Bitcoin Core").bold()) - .padding(10) - .spacing(20) - .align_items(Alignment::Center) - .width(Length::Fill), + .push_maybe( + if !is_remote_backend { + Some(Container::new( + Button::new( + Row::new() + .push(badge::Badge::new(icon::bitcoin_icon())) + .push(text("Bitcoin Core").bold()) + .padding(10) + .spacing(20) + .align_items(Alignment::Center) + .width(Length::Fill), + ) + .width(Length::Fill) + .style(theme::Button::TransparentBorder) + .on_press(Message::Settings(SettingsMessage::EditBitcoindSettings)) ) .width(Length::Fill) - .style(theme::Button::TransparentBorder) - .on_press(Message::Settings(SettingsMessage::EditBitcoindSettings)) - ) - .width(Length::Fill) - .style(theme::Container::Card(theme::Card::Simple)) + .style(theme::Container::Card(theme::Card::Simple))) + } else { + None + } ) .push( Container::new(