summaryrefslogtreecommitdiffstats
path: root/src/canvas.rs
diff options
context:
space:
mode:
authorClementTsang <clementjhtsang@gmail.com>2019-09-15 01:29:49 -0400
committerClementTsang <clementjhtsang@gmail.com>2019-09-15 01:29:49 -0400
commit0eb993d1291cf35b1329dd1af08b4723a26b7044 (patch)
treee388f96c0b5389c6cd6db2a989dc45d29822b96d /src/canvas.rs
parent282acd1395fb521be3ca94c7731abfdfa2c9ae0c (diff)
Added a few changes - fix for slow start time feel, changed cpu legend display, added logic to make avg cpu display over everything. Also changed tui source to a fork.
Diffstat (limited to 'src/canvas.rs')
-rw-r--r--src/canvas.rs30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/canvas.rs b/src/canvas.rs
index 7858c42b..2cd26c4d 100644
--- a/src/canvas.rs
+++ b/src/canvas.rs
@@ -5,7 +5,7 @@ use tui::{
Terminal,
};
-use crate::utils::error;
+use crate::{app, utils::error};
const COLOUR_LIST : [Color; 6] = [Color::Red, Color::Green, Color::LightYellow, Color::LightBlue, Color::LightCyan, Color::LightMagenta];
const TEXT_COLOUR : Color = Color::Gray;
@@ -27,7 +27,7 @@ pub struct CanvasData {
pub cpu_data : Vec<(String, Vec<(f64, f64)>)>,
}
-pub fn draw_data<B : tui::backend::Backend>(terminal : &mut Terminal<B>, canvas_data : &CanvasData) -> error::Result<()> {
+pub fn draw_data<B : tui::backend::Backend>(terminal : &mut Terminal<B>, app_data : &app::App, canvas_data : &CanvasData) -> error::Result<()> {
let border_style : Style = Style::default().fg(BORDER_STYLE_COLOUR);
let temperature_rows = canvas_data.temp_sensor_data.iter().map(|sensor| Row::StyledData(sensor.iter(), Style::default().fg(TEXT_COLOUR)));
@@ -39,7 +39,7 @@ pub fn draw_data<B : tui::backend::Backend>(terminal : &mut Terminal<B>, canvas_
let vertical_chunks = Layout::default()
.direction(Direction::Vertical)
.margin(1)
- .constraints([Constraint::Percentage(32), Constraint::Percentage(34), Constraint::Percentage(34)].as_ref())
+ .constraints([Constraint::Percentage(34), Constraint::Percentage(34), Constraint::Percentage(33)].as_ref())
.split(f.size());
let middle_chunks = Layout::default()
@@ -67,16 +67,38 @@ pub fn draw_data<B : tui::backend::Backend>(terminal : &mut Terminal<B>, canvas_
let y_axis = Axis::default().style(Style::default().fg(GRAPH_COLOUR)).bounds([-0.5, 100.0]).labels(&["0%", "100%"]);
let mut dataset_vector : Vec<Dataset> = Vec::new();
+
for (i, cpu) in canvas_data.cpu_data.iter().enumerate() {
+ let mut avg_cpu_exist_offset = 0;
+ if app_data.show_average_cpu {
+ if i == 0 {
+ // Skip, we want to render the average cpu last!
+ continue;
+ }
+ else {
+ avg_cpu_exist_offset = 1;
+ }
+ }
+
dataset_vector.push(
Dataset::default()
.name(&cpu.0)
.marker(GRAPH_MARKER)
- .style(Style::default().fg(COLOUR_LIST[i % COLOUR_LIST.len()]))
+ .style(Style::default().fg(COLOUR_LIST[i - avg_cpu_exist_offset % COLOUR_LIST.len()]))
.data(&(cpu.1)),
);
}
+ if !canvas_data.cpu_data.is_empty() && app_data.show_average_cpu {
+ dataset_vector.push(
+ Dataset::default()
+ .name(&canvas_data.cpu_data[0].0)
+ .marker(GRAPH_MARKER)
+ .style(Style::default().fg(COLOUR_LIST[canvas_data.cpu_data.len() - 1 % COLOUR_LIST.len()]))
+ .data(&(canvas_data.cpu_data[0].1)),
+ );
+ }
+
Chart::default()
.block(Block::default().title("CPU Usage").borders(Borders::ALL).border_style(border_style))
.x_axis(x_axis)