Move label dialog to own component
This commit is contained in:
parent
1eeb59a4ac
commit
8300f2a254
@ -131,9 +131,7 @@ impl eframe::App for BoardBuilderApp {
|
||||
}
|
||||
});
|
||||
}
|
||||
if self.edit_labels_dialog.open {
|
||||
self.draw_edit_labels_dialog(ctx);
|
||||
}
|
||||
self.edit_labels_dialog.ui(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) {
|
||||
use EditMode::*;
|
||||
use PointerButton::*;
|
||||
@ -310,8 +262,52 @@ impl EditLabelsDialog {
|
||||
self.board = board;
|
||||
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());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user