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.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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user