From 33a1f0a196a30144670a6886e56b9a272ff6e479 Mon Sep 17 00:00:00 2001 From: vaner-org <9658355+vaner-org@users.noreply.github.com> Date: Fri, 3 Apr 2026 03:53:41 +0530 Subject: [PATCH] Add additional accents for main scene --- editor/docks/filesystem_dock.cpp | 4 ++++ editor/scene/editor_scene_tabs.cpp | 21 +++++++++++++++++++++ editor/scene/editor_scene_tabs.h | 2 ++ 3 files changed, 27 insertions(+) diff --git a/editor/docks/filesystem_dock.cpp b/editor/docks/filesystem_dock.cpp index e7b8067c60..fead1d9d04 100644 --- a/editor/docks/filesystem_dock.cpp +++ b/editor/docks/filesystem_dock.cpp @@ -464,6 +464,10 @@ void FileSystemDock::_update_tree(const Vector &p_uncollapsed_paths, boo ti->set_metadata(0, favorite); ti->set_accept_children(false); + if (favorite == main_scene_path) { + ti->set_custom_color(0, get_theme_color(SNAME("accent_color"), EditorStringName(Editor))); + } + if (!favorite.ends_with("/")) { EditorResourcePreview::get_singleton()->queue_resource_preview(favorite, callable_mp(this, &FileSystemDock::_tree_thumbnail_done).bind(tree_update_id, ti->get_instance_id())); } diff --git a/editor/scene/editor_scene_tabs.cpp b/editor/scene/editor_scene_tabs.cpp index 65784f0a06..06107a5d70 100644 --- a/editor/scene/editor_scene_tabs.cpp +++ b/editor/scene/editor_scene_tabs.cpp @@ -294,6 +294,7 @@ void EditorSceneTabs::update_scene_tabs() { void EditorSceneTabs::_update_tab_titles() { bool show_rb = EDITOR_GET("interface/scene_tabs/show_script_button"); + const String main_scene_path = ResourceUID::ensure_path(GLOBAL_GET("application/run/main_scene")); // Get all scene names, which may be ambiguous. Vector disambiguated_scene_names; @@ -316,6 +317,18 @@ void EditorSceneTabs::_update_tab_titles() { bool unsaved = EditorUndoRedoManager::get_singleton()->is_history_unsaved(EditorNode::get_editor_data().get_scene_history_id(i)); scene_tabs->set_tab_title(i, disambiguated_scene_names[i] + (unsaved ? "(*)" : "")); + if (!main_scene_path.is_empty() && main_scene_path == EditorNode::get_editor_data().get_scene_path(i)) { + scene_tabs->set_font_color_override(i, TabBar::DRAW_DISABLED, get_theme_color(SNAME("accent_color"), EditorStringName(Editor)) * Color(1, 1, 1, 0.7)); + scene_tabs->set_font_color_override(i, TabBar::DRAW_NORMAL, get_theme_color(SNAME("accent_color"), EditorStringName(Editor)) * Color(1, 1, 1, 0.7)); + scene_tabs->set_font_color_override(i, TabBar::DRAW_HOVER, get_theme_color(SNAME("accent_color"), EditorStringName(Editor))); + scene_tabs->set_font_color_override(i, TabBar::DRAW_PRESSED, get_theme_color(SNAME("accent_color"), EditorStringName(Editor))); + } else { + scene_tabs->set_font_color_override(i, TabBar::DRAW_DISABLED, get_theme_color(SNAME("font_disabled_color"), SNAME("TabBar"))); + scene_tabs->set_font_color_override(i, TabBar::DRAW_NORMAL, get_theme_color(SNAME("font_unselected_color"), SNAME("TabBar"))); + scene_tabs->set_font_color_override(i, TabBar::DRAW_HOVER, get_theme_color(SNAME("font_hovered_color"), SNAME("TabBar"))); + scene_tabs->set_font_color_override(i, TabBar::DRAW_PRESSED, get_theme_color(SNAME("font_selected_color"), SNAME("TabBar"))); + } + if (NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)) { RID dock_rid = NativeMenu::get_singleton()->get_system_menu(NativeMenu::DOCK_MENU_ID); int global_menu_index = scene_tabs->get_tab_metadata(i); @@ -425,6 +438,12 @@ int EditorSceneTabs::get_current_tab() const { return scene_tabs->get_current_tab(); } +void EditorSceneTabs::_project_settings_changed() { + if (ProjectSettings::get_singleton()->check_changed_settings_in_group("application/run/main_scene")) { + update_scene_tabs(); + } +} + void EditorSceneTabs::_bind_methods() { ADD_SIGNAL(MethodInfo("tab_changed", PropertyInfo(Variant::INT, "tab_index"))); ADD_SIGNAL(MethodInfo("tab_closed", PropertyInfo(Variant::INT, "tab_index"))); @@ -502,4 +521,6 @@ EditorSceneTabs::EditorSceneTabs() { tab_preview->set_size(Size2(96, 96) * EDSCALE); tab_preview->set_position(Point2(2, 2) * EDSCALE); tab_preview_panel->add_child(tab_preview); + + ProjectSettings::get_singleton()->connect("settings_changed", callable_mp(this, &EditorSceneTabs::_project_settings_changed)); } diff --git a/editor/scene/editor_scene_tabs.h b/editor/scene/editor_scene_tabs.h index 8d38ebb75d..78a3070746 100644 --- a/editor/scene/editor_scene_tabs.h +++ b/editor/scene/editor_scene_tabs.h @@ -92,6 +92,8 @@ private: void _global_menu_scene(const Variant &p_tag); void _global_menu_new_window(const Variant &p_tag); + void _project_settings_changed(); + virtual void shortcut_input(const Ref &p_event) override; protected: