feat(ui): only show small files legend when visible (#75)

* feat: only show small files legend when visible

* refactor: add render_small_files_legend function
This commit is contained in:
Patrick Sier 2020-10-15 08:28:45 -05:00 committed by GitHub
parent 9f94e941fb
commit f330d85284
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 123 additions and 77 deletions

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└──────────────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└──────────────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │ │
│ │ │ 8.0K (2%) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│
│████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[1]"
subfolder_with_quite_a_long_name
SELECTED: subfolder_with_quite_a_long_name (8.0K, 1 files)

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└──────────────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└──────────────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │
│ │
└────────────────────────────────────────────────┘
(x = Small files)
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del
←↓↑→/<ENTER>/<ESC>: navigate, <BACKSPACE>: del

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[0]"
│ │ │
│ │ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────┘
(x = Small files)
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit
<arrows> - move around, <ENTER> - enter folder, <ESC> - parent folder, <BACKSPACE> - delete, <+/-/0> - zoom in/out/reset, <q> - quit

View file

@ -50,6 +50,6 @@ expression: "&terminal_draw_events_mirror[5]"
│xxxxxx
│xxxxxx
(x = Small files)

View file

@ -98,8 +98,23 @@ fn render_controls_legend(buf: &mut Buffer, hide_delete: bool, max_len: u16, y:
}
}
fn render_small_files_legend(buf: &mut Buffer, x: u16, y: u16, small_files_legend: &str) {
buf.set_string(
x,
y,
small_files_legend,
Style::default()
.fg(Color::Reset)
.bg(Color::Reset)
.remove_modifier(Modifier::all()),
);
let small_files_legend_character = buf.get_mut(x + 1, y);
small_files_legend_character.set_style(Style::default().bg(Color::White).fg(Color::Black));
}
pub struct BottomLine<'a> {
hide_delete: bool,
hide_small_files_legend: bool,
currently_selected: Option<&'a Tile>,
last_read_path: Option<&'a PathBuf>,
}
@ -108,6 +123,7 @@ impl<'a> BottomLine<'a> {
pub fn new() -> Self {
Self {
hide_delete: false,
hide_small_files_legend: false,
currently_selected: None,
last_read_path: None,
}
@ -116,6 +132,10 @@ impl<'a> BottomLine<'a> {
self.hide_delete = true;
self
}
pub fn hide_small_files_legend(mut self, should_hide_small_files_legend: bool) -> Self {
self.hide_small_files_legend = should_hide_small_files_legend;
self
}
pub fn currently_selected(mut self, currently_selected: Option<&'a Tile>) -> Self {
self.currently_selected = currently_selected;
self
@ -129,7 +149,11 @@ impl<'a> BottomLine<'a> {
impl<'a> Widget for BottomLine<'a> {
fn render(self, area: Rect, buf: &mut Buffer) {
let small_files_legend = "(x = Small files)";
let small_files_len = small_files_legend.chars().count() as u16;
let small_files_len = if self.hide_small_files_legend {
0
} else {
small_files_legend.chars().count() as u16
};
let max_status_len = area.width - small_files_len - 1;
let max_controls_len = area.width - 1;
let status_line_y = area.y + area.height - 2;
@ -140,17 +164,14 @@ impl<'a> Widget for BottomLine<'a> {
render_last_read_path(buf, last_read_path, max_status_len, status_line_y);
}
buf.set_string(
area.width - small_files_len - 1,
status_line_y,
small_files_legend,
Style::default()
.fg(Color::Reset)
.bg(Color::Reset)
.remove_modifier(Modifier::all()),
);
let small_files_legend_character = buf.get_mut(area.width - small_files_len, status_line_y);
small_files_legend_character.set_style(Style::default().bg(Color::White).fg(Color::Black));
if !self.hide_small_files_legend {
render_small_files_legend(
buf,
area.width - small_files_len - 1,
status_line_y,
small_files_legend,
);
}
render_controls_legend(buf, self.hide_delete, max_controls_len, controls_line_y);
}

View file

@ -109,7 +109,10 @@ where
BottomLine::new()
.currently_selected(board.currently_selected())
.last_read_path(ui_effects.last_read_path.as_ref())
.hide_delete(),
.hide_delete()
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
}
@ -135,7 +138,11 @@ where
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
BottomLine::new()
.currently_selected(board.currently_selected())
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
}
@ -163,7 +170,11 @@ where
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
BottomLine::new()
.currently_selected(board.currently_selected())
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
f.render_widget(
@ -193,7 +204,11 @@ where
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
BottomLine::new()
.currently_selected(board.currently_selected())
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
f.render_widget(ErrorBox::new(message), full_screen);
@ -214,7 +229,11 @@ where
chunks[0],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
BottomLine::new()
.currently_selected(board.currently_selected())
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
} else {
@ -236,7 +255,10 @@ where
BottomLine::new()
.currently_selected(board.currently_selected())
.last_read_path(ui_effects.last_read_path.as_ref())
.hide_delete(),
.hide_delete()
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
}
@ -276,7 +298,10 @@ where
BottomLine::new()
.currently_selected(board.currently_selected())
.last_read_path(ui_effects.last_read_path.as_ref())
.hide_delete(),
.hide_delete()
.hide_small_files_legend(
board.unrenderable_tile_coordinates.is_none(),
),
chunks[2],
);
f.render_widget(WarningBox::new(), full_screen);