diff --git a/src/gui/gui2_togglebutton.cpp b/src/gui/gui2_togglebutton.cpp index 840f914d58..01fbb1f104 100644 --- a/src/gui/gui2_togglebutton.cpp +++ b/src/gui/gui2_togglebutton.cpp @@ -52,6 +52,10 @@ bool GuiToggleButton::getValue() const return value; } +void GuiToggleButton::toggle() { + onClick(); // trigger the click event used to toggle probe view vie key. +} + GuiToggleButton* GuiToggleButton::setValue(bool value) { if (this->value == value) diff --git a/src/gui/gui2_togglebutton.h b/src/gui/gui2_togglebutton.h index edcb2eed39..65474a6a13 100644 --- a/src/gui/gui2_togglebutton.h +++ b/src/gui/gui2_togglebutton.h @@ -20,6 +20,7 @@ class GuiToggleButton : public GuiButton bool getValue() const; GuiToggleButton* setValue(bool value); + void toggle(); private: void onClick(); }; diff --git a/src/gui/hotkeyConfig.cpp b/src/gui/hotkeyConfig.cpp index e0857f423b..256cfc8628 100644 --- a/src/gui/hotkeyConfig.cpp +++ b/src/gui/hotkeyConfig.cpp @@ -230,6 +230,7 @@ Keys::Keys() : // Science crew screen science_scan_object("SCIENCE_SCAN_OBJECT", "S"), science_scan_abort("SCIENCE_SCAN_ABORT", "D"), + science_toggle_probe_view("SCIENCE_TOGGLE_PROBE_VIEW"), science_select_next_scannable("SCIENCE_SELECT_NEXT_SCANNABLE", "C"), science_scan_param_increase{{ {"SCIENCE_SCAN_PARAM_INCREASE_1"}, @@ -435,6 +436,7 @@ void Keys::init() // Science science_scan_object.setLabel(tr("hotkey_menu", "Science"), tr("hotkey_Science", "Scan object")); science_scan_abort.setLabel(tr("hotkey_menu", "Science"), tr("hotkey_Science", "Abort scan")); + science_toggle_probe_view.setLabel(tr("hotkey_menu", "Science"), tr("hotkey_Science", "Toggle probe view")); science_select_next_scannable.setLabel(tr("hotkey_menu", "Science"), tr("hotkey_Science", "Select next scannable object")); for (auto n = 0u; n < science_scan_param_increase.size(); n++) { diff --git a/src/gui/hotkeyConfig.h b/src/gui/hotkeyConfig.h index 67d2172338..338ecbd24a 100644 --- a/src/gui/hotkeyConfig.h +++ b/src/gui/hotkeyConfig.h @@ -120,6 +120,7 @@ class Keys sp::io::Keybinding science_scan_object; sp::io::Keybinding science_scan_abort; sp::io::Keybinding science_select_next_scannable; + sp::io::Keybinding science_toggle_probe_view; std::array science_scan_param_increase; std::array science_scan_param_decrease; std::array science_scan_param_set; diff --git a/src/screens/crew6/scienceScreen.cpp b/src/screens/crew6/scienceScreen.cpp index 22e05bc8fc..81ee593bee 100644 --- a/src/screens/crew6/scienceScreen.cpp +++ b/src/screens/crew6/scienceScreen.cpp @@ -549,6 +549,12 @@ void ScienceScreen::onUpdate() { if (my_spaceship) { + // Toggle probe view from the Science hotkey. + auto rl = my_spaceship.getComponent(); + if (keys.science_toggle_probe_view.getDown() && rl && rl->linked_entity) + { + probe_view_button->toggle(); + } // Initiate a scan on scannable objects. if (keys.science_scan_object.getDown() && my_spaceship.hasComponent() &&