Draw explorers

This commit is contained in:
ChristianVisintin
2020-11-29 15:01:02 +01:00
parent 8d9eec0750
commit d5d39b6c3a
2 changed files with 56 additions and 8 deletions

View File

@@ -28,8 +28,6 @@ use std::path::{Path, PathBuf};
use std::time::SystemTime; use std::time::SystemTime;
// Metadata ext // Metadata ext
#[cfg(any(unix, macos, linux))] #[cfg(any(unix, macos, linux))]
extern crate users;
#[cfg(any(unix, macos, linux))]
use std::os::unix::fs::MetadataExt; use std::os::unix::fs::MetadataExt;
// Locals // Locals

View File

@@ -53,7 +53,7 @@ use tui::{
style::{Color, Modifier, Style}, style::{Color, Modifier, Style},
terminal::Frame, terminal::Frame,
text::{Span, Spans, Text}, text::{Span, Spans, Text},
widgets::{Block, Borders, List, ListItem, Paragraph, Tabs}, widgets::{Block, Borders, List, ListItem, ListState, Paragraph, Tabs},
}; };
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
@@ -1470,6 +1470,11 @@ impl FileTransferActivity {
let mut ctx: Context = self.context.take().unwrap(); let mut ctx: Context = self.context.take().unwrap();
let _ = ctx.terminal.draw(|f| { let _ = ctx.terminal.draw(|f| {
// TODO: implement // TODO: implement
// Set log state
let mut log_state: ListState = ListState::default();
log_state.select(Some(self.log_index));
// f.render_stateful_widget(LOG_LIST, CHUNK, &mut log_state);
}); });
self.context = Some(ctx); self.context = Some(ctx);
} }
@@ -1482,6 +1487,50 @@ impl FileTransferActivity {
.style(Style::default().fg(Color::LightYellow).add_modifier(Modifier::BOLD)) .style(Style::default().fg(Color::LightYellow).add_modifier(Modifier::BOLD))
} }
/// ### draw_local_explorer
///
/// Draw local explorer list
fn draw_local_explorer(&self) -> List {
let files: Vec<ListItem> = self
.local
.files
.iter()
.map(|entry: &FsEntry| ListItem::new(Span::from(format!("{}", entry))))
.collect();
List::new(files)
.block(Block::default().borders(Borders::ALL).title("Localhost"))
.start_corner(Corner::BottomLeft)
.highlight_style(
Style::default()
.fg(Color::LightYellow)
.add_modifier(Modifier::BOLD),
)
}
/// ### draw_remote_explorer
///
/// Draw remote explorer list
fn draw_remote_explorer(&self) -> List {
let files: Vec<ListItem> = self
.remote
.files
.iter()
.map(|entry: &FsEntry| ListItem::new(Span::from(format!("{}", entry))))
.collect();
List::new(files)
.block(
Block::default()
.borders(Borders::ALL)
.title(self.params.address.clone()),
)
.start_corner(Corner::BottomLeft)
.highlight_style(
Style::default()
.fg(Color::LightYellow)
.add_modifier(Modifier::BOLD),
)
}
/// ### draw_log_list /// ### draw_log_list
/// ///
/// Draw log list /// Draw log list
@@ -1495,7 +1544,8 @@ impl FileTransferActivity {
LogLevel::Warn => Style::default().fg(Color::Yellow), LogLevel::Warn => Style::default().fg(Color::Yellow),
LogLevel::Info => Style::default().fg(Color::Green), LogLevel::Info => Style::default().fg(Color::Green),
}; };
let header = Spans::from(vec![ let log = Spans::from(vec![
Span::from(format!("{}", record.time.format("%Y-%m-%dT%H:%M:%S%Z"))),
Span::raw("["), Span::raw("["),
Span::styled( Span::styled(
format!( format!(
@@ -1508,16 +1558,16 @@ impl FileTransferActivity {
), ),
s, s,
), ),
Span::raw("] "), Span::raw("]: "),
Span::from(format!("{}", record.time.format("%Y-%m-%dT%H:%M:%S%Z"))), Span::from(record.msg.clone()),
]); ]);
let log = Spans::from(vec![Span::from(record.msg.clone())]); ListItem::new(log)
ListItem::new(vec![header, log])
}) })
.collect(); .collect();
List::new(events) List::new(events)
.block(Block::default().borders(Borders::ALL).title("Log")) .block(Block::default().borders(Borders::ALL).title("Log"))
.start_corner(Corner::BottomLeft) .start_corner(Corner::BottomLeft)
.highlight_style(Style::default().add_modifier(Modifier::BOLD))
} }
/// ### draw_footer /// ### draw_footer