mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 10:11:57 +03:00
Merge pull request #108079 from arkology/scenes-list
Add opened scenes list button
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
#include "editor/themes/editor_scale.h"
|
||||
#include "scene/gui/box_container.h"
|
||||
#include "scene/gui/button.h"
|
||||
#include "scene/gui/menu_button.h"
|
||||
#include "scene/gui/panel.h"
|
||||
#include "scene/gui/panel_container.h"
|
||||
#include "scene/gui/popup_menu.h"
|
||||
@@ -54,6 +55,8 @@ void EditorSceneTabs::_notification(int p_what) {
|
||||
tabbar_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("tabbar_background"), SNAME("TabContainer")));
|
||||
scene_tabs->add_theme_constant_override("icon_max_width", get_theme_constant(SNAME("class_icon_size"), EditorStringName(Editor)));
|
||||
|
||||
scene_list->set_button_icon(get_editor_theme_icon(SNAME("GuiTabMenuHl")));
|
||||
|
||||
scene_tab_add->set_button_icon(get_editor_theme_icon(SNAME("Add")));
|
||||
scene_tab_add->add_theme_color_override("icon_normal_color", Color(0.6f, 0.6f, 0.6f, 0.8f));
|
||||
|
||||
@@ -227,6 +230,16 @@ void EditorSceneTabs::_custom_menu_option(int p_option) {
|
||||
}
|
||||
}
|
||||
|
||||
void EditorSceneTabs::_update_scene_list() {
|
||||
PopupMenu *popup = scene_list->get_popup();
|
||||
popup->clear();
|
||||
|
||||
for (int i = 0; i < scene_tabs->get_tab_count(); i++) {
|
||||
popup->add_item(scene_tabs->get_tab_title(i), i);
|
||||
popup->set_item_icon(i, scene_tabs->get_tab_icon(i));
|
||||
}
|
||||
}
|
||||
|
||||
void EditorSceneTabs::update_scene_tabs() {
|
||||
static bool menu_initialized = false;
|
||||
tab_preview_panel->hide();
|
||||
@@ -443,6 +456,15 @@ EditorSceneTabs::EditorSceneTabs() {
|
||||
scene_tab_add_ph->set_custom_minimum_size(scene_tab_add->get_minimum_size());
|
||||
tabbar_container->add_child(scene_tab_add_ph);
|
||||
|
||||
scene_list = memnew(MenuButton);
|
||||
scene_list->set_flat(false);
|
||||
scene_list->set_accessibility_name(TTRC("Show Opened Scenes List"));
|
||||
scene_list->set_shortcut(ED_SHORTCUT("editor/show_opened_scenes_list", TTRC("Show Opened Scenes List"), KeyModifierMask::ALT | Key::T));
|
||||
scene_list->get_popup()->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
|
||||
scene_list->get_popup()->connect("about_to_popup", callable_mp(this, &EditorSceneTabs::_update_scene_list));
|
||||
scene_list->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &EditorSceneTabs::_scene_tab_changed));
|
||||
tabbar_container->add_child(scene_list);
|
||||
|
||||
// On-hover tab preview.
|
||||
|
||||
Control *tab_preview_anchor = memnew(Control);
|
||||
|
||||
Reference in New Issue
Block a user