summaryrefslogtreecommitdiffstats
path: root/src/canvas/widgets
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2020-08-11 17:22:39 -0700
committerGitHub <noreply@github.com>2020-08-11 20:22:39 -0400
commitd0cc6078df6886bd40643ee3f542c7cd0862d929 (patch)
tree1617b1d879340f9efce0c40508e2dcb6aeb6d57f /src/canvas/widgets
parent17552c50cfc7247126e9f1eacc157a2be91cfc86 (diff)
deps: Update dependencies, drop MSRV
Update dependencies to most recent versions if applicable. Refactor to deal with breaking changes. Drop MSRV due to dependency issues, just support stable and later.
Diffstat (limited to 'src/canvas/widgets')
-rw-r--r--src/canvas/widgets/basic_table_arrows.rs14
-rw-r--r--src/canvas/widgets/battery_display.rs88
-rw-r--r--src/canvas/widgets/cpu_basic.rs19
-rw-r--r--src/canvas/widgets/cpu_graph.rs43
-rw-r--r--src/canvas/widgets/disk_table.rs40
-rw-r--r--src/canvas/widgets/mem_basic.rs11
-rw-r--r--src/canvas/widgets/mem_graph.rs50
-rw-r--r--src/canvas/widgets/network_basic.rs18
-rw-r--r--src/canvas/widgets/network_graph.rs53
-rw-r--r--src/canvas/widgets/process_table.rs145
-rw-r--r--src/canvas/widgets/temp_table.rs43
11 files changed, 268 insertions, 256 deletions
diff --git a/src/canvas/widgets/basic_table_arrows.rs b/src/canvas/widgets/basic_table_arrows.rs
index 1b309cb1..5e5c306c 100644
--- a/src/canvas/widgets/basic_table_arrows.rs
+++ b/src/canvas/widgets/basic_table_arrows.rs
@@ -10,7 +10,8 @@ use tui::{
backend::Backend,
layout::{Constraint, Layout, Rect},
terminal::Frame,
- widgets::{Block, Paragraph, Text},
+ text::{Span, Spans},
+ widgets::{Block, Paragraph},
};
pub trait BasicTableArrows {
@@ -58,9 +59,12 @@ impl BasicTableArrows for Painter {
usize::from(draw_loc.width).saturating_sub(6 + left_name.len() + right_name.len());
let arrow_text = vec![
- Text::Styled(format!("\n◄ {}", left_name).into(), self.colours.text_style),
- Text::Raw(" ".repeat(num_spaces).into()),
- Text::Styled(format!("{} ►", right_name).into(), self.colours.text_style),
+ Spans::from(Span::from(String::default())),
+ Spans::from(vec![
+ Span::styled(format!("◄ {}", left_name), self.colours.text_style),
+ Span::from(" ".repeat(num_spaces)),
+ Span::styled(format!("{} ►", right_name), self.colours.text_style),
+ ]),
];
let margined_draw_loc = Layout::default()
@@ -69,7 +73,7 @@ impl BasicTableArrows for Painter {
.split(draw_loc);
f.render_widget(
- Paragraph::new(arrow_text.iter()).block(Block::default()),
+ Paragraph::new(arrow_text).block(Block::default()),
margined_draw_loc[0],
);
}
diff --git a/src/canvas/widgets/battery_display.rs b/src/canvas/widgets/battery_display.rs
index 0b378247..d716b53e 100644
--- a/src/canvas/widgets/battery_display.rs
+++ b/src/canvas/widgets/battery_display.rs
@@ -8,7 +8,8 @@ use tui::{
backend::Backend,
layout::{Constraint, Rect},
terminal::Frame,
- widgets::{Block, Borders, Paragraph, Row, Table, Tabs, Text},
+ text::{Span, Spans},
+ widgets::{Block, Borders, Paragraph, Row, Table, Tabs},
};
pub trait BatteryDisplayWidget {
@@ -27,32 +28,31 @@ impl BatteryDisplayWidget for Painter {
app_state.battery_state.widget_states.get_mut(&widget_id)
{
let is_on_widget = widget_id == app_state.current_widget.widget_id;
- let title = if app_state.is_expanded {
- const TITLE_BASE: &str = " Battery ── Esc to go back ";
- format!(
- " Battery ─{}─ Esc to go back ",
- "─".repeat(
- usize::from(draw_loc.width).saturating_sub(TITLE_BASE.chars().count() + 2)
- )
- )
- } else {
- " Battery ".to_string()
- };
-
let border_and_title_style = if is_on_widget {
self.colours.highlighted_border_style
} else {
self.colours.border_style
};
+ let title = if app_state.is_expanded {
+ const TITLE_BASE: &str = " Battery ── Esc to go back ";
+ Span::styled(
+ format!(
+ " Battery ─{}─ Esc to go back ",
+ "─".repeat(
+ usize::from(draw_loc.width)
+ .saturating_sub(TITLE_BASE.chars().count() + 2)
+ )
+ ),
+ border_and_title_style,
+ )
+ } else {
+ Span::styled(" Battery ".to_string(), self.colours.widget_title_style)
+ };
+
let battery_block = if draw_border {
Block::default()
- .title(&title)
- .title_style(if app_state.is_expanded {
- border_and_title_style
- } else {
- self.colours.widget_title_style
- })
+ .title(title)
.borders(Borders::ALL)
.border_style(border_and_title_style)
} else if is_on_widget {
@@ -63,6 +63,23 @@ impl BatteryDisplayWidget for Painter {
Block::default().borders(Borders::NONE)
};
+ f.render_widget(
+ Tabs::new(
+ (app_state
+ .canvas_data
+ .battery_data
+ .iter()
+ .map(|battery| Spans::from(battery.battery_name.clone())))
+ .collect::<Vec<_>>(),
+ )
+ .block(battery_block.clone())
+ .divider(tui::symbols::line::VERTICAL)
+ .style(self.colours.text_style)
+ .highlight_style(self.colours.currently_selected_text_style)
+ .select(battery_widget_state.currently_selected_battery_index),
+ draw_loc,
+ );
+
if let Some(battery_details) = app_state
.canvas_data
.battery_data
@@ -117,44 +134,21 @@ impl BatteryDisplayWidget for Painter {
// Draw
f.render_widget(
Table::new([""].iter(), battery_rows)
- .block(battery_block)
+ .block(battery_block.clone())
.header_style(self.colours.table_header_style)
.widths([Constraint::Percentage(50), Constraint::Percentage(50)].as_ref()),
draw_loc,
);
} else {
f.render_widget(
- Paragraph::new(
- [Text::Styled(
- "No data found for this battery".into(),
- self.colours.text_style,
- )]
- .iter(),
- )
+ Paragraph::new(Spans::from(Span::styled(
+ "No data found for this battery",
+ self.colours.text_style,
+ )))
.block(battery_block),
draw_loc,
);
}
- // if app_state.canvas_data.battery_data.len() > 1 {
- f.render_widget(
- Tabs::default()
- .block(battery_block)
- .titles(
- (app_state
- .canvas_data
- .battery_data
- .iter()
- .map(|battery| &battery.battery_name))
- .collect::<Vec<_>>()
- .as_ref(),
- )
- .divider(tui::symbols::line::VERTICAL)
- .style(self.colours.text_style)
- .highlight_style(self.colours.currently_selected_text_style)
- .select(battery_widget_state.currently_selected_battery_index),
- draw_loc,
- );
- // }
}
}
}
diff --git a/src/canvas/widgets/cpu_basic.rs b/src/canvas/widgets/cpu_basic.rs
index baa6adbf..c8db2f33 100644
--- a/src/canvas/widgets/cpu_basic.rs
+++ b/src/canvas/widgets/cpu_basic.rs
@@ -11,7 +11,8 @@ use tui::{
backend::Backend,
layout::{Constraint, Direction, Layout, Rect},
terminal::Frame,
- widgets::{Block, Paragraph, Text},
+ text::{Span, Spans},
+ widgets::{Block, Paragraph},
};
pub trait CpuBasicWidget {
@@ -76,10 +77,10 @@ impl CpuBasicWidget for Painter {
let num_bars = calculate_basic_use_bars(use_percentage, bar_length);
format!(
- "{:3}[{}{}{:3.0}%]\n",
+ "{:3}[{}{}{:3.0}%]",
if app_state.app_config_fields.show_average_cpu {
if cpu_index == 0 {
- "AVG".to_string()
+ " AVG".to_string()
} else {
(cpu_index - 1).to_string()
}
@@ -106,13 +107,13 @@ impl CpuBasicWidget for Painter {
);
row_counter -= how_many_cpus;
let end_index = min(start_index + how_many_cpus, num_cpus);
- let cpu_column: Vec<Text<'_>> = (start_index..end_index)
+ let cpu_column = (start_index..end_index)
.map(|cpu_index| {
- Text::Styled(
- (&cpu_bars[cpu_index]).into(),
- self.colours.cpu_colour_styles
+ Spans::from(Span {
+ content: (&cpu_bars[cpu_index]).into(),
+ style: self.colours.cpu_colour_styles
[cpu_index % self.colours.cpu_colour_styles.len()],
- )
+ })
})
.collect::<Vec<_>>();
@@ -125,7 +126,7 @@ impl CpuBasicWidget for Painter {
.split(*chunk);
f.render_widget(
- Paragraph::new(cpu_column.iter()).block(Block::default()),
+ Paragraph::new(cpu_column).block(Block::default()),
margined_loc[0],
);
}
diff --git a/src/canvas/widgets/cpu_graph.rs b/src/canvas/widgets/cpu_graph.rs
index e6800f91..097d91b8 100644
--- a/src/canvas/widgets/cpu_graph.rs
+++ b/src/canvas/widgets/cpu_graph.rs
@@ -17,6 +17,7 @@ use tui::{
layout::{Constraint, Direction, Layout, Rect},
symbols::Marker,
terminal::Frame,
+ text::Span,
widgets::{Axis, Block, Borders, Chart, Dataset, Row, Table},
};
@@ -103,9 +104,12 @@ impl CpuGraphWidget for Painter {
if let Some(cpu_widget_state) = app_state.cpu_state.widget_states.get_mut(&widget_id) {
let cpu_data: &mut [ConvertedCpuData] = &mut app_state.canvas_data.cpu_data;
- let display_time_labels = [
- format!("{}s", cpu_widget_state.current_display_time / 1000),
- "0s".to_string(),
+ let display_time_labels = vec![
+ Span::styled(
+ format!("{}s", cpu_widget_state.current_display_time / 1000),
+ self.colours.graph_style,
+ ),
+ Span::styled("0s".to_string(), self.colours.graph_style),
];
let x_axis = if app_state.app_config_fields.hide_time
@@ -120,8 +124,7 @@ impl CpuGraphWidget for Painter {
Axis::default()
.bounds([-(cpu_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
} else {
cpu_widget_state.autohide_timer = None;
Axis::default().bounds([-(cpu_widget_state.current_display_time as f64), 0.0])
@@ -132,16 +135,17 @@ impl CpuGraphWidget for Painter {
Axis::default()
.bounds([-(cpu_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
};
// Note this is offset as otherwise the 0 value is not drawn!
let y_axis = Axis::default()
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
.bounds([-0.5, 100.5])
- .labels(&["0%", "100%"]);
+ .labels(vec![
+ Span::styled("0%", self.colours.graph_style),
+ Span::styled("100%", self.colours.graph_style),
+ ]);
let use_dot = app_state.app_config_fields.use_dot;
let show_avg_cpu = app_state.app_config_fields.show_average_cpu;
@@ -189,30 +193,28 @@ impl CpuGraphWidget for Painter {
vec![]
};
- let title = " CPU ".to_string();
-
let border_style = if app_state.current_widget.widget_id == widget_id {
self.colours.highlighted_border_style
} else {
self.colours.border_style
};
+ let title = if app_state.is_expanded {
+ Span::styled(" CPU ".to_string(), border_style)
+ } else {
+ Span::styled(" CPU ".to_string(), self.colours.widget_title_style)
+ };
+
f.render_widget(
- Chart::default()
+ Chart::new(dataset_vector)
.block(
Block::default()
- .title(&title)
- .title_style(if app_state.is_expanded {
- border_style
- } else {
- self.colours.widget_title_style
- })
+ .title(title)
.borders(Borders::ALL)
.border_style(border_style),
)
.x_axis(x_axis)
- .y_axis(y_axis)
- .datasets(&dataset_vector),
+ .y_axis(y_axis),
draw_loc,
);
}
@@ -296,7 +298,6 @@ impl CpuGraphWidget for Painter {
Table::new(CPU_LEGEND_HEADER.iter(), cpu_rows)
.block(
Block::default()
- .title_style(border_and_title_style)
.borders(Borders::ALL)
.border_style(border_and_title_style),
)
diff --git a/src/canvas/widgets/disk_table.rs b/src/canvas/widgets/disk_table.rs
index 64839869..5b31314e 100644
--- a/src/canvas/widgets/disk_table.rs
+++ b/src/canvas/widgets/disk_table.rs
@@ -4,6 +4,7 @@ use tui::{
backend::Backend,
layout::{Constraint, Direction, Layout, Rect},
terminal::Frame,
+ text::Span,
widgets::{Block, Borders, Row, Table},
};
@@ -67,20 +68,6 @@ impl DiskTableWidget for Painter {
get_variable_intrinsic_widths(width as u16, &width_ratios, &DISK_HEADERS_LENS);
let intrinsic_widths = &variable_intrinsic_results.0[0..variable_intrinsic_results.1];
- let title = if app_state.is_expanded {
- const TITLE_BASE: &str = " Disk ── Esc to go back ";
- format!(
- " Disk ─{}─ Esc to go back ",
- "─".repeat(
- usize::from(draw_loc.width).saturating_sub(TITLE_BASE.chars().count() + 2)
- )
- )
- } else if app_state.app_config_fields.use_basic_mode {
- String::new()
- } else {
- " Disk ".to_string()
- };
-
let (border_and_title_style, highlight_style) = if is_on_widget {
(
self.colours.highlighted_border_style,
@@ -90,14 +77,27 @@ impl DiskTableWidget for Painter {
(self.colours.border_style, self.colours.text_style)
};
+ let title = if app_state.is_expanded {
+ const TITLE_BASE: &str = " Disk ── Esc to go back ";
+ Span::styled(
+ format!(
+ " Disk ─{}─ Esc to go back ",
+ "─".repeat(
+ usize::from(draw_loc.width)
+ .saturating_sub(TITLE_BASE.chars().count() + 2)
+ )
+ ),
+ border_and_title_style,
+ )
+ } else if app_state.app_config_fields.use_basic_mode {
+ Span::from(String::new())
+ } else {
+ Span::styled(" Disk ".to_string(), self.colours.widget_title_style)
+ };
+
let disk_block = if draw_border {
Block::default()
- .title(&title)
- .title_style(if app_state.is_expanded {
- border_and_title_style
- } else {
- self.colours.widget_title_style
- })
+ .title(title)
.borders(Borders::ALL)
.border_style(border_and_title_style)
} else if is_on_widget {
diff --git a/src/canvas/widgets/mem_basic.rs b/src/canvas/widgets/mem_basic.rs
index 05c7c39a..e3abe7ad 100644
--- a/src/canvas/widgets/mem_basic.rs
+++ b/src/canvas/widgets/mem_basic.rs
@@ -8,7 +8,8 @@ use tui::{
backend::Backend,
layout::{Constraint, Layout, Rect},
terminal::Frame,
- widgets::{Block, Paragraph, Text},
+ text::{Span, Spans},
+ widgets::{Block, Paragraph},
};
pub trait MemBasicWidget {
@@ -65,13 +66,13 @@ impl MemBasicWidget for Painter {
swap_use_percentage.round(),
);
- let mem_text: Vec<Text<'_>> = vec![
- Text::Styled(mem_label.into(), self.colours.ram_style),
- Text::Styled(swap_label.into(), self.colours.swap_style),
+ let mem_text = vec![
+ Spans::from(Span::styled(mem_label, self.colours.ram_style)),
+ Spans::from(Span::styled(swap_label, self.colours.swap_style)),
];
f.render_widget(
- Paragraph::new(mem_text.iter()).block(Block::default()),
+ Paragraph::new(mem_text).block(Block::default()),
margined_loc[0],
);
}
diff --git a/src/canvas/widgets/mem_graph.rs b/src/canvas/widgets/mem_graph.rs
index 40f711d3..24717dab 100644
--- a/src/canvas/widgets/mem_graph.rs
+++ b/src/canvas/widgets/mem_graph.rs
@@ -5,6 +5,7 @@ use tui::{
layout::{Constraint, Rect},
symbols::Marker,
terminal::Frame,
+ text::Span,
widgets::{Axis, Block, Borders, Chart, Dataset},
};
@@ -22,9 +23,12 @@ impl MemGraphWidget for Painter {
let mem_data: &[(f64, f64)] = &app_state.canvas_data.mem_data;
let swap_data: &[(f64, f64)] = &app_state.canvas_data.swap_data;
- let display_time_labels = [
- format!("{}s", mem_widget_state.current_display_time / 1000),
- "0s".to_string(),
+ let display_time_labels = vec![
+ Span::styled(
+ format!("{}s", mem_widget_state.current_display_time / 1000),
+ self.colours.graph_style,
+ ),
+ Span::styled("0s".to_string(), self.colours.graph_style),
];
let x_axis = if app_state.app_config_fields.hide_time
|| (app_state.app_config_fields.autohide_time
@@ -38,8 +42,7 @@ impl MemGraphWidget for Painter {
Axis::default()
.bounds([-(mem_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
} else {
mem_widget_state.autohide_timer = None;
Axis::default().bounds([-(mem_widget_state.current_display_time as f64), 0.0])
@@ -50,16 +53,17 @@ impl MemGraphWidget for Painter {
Axis::default()
.bounds([-(mem_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
};
// Offset as the zero value isn't drawn otherwise...
- let y_axis: Axis<'_, &str> = Axis::default()
+ let y_axis = Axis::default()
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
.bounds([-0.5, 100.5])
- .labels(&["0%", "100%"]);
+ .labels(vec![
+ Span::styled("0%", self.colours.graph_style),
+ Span::styled("100%", self.colours.graph_style),
+ ]);
let mut mem_canvas_vec: Vec<Dataset<'_>> = vec![];
@@ -91,26 +95,25 @@ impl MemGraphWidget for Painter {
let title = if app_state.is_expanded {
const TITLE_BASE: &str = " Memory ── Esc to go back ";
- format!(
- " Memory ─{}─ Esc to go back ",
- "─".repeat(
- usize::from(draw_loc.width).saturating_sub(TITLE_BASE.chars().count() + 2)
- )
+ Span::styled(
+ format!(
+ " Memory ─{}─ Esc to go back ",
+ "─".repeat(
+ usize::from(draw_loc.width)
+ .saturating_sub(TITLE_BASE.chars().count() + 2)
+ )
+ ),
+ self.colours.highlighted_border_style,
)
} else {
- " Memory ".to_string()
+ Span::styled(" Memory ".to_string(), self.colours.widget_title_style)
};
f.render_widget(
- Chart::default()
+ Chart::new(mem_canvas_vec)
.block(
Block::default()
- .title(&title)
- .title_style(if app_state.is_expanded {
- self.colours.highlighted_border_style
- } else {
- self.colours.widget_title_style
- })
+ .title(title)
.borders(Borders::ALL)
.border_style(if app_state.current_widget.widget_id == widget_id {
self.colours.highlighted_border_style
@@ -120,7 +123,6 @@ impl MemGraphWidget for Painter {
)
.x_axis(x_axis)
.y_axis(y_axis)
- .datasets(&mem_canvas_vec)
.hidden_legend_constraints((Constraint::Ratio(3, 4), Constraint::Ratio(3, 4))),
draw_loc,
);
diff --git a/src/canvas/widgets/network_basic.rs b/src/canvas/widgets/network_basic.rs
index 30c4e189..c5c7b6fa 100644
--- a/src/canvas/widgets/network_basic.rs
+++ b/src/canvas/widgets/network_basic.rs
@@ -4,7 +4,8 @@ use tui::{
backend::Backend,
layout::{Constraint, Direction, Layout, Rect},
terminal::Frame,
- widgets::{Block, Paragraph, Text},
+ text::{Span, Spans},
+ widgets::{Block, Paragraph},
};
pub trait NetworkBasicWidget {
@@ -49,22 +50,19 @@ impl NetworkBasicWidget for Painter {
let total_tx_label = format!("Total TX: {}", &app_state.canvas_data.total_tx_display);
let net_text = vec![
- Text::Styled(rx_label.into(), self.colours.rx_style),
- Text::Styled(tx_label.into(), self.colours.tx_style),
+ Spans::from(Span::styled(rx_label, self.colours.rx_style)),
+ Spans::from(Span::styled(tx_label, self.colours.tx_style)),
];
let total_net_text = vec![
- Text::Styled(total_rx_label.into(), self.colours.total_rx_style),
- Text::Styled(total_tx_label.into(), self.colours.total_tx_style),
+ Spans::from(Span::styled(total_rx_label, self.colours.total_rx_style)),
+ Spans::from(Span::styled(total_tx_label, self.colours.total_tx_style)),
];
- f.render_widget(
- Paragraph::new(net_text.iter()).block(Block::default()),
- net_loc[0],
- );
+ f.render_widget(Paragraph::new(net_text).block(Block::default()), net_loc[0]);
f.render_widget(
- Paragraph::new(total_net_text.iter()).block(Block::default()),
+ Paragraph::new(total_net_text).block(Block::default()),
total_loc[0],
);
}
diff --git a/src/canvas/widgets/network_graph.rs b/src/canvas/widgets/network_graph.rs
index 07146eaa..27a464d8 100644
--- a/src/canvas/widgets/network_graph.rs
+++ b/src/canvas/widgets/network_graph.rs
@@ -12,6 +12,7 @@ use tui::{
layout::{Constraint, Direction, Layout, Rect},
symbols::Marker,
terminal::Frame,
+ text::Span,
widgets::{Axis, Block, Borders, Chart, Dataset, Row, Table},
};
@@ -71,9 +72,12 @@ impl NetworkGraphWidget for Painter {
let network_data_rx: &[(f64, f64)] = &app_state.canvas_data.network_data_rx;
let network_data_tx: &[(f64, f64)] = &app_state.canvas_data.network_data_tx;
- let display_time_labels = [
- format!("{}s", network_widget_state.current_display_time / 1000),
- "0s".to_string(),
+ let display_time_labels = vec![
+ Span::styled(
+ format!("{}s", network_widget_state.current_display_time / 1000),
+ self.colours.graph_style,
+ ),
+ Span::styled("0s".to_string(), self.colours.graph_style),
];
let x_axis = if app_state.app_config_fields.hide_time
|| (app_state.app_config_fields.autohide_time
@@ -87,8 +91,7 @@ impl NetworkGraphWidget for Painter {
Axis::default()
.bounds([-(network_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
} else {
network_widget_state.autohide_timer = None;
Axis::default()
@@ -100,27 +103,35 @@ impl NetworkGraphWidget for Painter {
Axis::default()
.bounds([-(network_widget_state.current_display_time as f64), 0.0])
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
- .labels(&display_time_labels)
+ .labels(display_time_labels)
};
// 0 is offset.
- let y_axis: Axis<'_, &str> = Axis::default()
+ let y_axis_labels = vec![
+ Span::styled("0B", self.colours.graph_style),
+ Span::styled("1KiB", self.colours.graph_style),
+ Span::styled("1MiB", self.colours.graph_style),
+ Span::styled("1GiB", self.colours.graph_style),
+ ];
+ let y_axis = Axis::default()
.style(self.colours.graph_style)
- .labels_style(self.colours.graph_style)
.bounds([-0.5, 30_f64])
- .labels(&["0B", "1KiB", "1MiB", "1GiB"]);
+ .labels(y_axis_labels);
let title = if app_state.is_expanded {
const TITLE_BASE: &str = " Network ── Esc to go back ";
- format!(
- " Network ─{}─ Esc to go back ",
- "─".repeat(
- usize::from(draw_loc.width).saturating_sub(TITLE_BASE.chars().count() + 2)
- )
+ Span::styled(
+ format!(
+ " Network ─{}─ Esc to go back ",
+ "─".repeat(
+ usize::from(draw_loc.width)
+ .saturating_sub(TITLE_BASE.chars().count() + 2)
+ )
+ ),
+ self.colours.highlighted_border_style,
)
} else {
- " Network ".to_string()
+ Span::styled(" Network ".to_string(), self.colours.widget_title_style)
};
let legend_constraints = if hide_legend {
@@ -209,15 +220,10 @@ impl NetworkGraphWidget for Painter {
};
f.render_widget(
- Chart::default()
+ Chart::new(dataset)
.block(
Block::default()
- .title(&title)
- .title_style(if app_state.is_expanded {
- self.colours.highlighted_border_style
- } else {
- self.colours.widget_title_style
- })
+ .title(title)
.borders(Borders::ALL)
.border_style(if app_state.current_widget.widget_id == widget_id {
self.colours.highlighted_border_style
@@ -227,7 +233,6 @@ impl NetworkGraphWidget for Painter {
)
.x_axis(x_axis)
.y_axis(y_axis)
- .datasets(&dataset)
.hidden_legend_constraints(legend_constraints),
draw_loc,
);
diff --git a/src/canvas/widgets/process_table.rs b/src/canvas/widgets/process_table.rs
index 5ceb8b28..3faab2ba 100644
--- a/src/canvas/widgets/process_table.rs
+++ b/src/canvas/widgets/process_table.rs
@@ -13,7 +13,8 @@ use tui::{
backend::Backend,
layout::{Alignment, Constraint, Direction, Layout, Rect},
terminal::Frame,
- widgets::{Block, Borders, Paragraph, Row, Table, Text},
+ text::{Span, Spans},
+ widgets::{Block, Borders, Paragraph, Row, Table, Wrap},
};
use unicode_segmentation::{GraphemeIndices, UnicodeSegmentation};
@@ -202,12 +203,12 @@ impl ProcessTableWidget for Painter {
// TODO: This is a ugly work-around for now.
let width_ratios = if proc_widget_state.is_grouped {
if proc_widget_state.is_using_full_path {
- vec![0.1, 0.7, 0.05, 0.05, 0.025, 0.025, 0.025, 0.025]
+ vec![0.05, 0.7, 0.05, 0.05, 0.0375, 0.0375, 0.0375, 0.0375]
} else {
vec![0.1, 0.2, 0.1, 0.1, 0.1, 0.1, 0.15, 0.15]
}
} else if proc_widget_state.is_using_full_path {
- vec![0.1, 0.7, 0.05, 0.05, 0.02, 0.02, 0.02, 0.02, 0.02]
+ vec![0.05, 0.7, 0.05, 0.05, 0.03, 0.03, 0.03, 0.03]
} else {
vec![0.1, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
};
@@ -219,6 +220,15 @@ impl ProcessTableWidget for Painter {
let intrinsic_widths =
&(variable_intrinsic_results.0)[0..variable_intrinsic_results.1];
+ let (border_and_title_style, highlight_style) = if is_on_widget {
+ (
+ self.colours.highlighted_border_style,
+ self.colours.currently_selected_text_style,
+ )
+ } else {
+ (self.colours.border_style, self.colours.text_style)
+ };
+
let title = if draw_border {
if app_state.is_expanded
&& !proc_widget_state
@@ -227,37 +237,26 @@ impl ProcessTableWidget for Painter {
.is_enabled
{
const TITLE_BASE: &str = " Processes ── Esc to go back ";
- format!(
- " Processes ─{}─ Esc to go back ",
- "─".repeat(
- usize::from(draw_loc.width)
- .saturating_sub(TITLE_BASE.chars().count() + 2)
- )
+ Span::styled(
+ format!(
+ " Processes ─{}─ Esc to go back ",
+ "─".repeat(
+ usize::from(draw_loc.width)
+ .saturating_sub(TITLE_BASE.chars().count() + 2)
+ )
+ ),
+ border_and_title_style,
)
} else {
- " Processes ".to_string()
+ Span::styled(" Processes ".to_string(), self.colours.widget_title_style)
}
} else {
- String::default()
- };
-
- let (border_and_title_style, highlight_style) = if is_on_widget {
- (
- self.colours.highlighted_border_style,
- self.colours.currently_selected_text_style,
- )
- } else {
- (self.colours.border_style, self.colours.text_style)<