diff options
Diffstat (limited to 'karlgui/src/views/edit.rs')
-rw-r--r-- | karlgui/src/views/edit.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/karlgui/src/views/edit.rs b/karlgui/src/views/edit.rs index 6162df1..d7d397d 100644 --- a/karlgui/src/views/edit.rs +++ b/karlgui/src/views/edit.rs @@ -18,13 +18,11 @@ impl ShowAndEdit { pub fn ui(&mut self, ui: &mut Ui, g: &mut Globals) { for t in g.tasks.values_mut() { let edit = self.edit == Some(t.id); - let changed = if edit { - if ui.button("💾 Save").clicked() { - self.edit = None; - true - } else { - false - } + let (changed, deleted) = if edit { + ( + ui.button("💾 Save").clicked(), + ui.button("🗑 Delete").clicked(), + ) } else { ui.add_enabled_ui(self.edit.is_none(), |ui| { if ui @@ -37,10 +35,15 @@ impl ShowAndEdit { self.edit = Some(t.id); } }); - false + (false, false) }; if changed { g.client.send_sync(ServerboundPacket::UpdateTask(t.clone())); + self.edit = None; + } + if deleted { + g.client.send_sync(ServerboundPacket::RemoveTask(t.id)); + self.edit = None; } t.ui(ui, edit); ui.separator(); |