// Copyright 2023 The Grim Developers // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. use crate::gui::platform::PlatformCallbacks; use crate::gui::views::wallets::setup::ConnectionSetup; use crate::gui::views::wallets::wallet::types::{WalletTab, WalletTabType}; use crate::gui::views::wallets::wallet::WalletContent; use crate::wallet::{ExternalConnection, Wallet}; /// Wallet settings tab content. pub struct WalletSettings { /// Connection setup content. conn_setup: ConnectionSetup } impl Default for WalletSettings { fn default() -> Self { // Check external connections availability on first tab opening. ExternalConnection::start_ext_conn_availability_check(); Self { conn_setup: ConnectionSetup::default(), } } } impl WalletTab for WalletSettings { fn get_type(&self) -> WalletTabType { WalletTabType::Settings } fn ui(&mut self, ui: &mut egui::Ui, frame: &mut eframe::Frame, wallet: &mut Wallet, cb: &dyn PlatformCallbacks) { // Show progress if wallet is loading after opening without an error. if wallet.is_closing() || (wallet.get_data().is_none() && !wallet.load_error()) { WalletContent::loading_progress_ui(ui, wallet); return; } self.conn_setup.wallet_ui(ui, frame, wallet, cb); } }