diff --git a/board-builder-impl-egui/src/main.rs b/board-builder-impl-egui/src/main.rs index b285d73..5668c7b 100644 --- a/board-builder-impl-egui/src/main.rs +++ b/board-builder-impl-egui/src/main.rs @@ -8,6 +8,7 @@ use rfd::FileDialog; use board_builder::{ Board, CoordTransformer, read_board_from_file, write_board_to_file }; use std::path::Path; +use std::collections::HashSet; use std::rc::Rc; use std::cell::RefCell; @@ -303,9 +304,15 @@ impl EditLabelsDialog { 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()); + board.labels.insert(key, HashSet::new()); } } + if self.add_value_dialog.open && selected_label_key != &String::new() { + if let StringDialogResponse::Accepted(value) = + self.add_value_dialog.ui(ui, "Add Value") { + board.labels.get_mut(selected_label_key).unwrap().insert(value); + } + } }); } } diff --git a/board.zip b/board.zip index 07a2e2f..a15919d 100644 Binary files a/board.zip and b/board.zip differ diff --git a/src/lib.rs b/src/lib.rs index a1c1373..e856c6d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,7 +14,7 @@ pub struct Node { #[derive(Serialize, Deserialize, Debug, Default)] #[serde(default)] pub struct Board { - pub labels: HashMap>, + pub labels: HashMap>, pub nodes: HashMap, } impl Board {