From dc5700a0b9f39c6406743f788f6dcf86b22efdb6 Mon Sep 17 00:00:00 2001 From: Dmitry Stepanov Date: Thu, 17 Sep 2026 21:43:43 +0300 Subject: [PATCH] highlight scene title for startup scenes --- editor/src/lib.rs | 3 ++- editor/src/scene_viewer/mod.rs | 28 +++++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index ac40e5ff2..46da86131 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -1814,7 +1814,8 @@ impl Editor { engine.user_interfaces.first_mut(), ); - self.scene_viewer.sync_to_model(&self.scenes, engine); + self.scene_viewer + .sync_to_model(&self.scenes, &self.settings, engine); if let Some(exporter) = self.export_window.as_ref() { exporter.sync_to_model(engine.user_interfaces.first_mut()); } diff --git a/editor/src/scene_viewer/mod.rs b/editor/src/scene_viewer/mod.rs index dca4b7da0..4c09a7cab 100644 --- a/editor/src/scene_viewer/mod.rs +++ b/editor/src/scene_viewer/mod.rs @@ -720,6 +720,7 @@ impl SceneViewer { if let Some(entry) = scenes.entry_by_scene_id(scene_id) { if let Some(entry_path) = entry.path.as_ref() { settings.general.add_startup_scene(entry_path); + self.sender.send(Message::ForceSync); } } } @@ -727,6 +728,7 @@ impl SceneViewer { if let Some(entry) = scenes.entry_by_scene_id(scene_id) { if let Some(entry_path) = entry.path.as_ref() { settings.general.remove_startup_scene(entry_path); + self.sender.send(Message::ForceSync); } } } @@ -921,7 +923,7 @@ impl SceneViewer { } } - pub fn sync_to_model(&self, scenes: &SceneContainer, engine: &mut Engine) { + pub fn sync_to_model(&self, scenes: &SceneContainer, settings: &Settings, engine: &mut Engine) { // Sync tabs first. // Remove any excess tabs. @@ -967,14 +969,22 @@ impl SceneViewer { for tab in ui[self.tab_control].tabs.iter() { if let Some(scene) = scenes.entry_by_scene_id(tab.uuid) { - ui.send( - tab.header_content, - TextMessage::Text(format!( - "{}{}", - scene.name(), - if scene.need_save() { "*" } else { "" } - )), - ); + let mut title = String::with_capacity(64); + if scene.need_save() { + title += "* "; + } + let is_startup = scene + .path + .as_ref() + .is_some_and(|p| settings.general.startup_scenes.contains(p)); + if is_startup { + title += "["; + } + title += scene.name().as_str(); + if is_startup { + title += "]"; + } + ui.send(tab.header_content, TextMessage::Text(title)); } }