From 452b884aea0aec3faf9f9beca8250a2d320e60a8 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Tue, 25 Jul 2023 11:43:32 +0800 Subject: [PATCH] Minor cleanups Signed-off-by: Luca Della Vedova --- rmf_site_editor/src/site/deletion.rs | 7 +++++-- rmf_site_editor/src/site/lane.rs | 2 +- rmf_site_editor/src/widgets/diagnostic_window.rs | 14 ++++---------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/rmf_site_editor/src/site/deletion.rs b/rmf_site_editor/src/site/deletion.rs index 46637706..7215f502 100644 --- a/rmf_site_editor/src/site/deletion.rs +++ b/rmf_site_editor/src/site/deletion.rs @@ -89,7 +89,7 @@ struct DeletionParams<'w, 's> { levels: Query<'w, 's, Entity, With>, select: EventWriter<'w, 's, Select>, log: EventWriter<'w, 's, Log>, - issues: Query<'w, 's, &'static mut Issue>, + issues: Query<'w, 's, (Entity, &'static mut Issue)>, } pub struct DeletionPlugin; @@ -224,8 +224,11 @@ fn cautious_delete(element: Entity, params: &mut DeletionParams) { } } - for mut issue in &mut params.issues { + for (e, mut issue) in &mut params.issues { issue.key.entities.remove(&element); + if issue.key.entities.is_empty() { + params.commands.entity(e).despawn_recursive(); + } } // Fetch the parent and delete this dependent diff --git a/rmf_site_editor/src/site/lane.rs b/rmf_site_editor/src/site/lane.rs index 153c3c30..ee6aa05a 100644 --- a/rmf_site_editor/src/site/lane.rs +++ b/rmf_site_editor/src/site/lane.rs @@ -408,7 +408,7 @@ pub fn handle_consider_associated_graph( } } -/// Unique UUID to identify issue of duplicated door names +/// Unique UUID to identify issue of duplicated dock names pub const DUPLICATED_DOCK_NAME_ISSUE_UUID: Uuid = Uuid::from_u128(0xca210e1025014ac2a4072bc956d76151u128); diff --git a/rmf_site_editor/src/widgets/diagnostic_window.rs b/rmf_site_editor/src/widgets/diagnostic_window.rs index fb341c47..d1e67d11 100644 --- a/rmf_site_editor/src/widgets/diagnostic_window.rs +++ b/rmf_site_editor/src/widgets/diagnostic_window.rs @@ -23,7 +23,7 @@ use bevy::ecs::system::SystemParam; use bevy::prelude::*; use bevy_egui::egui::{Button, Checkbox, Context, Grid, ImageButton, ScrollArea, Window}; -#[derive(Resource, Debug, Clone)] +#[derive(Resource, Debug, Clone, Default)] pub struct DiagnosticWindowState { pub show: bool, pub selected: Option>, @@ -39,15 +39,6 @@ pub struct DiagnosticParams<'w, 's> { pub issues: Query<'w, 's, (&'static Issue, &'static Parent)>, } -impl Default for DiagnosticWindowState { - fn default() -> Self { - Self { - show: true, - selected: None, - } - } -} - pub struct DiagnosticWindow<'a, 'w1, 's1, 'w2, 's2> { events: &'a mut AppEvents<'w1, 's1>, params: &'a mut DiagnosticParams<'w2, 's2>, @@ -134,6 +125,9 @@ impl<'a, 'w1, 's1, 'w2, 's2> DiagnosticWindow<'a, 'w1, 's1, 'w2, 's2> { .auto_shrink([false, false]) .show(ui, |ui| { let mut issue_still_exists = false; + if self.params.issues.is_empty() { + ui.label("No issues found"); + } for (issue, parent) in &self.params.issues { if props.filtered_issue_kinds.contains(&issue.key.kind) || props.filtered_issues.contains(&issue.key)