mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
[Editor] Change global menu icons theme independently of editor theme.
This commit is contained in:
parent
f2cc3f1275
commit
fd98c963ba
6 changed files with 96 additions and 34 deletions
|
|
@ -158,17 +158,20 @@ void EditorDockManager::_update_layout() {
|
|||
return;
|
||||
}
|
||||
dock_context_popup->docks_updated();
|
||||
_update_docks_menu();
|
||||
update_docks_menu();
|
||||
EditorNode::get_singleton()->save_editor_layout_delayed();
|
||||
}
|
||||
|
||||
void EditorDockManager::_update_docks_menu() {
|
||||
void EditorDockManager::update_docks_menu() {
|
||||
docks_menu->clear();
|
||||
docks_menu->reset_size();
|
||||
|
||||
const Ref<Texture2D> default_icon = docks_menu->get_editor_theme_icon(SNAME("Window"));
|
||||
const Color closed_icon_color_mod = Color(1, 1, 1, 0.5);
|
||||
|
||||
bool global_menu = !bool(EDITOR_GET("interface/editor/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU);
|
||||
bool dark_mode = DisplayServer::get_singleton()->is_dark_mode_supported() && DisplayServer::get_singleton()->is_dark_mode();
|
||||
|
||||
// Add docks.
|
||||
docks_menu_docks.clear();
|
||||
int id = 0;
|
||||
|
|
@ -182,7 +185,7 @@ void EditorDockManager::_update_docks_menu() {
|
|||
} else {
|
||||
docks_menu->add_item(dock.value.title, id);
|
||||
}
|
||||
const Ref<Texture2D> icon = dock.value.icon_name ? docks_menu->get_editor_theme_icon(dock.value.icon_name) : dock.value.icon;
|
||||
const Ref<Texture2D> icon = dock.value.icon_name ? docks_menu->get_editor_theme_native_menu_icon(dock.value.icon_name, global_menu, dark_mode) : dock.value.icon;
|
||||
docks_menu->set_item_icon(id, icon.is_valid() ? icon : default_icon);
|
||||
if (!dock.value.open) {
|
||||
docks_menu->set_item_icon_modulate(id, closed_icon_color_mod);
|
||||
|
|
@ -613,7 +616,7 @@ void EditorDockManager::load_docks_from_config(Ref<ConfigFile> p_layout, const S
|
|||
int ofs = p_layout->get_value(p_section, "dock_hsplit_" + itos(i + 1));
|
||||
hsplits[i]->set_split_offset(ofs * EDSCALE);
|
||||
}
|
||||
_update_docks_menu();
|
||||
update_docks_menu();
|
||||
}
|
||||
|
||||
void EditorDockManager::bottom_dock_show_placement_popup(const Rect2i &p_position, Control *p_dock) {
|
||||
|
|
@ -848,7 +851,7 @@ EditorDockManager::EditorDockManager() {
|
|||
docks_menu = memnew(PopupMenu);
|
||||
docks_menu->set_hide_on_item_selection(false);
|
||||
docks_menu->connect(SceneStringName(id_pressed), callable_mp(this, &EditorDockManager::_docks_menu_option));
|
||||
EditorNode::get_singleton()->get_gui_base()->connect(SceneStringName(theme_changed), callable_mp(this, &EditorDockManager::_update_docks_menu));
|
||||
EditorNode::get_singleton()->get_gui_base()->connect(SceneStringName(theme_changed), callable_mp(this, &EditorDockManager::update_docks_menu));
|
||||
}
|
||||
|
||||
void DockContextPopup::_notification(int p_what) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue