mirror of
https://github.com/veeso/termscp.git
synced 2026-04-05 09:41:53 -07:00
Updated dependencies; migrated tui-realm to 0.6.0
This commit is contained in:
@@ -74,65 +74,67 @@ impl SetupActivity {
|
||||
None => None,
|
||||
Some(msg) => match msg {
|
||||
// Input field <DOWN>
|
||||
(COMPONENT_INPUT_TEXT_EDITOR, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_INPUT_TEXT_EDITOR, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_RADIO_DEFAULT_PROTOCOL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_DEFAULT_PROTOCOL, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_RADIO_DEFAULT_PROTOCOL, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_RADIO_HIDDEN_FILES);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_HIDDEN_FILES, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_RADIO_HIDDEN_FILES, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_RADIO_UPDATES);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_UPDATES, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_RADIO_UPDATES, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_RADIO_GROUP_DIRS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_GROUP_DIRS, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_RADIO_GROUP_DIRS, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_INPUT_LOCAL_FILE_FMT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_LOCAL_FILE_FMT, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_INPUT_LOCAL_FILE_FMT, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_INPUT_REMOTE_FILE_FMT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_REMOTE_FILE_FMT, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_INPUT_REMOTE_FILE_FMT, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_INPUT_TEXT_EDITOR);
|
||||
None
|
||||
}
|
||||
// Input field <UP>
|
||||
(COMPONENT_INPUT_REMOTE_FILE_FMT, &MSG_KEY_UP) => {
|
||||
(COMPONENT_INPUT_REMOTE_FILE_FMT, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_INPUT_LOCAL_FILE_FMT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_LOCAL_FILE_FMT, &MSG_KEY_UP) => {
|
||||
(COMPONENT_INPUT_LOCAL_FILE_FMT, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_RADIO_GROUP_DIRS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_GROUP_DIRS, &MSG_KEY_UP) => {
|
||||
(COMPONENT_RADIO_GROUP_DIRS, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_RADIO_UPDATES);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_UPDATES, &MSG_KEY_UP) => {
|
||||
(COMPONENT_RADIO_UPDATES, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_RADIO_HIDDEN_FILES);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_HIDDEN_FILES, &MSG_KEY_UP) => {
|
||||
(COMPONENT_RADIO_HIDDEN_FILES, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_RADIO_DEFAULT_PROTOCOL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_RADIO_DEFAULT_PROTOCOL, &MSG_KEY_UP) => {
|
||||
(COMPONENT_RADIO_DEFAULT_PROTOCOL, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_INPUT_TEXT_EDITOR);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_TEXT_EDITOR, &MSG_KEY_UP) => {
|
||||
(COMPONENT_INPUT_TEXT_EDITOR, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_INPUT_REMOTE_FILE_FMT);
|
||||
None
|
||||
}
|
||||
// Error <ENTER> or <ESC>
|
||||
(COMPONENT_TEXT_ERROR, &MSG_KEY_ENTER) | (COMPONENT_TEXT_ERROR, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_ERROR, key) | (COMPONENT_TEXT_ERROR, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount text error
|
||||
self.umount_error();
|
||||
None
|
||||
@@ -161,7 +163,9 @@ impl SetupActivity {
|
||||
}
|
||||
(COMPONENT_RADIO_QUIT, _) => None,
|
||||
// Close help
|
||||
(COMPONENT_TEXT_HELP, &MSG_KEY_ENTER) | (COMPONENT_TEXT_HELP, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_HELP, key) | (COMPONENT_TEXT_HELP, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount help
|
||||
self.umount_help();
|
||||
None
|
||||
@@ -189,12 +193,12 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+H> Show help
|
||||
(_, &MSG_KEY_CTRL_H) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_H => {
|
||||
// Show help
|
||||
self.mount_help();
|
||||
None
|
||||
}
|
||||
(_, &MSG_KEY_TAB) => {
|
||||
(_, key) if key == &MSG_KEY_TAB => {
|
||||
// Change view
|
||||
if let Err(err) = self.action_change_tab(ViewLayout::SshKeys) {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -202,7 +206,7 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+R> Revert changes
|
||||
(_, &MSG_KEY_CTRL_R) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_R => {
|
||||
// Revert changes
|
||||
if let Err(err) = self.action_reset_config() {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -210,13 +214,13 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+S> Save
|
||||
(_, &MSG_KEY_CTRL_S) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_S => {
|
||||
// Show save
|
||||
self.mount_save_popup();
|
||||
None
|
||||
}
|
||||
// <ESC>
|
||||
(_, &MSG_KEY_ESC) => {
|
||||
(_, key) if key == &MSG_KEY_ESC => {
|
||||
self.action_on_esc();
|
||||
None
|
||||
}
|
||||
@@ -232,7 +236,9 @@ impl SetupActivity {
|
||||
None => None,
|
||||
Some(msg) => match msg {
|
||||
// Error <ENTER> or <ESC>
|
||||
(COMPONENT_TEXT_ERROR, &MSG_KEY_ENTER) | (COMPONENT_TEXT_ERROR, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_ERROR, key) | (COMPONENT_TEXT_ERROR, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount text error
|
||||
self.umount_error();
|
||||
None
|
||||
@@ -261,7 +267,9 @@ impl SetupActivity {
|
||||
}
|
||||
(COMPONENT_RADIO_QUIT, _) => None,
|
||||
// Close help
|
||||
(COMPONENT_TEXT_HELP, &MSG_KEY_ENTER) | (COMPONENT_TEXT_HELP, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_HELP, key) | (COMPONENT_TEXT_HELP, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount help
|
||||
self.umount_help();
|
||||
None
|
||||
@@ -300,28 +308,30 @@ impl SetupActivity {
|
||||
(COMPONENT_RADIO_SAVE, _) => None,
|
||||
// Edit SSH Key
|
||||
// <CTRL+H> Show help
|
||||
(_, &MSG_KEY_CTRL_H) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_H => {
|
||||
// Show help
|
||||
self.mount_help();
|
||||
None
|
||||
}
|
||||
// New key <DOWN>
|
||||
(COMPONENT_INPUT_SSH_HOST, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_INPUT_SSH_HOST, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_INPUT_SSH_USERNAME);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_SSH_USERNAME, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_INPUT_SSH_USERNAME, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_INPUT_SSH_HOST);
|
||||
None
|
||||
}
|
||||
// New key <UP>
|
||||
(COMPONENT_INPUT_SSH_USERNAME, &MSG_KEY_UP)
|
||||
| (COMPONENT_INPUT_SSH_USERNAME, &MSG_KEY_TAB) => {
|
||||
(COMPONENT_INPUT_SSH_USERNAME, key) | (COMPONENT_INPUT_SSH_USERNAME, key)
|
||||
if key == &MSG_KEY_UP || key == &MSG_KEY_TAB =>
|
||||
{
|
||||
self.view.active(COMPONENT_INPUT_SSH_HOST);
|
||||
None
|
||||
}
|
||||
(COMPONENT_INPUT_SSH_HOST, &MSG_KEY_UP)
|
||||
| (COMPONENT_INPUT_SSH_HOST, &MSG_KEY_TAB) => {
|
||||
(COMPONENT_INPUT_SSH_HOST, key) | (COMPONENT_INPUT_SSH_HOST, key)
|
||||
if key == &MSG_KEY_UP || key == &MSG_KEY_TAB =>
|
||||
{
|
||||
self.view.active(COMPONENT_INPUT_SSH_USERNAME);
|
||||
None
|
||||
}
|
||||
@@ -335,14 +345,15 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// New key <ESC>
|
||||
(COMPONENT_INPUT_SSH_HOST, &MSG_KEY_ESC)
|
||||
| (COMPONENT_INPUT_SSH_USERNAME, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_INPUT_SSH_HOST, key) | (COMPONENT_INPUT_SSH_USERNAME, key)
|
||||
if key == &MSG_KEY_ESC =>
|
||||
{
|
||||
// Umount new ssh key
|
||||
self.umount_new_ssh_key();
|
||||
None
|
||||
}
|
||||
// <CTRL+N> New key
|
||||
(COMPONENT_LIST_SSH_KEYS, &MSG_KEY_CTRL_N) => {
|
||||
(COMPONENT_LIST_SSH_KEYS, key) if key == &MSG_KEY_CTRL_N => {
|
||||
// Show new key popup
|
||||
self.mount_new_ssh_key();
|
||||
None
|
||||
@@ -356,13 +367,14 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <DEL | CTRL+E> Show delete
|
||||
(COMPONENT_LIST_SSH_KEYS, &MSG_KEY_CTRL_E)
|
||||
| (COMPONENT_LIST_SSH_KEYS, &MSG_KEY_DEL) => {
|
||||
(COMPONENT_LIST_SSH_KEYS, key) | (COMPONENT_LIST_SSH_KEYS, key)
|
||||
if key == &MSG_KEY_CTRL_E || key == &MSG_KEY_DEL =>
|
||||
{
|
||||
// Show delete key
|
||||
self.mount_del_ssh_key();
|
||||
None
|
||||
}
|
||||
(_, &MSG_KEY_TAB) => {
|
||||
(_, key) if key == &MSG_KEY_TAB => {
|
||||
// Change view
|
||||
if let Err(err) = self.action_change_tab(ViewLayout::Theme) {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -370,7 +382,7 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+R> Revert changes
|
||||
(_, &MSG_KEY_CTRL_R) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_R => {
|
||||
// Revert changes
|
||||
if let Err(err) = self.action_reset_config() {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -378,13 +390,13 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+S> Save
|
||||
(_, &MSG_KEY_CTRL_S) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_S => {
|
||||
// Show save
|
||||
self.mount_save_popup();
|
||||
None
|
||||
}
|
||||
// <ESC>
|
||||
(_, &MSG_KEY_ESC) => {
|
||||
(_, key) if key == &MSG_KEY_ESC => {
|
||||
self.action_on_esc();
|
||||
None
|
||||
}
|
||||
@@ -400,217 +412,217 @@ impl SetupActivity {
|
||||
None => None,
|
||||
Some(msg) => match msg {
|
||||
// Input fields
|
||||
(COMPONENT_COLOR_AUTH_PROTOCOL, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_PROTOCOL, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_ADDR);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_ADDR, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_ADDR, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PORT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_PORT, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_PORT, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_USERNAME);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_USERNAME, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_USERNAME, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PASSWORD);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_PASSWORD, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_PASSWORD, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_BOOKMARKS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_BOOKMARKS, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_BOOKMARKS, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_RECENTS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_RECENTS, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_AUTH_RECENTS, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_ERROR);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_ERROR, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_ERROR, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_INPUT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_INPUT, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_INPUT, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_KEYS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_KEYS, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_KEYS, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_QUIT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_QUIT, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_QUIT, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_SAVE);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_SAVE, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_SAVE, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_WARN);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_WARN, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_MISC_WARN, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_LOG_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_BG, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_BG, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_LOG_WIN);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_WIN, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_WIN, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_SORTING);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SORTING, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SORTING, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_SYNC);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SYNC, &MSG_KEY_DOWN) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SYNC, key) if key == &MSG_KEY_DOWN => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PROTOCOL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_PROTOCOL, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_PROTOCOL, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_SYNC);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_ADDR, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_ADDR, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PROTOCOL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_PORT, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_PORT, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_ADDR);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_USERNAME, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_USERNAME, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PORT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_PASSWORD, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_PASSWORD, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_USERNAME);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_BOOKMARKS, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_BOOKMARKS, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_PASSWORD);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_AUTH_RECENTS, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_AUTH_RECENTS, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_BOOKMARKS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_ERROR, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_ERROR, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_AUTH_RECENTS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_INPUT, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_INPUT, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_ERROR);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_KEYS, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_KEYS, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_INPUT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_QUIT, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_QUIT, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_KEYS);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_SAVE, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_SAVE, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_QUIT);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_MISC_WARN, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_MISC_WARN, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_SAVE);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_MISC_WARN);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_FG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_EXPLORER_LOCAL_HG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG, key) if key == &MSG_KEY_UP => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG, key) if key == &MSG_KEY_UP => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_FG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL, key) if key == &MSG_KEY_UP => {
|
||||
self.view
|
||||
.active(COMPONENT_COLOR_TRANSFER_EXPLORER_REMOTE_HG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_PROG_BAR_FULL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_BG, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_BG, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_PROG_BAR_PARTIAL);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_WIN, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_LOG_WIN, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_LOG_BG);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SORTING, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SORTING, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_LOG_WIN);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_SORTING);
|
||||
None
|
||||
}
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SYNC, &MSG_KEY_UP) => {
|
||||
(COMPONENT_COLOR_TRANSFER_STATUS_SYNC, key) if key == &MSG_KEY_UP => {
|
||||
self.view.active(COMPONENT_COLOR_TRANSFER_STATUS_HIDDEN);
|
||||
None
|
||||
}
|
||||
@@ -624,7 +636,9 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// Error <ENTER> or <ESC>
|
||||
(COMPONENT_TEXT_ERROR, &MSG_KEY_ENTER) | (COMPONENT_TEXT_ERROR, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_ERROR, key) | (COMPONENT_TEXT_ERROR, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount text error
|
||||
self.umount_error();
|
||||
None
|
||||
@@ -653,7 +667,9 @@ impl SetupActivity {
|
||||
}
|
||||
(COMPONENT_RADIO_QUIT, _) => None,
|
||||
// Close help
|
||||
(COMPONENT_TEXT_HELP, &MSG_KEY_ENTER) | (COMPONENT_TEXT_HELP, &MSG_KEY_ESC) => {
|
||||
(COMPONENT_TEXT_HELP, key) | (COMPONENT_TEXT_HELP, key)
|
||||
if key == &MSG_KEY_ESC || key == &MSG_KEY_ENTER =>
|
||||
{
|
||||
// Umount help
|
||||
self.umount_help();
|
||||
None
|
||||
@@ -676,12 +692,12 @@ impl SetupActivity {
|
||||
(COMPONENT_RADIO_SAVE, _) => None,
|
||||
// Edit SSH Key
|
||||
// <CTRL+H> Show help
|
||||
(_, &MSG_KEY_CTRL_H) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_H => {
|
||||
// Show help
|
||||
self.mount_help();
|
||||
None
|
||||
}
|
||||
(_, &MSG_KEY_TAB) => {
|
||||
(_, key) if key == &MSG_KEY_TAB => {
|
||||
// Change view
|
||||
if let Err(err) = self.action_change_tab(ViewLayout::SetupForm) {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -689,7 +705,7 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+R> Revert changes
|
||||
(_, &MSG_KEY_CTRL_R) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_R => {
|
||||
// Revert changes
|
||||
if let Err(err) = self.action_reset_theme() {
|
||||
self.mount_error(err.as_str());
|
||||
@@ -697,13 +713,13 @@ impl SetupActivity {
|
||||
None
|
||||
}
|
||||
// <CTRL+S> Save
|
||||
(_, &MSG_KEY_CTRL_S) => {
|
||||
(_, key) if key == &MSG_KEY_CTRL_S => {
|
||||
// Show save
|
||||
self.mount_save_popup();
|
||||
None
|
||||
}
|
||||
// <ESC>
|
||||
(_, &MSG_KEY_ESC) => {
|
||||
(_, key) if key == &MSG_KEY_ESC => {
|
||||
self.action_on_esc();
|
||||
None
|
||||
}
|
||||
|
||||
@@ -34,14 +34,14 @@ use super::*;
|
||||
pub use setup::*;
|
||||
pub use ssh_keys::*;
|
||||
pub use theme::*;
|
||||
// Locals
|
||||
use crate::ui::components::msgbox::{MsgBox, MsgBoxPropsBuilder};
|
||||
// Ext
|
||||
use tuirealm::components::{
|
||||
use tui_realm_stdlib::{
|
||||
list::{List, ListPropsBuilder},
|
||||
paragraph::{Paragraph, ParagraphPropsBuilder},
|
||||
radio::{Radio, RadioPropsBuilder},
|
||||
scrolltable::{ScrollTablePropsBuilder, Scrolltable},
|
||||
span::{Span, SpanPropsBuilder},
|
||||
};
|
||||
use tuirealm::props::{PropsBuilder, TableBuilder, TextSpan, TextSpanBuilder};
|
||||
use tuirealm::props::{Alignment, PropsBuilder, TableBuilder, TextSpan};
|
||||
use tuirealm::tui::{
|
||||
style::Color,
|
||||
widgets::{BorderType, Borders},
|
||||
@@ -79,12 +79,13 @@ impl SetupActivity {
|
||||
// Mount
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_ERROR,
|
||||
Box::new(MsgBox::new(
|
||||
MsgBoxPropsBuilder::default()
|
||||
Box::new(Paragraph::new(
|
||||
ParagraphPropsBuilder::default()
|
||||
.with_foreground(Color::Red)
|
||||
.bold()
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::Red)
|
||||
.with_texts(None, vec![TextSpan::from(text)])
|
||||
.with_texts(vec![TextSpan::from(text)])
|
||||
.with_text_alignment(Alignment::Center)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -110,16 +111,15 @@ impl SetupActivity {
|
||||
.with_color(Color::LightRed)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightRed)
|
||||
.with_options(
|
||||
Some(String::from(
|
||||
"There are unsaved changes! Save changes before leaving?",
|
||||
)),
|
||||
vec![
|
||||
String::from("Save"),
|
||||
String::from("Don't save"),
|
||||
String::from("Cancel"),
|
||||
],
|
||||
.with_title(
|
||||
"There are unsaved changes! Save changes before leaving?",
|
||||
Alignment::Center,
|
||||
)
|
||||
.with_options(&[
|
||||
String::from("Save"),
|
||||
String::from("Don't save"),
|
||||
String::from("Cancel"),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -145,10 +145,8 @@ impl SetupActivity {
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightYellow)
|
||||
.with_options(
|
||||
Some(String::from("Save changes?")),
|
||||
vec![String::from("Yes"), String::from("No")],
|
||||
)
|
||||
.with_title("Save changes?", Alignment::Center)
|
||||
.with_options(&[String::from("Yes"), String::from("No")])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -163,91 +161,81 @@ impl SetupActivity {
|
||||
self.view.umount(super::COMPONENT_RADIO_SAVE);
|
||||
}
|
||||
|
||||
pub(self) fn mount_header_tab(&mut self, idx: usize) {
|
||||
self.view.mount(
|
||||
super::COMPONENT_RADIO_TAB,
|
||||
Box::new(Radio::new(
|
||||
RadioPropsBuilder::default()
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::BOTTOM, BorderType::Thick, Color::White)
|
||||
.with_options(&[
|
||||
String::from("User Interface"),
|
||||
String::from("SSH Keys"),
|
||||
String::from("Theme"),
|
||||
])
|
||||
.with_value(idx)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
pub(self) fn mount_footer(&mut self) {
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_FOOTER,
|
||||
Box::new(Span::new(
|
||||
SpanPropsBuilder::default()
|
||||
.with_spans(vec![
|
||||
TextSpan::new("Press ").bold(),
|
||||
TextSpan::new("<CTRL+H>").bold().fg(Color::Cyan),
|
||||
TextSpan::new(" to show keybindings").bold(),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
/// ### mount_help
|
||||
///
|
||||
/// Mount help
|
||||
pub(super) fn mount_help(&mut self) {
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_HELP,
|
||||
Box::new(Scrolltable::new(
|
||||
ScrollTablePropsBuilder::default()
|
||||
Box::new(List::new(
|
||||
ListPropsBuilder::default()
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::White)
|
||||
.with_highlighted_str(Some("?"))
|
||||
.with_max_scroll_step(8)
|
||||
.bold()
|
||||
.with_table(
|
||||
Some(String::from("Help")),
|
||||
.with_title("Help", Alignment::Center)
|
||||
.scrollable(true)
|
||||
.with_rows(
|
||||
TableBuilder::default()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<ESC>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<ESC>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Exit setup"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<TAB>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<TAB>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Change setup page"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<RIGHT/LEFT>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<RIGHT/LEFT>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Change cursor"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<UP/DOWN>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<UP/DOWN>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Change input field"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<ENTER>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<ENTER>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Select / Dismiss popup"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<DEL|E>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<DEL|E>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Delete SSH key"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<CTRL+N>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<CTRL+N>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" New SSH key"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<CTRL+R>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<CTRL+R>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Revert changes"))
|
||||
.add_row()
|
||||
.add_col(
|
||||
TextSpanBuilder::new("<CTRL+S>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
)
|
||||
.add_col(TextSpan::new("<CTRL+S>").bold().fg(Color::Cyan))
|
||||
.add_col(TextSpan::from(" Save configuration"))
|
||||
.build(),
|
||||
)
|
||||
|
||||
@@ -33,10 +33,9 @@ use crate::fs::explorer::GroupDirs;
|
||||
use crate::utils::ui::draw_area_in;
|
||||
// Ext
|
||||
use std::path::PathBuf;
|
||||
use tuirealm::components::{
|
||||
use tui_realm_stdlib::{
|
||||
input::{Input, InputPropsBuilder},
|
||||
radio::{Radio, RadioPropsBuilder},
|
||||
span::{Span, SpanPropsBuilder},
|
||||
};
|
||||
use tuirealm::tui::{
|
||||
layout::{Constraint, Direction, Layout},
|
||||
@@ -44,7 +43,7 @@ use tuirealm::tui::{
|
||||
widgets::{BorderType, Borders, Clear},
|
||||
};
|
||||
use tuirealm::{
|
||||
props::{PropsBuilder, TextSpanBuilder},
|
||||
props::{Alignment, PropsBuilder},
|
||||
Payload, Value, View,
|
||||
};
|
||||
|
||||
@@ -59,41 +58,9 @@ impl SetupActivity {
|
||||
self.view = View::init();
|
||||
// Common stuff
|
||||
// Radio tab
|
||||
self.view.mount(
|
||||
super::COMPONENT_RADIO_TAB,
|
||||
Box::new(Radio::new(
|
||||
RadioPropsBuilder::default()
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::BOTTOM, BorderType::Thick, Color::White)
|
||||
.with_options(
|
||||
None,
|
||||
vec![
|
||||
String::from("User Interface"),
|
||||
String::from("SSH Keys"),
|
||||
String::from("Theme"),
|
||||
],
|
||||
)
|
||||
.with_value(0)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
self.mount_header_tab(0);
|
||||
// Footer
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_FOOTER,
|
||||
Box::new(Span::new(
|
||||
SpanPropsBuilder::default()
|
||||
.with_spans(vec![
|
||||
TextSpanBuilder::new("Press ").bold().build(),
|
||||
TextSpanBuilder::new("<CTRL+H>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
TextSpanBuilder::new(" to show keybindings").bold().build(),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
self.mount_footer();
|
||||
// Input fields
|
||||
self.view.mount(
|
||||
super::COMPONENT_INPUT_TEXT_EDITOR,
|
||||
@@ -101,7 +68,7 @@ impl SetupActivity {
|
||||
InputPropsBuilder::default()
|
||||
.with_foreground(Color::LightGreen)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightGreen)
|
||||
.with_label(String::from("Text editor"))
|
||||
.with_label("Text editor", Alignment::Left)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -113,15 +80,13 @@ impl SetupActivity {
|
||||
.with_color(Color::LightCyan)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightCyan)
|
||||
.with_options(
|
||||
Some(String::from("Default file transfer protocol")),
|
||||
vec![
|
||||
String::from("SFTP"),
|
||||
String::from("SCP"),
|
||||
String::from("FTP"),
|
||||
String::from("FTPS"),
|
||||
],
|
||||
)
|
||||
.with_title("Default file transfer protocol", Alignment::Left)
|
||||
.with_options(&[
|
||||
String::from("SFTP"),
|
||||
String::from("SCP"),
|
||||
String::from("FTP"),
|
||||
String::from("FTPS"),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -132,10 +97,8 @@ impl SetupActivity {
|
||||
.with_color(Color::LightRed)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightRed)
|
||||
.with_options(
|
||||
Some(String::from("Show hidden files (by default)")),
|
||||
vec![String::from("Yes"), String::from("No")],
|
||||
)
|
||||
.with_title("Show hidden files (by default)?", Alignment::Left)
|
||||
.with_options(&[String::from("Yes"), String::from("No")])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -146,10 +109,8 @@ impl SetupActivity {
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightYellow)
|
||||
.with_options(
|
||||
Some(String::from("Check for updates?")),
|
||||
vec![String::from("Yes"), String::from("No")],
|
||||
)
|
||||
.with_title("Check for updates?", Alignment::Left)
|
||||
.with_options(&[String::from("Yes"), String::from("No")])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -160,14 +121,12 @@ impl SetupActivity {
|
||||
.with_color(Color::LightMagenta)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightMagenta)
|
||||
.with_options(
|
||||
Some(String::from("Group directories")),
|
||||
vec![
|
||||
String::from("Display first"),
|
||||
String::from("Display Last"),
|
||||
String::from("No"),
|
||||
],
|
||||
)
|
||||
.with_title("Group directories", Alignment::Left)
|
||||
.with_options(&[
|
||||
String::from("Display first"),
|
||||
String::from("Display Last"),
|
||||
String::from("No"),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -177,7 +136,7 @@ impl SetupActivity {
|
||||
InputPropsBuilder::default()
|
||||
.with_foreground(Color::LightBlue)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightBlue)
|
||||
.with_label(String::from("File formatter syntax (local)"))
|
||||
.with_label("File formatter syntax (local)", Alignment::Left)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
@@ -187,7 +146,7 @@ impl SetupActivity {
|
||||
InputPropsBuilder::default()
|
||||
.with_foreground(Color::LightGreen)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightGreen)
|
||||
.with_label(String::from("File formatter syntax (remote)"))
|
||||
.with_label("File formatter syntax (remote)", Alignment::Left)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
|
||||
@@ -31,10 +31,9 @@ use super::{Context, SetupActivity};
|
||||
use crate::ui::components::bookmark_list::{BookmarkList, BookmarkListPropsBuilder};
|
||||
use crate::utils::ui::draw_area_in;
|
||||
// Ext
|
||||
use tuirealm::components::{
|
||||
use tui_realm_stdlib::{
|
||||
input::{Input, InputPropsBuilder},
|
||||
radio::{Radio, RadioPropsBuilder},
|
||||
span::{Span, SpanPropsBuilder},
|
||||
};
|
||||
use tuirealm::tui::{
|
||||
layout::{Constraint, Direction, Layout},
|
||||
@@ -42,7 +41,7 @@ use tuirealm::tui::{
|
||||
widgets::{BorderType, Borders, Clear},
|
||||
};
|
||||
use tuirealm::{
|
||||
props::{PropsBuilder, TextSpanBuilder},
|
||||
props::{Alignment, PropsBuilder},
|
||||
View,
|
||||
};
|
||||
|
||||
@@ -57,46 +56,15 @@ impl SetupActivity {
|
||||
self.view = View::init();
|
||||
// Common stuff
|
||||
// Radio tab
|
||||
self.view.mount(
|
||||
super::COMPONENT_RADIO_TAB,
|
||||
Box::new(Radio::new(
|
||||
RadioPropsBuilder::default()
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::BOTTOM, BorderType::Thick, Color::LightYellow)
|
||||
.with_options(
|
||||
None,
|
||||
vec![
|
||||
String::from("User Interface"),
|
||||
String::from("SSH Keys"),
|
||||
String::from("Theme"),
|
||||
],
|
||||
)
|
||||
.with_value(1)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
// Radio tab
|
||||
self.mount_header_tab(1);
|
||||
// Footer
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_FOOTER,
|
||||
Box::new(Span::new(
|
||||
SpanPropsBuilder::default()
|
||||
.with_spans(vec![
|
||||
TextSpanBuilder::new("Press ").bold().build(),
|
||||
TextSpanBuilder::new("<CTRL+H>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
TextSpanBuilder::new(" to show keybindings").bold().build(),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
self.mount_footer();
|
||||
self.view.mount(
|
||||
super::COMPONENT_LIST_SSH_KEYS,
|
||||
Box::new(BookmarkList::new(
|
||||
BookmarkListPropsBuilder::default()
|
||||
.with_bookmarks(Some(String::from("SSH Keys")), vec![])
|
||||
.with_title("SSH keys", Alignment::Left)
|
||||
.with_borders(Borders::ALL, BorderType::Plain, Color::LightGreen)
|
||||
.with_background(Color::LightGreen)
|
||||
.with_foreground(Color::Black)
|
||||
@@ -211,10 +179,8 @@ impl SetupActivity {
|
||||
.with_color(Color::LightRed)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::LightRed)
|
||||
.with_options(
|
||||
Some(String::from("Delete key?")),
|
||||
vec![String::from("Yes"), String::from("No")],
|
||||
)
|
||||
.with_title("Delete key?", Alignment::Center)
|
||||
.with_options(&[String::from("Yes"), String::from("No")])
|
||||
.with_value(1) // Default: No
|
||||
.build(),
|
||||
)),
|
||||
@@ -238,7 +204,7 @@ impl SetupActivity {
|
||||
super::COMPONENT_INPUT_SSH_HOST,
|
||||
Box::new(Input::new(
|
||||
InputPropsBuilder::default()
|
||||
.with_label(String::from("Hostname or address"))
|
||||
.with_label("Hostname or address", Alignment::Center)
|
||||
.with_borders(
|
||||
Borders::TOP | Borders::RIGHT | Borders::LEFT,
|
||||
BorderType::Plain,
|
||||
@@ -251,7 +217,7 @@ impl SetupActivity {
|
||||
super::COMPONENT_INPUT_SSH_USERNAME,
|
||||
Box::new(Input::new(
|
||||
InputPropsBuilder::default()
|
||||
.with_label(String::from("Username"))
|
||||
.with_label("Username", Alignment::Center)
|
||||
.with_borders(
|
||||
Borders::BOTTOM | Borders::RIGHT | Borders::LEFT,
|
||||
BorderType::Plain,
|
||||
@@ -287,7 +253,7 @@ impl SetupActivity {
|
||||
})
|
||||
.collect();
|
||||
let props = BookmarkListPropsBuilder::from(props)
|
||||
.with_bookmarks(Some(String::from("SSH Keys")), keys)
|
||||
.with_bookmarks(keys)
|
||||
.build();
|
||||
self.view.update(super::COMPONENT_LIST_SSH_KEYS, props);
|
||||
}
|
||||
|
||||
@@ -33,18 +33,14 @@ use crate::ui::components::color_picker::{ColorPicker, ColorPickerPropsBuilder};
|
||||
use crate::utils::parser::parse_color;
|
||||
use crate::utils::ui::draw_area_in;
|
||||
// Ext
|
||||
use tuirealm::components::{
|
||||
label::{Label, LabelPropsBuilder},
|
||||
radio::{Radio, RadioPropsBuilder},
|
||||
span::{Span, SpanPropsBuilder},
|
||||
};
|
||||
use tui_realm_stdlib::label::{Label, LabelPropsBuilder};
|
||||
use tuirealm::tui::{
|
||||
layout::{Constraint, Direction, Layout},
|
||||
style::Color,
|
||||
widgets::{BorderType, Borders, Clear},
|
||||
};
|
||||
use tuirealm::{
|
||||
props::{PropsBuilder, TextSpanBuilder},
|
||||
props::{Alignment, PropsBuilder},
|
||||
Payload, Value, View,
|
||||
};
|
||||
|
||||
@@ -59,41 +55,9 @@ impl SetupActivity {
|
||||
self.view = View::init();
|
||||
// Common stuff
|
||||
// Radio tab
|
||||
self.view.mount(
|
||||
super::COMPONENT_RADIO_TAB,
|
||||
Box::new(Radio::new(
|
||||
RadioPropsBuilder::default()
|
||||
.with_color(Color::LightYellow)
|
||||
.with_inverted_color(Color::Black)
|
||||
.with_borders(Borders::BOTTOM, BorderType::Thick, Color::White)
|
||||
.with_options(
|
||||
None,
|
||||
vec![
|
||||
String::from("User Interface"),
|
||||
String::from("SSH Keys"),
|
||||
String::from("Theme"),
|
||||
],
|
||||
)
|
||||
.with_value(2)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
self.mount_header_tab(2);
|
||||
// Footer
|
||||
self.view.mount(
|
||||
super::COMPONENT_TEXT_FOOTER,
|
||||
Box::new(Span::new(
|
||||
SpanPropsBuilder::default()
|
||||
.with_spans(vec![
|
||||
TextSpanBuilder::new("Press ").bold().build(),
|
||||
TextSpanBuilder::new("<CTRL+H>")
|
||||
.bold()
|
||||
.with_foreground(Color::Cyan)
|
||||
.build(),
|
||||
TextSpanBuilder::new(" to show keybindings").bold().build(),
|
||||
])
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
self.mount_footer();
|
||||
// auth colors
|
||||
self.mount_title(super::COMPONENT_COLOR_AUTH_TITLE, "Authentication styles");
|
||||
self.mount_color_picker(super::COMPONENT_COLOR_AUTH_PROTOCOL, "Protocol");
|
||||
@@ -653,7 +617,7 @@ impl SetupActivity {
|
||||
Box::new(ColorPicker::new(
|
||||
ColorPickerPropsBuilder::default()
|
||||
.with_borders(Borders::ALL, BorderType::Rounded, Color::Reset)
|
||||
.with_label(label.to_string())
|
||||
.with_label(label.to_string(), Alignment::Left)
|
||||
.build(),
|
||||
)),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user