mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'Martin/remove-server-from-list' into 'master'
Feature: Delete button in the servers menu See merge request veloren/veloren!3144
This commit is contained in:
commit
0ebff57a59
@ -38,6 +38,7 @@
|
||||
"common.random": "Random",
|
||||
"common.empty": "Empty",
|
||||
"common.confirm": "Confirm",
|
||||
"common.delete_server": "Delete Server",
|
||||
|
||||
// Settings Window title
|
||||
"common.interface_settings": "Interface Settings",
|
||||
|
@ -353,6 +353,14 @@ impl PlayState for MainMenuState {
|
||||
.client()
|
||||
.map(|init| init.auth_trust(auth_server, trust));
|
||||
},
|
||||
MainMenuEvent::DeleteServer { server_index } => {
|
||||
let net_settings = &mut global_state.settings.networking;
|
||||
net_settings.servers.remove(server_index);
|
||||
|
||||
global_state
|
||||
.settings
|
||||
.save_to_file_warn(&global_state.config_dir);
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,9 @@ pub enum Event {
|
||||
// Note: Keeping in case we re-add the disclaimer
|
||||
//DisclaimerAccepted,
|
||||
AuthServerTrust(String, bool),
|
||||
DeleteServer {
|
||||
server_index: usize,
|
||||
},
|
||||
}
|
||||
|
||||
pub struct LoginInfo {
|
||||
@ -164,6 +167,7 @@ enum Message {
|
||||
TrustPromptAdd,
|
||||
TrustPromptCancel,
|
||||
CloseError,
|
||||
DeleteServer,
|
||||
/* Note: Keeping in case we re-add the disclaimer
|
||||
*AcceptDisclaimer, */
|
||||
}
|
||||
@ -423,6 +427,11 @@ impl Controls {
|
||||
*error = None;
|
||||
}
|
||||
},
|
||||
Message::DeleteServer => {
|
||||
events.push(Event::DeleteServer {
|
||||
server_index: self.selected_server_index.unwrap(),
|
||||
});
|
||||
},
|
||||
/* Note: Keeping in case we re-add the disclaimer */
|
||||
/*Message::AcceptDisclaimer => {
|
||||
if let Screen::Disclaimer { .. } = &self.screen {
|
||||
|
@ -10,6 +10,7 @@ use iced::{
|
||||
|
||||
pub struct Screen {
|
||||
back_button: button::State,
|
||||
delete_button: button::State,
|
||||
server_buttons: Vec<button::State>,
|
||||
servers_list: scrollable::State,
|
||||
}
|
||||
@ -18,6 +19,7 @@ impl Screen {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
back_button: Default::default(),
|
||||
delete_button: Default::default(),
|
||||
server_buttons: vec![],
|
||||
servers_list: Default::default(),
|
||||
}
|
||||
@ -50,6 +52,19 @@ impl Screen {
|
||||
.width(Length::Fill)
|
||||
.align_x(Align::Center);
|
||||
|
||||
let delete_button = Container::new(
|
||||
Container::new(neat_button(
|
||||
&mut self.delete_button,
|
||||
i18n.get("common.delete_server"),
|
||||
FILL_FRAC_ONE,
|
||||
button_style,
|
||||
Some(Message::DeleteServer),
|
||||
))
|
||||
.max_width(200),
|
||||
)
|
||||
.width(Length::Fill)
|
||||
.align_x(Align::Center);
|
||||
|
||||
let mut list = Scrollable::new(&mut self.servers_list)
|
||||
.spacing(8)
|
||||
.align_items(Align::Start)
|
||||
@ -104,11 +119,17 @@ impl Screen {
|
||||
|
||||
Container::new(
|
||||
Container::new(
|
||||
Column::with_children(vec![title.into(), list.into(), back_button.into()])
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill)
|
||||
.spacing(10)
|
||||
.padding(20),
|
||||
Column::with_children(vec![
|
||||
title.into(),
|
||||
list.into(),
|
||||
Row::with_children(vec![delete_button.into(), back_button.into()])
|
||||
.width(Length::Fill)
|
||||
.into(),
|
||||
])
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill)
|
||||
.spacing(10)
|
||||
.padding(20),
|
||||
)
|
||||
.style(
|
||||
style::container::Style::color_with_double_cornerless_border(
|
||||
|
Loading…
Reference in New Issue
Block a user