mirror of
https://github.com/godotengine/godot.git
synced 2026-02-07 11:21:49 +00:00
Merge pull request #113351 from DexterFstone/Add-context-menu-to-the-Video-RAM
Add context menu to the Video RAM tab of the Debugger bottom panel
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
|
||||
#include "script_editor_debugger.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "core/debugger/debugger_marshalls.h"
|
||||
#include "core/debugger/remote_debugger.h"
|
||||
#include "core/string/ustring.h"
|
||||
@@ -1113,6 +1114,8 @@ void ScriptEditorDebugger::_notification(int p_what) {
|
||||
vmem_notice_icon->set_texture(get_editor_theme_icon(SNAME("NodeInfo")));
|
||||
vmem_refresh->set_button_icon(get_editor_theme_icon(SNAME("Reload")));
|
||||
vmem_export->set_button_icon(get_editor_theme_icon(SNAME("Save")));
|
||||
vmem_item_menu->set_item_icon(VMEM_MENU_SHOW_IN_FILESYSTEM, get_editor_theme_icon(SNAME("ShowInFileSystem")));
|
||||
vmem_item_menu->set_item_icon(VMEM_MENU_SHOW_IN_EXPLORER, get_editor_theme_icon(SNAME("Filesystem")));
|
||||
search->set_right_icon(get_editor_theme_icon(SNAME("Search")));
|
||||
|
||||
reason->add_theme_color_override(SNAME("default_color"), get_theme_color(SNAME("error_color"), EditorStringName(Editor)));
|
||||
@@ -1842,6 +1845,45 @@ void ScriptEditorDebugger::_vmem_item_activated() {
|
||||
FileSystemDock::get_singleton()->navigate_to_path(path);
|
||||
}
|
||||
|
||||
void ScriptEditorDebugger::_vmem_tree_rmb_selected(const Vector2 &p_pos, MouseButton p_button) {
|
||||
if (p_button != MouseButton::RIGHT) {
|
||||
return;
|
||||
}
|
||||
|
||||
TreeItem *item = vmem_tree->get_selected();
|
||||
if (!item) {
|
||||
return;
|
||||
}
|
||||
|
||||
String path = item->get_text(0);
|
||||
if (path.is_empty() || !FileAccess::exists(path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
vmem_item_menu->set_position(vmem_tree->get_screen_position() + p_pos);
|
||||
vmem_item_menu->popup();
|
||||
}
|
||||
|
||||
void ScriptEditorDebugger::_vmem_item_menu_id_pressed(int p_option) {
|
||||
TreeItem *item = vmem_tree->get_selected();
|
||||
if (!item) {
|
||||
return;
|
||||
}
|
||||
|
||||
String path = item->get_text(0);
|
||||
switch (p_option) {
|
||||
case VMEM_MENU_SHOW_IN_FILESYSTEM: {
|
||||
FileSystemDock::get_singleton()->navigate_to_path(path);
|
||||
} break;
|
||||
case VMEM_MENU_SHOW_IN_EXPLORER: {
|
||||
OS::get_singleton()->shell_show_in_file_manager(ProjectSettings::get_singleton()->globalize_path(path), true);
|
||||
} break;
|
||||
case VMEM_MENU_OWNERS: {
|
||||
FileSystemDock::get_owners_dialog()->show(path);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptEditorDebugger::_clear_errors_list() {
|
||||
error_tree->clear();
|
||||
error_count = 0;
|
||||
@@ -2383,9 +2425,17 @@ Instead, use the monitors tab to obtain more precise VRAM usage.
|
||||
vmem_tree->set_hide_root(true);
|
||||
vmem_tree->set_scroll_hint_mode(Tree::SCROLL_HINT_MODE_BOTTOM);
|
||||
mc->add_child(vmem_tree);
|
||||
vmem_tree->set_allow_rmb_select(true);
|
||||
vmem_tree->connect("item_activated", callable_mp(this, &ScriptEditorDebugger::_vmem_item_activated));
|
||||
|
||||
vmem_tree->connect("item_mouse_selected", callable_mp(this, &ScriptEditorDebugger::_vmem_tree_rmb_selected));
|
||||
tabs->add_child(vmem_vb);
|
||||
|
||||
vmem_item_menu = memnew(PopupMenu);
|
||||
vmem_item_menu->connect(SceneStringName(id_pressed), callable_mp(this, &ScriptEditorDebugger::_vmem_item_menu_id_pressed));
|
||||
vmem_item_menu->add_item(TTRC("Show in FileSystem"), VMEM_MENU_SHOW_IN_FILESYSTEM);
|
||||
vmem_item_menu->add_item(TTRC("Show in File Manager"), VMEM_MENU_SHOW_IN_EXPLORER);
|
||||
vmem_item_menu->add_item(TTRC("View Owners..."), VMEM_MENU_OWNERS);
|
||||
add_child(vmem_item_menu);
|
||||
}
|
||||
|
||||
{ // misc
|
||||
|
||||
@@ -83,6 +83,12 @@ private:
|
||||
ACTION_DELETE_ALL_BREAKPOINTS,
|
||||
};
|
||||
|
||||
enum VMemMenu {
|
||||
VMEM_MENU_SHOW_IN_FILESYSTEM,
|
||||
VMEM_MENU_SHOW_IN_EXPLORER,
|
||||
VMEM_MENU_OWNERS,
|
||||
};
|
||||
|
||||
AcceptDialog *msgdialog = nullptr;
|
||||
|
||||
LineEdit *clicked_ctrl = nullptr;
|
||||
@@ -139,6 +145,7 @@ private:
|
||||
Button *vmem_export = nullptr;
|
||||
LineEdit *vmem_total = nullptr;
|
||||
TextureRect *vmem_notice_icon = nullptr;
|
||||
PopupMenu *vmem_item_menu = nullptr;
|
||||
|
||||
Tree *stack_dump = nullptr;
|
||||
LineEdit *search = nullptr;
|
||||
@@ -267,6 +274,8 @@ private:
|
||||
void _collapse_errors_list();
|
||||
|
||||
void _vmem_item_activated();
|
||||
void _vmem_tree_rmb_selected(const Vector2 &p_pos, MouseButton p_button);
|
||||
void _vmem_item_menu_id_pressed(int p_option);
|
||||
|
||||
void _profiler_activate(bool p_enable, int p_profiler);
|
||||
void _profiler_seeked();
|
||||
|
||||
@@ -385,6 +385,7 @@ private:
|
||||
|
||||
public:
|
||||
static FileSystemDock *get_singleton() { return singleton; }
|
||||
static DependencyEditorOwners *get_owners_dialog() { return singleton->owners_editor; }
|
||||
|
||||
protected:
|
||||
void _notification(int p_what);
|
||||
|
||||
Reference in New Issue
Block a user