Skip to content

Commit 7b175c8

Browse files
more work
1 parent 7d7de3b commit 7b175c8

File tree

5 files changed

+50
-43
lines changed

5 files changed

+50
-43
lines changed

src/app.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,19 +303,19 @@ impl App for AppState {
303303
if let Some(screen) = self.screen_stack.last_mut() {
304304
screen.refresh();
305305
} else {
306-
self.active_root_screen_mut().refresh();
306+
self.active_root_screen_mut().refresh_on_arrival();
307307
}
308308
}
309309
AppAction::GoToMainScreen => {
310310
self.screen_stack = vec![];
311-
self.active_root_screen_mut().refresh();
311+
self.active_root_screen_mut().refresh_on_arrival();
312312
}
313313
AppAction::BackendTask(task) => {
314314
self.handle_backend_task(task);
315315
}
316316
AppAction::SetMainScreen(root_screen_type) => {
317317
self.selected_main_screen = root_screen_type;
318-
self.active_root_screen_mut().refresh();
318+
self.active_root_screen_mut().refresh_on_arrival();
319319
self.current_app_context()
320320
.update_settings(root_screen_type)
321321
.ok();

src/ui/identities/identities_screen.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use crate::ui::add_key_screen::AddKeyScreen;
88
use crate::ui::components::left_panel::add_left_panel;
99
use crate::ui::components::top_panel::add_top_panel;
1010
use crate::ui::key_info_screen::KeyInfoScreen;
11+
use crate::ui::transfers::TransferScreen;
1112
use crate::ui::withdrawals::WithdrawalScreen;
1213
use crate::ui::{RootScreenType, Screen, ScreenLike, ScreenType};
1314
use dash_sdk::dpp::identity::accessors::IdentityGettersV0;
@@ -20,7 +21,6 @@ use eframe::emath::Align;
2021
use egui::{Color32, Frame, Margin, RichText, Ui};
2122
use egui_extras::{Column, TableBuilder};
2223
use std::sync::{Arc, Mutex};
23-
use crate::ui::transfers::TransferScreen;
2424

2525
pub struct IdentitiesScreen {
2626
pub identities: Arc<Mutex<Vec<QualifiedIdentity>>>,
@@ -282,12 +282,12 @@ impl IdentitiesScreen {
282282
});
283283
row.col(|ui| {
284284
if ui.button("Transfer").clicked() {
285-
action = AppAction::AddScreen(
286-
Screen::TransferScreen(TransferScreen::new(
285+
action = AppAction::AddScreen(Screen::TransferScreen(
286+
TransferScreen::new(
287287
qualified_identity.clone(),
288288
&self.app_context,
289-
)),
290-
);
289+
),
290+
));
291291
}
292292
});
293293
});

src/ui/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use crate::ui::identities::add_new_wallet_screen::AddNewWalletScreen;
99
use crate::ui::key_info_screen::KeyInfoScreen;
1010
use crate::ui::keys_screen::KeysScreen;
1111
use crate::ui::network_chooser_screen::NetworkChooserScreen;
12+
use crate::ui::transfers::TransferScreen;
1213
use crate::ui::transition_visualizer_screen::TransitionVisualizerScreen;
1314
use crate::ui::withdrawals::WithdrawalScreen;
1415
use dash_sdk::dpp::identity::Identity;
@@ -22,7 +23,6 @@ use identities::register_dpns_name_screen::RegisterDpnsNameScreen;
2223
use std::fmt;
2324
use std::hash::Hash;
2425
use std::sync::Arc;
25-
use crate::ui::transfers::TransferScreen;
2626

2727
mod add_key_screen;
2828
pub mod components;
@@ -32,9 +32,9 @@ pub(crate) mod identities;
3232
pub mod key_info_screen;
3333
pub mod keys_screen;
3434
pub mod network_chooser_screen;
35+
pub mod transfers;
3536
pub mod transition_visualizer_screen;
3637
pub mod withdrawals;
37-
pub mod transfers;
3838

