Merge pull request #106820 from OzelotVanilla/fix-editor-plugin-callback-path-param
Fix `EditorContextMenuPlugin` `CONTEXT_SLOT_FILESYSTEM_CREATE` does not receive path information for some menus
This commit is contained in:
commit
2fc072585d
@ -89,7 +89,7 @@
|
||||
Context menu of Script editor's script tabs. [method _popup_menu] will be called with the path to the currently edited script, while option callback will receive reference to that script.
|
||||
</constant>
|
||||
<constant name="CONTEXT_SLOT_FILESYSTEM_CREATE" value="3" enum="ContextMenuSlot">
|
||||
The "Create..." submenu of FileSystem dock's context menu, or the "New" section of the main context menu when empty space is clicked. [method _popup_menu] and option callback will be called with list of paths of the currently selected files. When clicking the empty space, the list of paths for popup method will be empty.
|
||||
The "Create..." submenu of FileSystem dock's context menu, or the "New" section of the main context menu when empty space is clicked. [method _popup_menu] and option callback will be called with the path of the currently selected folder, wrapped in a list. When clicking the empty space, the list of paths for popup method will be empty.
|
||||
</constant>
|
||||
<constant name="CONTEXT_SLOT_SCRIPT_EDITOR_CODE" value="4" enum="ContextMenuSlot">
|
||||
Context menu of Script editor's code editor. [method _popup_menu] will be called with the path to the [CodeEdit] node. You can fetch it using this code:
|
||||
|
@ -2613,7 +2613,12 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected
|
||||
default: {
|
||||
if (p_option >= EditorContextMenuPlugin::BASE_ID) {
|
||||
if (!EditorContextMenuPluginManager::get_singleton()->activate_custom_option(EditorContextMenuPlugin::CONTEXT_SLOT_FILESYSTEM, p_option, p_selected)) {
|
||||
EditorContextMenuPluginManager::get_singleton()->activate_custom_option(EditorContextMenuPlugin::CONTEXT_SLOT_FILESYSTEM_CREATE, p_option, p_selected);
|
||||
// For create new file option, pass the path location of mouse click position instead, to plugin callback.
|
||||
String fpath = current_path;
|
||||
if (!fpath.ends_with("/")) {
|
||||
fpath = fpath.get_base_dir();
|
||||
}
|
||||
EditorContextMenuPluginManager::get_singleton()->activate_custom_option(EditorContextMenuPlugin::CONTEXT_SLOT_FILESYSTEM_CREATE, p_option, { fpath });
|
||||
}
|
||||
} else if (p_option >= CONVERT_BASE_ID) {
|
||||
selected_conversion_id = p_option - CONVERT_BASE_ID;
|
||||
|
Loading…
x
Reference in New Issue
Block a user