Clean up code to determine whether a window will close
This commit is contained in:
parent
4dc64031b4
commit
bea57e2110
@ -31,9 +31,10 @@ impl Default for NewRollWindow {
|
|||||||
|
|
||||||
impl NewRollWindow {
|
impl NewRollWindow {
|
||||||
pub fn draw(&mut self, ctx: &egui::Context, app_state: &mut AppState) -> bool {
|
pub fn draw(&mut self, ctx: &egui::Context, app_state: &mut AppState) -> bool {
|
||||||
let mut open = true;
|
let mut close_unclicked = true;
|
||||||
let close_req = Window::new("New Roll")
|
let mut close_window = false;
|
||||||
.open(&mut open)
|
Window::new("New Roll")
|
||||||
|
.open(&mut close_unclicked)
|
||||||
.show(ctx, |ui| {
|
.show(ctx, |ui| {
|
||||||
ui.horizontal(|ui| {
|
ui.horizontal(|ui| {
|
||||||
let label = ui.label("ID: ");
|
let label = ui.label("ID: ");
|
||||||
@ -72,17 +73,13 @@ impl NewRollWindow {
|
|||||||
self.date,
|
self.date,
|
||||||
self.exps,
|
self.exps,
|
||||||
));
|
));
|
||||||
return true;
|
close_window = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if self.show_id_req_err {
|
if self.show_id_req_err {
|
||||||
ui.colored_label(Color32::DARK_RED, "Error: ID required");
|
ui.colored_label(Color32::DARK_RED, "Error: ID required");
|
||||||
}
|
}
|
||||||
false
|
});
|
||||||
})
|
!close_unclicked || close_window
|
||||||
.unwrap()
|
|
||||||
.inner
|
|
||||||
.unwrap_or(false);
|
|
||||||
!open || close_req
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
124
src/roll_view.rs
124
src/roll_view.rs
@ -22,76 +22,66 @@ impl RollViewWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn draw(&mut self, ctx: &egui::Context, app_state: &mut AppState) -> bool {
|
pub fn draw(&mut self, ctx: &egui::Context, app_state: &mut AppState) -> bool {
|
||||||
let mut open = true;
|
let mut close_unclicked = true;
|
||||||
let window = Window::new(format!("Roll {}", app_state.rolls[self.roll].id)).open(&mut open);
|
let mut close_window = false;
|
||||||
let deleted = window
|
let window = Window::new(format!("Roll {}", app_state.rolls[self.roll].id))
|
||||||
.show(ctx, |ui| {
|
.open(&mut close_unclicked);
|
||||||
let roll = &mut app_state.rolls[self.roll];
|
window.show(ctx, |ui| {
|
||||||
ui.label(format!("Name: {}", roll.name));
|
let roll = &mut app_state.rolls[self.roll];
|
||||||
ui.label(format!("Description: {}", roll.desc));
|
ui.label(format!("Name: {}", roll.name));
|
||||||
ui.label(format!("Date: {}", roll.date.format("%Y-%m-%d")));
|
ui.label(format!("Description: {}", roll.desc));
|
||||||
ui.label("Exposures:");
|
ui.label(format!("Date: {}", roll.date.format("%Y-%m-%d")));
|
||||||
ui.horizontal_top(|ui| {
|
ui.label("Exposures:");
|
||||||
ui.vertical(|ui| {
|
ui.horizontal_top(|ui| {
|
||||||
for (i, chunk) in roll.exposures.iter().chunks(5).into_iter().enumerate() {
|
ui.vertical(|ui| {
|
||||||
ui.horizontal(|ui| {
|
for (i, chunk) in roll.exposures.iter().chunks(5).into_iter().enumerate() {
|
||||||
for (j, exp) in chunk.enumerate() {
|
ui.horizontal(|ui| {
|
||||||
let num = i * 5 + j;
|
for (j, exp) in chunk.enumerate() {
|
||||||
let mut label = RichText::new(format!("{:02}", exp.num));
|
let num = i * 5 + j;
|
||||||
if exp.printed {
|
let mut label = RichText::new(format!("{:02}", exp.num));
|
||||||
if exp.damaged {
|
if exp.printed {
|
||||||
label = label.color(Color32::DARK_RED);
|
if exp.damaged {
|
||||||
} else {
|
label = label.color(Color32::DARK_RED);
|
||||||
label = label.color(Color32::DARK_BLUE);
|
} else {
|
||||||
}
|
label = label.color(Color32::DARK_BLUE);
|
||||||
}
|
}
|
||||||
ui.selectable_value(&mut self.exp, num as u8, label);
|
|
||||||
}
|
}
|
||||||
});
|
ui.selectable_value(&mut self.exp, num as u8, label);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ui.vertical(|ui| {
|
}
|
||||||
let exp = &mut roll.exposures[self.exp as usize];
|
|
||||||
ui.checkbox(&mut exp.printed, "Printed");
|
|
||||||
if !exp.printed {
|
|
||||||
exp.damaged = false;
|
|
||||||
}
|
|
||||||
if exp.printed {
|
|
||||||
ui.checkbox(&mut exp.damaged, "Damaged");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
if ui.button("Delete").clicked() {
|
ui.vertical(|ui| {
|
||||||
self.confirm_delete = true;
|
let exp = &mut roll.exposures[self.exp as usize];
|
||||||
}
|
ui.checkbox(&mut exp.printed, "Printed");
|
||||||
if self.confirm_delete {
|
if !exp.printed {
|
||||||
Window::new("Confirm delete")
|
exp.damaged = false;
|
||||||
.show(ctx, |ui| {
|
}
|
||||||
ui.heading(format!(
|
if exp.printed {
|
||||||
"Really delete roll {}?",
|
ui.checkbox(&mut exp.damaged, "Damaged");
|
||||||
app_state.rolls[self.roll].id
|
}
|
||||||
));
|
});
|
||||||
if ui.button("No").clicked() {
|
});
|
||||||
self.confirm_delete = false;
|
if ui.button("Delete").clicked() {
|
||||||
return false;
|
self.confirm_delete = true;
|
||||||
}
|
}
|
||||||
if ui.button("Yes").clicked() {
|
if self.confirm_delete {
|
||||||
app_state.rolls.remove(self.roll);
|
Window::new("Confirm delete").show(ctx, |ui| {
|
||||||
return true;
|
ui.heading(format!(
|
||||||
}
|
"Really delete roll {}?",
|
||||||
false
|
app_state.rolls[self.roll].id
|
||||||
})
|
));
|
||||||
.unwrap()
|
if ui.button("No").clicked() {
|
||||||
.inner
|
self.confirm_delete = false;
|
||||||
.unwrap_or(false)
|
}
|
||||||
} else {
|
if ui.button("Yes").clicked() {
|
||||||
false
|
app_state.rolls.remove(self.roll);
|
||||||
}
|
close_window = true;
|
||||||
})
|
}
|
||||||
.unwrap()
|
});
|
||||||
.inner
|
}
|
||||||
.unwrap_or(false);
|
});
|
||||||
!open || deleted
|
!close_unclicked || close_window
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn roll(&self) -> usize {
|
pub fn roll(&self) -> usize {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user