3939
#[derive(Debug, Clone, Copy, Ord, PartialOrd, Eq, PartialEq, Hash)]
4040
pub enum RootScreenType {
@@ -204,7 +204,9 @@ pub enum MessageType {
204204
#[enum_dispatch]
205205
pub trait ScreenLike {
206206
fn refresh(&mut self) {}
207-
fn refresh_on_arrival(&mut self) {}
207+
fn refresh_on_arrival(&mut self) {
208+
self.refresh()
209+
}
208210
fn ui(&mut self, ctx: &Context) -> AppAction;
209211
fn display_message(&mut self, _message: &str, _message_type: MessageType) {}
210212
fn display_task_result(&mut self, _backend_task_success_result: BackendTaskSuccessResult) {
@@ -250,9 +252,7 @@ impl Screen {
250252
Screen::AddNewIdentityScreen(_) => ScreenType::AddExistingIdentity,
251253
Screen::RegisterDpnsNameScreen(_) => ScreenType::RegisterDpnsName,
252254
Screen::AddNewWalletScreen(_) => ScreenType::AddNewWallet,
253-
Screen::TransferScreen(screen) => {
254-
ScreenType::TransferScreen(screen.identity.clone())
255-
}
255+
Screen::TransferScreen(screen) => ScreenType::TransferScreen(screen.identity.clone()),
256256
}
257257
}
258258
}

src/ui/transfers/mod.rs

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use std::convert::identity;
21
use crate::app::AppAction;
32
use crate::context::AppContext;
43
use crate::model::qualified_identity::QualifiedIdentity;
54
use crate::platform::identity::IdentityTask;
65
use crate::platform::BackendTask;
76
use crate::ui::components::top_panel::add_top_panel;
7+
use crate::ui::key_info_screen::KeyInfoScreen;
88
use crate::ui::{MessageType, Screen, ScreenLike};
99
use dash_sdk::dashcore_rpc::dashcore::Address;
1010
use dash_sdk::dpp::fee::Credits;
@@ -13,9 +13,9 @@ use dash_sdk::dpp::identity::identity_public_key::accessors::v0::IdentityPublicK
1313
use dash_sdk::dpp::identity::{KeyType, Purpose, SecurityLevel};
1414
use dash_sdk::platform::IdentityPublicKey;
1515
use eframe::egui::{self, Context, Ui};
16+
use std::convert::identity;
1617
use std::str::FromStr;
1718
use std::sync::Arc;
18-
use crate::ui::key_info_screen::KeyInfoScreen;
1919

2020
pub struct TransferScreen {
2121
pub identity: QualifiedIdentity,
@@ -44,31 +44,30 @@ impl TransferScreen {
4444
}
4545

4646
fn render_key_selection(&mut self, ui: &mut Ui) {
47-
48-
ui.horizontal(|ui| {
49-
ui.label("Select Key:");
50-
51-
egui::ComboBox::from_id_salt("key_selector")
52-
.selected_text(match &self.selected_key {
53-
Some(key) => format!("Key ID: {}", key.id()),
54-
None => "Select a key".to_string(),
55-
})
56-
.show_ui(ui, |ui| {
57-
if self.app_context.developer_mode {
58-
for key in self.identity.identity.public_keys().values() {
59-
let label =
60-
format!("Key ID: {} (Purpose: {:?})", key.id(), key.purpose());
61-
ui.selectable_value(&mut self.selected_key, Some(key.clone()), label);
62-
}
63-
} else {
64-
for key in self.identity.available_transfer_keys() {
65-
let label =
66-
format!("Key ID: {} (Purpose: {:?})", key.id(), key.purpose());
67-
ui.selectable_value(&mut self.selected_key, Some(key.clone()), label);
68-
}
47+
ui.horizontal(|ui| {
48+
ui.label("Select Key:");
49+
50+
egui::ComboBox::from_id_salt("key_selector")
51+
.selected_text(match &self.selected_key {
52+
Some(key) => format!("Key ID: {}", key.id()),
53+
None => "Select a key".to_string(),
54+
})
55+
.show_ui(ui, |ui| {
56+
if self.app_context.developer_mode {
57+
for key in self.identity.identity.public_keys().values() {
58+
let label =
59+
format!("Key ID: {} (Purpose: {:?})", key.id(), key.purpose());
60+
ui.selectable_value(&mut self.selected_key, Some(key.clone()), label);
6961
}
70-
});
71-
});
62+
} else {
63+
for key in self.identity.available_transfer_keys() {
64+
let label =
65+
format!("Key ID: {} (Purpose: {:?})", key.id(), key.purpose());
66+
ui.selectable_value(&mut self.selected_key, Some(key.clone()), label);
67+
}
68+
}
69+
});
70+
});
7271
}
7372

7473
fn render_amount_input(&mut self, ui: &mut Ui) {
@@ -206,9 +205,17 @@ impl ScreenLike for TransferScreen {
206205
};
207206

208207
if !has_keys {
209-
ui.heading(format!("You do not have any transfer keys loaded for this {}.", self.identity.identity_type));
208+
ui.heading(format!(
209+
"You do not have any transfer keys loaded for this {}.",
210+
self.identity.identity_type
211+
));
210212

211-
let key = self.identity.identity.get_first_public_key_matching(Purpose::TRANSFER, SecurityLevel::full_range().into(), KeyType::all_key_types().into(), false);
213+
let key = self.identity.identity.get_first_public_key_matching(
214+
Purpose::TRANSFER,
215+
SecurityLevel::full_range().into(),
216+
KeyType::all_key_types().into(),
217+
false,
218+
);
212219

213220
if let Some(key) = key {
214221
if ui.button("Check Transfer Key").clicked() {

src/ui/withdrawals/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use crate::model::qualified_identity::{IdentityType, QualifiedIdentity};
44
use crate::platform::identity::IdentityTask;
55
use crate::platform::BackendTask;
66
use crate::ui::components::top_panel::add_top_panel;
7+
use crate::ui::key_info_screen::KeyInfoScreen;
78
use crate::ui::{MessageType, Screen, ScreenLike};
89
use dash_sdk::dashcore_rpc::dashcore::Address;
910
use dash_sdk::dpp::fee::Credits;
@@ -14,7 +15,6 @@ use dash_sdk::platform::IdentityPublicKey;
1415
use eframe::egui::{self, Context, Ui};
1516
use std::str::FromStr;
1617
use std::sync::Arc;
17-
use crate::ui::key_info_screen::KeyInfoScreen;
1818

1919
pub struct WithdrawalScreen {
2020
pub identity: QualifiedIdentity,

0 commit comments

Comments
 (0)