Move label dialog to own component

This commit is contained in:
Dane Johnson 2022-05-11 15:25:59 -05:00
parent 1eeb59a4ac
commit 8300f2a254

View File

@ -131,9 +131,7 @@ impl eframe::App for BoardBuilderApp {
} }
}); });
} }
if self.edit_labels_dialog.open { self.edit_labels_dialog.ui(ctx);
self.draw_edit_labels_dialog(ctx);
}
} }
} }
@ -190,52 +188,6 @@ impl BoardBuilderApp {
} }
} }
fn draw_edit_labels_dialog(&mut self, ctx: &Context) {
Window::new("Edit Labels")
.collapsible(false)
.show(ctx, |ui| {
let mut board = self.board.borrow_mut();
let selected_label_key = &mut self.edit_labels_dialog.selected_label_key;
let selected_label_value = &mut self.edit_labels_dialog.selected_label_value;
ui.columns(2, |col| {
col[0].group(|ui| {
for key_label in board.labels.keys() {
ui.selectable_value(selected_label_key, key_label.clone(), key_label);
}
});
col[0].horizontal(|ui| {
if ui.button("+").clicked() {
self.edit_labels_dialog.add_key_dialog.show();
}
if ui.button("-").clicked() {
todo!();
}
});
col[1].group(|ui| {
if let Some(value_labels) = board.labels.get(selected_label_key) {
for value_label in value_labels {
ui.selectable_value(selected_label_value, value_label.clone(), value_label);
}
}
});
col[1].horizontal(|ui| {
if ui.button("+").clicked() {
todo!();
}
if ui.button("-").clicked() {
todo!();
}
});
});
if self.edit_labels_dialog.add_key_dialog.open {
if let StringDialogResponse::Accepted(key) =
self.edit_labels_dialog.add_key_dialog.ui(ui, "Add Key") {
board.labels.insert(key, Vec::new());
}
}
});
}
fn dispatch_click(&mut self, btn: PointerButton, x: f32, y: f32) { fn dispatch_click(&mut self, btn: PointerButton, x: f32, y: f32) {
use EditMode::*; use EditMode::*;
use PointerButton::*; use PointerButton::*;
@ -310,8 +262,52 @@ impl EditLabelsDialog {
self.board = board; self.board = board;
self.open = true; self.open = true;
} }
fn close(&mut self) {
self.open = false; fn ui(&mut self, ctx: &Context) {
Window::new("Edit Labels")
.collapsible(false)
.open(&mut self.open)
.show(ctx, |ui| {
let mut board = self.board.borrow_mut();
let selected_label_key = &mut self.selected_label_key;
let selected_label_value = &mut self.selected_label_value;
ui.columns(2, |col| {
col[0].group(|ui| {
for key_label in board.labels.keys() {
ui.selectable_value(selected_label_key, key_label.clone(), key_label);
}
});
col[0].horizontal(|ui| {
if ui.button("+").clicked() {
self.add_key_dialog.show();
}
if ui.button("-").clicked() {
todo!();
}
});
col[1].group(|ui| {
if let Some(value_labels) = board.labels.get(selected_label_key) {
for value_label in value_labels {
ui.selectable_value(selected_label_value, value_label.clone(), value_label);
}
}
});
col[1].horizontal(|ui| {
if ui.button("+").clicked() {
todo!();
}
if ui.button("-").clicked() {
todo!();
}
});
});
if self.add_key_dialog.open {
if let StringDialogResponse::Accepted(key) =
self.add_key_dialog.ui(ui, "Add Key") {
board.labels.insert(key, Vec::new());
}
}
});
} }
} }