Format code & condense roll column header code

This commit is contained in:
pjht 2023-06-14 14:34:22 -05:00
parent a49744a79d
commit e96762ae64
Signed by: pjht
GPG Key ID: CA239FC6934E6F3A
2 changed files with 46 additions and 87 deletions

View File

@ -41,31 +41,31 @@ impl EditFilmsWindow {
ui.set_enabled(self.operation_win.is_none());
modal.title(ui, "Edit films");
// modal.frame(ui, |ui| {
for (i, film) in app_state.films.iter() {
ui.horizontal(|ui| {
ui.label(film.to_string());
if ui.button("Edit").clicked() {
self.operation_win =
Some(EditFilmWindow::new(i, &app_state.films, &ctx).into());
modal.close();
}
let film_used = app_state.rolls.iter().any(|roll| roll.film == i);
if ui
.add_enabled(!film_used, egui::Button::new("Delete"))
.clicked()
{
self.operation_win = Some(DeleteFilmWindow::new(i, &ctx).into());
modal.close();
}
if film_used {
ui.label("(Used by one or more rolls, cannot delete)");
}
});
}
if ui.button("Add").clicked() {
self.operation_win = Some(AddFilmWindow::new(&ctx).into());
modal.close();
}
for (i, film) in app_state.films.iter() {
ui.horizontal(|ui| {
ui.label(film.to_string());
if ui.button("Edit").clicked() {
self.operation_win =
Some(EditFilmWindow::new(i, &app_state.films, &ctx).into());
modal.close();
}
let film_used = app_state.rolls.iter().any(|roll| roll.film == i);
if ui
.add_enabled(!film_used, egui::Button::new("Delete"))
.clicked()
{
self.operation_win = Some(DeleteFilmWindow::new(i, &ctx).into());
modal.close();
}
if film_used {
ui.label("(Used by one or more rolls, cannot delete)");
}
});
}
if ui.button("Add").clicked() {
self.operation_win = Some(AddFilmWindow::new(&ctx).into());
modal.close();
}
// });
modal.buttons(ui, |ui| {
modal.button(ui, "Close");
@ -209,10 +209,10 @@ impl OperationWindow for DeleteFilmWindow {
modal.show(|ui| {
modal.title(ui, "Confirm delete");
modal.frame(ui, |ui| {
modal.body(ui, format!(
"Really delete {}?",
&app_state.films[self.film].name
));
modal.body(
ui,
format!("Really delete {}?", &app_state.films[self.film].name),
);
});
modal.buttons(ui, |ui| {
if modal.caution_button(ui, "Yes").clicked() {

View File

@ -140,15 +140,19 @@ impl eframe::App for MyApp {
.striped(true)
.num_columns(6)
.show(ui, |ui| {
fn add_column_heading(
ui: &mut Ui,
name: &str,
field_id: RollField,
roll_sort: &mut (RollField, SortDirection),
resort_roll_list: &mut bool,
) {
let label_text = if field_id == roll_sort.0 {
RichText::new(format!("{} {}", name, roll_sort.1))
fn add_clickable_label(ui: &mut Ui, text: impl Into<WidgetText>) -> Response {
ui.add(Label::new(text).sense(Sense::click()))
}
for (name, field_id) in [
("ID", RollField::Id),
("Name", RollField::Name),
("Date", RollField::Date),
("Exposures", RollField::Exposures),
("Film", RollField::Film),
("Shot at", RollField::ShotAt),
] {
let label_text = if field_id == self.roll_sort.0 {
RichText::new(format!("{} {}", name, self.roll_sort.1))
} else {
RichText::new(name)
};
@ -156,62 +160,17 @@ impl eframe::App for MyApp {
.add(Label::new(label_text).sense(Sense::click()))
.clicked()
{
if roll_sort.0 == field_id {
roll_sort.1 = match roll_sort.1 {
if self.roll_sort.0 == field_id {
self.roll_sort.1 = match &mut self.roll_sort.1 {
SortDirection::Ascending => SortDirection::Descending,
SortDirection::Descending => SortDirection::Ascending,
}
} else {
*roll_sort = (field_id, SortDirection::Ascending);
self.roll_sort = (field_id, SortDirection::Ascending);
}
*resort_roll_list = true;
self.state.resort_roll_list = true;
};
}
fn add_clickable_label(ui: &mut Ui, text: impl Into<WidgetText>) -> Response {
ui.add(Label::new(text).sense(Sense::click()))
}
add_column_heading(
ui,
"ID",
RollField::Id,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
add_column_heading(
ui,
"Name",
RollField::Name,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
add_column_heading(
ui,
"Date",
RollField::Date,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
add_column_heading(
ui,
"Exposures",
RollField::Exposures,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
add_column_heading(
ui,
"Film",
RollField::Film,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
add_column_heading(
ui,
"Shot at",
RollField::ShotAt,
&mut self.roll_sort,
&mut self.state.resort_roll_list,
);
ui.end_row();
if self.state.resort_roll_list {
self.sorted_rolls = self.state.rolls.clone();