From 079c4c90049028d1dc7eb8f96abfbc07c20799ee Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Thu, 12 May 2022 14:03:59 -0500 Subject: [PATCH] Delete label keys and values --- board-builder-impl-egui/src/main.rs | 9 ++++++--- src/lib.rs | 10 ++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/board-builder-impl-egui/src/main.rs b/board-builder-impl-egui/src/main.rs index d293abb..0673a84 100644 --- a/board-builder-impl-egui/src/main.rs +++ b/board-builder-impl-egui/src/main.rs @@ -274,7 +274,7 @@ impl EditNodeDialog { let default = choices.iter().next().unwrap().clone(); let current = self.node.labels.entry(key.clone()).or_insert(default); ComboBox::from_label(key) - .selected_text(format!("{}", current)) + .selected_text(current.to_string()) .show_ui(ui, |ui| { for choice in choices { ui.selectable_value(current, choice.clone(), choice); @@ -332,7 +332,9 @@ impl EditLabelsDialog { self.add_key_dialog.show(); } if ui.button("-").clicked() { - todo!(); + board.remove_label_key(selected_label_key); + *selected_label_key = String::new(); + *selected_label_value = String::new(); } }); col[1].group(|ui| { @@ -347,7 +349,8 @@ impl EditLabelsDialog { self.add_value_dialog.show(); } if ui.button("-").clicked() { - todo!(); + board.remove_label_value(selected_label_key, selected_label_value); + *selected_label_value = String::new(); } }); }); diff --git a/src/lib.rs b/src/lib.rs index 3645c1f..dadb801 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -43,6 +43,16 @@ impl Board { } } + pub fn remove_label_key(&mut self, key: &str) { + self.labels.remove(key); + } + + pub fn remove_label_value(&mut self, key: &str, value: &str) { + if let Some(l) = self.labels.get_mut(key) { + l.remove(value); + } + } + pub fn add_edge(&mut self, from: usize, to: usize) { let node = self.nodes.get_mut(&from).expect("Could not find node"); node.edges.insert(to);