filter help by current state
Some checks are pending
/ build (push) Waiting to run

This commit is contained in:
🪞👃🪞 2025-04-30 22:05:02 +03:00
parent 9f30f77aee
commit daaa4f7bef
2 changed files with 10 additions and 9 deletions

View file

@ -42,20 +42,22 @@ impl Tek {
} }
fn view_modal_help (&self) -> impl Content<TuiOut> + use<'_> { fn view_modal_help (&self) -> impl Content<TuiOut> + use<'_> {
let bindings = ||self.keys.layers.iter().flat_map(|a|a.1) let bindings = ||self.keys.layers.iter()
.filter_map(|a|(a.0)(self).then_some(a.1))
.flat_map(|a|a)
.filter_map(|x|if let Value::Exp(_, iter)=x.value{ .filter_map(|x|if let Value::Exp(_, iter)=x.value{
Some(iter) Some(iter)
} else { } else {
None None
}); });
let binding = |mut binding: TokenIter, _|Bsp::e( let binding = |mut binding: TokenIter, _|Bsp::e(
Tui::bold(true, Tui::fg(Color::Rgb(255,192,0), if let Some(Token { Fixed::x(15, Align::w(Tui::bold(true, Tui::fg(Color::Rgb(255,192,0), if let Some(Token {
value: Value::Sym(key), .. value: Value::Sym(key), ..
}) = binding.next() { }) = binding.next() {
Some(key.to_string()) Some(key.to_string())
} else { } else {
None None
})), })))),
Bsp::e(" ", Tui::fg(Color::Rgb(255,255,255), if let Some(Token { Bsp::e(" ", Tui::fg(Color::Rgb(255,255,255), if let Some(Token {
value: Value::Key(command), .. value: Value::Key(command), ..
}) = binding.next() { }) = binding.next() {
@ -64,8 +66,7 @@ impl Tek {
None None
})), })),
); );
let layer = Map::south(1, bindings, binding); Bsp::s(Tui::bold(true, "Help"), Bsp::s("", Map::south(1, bindings, binding)))
Bsp::s(Tui::bold(true, "Help"), Bsp::s("", layer))
} }
pub fn view_status (&self) -> impl Content<TuiOut> + use<'_> { pub fn view_status (&self) -> impl Content<TuiOut> + use<'_> {

View file

@ -140,13 +140,13 @@ impl Cli {
.layer(SourceIter(include_str!("../../config/keys_global.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_global.edn")).into())
.layer_if(|state: &Tek|state.is_editing(), .layer_if(|state: &Tek|state.is_editing(),
SourceIter(include_str!("../../config/keys_editor.edn")).into()) SourceIter(include_str!("../../config/keys_editor.edn")).into())
.layer_if(|state: &Tek|state.selected.is_clip(), .layer_if(|state: &Tek|state.selected.is_clip()&&!state.is_editing(),
SourceIter(include_str!("../../config/keys_clip.edn")).into()) SourceIter(include_str!("../../config/keys_clip.edn")).into())
.layer_if(|state: &Tek|state.selected.is_track(), .layer_if(|state: &Tek|state.selected.is_track()&&!state.is_editing(),
SourceIter(include_str!("../../config/keys_track.edn")).into()) SourceIter(include_str!("../../config/keys_track.edn")).into())
.layer_if(|state: &Tek|state.selected.is_scene(), .layer_if(|state: &Tek|state.selected.is_scene()&&!state.is_editing(),
SourceIter(include_str!("../../config/keys_scene.edn")).into()) SourceIter(include_str!("../../config/keys_scene.edn")).into())
.layer_if(|state: &Tek|state.selected.is_mix(), .layer_if(|state: &Tek|state.selected.is_mix()&&!state.is_editing(),
SourceIter(include_str!("../../config/keys_mix.edn")).into()) SourceIter(include_str!("../../config/keys_mix.edn")).into())
.layer(SourceIter(include_str!("../../config/keys_clock.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_clock.edn")).into())
.layer(SourceIter(include_str!("../../config/keys_arranger.edn")).into()), .layer(SourceIter(include_str!("../../config/keys_arranger.edn")).into()),