From e2dbcf6308570f46051c7056a54daffa493ddcd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Tue, 8 Nov 2022 16:52:41 +0100 Subject: [PATCH] Add "Show Hotkeys" to Help Menu (#5863) Co-authored-by: Lars Hvam --- .../core/zif_abapgit_gui_hotkey_ctl.intf.abap | 3 +++ src/ui/zcl_abapgit_gui_chunk_lib.clas.abap | 5 ++++- src/ui/zcl_abapgit_gui_hotkey_ctl.clas.abap | 19 ++++++++++++++++--- src/ui/zcl_abapgit_gui_router.clas.abap | 6 +++++- src/zif_abapgit_definitions.intf.abap | 1 + 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/ui/core/zif_abapgit_gui_hotkey_ctl.intf.abap b/src/ui/core/zif_abapgit_gui_hotkey_ctl.intf.abap index c25c874bc..6857907c0 100644 --- a/src/ui/core/zif_abapgit_gui_hotkey_ctl.intf.abap +++ b/src/ui/core/zif_abapgit_gui_hotkey_ctl.intf.abap @@ -11,4 +11,7 @@ INTERFACE zif_abapgit_gui_hotkey_ctl VALUE(rt_registered_hotkeys) TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr RAISING zcx_abapgit_exception. + METHODS set_visible + IMPORTING + iv_visible TYPE abap_bool. ENDINTERFACE. diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap index c0978ee90..4954c1a94 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap @@ -336,7 +336,10 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION. iv_act = zif_abapgit_definitions=>c_action-go_explore )->add( iv_txt = 'Changelog' - iv_act = zif_abapgit_definitions=>c_action-changelog ). + iv_act = zif_abapgit_definitions=>c_action-changelog + )->add( + iv_txt = 'Hotkeys' + iv_act = zif_abapgit_definitions=>c_action-show_hotkeys ). ENDMETHOD. diff --git a/src/ui/zcl_abapgit_gui_hotkey_ctl.clas.abap b/src/ui/zcl_abapgit_gui_hotkey_ctl.clas.abap index fcaa4b072..e6a07c34f 100644 --- a/src/ui/zcl_abapgit_gui_hotkey_ctl.clas.abap +++ b/src/ui/zcl_abapgit_gui_hotkey_ctl.clas.abap @@ -23,7 +23,8 @@ CLASS zcl_abapgit_gui_hotkey_ctl DEFINITION DATA: mt_hotkeys TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr, - ms_user_settings TYPE zif_abapgit_definitions=>ty_s_user_settings. + ms_user_settings TYPE zif_abapgit_definitions=>ty_s_user_settings, + mv_visible TYPE abap_bool. CLASS-DATA gv_hint_was_shown TYPE abap_bool . METHODS render_scripts @@ -176,14 +177,14 @@ CLASS zcl_abapgit_gui_hotkey_ctl IMPLEMENTATION. lv_hint = |Close window with upper right corner 'X'|. IF lv_hotkey IS NOT INITIAL. - lv_hint = lv_hint && | or press '{ -hotkey }' again|. + lv_hint = lv_hint && | or press '{ -hotkey }'|. ENDIF. ri_html = zcl_abapgit_gui_chunk_lib=>render_infopanel( iv_div_id = 'hotkeys' iv_title = 'Hotkeys' iv_hint = lv_hint - iv_hide = abap_true + iv_hide = boolc( mv_visible = abap_false ) iv_scrollable = abap_false io_content = ri_html ). @@ -193,5 +194,17 @@ CLASS zcl_abapgit_gui_hotkey_ctl IMPLEMENTATION. && || ). ENDIF. + " Always reset visibility here. Closing of the popup has to be done by the + " user and is handeled in JS. + mv_visible = abap_false. + ENDMETHOD. + + + METHOD zif_abapgit_gui_hotkey_ctl~set_visible. + + mv_visible = iv_visible. + + ENDMETHOD. + ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index 770994bed..96da5211c 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -266,7 +266,11 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. WHEN zif_abapgit_definitions=>c_action-changelog. " abapGit full changelog zcl_abapgit_services_abapgit=>open_abapgit_changelog( ). rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. - + WHEN zif_abapgit_definitions=>c_action-show_hotkeys. " show hotkeys + zcl_abapgit_ui_factory=>get_gui( + )->zif_abapgit_gui_services~get_hotkeys_ctl( + )->set_visible( abap_true ). + rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. ENDCASE. ENDMETHOD. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 22afb06db..9aefd0cbf 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -508,6 +508,7 @@ INTERFACE zif_abapgit_definitions documentation TYPE string VALUE 'documentation', changelog TYPE string VALUE 'changelog', clipboard TYPE string VALUE 'clipboard', + show_hotkeys TYPE string VALUE 'show_hotkeys', END OF c_action. CONSTANTS c_spagpa_param_repo_key TYPE c LENGTH 20 VALUE 'REPO_KEY' ##NO_TEXT. CONSTANTS c_spagpa_param_package TYPE c LENGTH 20 VALUE 'PACKAGE' ##NO_TEXT.