diff options
Diffstat (limited to '')
-rw-r--r-- | src/c_defs.go | 7 | ||||
-rw-r--r-- | src/c_lhosts.go | 9 | ||||
-rw-r--r-- | src/c_utils.go | 2 | ||||
-rw-r--r-- | src/i_events.go | 7 | ||||
-rw-r--r-- | src/i_info.go | 3 | ||||
-rw-r--r-- | src/i_insert.go | 7 | ||||
-rw-r--r-- | src/i_ui.go | 38 |
7 files changed, 45 insertions, 28 deletions
diff --git a/src/c_defs.go b/src/c_defs.go index d899720..f0126da 100644 --- a/src/c_defs.go +++ b/src/c_defs.go @@ -135,6 +135,13 @@ const ( var ( HOST_ICONS = [4]string{" ", " ", " ", " "} DIRS_ICONS = [2]string{" ", " "} + RDP_QUALITY = [3]string{"Low", "Medium", "High"} + PROTOCOL_STR = [PROTOCOL_MAX + 1]string{ + "SSH", + "RDP", + "Single command", + "OpenStack CLI", + } ) var DEFAULT_OPTS = HardOpts{ diff --git a/src/c_lhosts.go b/src/c_lhosts.go index 6e69a79..877135c 100644 --- a/src/c_lhosts.go +++ b/src/c_lhosts.go @@ -160,11 +160,8 @@ func (lhost *HostList) count() int { } func (host *HostNode) protocol_str() string { - switch host.Protocol { - case PROTOCOL_SSH: return "SSH" - case PROTOCOL_RDP: return "RDP" - case PROTOCOL_CMD: return "Single command" - case PROTOCOL_OS: return "OpenStack CLI" - default: return "" + if host.Protocol > PROTOCOL_MAX { + return "" } + return PROTOCOL_STR[host.Protocol] } diff --git a/src/c_utils.go b/src/c_utils.go index 8ee2fe1..2aa3fec 100644 --- a/src/c_utils.go +++ b/src/c_utils.go @@ -175,7 +175,7 @@ func c_decrypt_str(str string) (string, error) { return string(out), err } -func c_get_secret_gpg_keyring(ui *HardUI) [][2]string { +func c_get_secret_gpg_keyring() [][2]string { var keys [][2]string var sed_out bytes.Buffer gpg_fmt := []string{ diff --git a/src/i_events.go b/src/i_events.go index de92428..35f7a4c 100644 --- a/src/i_events.go +++ b/src/i_events.go @@ -621,6 +621,7 @@ func i_events(data *HardData) { case INS_SSH_JUMP_PRIV: ui.buff = data.insert.Jump.Priv case INS_RDP_DOMAIN: ui.buff = data.insert.Domain case INS_RDP_FILE: ui.buff = data.insert.RDPFile + case INS_RDP_QUALITY: break case INS_SSH_OK, INS_RDP_OK: data.ui.insert_sel_ok = false @@ -672,7 +673,8 @@ func i_events(data *HardData) { INS_RDP_DOMAIN, INS_RDP_USER, INS_RDP_PASS, - INS_RDP_FILE: + INS_RDP_FILE, + INS_RDP_QUALITY: if event.Key() == tcell.KeyEnter { switch data.ui.insert_sel { case INS_SSH_HOST, @@ -711,6 +713,9 @@ func i_events(data *HardData) { data.insert.Domain = ui.buff case INS_RDP_FILE: data.insert.RDPFile = ui.buff + case INS_RDP_QUALITY: + tmp, _ := strconv.Atoi(ui.buff) + data.insert.Quality = uint8(tmp) } data.ui.insert_sel_ok = false ui.buff = "" diff --git a/src/i_info.go b/src/i_info.go index f36a998..7efd683 100644 --- a/src/i_info.go +++ b/src/i_info.go @@ -255,7 +255,6 @@ func i_info_rdp(ui HardUI, host *HostNode, line int) int { } if line += 1; line > ui.dim[H] - 3 { return line } // rdp shit - qual := [3]string{"Low", "Medium", "High"} i_draw_text(ui.s, (ui.dim[W] / 3) + 3, line, ui.dim[W] - 2, line, ui.style[TITLE_STYLE], "Screen size: ") @@ -277,7 +276,7 @@ func i_info_rdp(ui HardUI, host *HostNode, line int) int { ui.style[TITLE_STYLE], "Quality: ") i_draw_text(ui.s, (ui.dim[W] / 3) + 12, line, ui.dim[W] - 2, line, - ui.style[DEF_STYLE], qual[host.Quality]) + ui.style[DEF_STYLE], RDP_QUALITY[host.Quality]) if line += 2; line > ui.dim[H] - 3 { return line } if host.Drive != nil { i_draw_text(ui.s, diff --git a/src/i_insert.go b/src/i_insert.go index dac18a6..0e08f6c 100644 --- a/src/i_insert.go +++ b/src/i_insert.go @@ -358,6 +358,13 @@ func i_draw_insert_rdp(ui HardUI, line int, win Quad, in *HostNode) int { } red = false if line += 2; win.T + line >= win.B { return line } + text = "---- Window settings ----" + i_draw_text(ui.s, ui.dim[W] / 2 - len(text) / 2, win.T + line, win.R - 1, + win.T + line, ui.style[DEF_STYLE], text) + if line += 2; win.T + line >= win.B { return line } + i_draw_text_box(ui, win.T + line, win, "Quality", RDP_QUALITY[in.Quality], + INS_RDP_QUALITY, ui.insert_sel, red) + if line += 2; win.T + line >= win.B { return line } i_draw_ok_butt(ui, win.T + line, INS_RDP_OK, ui.insert_sel) return line } diff --git a/src/i_ui.go b/src/i_ui.go index 9c9c229..f8cb2aa 100644 --- a/src/i_ui.go +++ b/src/i_ui.go @@ -43,7 +43,7 @@ * POSSIBILITY OF SUCH DAMAGE. * * hardflip: src/i_ui.go - * Wed Mar 27 15:48:56 2024 + * Fri Apr 12 13:53:42 2024 * Joe * * interfacing with the user @@ -358,21 +358,19 @@ func i_prompt_mkdir(ui HardUI, curr *ItemsNode) { ui.s.ShowCursor(len(prompt) + 1 + len(path) + len(ui.buff), ui.dim[H] - 1) } -func i_prompt_type(ui HardUI) { - i_draw_msg(ui.s, 4, ui.style[BOX_STYLE], ui.dim, " Connection type ") - i_draw_text(ui.s, 2, ui.dim[H] - 6, ui.dim[W] - 2, ui.dim[H] - 6, - ui.style[DEF_STYLE], "[1] SSH") - i_draw_text(ui.s, 2, ui.dim[H] - 5, ui.dim[W] - 2, ui.dim[H] - 5, - ui.style[DEF_STYLE], "[2] RDP") - i_draw_text(ui.s, 2, ui.dim[H] - 4, ui.dim[W] - 2, ui.dim[H] - 4, - ui.style[DEF_STYLE], "[3] Single command") - i_draw_text(ui.s, 2, ui.dim[H] - 3, ui.dim[W] - 2, ui.dim[H] - 3, - ui.style[DEF_STYLE], "[4] OpenStack CLI") - text := "Type: " - i_draw_text(ui.s, 0, - ui.dim[H] - 1, ui.dim[W] - 1, ui.dim[H] - 1, - ui.style[DEF_STYLE], text) - ui.s.ShowCursor(len(text), ui.dim[H] - 1) +func i_prompt_list(ui HardUI, name, prompt string, list []string) { + i := len(list) + i_draw_msg(ui.s, i, ui.style[BOX_STYLE], ui.dim, " " + name + " ") + for k, v := range list { + i_draw_text(ui.s, 2, ui.dim[H] - 2 - i, + ui.dim[W] - 2, ui.dim[H] - 2 - i, + ui.style[DEF_STYLE], "[" + strconv.Itoa(k + 1) + "] " + v) + i -= 1 + } + i_draw_text(ui.s, 1, + ui.dim[H] - 1, ui.dim[W] - 1, ui.dim[H] - 1, + ui.style[DEF_STYLE], prompt) + ui.s.ShowCursor(len(prompt) + 2, ui.dim[H] - 1) } func i_prompt_generic(ui HardUI, prompt string, secret bool, home_dir string) { @@ -647,7 +645,7 @@ func i_ui(data_dir string) { } if data.opts.GPG == DEFAULT_OPTS.GPG && data.litems.head == nil { data.ui.mode = WELCOME_MODE - data.keys = c_get_secret_gpg_keyring(&data.ui) + data.keys = c_get_secret_gpg_keyring() } for { data.ui.s.Clear() @@ -682,7 +680,8 @@ func i_ui(data_dir string) { if data.ui.insert_sel_ok == true { switch data.ui.insert_sel { case INS_PROTOCOL: - i_prompt_type(data.ui) + i_prompt_list(data.ui, "Connection type", "Type:", + PROTOCOL_STR[:]) case INS_SSH_HOST, INS_SSH_JUMP_HOST, INS_RDP_HOST: @@ -707,6 +706,9 @@ func i_ui(data_dir string) { i_prompt_generic(data.ui, "Domain: ", false, "") case INS_RDP_FILE: i_prompt_generic(data.ui, "RDP file: ", false, home_dir) + case INS_RDP_QUALITY: + i_prompt_list(data.ui, "hey", "Quality:", + RDP_QUALITY[:]) } } else if data.insert_err != nil { i_draw_insert_err_msg(data.ui, data.insert_err) |