Add focus selection UI

Closes: https://github.com/sayanarijit/xplr/issues/322
pull/326/head
Arijit Basu 3 years ago committed by Arijit Basu
parent 3f668c2d04
commit 69d3b3af46

@ -469,6 +469,9 @@ pub struct GeneralConfig {
#[serde(default)]
pub selection_ui: UiConfig,
#[serde(default)]
pub focus_selection_ui: UiConfig,
#[serde(default)]
pub sort_and_filter_ui: SortAndFilterUi,
@ -578,6 +581,11 @@ impl GeneralConfig {
pub fn start_fifo(&self) -> Option<&String> {
self.start_fifo.as_ref()
}
/// Get a reference to the general config's focus selection ui.
pub fn focus_selection_ui(&self) -> &UiConfig {
&self.focus_selection_ui
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]

@ -98,6 +98,14 @@ xplr.config.general.selection_ui.style.sub_modifiers = nil
xplr.config.general.selection_ui.style.bg = nil
xplr.config.general.selection_ui.style.fg = "LightGreen"
------ Focus UI
xplr.config.general.focus_selection_ui.prefix = "▸["
xplr.config.general.focus_selection_ui.suffix = "]"
xplr.config.general.focus_selection_ui.style.add_modifiers = { "Bold" }
xplr.config.general.focus_selection_ui.style.sub_modifiers = nil
xplr.config.general.focus_selection_ui.style.bg = nil
xplr.config.general.focus_selection_ui.style.fg = "LightGreen"
------ Sort & filter UI
-------- Separator
xplr.config.general.sort_and_filter_ui.separator.format = " "

@ -523,14 +523,17 @@ fn draw_table<B: Backend>(
)
};
if is_selected {
if is_focused && is_selected {
let ui = app_config.general().focus_selection_ui().to_owned();
prefix = ui.prefix().to_owned().or(prefix);
suffix = ui.suffix().to_owned().or(suffix);
style = style.extend(ui.style());
} else if is_selected {
let ui = app_config.general().selection_ui().to_owned();
prefix = ui.prefix().to_owned().or(prefix);
suffix = ui.suffix().to_owned().or(suffix);
style = style.extend(ui.style());
};
if is_focused {
} else if is_focused {
let ui = app_config.general().focus_ui().to_owned();
prefix = ui.prefix().to_owned().or(prefix);
suffix = ui.suffix().to_owned().or(suffix);

Loading…
Cancel
Save