highlight scene title for startup scenes

This commit is contained in:
Dmitry Stepanov
2026-09-17 21:43:43 +03:00
parent a41f929403
commit dc5700a0b9
2 changed files with 21 additions and 10 deletions
+2 -1
View File
@@ -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());
}
+19 -9
View File
@@ -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));
}
}