chore(deps): update tui dependency to 0.9 (#30)

Co-authored-by: Wolfgang Silbermayr <wolfgang@silbermayr.at>
This commit is contained in:
silwol
2020-06-18 21:34:26 +02:00
committed by GitHub
parent 03f2fe164a
commit 4f16e669c6
9 changed files with 320 additions and 657 deletions

815
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,7 @@ license = "MIT"
edition = "2018"
[dependencies]
tui = "0.8"
tui = "0.9"
termion = "1.5"
failure = "0.1"
walkdir = "2"

View File

@@ -123,7 +123,7 @@ impl<'a> BottomLine<'a> {
}
impl<'a> Widget for BottomLine<'a> {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
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 max_status_len = area.width - small_files_len;

View File

@@ -1,7 +1,6 @@
use ::std::path::PathBuf;
use ::tui::backend::Backend;
use ::tui::layout::{Constraint, Direction, Layout, Rect};
use ::tui::widgets::Widget;
use ::tui::Terminal;
use crate::state::files::FileTree;
@@ -86,76 +85,115 @@ where
board.change_area(&chunks[1]);
match ui_mode {
UiMode::Loading => {
TitleLine::new(base_path_info, current_path_info, file_tree.space_freed)
f.render_widget(
TitleLine::new(
base_path_info,
current_path_info,
file_tree.space_freed,
)
.progress_indicator(ui_effects.loading_progress_indicator)
.path_error(ui_effects.current_path_is_red)
.read_errors(file_tree.failed_to_read)
.show_loading()
.render(&mut f, chunks[0]);
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
)
.render(&mut f, chunks[1]);
BottomLine::new()
.currently_selected(board.currently_selected())
.last_read_path(ui_effects.last_read_path.as_ref())
.hide_delete()
.render(&mut f, chunks[2]);
.show_loading(),
chunks[0],
);
f.render_widget(
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
),
chunks[1],
);
f.render_widget(
BottomLine::new()
.currently_selected(board.currently_selected())
.last_read_path(ui_effects.last_read_path.as_ref())
.hide_delete(),
chunks[2],
);
}
UiMode::Normal => {
TitleLine::new(base_path_info, current_path_info, file_tree.space_freed)
f.render_widget(
TitleLine::new(
base_path_info,
current_path_info,
file_tree.space_freed,
)
.path_error(ui_effects.current_path_is_red)
.flash_space(ui_effects.flash_space_freed)
.read_errors(file_tree.failed_to_read)
.render(&mut f, chunks[0]);
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
)
.render(&mut f, chunks[1]);
BottomLine::new()
.currently_selected(board.currently_selected())
.render(&mut f, chunks[2]);
.read_errors(file_tree.failed_to_read),
chunks[0],
);
f.render_widget(
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
),
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
chunks[2],
);
}
UiMode::ScreenTooSmall => {
TermTooSmall::new().render(&mut f, full_screen);
f.render_widget(TermTooSmall::new(), full_screen);
}
UiMode::DeleteFile(file_to_delete) => {
TitleLine::new(base_path_info, current_path_info, file_tree.space_freed)
f.render_widget(
TitleLine::new(
base_path_info,
current_path_info,
file_tree.space_freed,
)
.path_error(ui_effects.current_path_is_red)
.read_errors(file_tree.failed_to_read)
.render(&mut f, chunks[0]);
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
)
.render(&mut f, chunks[1]);
BottomLine::new()
.currently_selected(board.currently_selected())
.render(&mut f, chunks[2]);
MessageBox::new(file_to_delete, ui_effects.deletion_in_progress)
.render(&mut f, full_screen);
.read_errors(file_tree.failed_to_read),
chunks[0],
);
f.render_widget(
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
),
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
chunks[2],
);
f.render_widget(
MessageBox::new(file_to_delete, ui_effects.deletion_in_progress),
full_screen,
);
}
UiMode::ErrorMessage(message) => {
TitleLine::new(base_path_info, current_path_info, file_tree.space_freed)
f.render_widget(
TitleLine::new(
base_path_info,
current_path_info,
file_tree.space_freed,
)
.path_error(ui_effects.current_path_is_red)
.flash_space(ui_effects.flash_space_freed)
.read_errors(file_tree.failed_to_read)
.render(&mut f, chunks[0]);
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
)
.render(&mut f, chunks[1]);
BottomLine::new()
.currently_selected(board.currently_selected())
.render(&mut f, chunks[2]);
ErrorBox::new(message).render(&mut f, full_screen);
.read_errors(file_tree.failed_to_read),
chunks[0],
);
f.render_widget(
RectangleGrid::new(
&board.tiles,
board.unrenderable_tile_coordinates,
board.selected_index,
),
chunks[1],
);
f.render_widget(
BottomLine::new().currently_selected(board.currently_selected()),
chunks[2],
);
f.render_widget(ErrorBox::new(message), full_screen);
}
};
})

View File

@@ -61,7 +61,7 @@ impl<'a> RectangleGrid<'a> {
}
impl<'a> Widget for RectangleGrid<'a> {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
fn render(self, area: Rect, buf: &mut Buffer) {
if self.rectangles.is_empty() {
draw_empty_folder(buf, area);
} else {

View File

@@ -17,7 +17,7 @@ impl<'a> ErrorBox<'a> {
}
impl<'a> Widget for ErrorBox<'a> {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
fn render(self, area: Rect, buf: &mut Buffer) {
let (width, height) = if area.width > 150 {
(150, 10)
} else if area.width > 50 {

View File

@@ -134,7 +134,7 @@ impl<'a> MessageBox<'a> {
}
impl<'a> Widget for MessageBox<'a> {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
fn render(self, area: Rect, buf: &mut Buffer) {
let (width, height) = if area.width > 150 {
(150, 10)
} else if area.width > 50 {

View File

@@ -12,7 +12,7 @@ impl TermTooSmall {
}
impl<'a> Widget for TermTooSmall {
fn draw(&mut self, area: Rect, buf: &mut Buffer) {
fn render(self, area: Rect, buf: &mut Buffer) {
let text = [
"Terminal window is too small ¯\\_(ツ)_/¯",
"Window too small ¯\\_(ツ)_/¯",

View File

@@ -61,7 +61,7 @@ impl<'a> TitleLine<'a> {
}
impl<'a> Widget for TitleLine<'a> {
fn draw(&mut self, rect: Rect, buf: &mut Buffer) {
fn render(self, rect: Rect, buf: &mut Buffer) {
let base_path = &self
.base_path_info
.path