Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a keyboard shortcut to perform one-click deploy with devices in the list #99405

Merged
merged 1 commit into from
Dec 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions editor/editor_run_native.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ void EditorRunNative::_notification(int p_what) {
if (changed) {
PopupMenu *popup = remote_debug->get_popup();
popup->clear();
int device_shortcut_id = 1;
for (int i = 0; i < EditorExport::get_singleton()->get_export_preset_count(); i++) {
Ref<EditorExportPreset> preset = EditorExport::get_singleton()->get_export_preset(i);
Ref<EditorExportPlatform> eep = preset->get_platform();
Expand All @@ -70,15 +71,20 @@ void EditorRunNative::_notification(int p_what) {
popup->add_icon_item(eep->get_option_icon(j), eep->get_option_label(j), 10000 * platform_idx + j);
popup->set_item_tooltip(-1, eep->get_option_tooltip(j));
popup->set_item_indent(-1, 2);
if (device_shortcut_id <= 4) {
// Assign shortcuts for the first 4 devices added in the list.
popup->set_item_shortcut(-1, ED_GET_SHORTCUT(vformat("remote_deploy/deploy_to_device_%d", device_shortcut_id)), true);
device_shortcut_id += 1;
}
}
}
}
if (popup->get_item_count() == 0) {
remote_debug->set_disabled(true);
remote_debug->set_tooltip_text(TTR("No Remote Debug export presets configured."));
remote_debug->set_tooltip_text(TTR("No Remote Deploy export presets configured."));
} else {
remote_debug->set_disabled(false);
remote_debug->set_tooltip_text(TTR("Remote Debug"));
remote_debug->set_tooltip_text(TTR("Remote Deploy"));
}

first = false;
Expand Down Expand Up @@ -129,8 +135,8 @@ Error EditorRunNative::start_run_native(int p_id) {
bool is_arch_enabled = preset->get(preset_arch);

if (!is_arch_enabled) {
String warning_message = vformat(TTR("Warning: The CPU architecture '%s' is not active in your export preset.\n\n"), Variant(architecture));
warning_message += TTR("Run 'Remote Debug' anyway?");
String warning_message = vformat(TTR("Warning: The CPU architecture \"%s\" is not active in your export preset.\n\n"), Variant(architecture));
warning_message += TTR("Run \"Remote Deploy\" anyway?");

run_native_confirm->set_text(warning_message);
run_native_confirm->popup_centered();
Expand Down Expand Up @@ -185,11 +191,17 @@ bool EditorRunNative::is_deploy_debug_remote_enabled() const {
}

EditorRunNative::EditorRunNative() {
ED_SHORTCUT("remote_deploy/deploy_to_device_1", TTR("Deploy to First Device in List"), KeyModifierMask::SHIFT | Key::F5);
ED_SHORTCUT_OVERRIDE("remote_deploy/deploy_to_device_1", "macos", KeyModifierMask::META | KeyModifierMask::SHIFT | Key::B);
ED_SHORTCUT("remote_deploy/deploy_to_device_2", TTR("Deploy to Second Device in List"));
ED_SHORTCUT("remote_deploy/deploy_to_device_3", TTR("Deploy to Third Device in List"));
ED_SHORTCUT("remote_deploy/deploy_to_device_4", TTR("Deploy to Fourth Device in List"));

remote_debug = memnew(MenuButton);
remote_debug->set_flat(false);
remote_debug->set_theme_type_variation("RunBarButton");
remote_debug->get_popup()->connect(SceneStringName(id_pressed), callable_mp(this, &EditorRunNative::start_run_native));
remote_debug->set_tooltip_text(TTR("Remote Debug"));
remote_debug->set_tooltip_text(TTR("Remote Deploy"));
remote_debug->set_disabled(true);

add_child(remote_debug);
Expand Down