Format code & condense roll column header code
This commit is contained in:
parent
a49744a79d
commit
e96762ae64
@ -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() {
|
||||
|
75
src/main.rs
75
src/main.rs
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user