summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-01-09 22:07:24 +0100
committerqkzk <qu3nt1n@gmail.com>2023-01-09 22:07:24 +0100
commit934df7162607d1c65cc220ee98251311821a31fc (patch)
tree522018fffe9ebb2023b5bcca6decea53498fe2e4 /src
parent9e15457540f002d27550a40553ab4b399ea0aeeb (diff)
second line for tree
Diffstat (limited to 'src')
-rw-r--r--src/term_manager.rs51
1 files changed, 32 insertions, 19 deletions
diff --git a/src/term_manager.rs b/src/term_manager.rs
index 8c83d21..800bccb 100644
--- a/src/term_manager.rs
+++ b/src/term_manager.rs
@@ -13,7 +13,7 @@ use crate::constant_strings_paths::{
FILTER_PRESENTATION, HELP_FIRST_SENTENCE, HELP_SECOND_SENTENCE,
};
use crate::content_window::ContentWindow;
-use crate::fileinfo::fileinfo_attr;
+use crate::fileinfo::{fileinfo_attr, FileInfo};
use crate::fm_error::{FmError, FmResult};
use crate::mode::{InputSimple, MarkAction, Mode, Navigate, NeedConfirmation};
use crate::preview::{Preview, TextKind, Window};
@@ -119,27 +119,18 @@ impl<'a> WinTab<'a> {
fn second_line(&self, status: &Status, tab: &Tab, canvas: &mut dyn Canvas) -> FmResult<()> {
match tab.mode {
- Mode::Normal | Mode::Tree => {
+ Mode::Normal => {
if !status.display_full {
- if let Some(file) = tab.path_content.selected() {
- let owner_size = file.owner.len();
- let group_size = file.group.len();
- let mut attr = fileinfo_attr(file, &status.config_colors);
- attr.effect ^= Effect::REVERSE;
- canvas.print_with_attr(
- 1,
- 0,
- &file.format(owner_size, group_size)?,
- attr,
- )?;
+ if let Some(file) = tab.selected() {
+ self.second_line_detailed(file, status, canvas)?;
}
} else {
- canvas.print_with_attr(
- 1,
- 0,
- &format!("{}", &status.selected_non_mut().filter),
- Self::ATTR_YELLOW_BOLD,
- )?;
+ self.second_line_simple(status, canvas)?;
+ }
+ }
+ Mode::Tree => {
+ if let Some(file) = tab.selected() {
+ self.second_line_detailed(file, status, canvas)?;
}
}
Mode::InputSimple(InputSimple::Filter) => {
@@ -151,6 +142,28 @@ impl<'a> WinTab<'a> {
Ok(())
}
+ fn second_line_detailed(
+ &self,
+ file: &FileInfo,
+ status: &Status,
+ canvas: &mut dyn Canvas,
+ ) -> FmResult<usize> {
+ let owner_size = file.owner.len();
+ let group_size = file.group.len();
+ let mut attr = fileinfo_attr(file, &status.config_colors);
+ attr.effect ^= Effect::REVERSE;
+ Ok(canvas.print_with_attr(1, 0, &file.format(owner_size, group_size)?, attr)?)
+ }
+
+ fn second_line_simple(&self, status: &Status, canvas: &mut dyn Canvas) -> FmResult<usize> {
+ Ok(canvas.print_with_attr(
+ 1,
+ 0,
+ &format!("{}", &status.selected_non_mut().filter),
+ Self::ATTR_YELLOW_BOLD,
+ )?)
+ }
+
fn create_first_row(&self, tab: &Tab, disk_space: &str) -> FmResult<Vec<String>> {
let first_row = match tab.mode {
Mode::Normal | Mode::Tree => {