summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/display/components/layout.rs1
-rw-r--r--src/display/components/total_bandwidth.rs45
2 files changed, 36 insertions, 10 deletions
diff --git a/src/display/components/layout.rs b/src/display/components/layout.rs
index 6c9812d..d3edb81 100644
--- a/src/display/components/layout.rs
+++ b/src/display/components/layout.rs
@@ -99,6 +99,7 @@ impl<'a> Layout<'a> {
self.build_three_children_layout(rect)
}
}
+
pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect) {
let (top, app, bottom) = top_app_and_bottom_split(rect);
let layout_slots = self.build_layout(app);
diff --git a/src/display/components/total_bandwidth.rs b/src/display/components/total_bandwidth.rs
index dbc2e78..3da80cd 100644
--- a/src/display/components/total_bandwidth.rs
+++ b/src/display/components/total_bandwidth.rs
@@ -5,6 +5,7 @@ use ::tui::terminal::Frame;
use ::tui::widgets::{Paragraph, Text, Widget};
use crate::display::{DisplayBandwidth, UIState};
+use tui::layout::{Constraint, Direction};
pub struct HeaderDetails<'a> {
pub state: &'a UIState,
@@ -14,23 +15,38 @@ pub struct HeaderDetails<'a> {
impl<'a> HeaderDetails<'a> {
pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect) {
+ let parts = ::tui::layout::Layout::default()
+ .direction(Direction::Horizontal)
+ .margin(0)
+ .constraints(
+ [
+ Constraint::Percentage(33),
+ Constraint::Percentage(33),
+ Constraint::Percentage(33),
+ ]
+ .as_ref(),
+ )
+ .split(rect);
+
let color = if self.paused {
Color::Yellow
} else {
Color::Green
};
- if self.state.cumulative_mode { self.render_elapsed_time(frame, rect, &color) };
- self.render_bandwidth(frame, rect, &color);
+
+ if self.state.cumulative_mode {
+ self.render_elapsed_time(frame, parts[2], &color)
+ };
+ self.render_paused(frame, parts[1], &color);
+ self.render_bandwidth(frame, parts[0], &color);
}
fn render_bandwidth(&self, frame: &mut Frame<impl Backend>, rect: Rect, color: &Color) {
let c_mode = self.state.cumulative_mode;
let title_text = {
- let paused_str = if self.paused { "[PAUSED]" } else { "" };
-
[Text::styled(
format!(
- " Total Up / Down: {} / {} {}",
+ " Total Up / Down: {} / {}",
DisplayBandwidth {
bandwidth: self.state.total_bytes_uploaded as f64,
as_rate: !c_mode,
@@ -38,8 +54,7 @@ impl<'a> HeaderDetails<'a> {
DisplayBandwidth {
bandwidth: self.state.total_bytes_downloaded as f64,
as_rate: !c_mode,
- },
- paused_str
+ }
),
Style::default().fg(*color).modifier(Modifier::BOLD),
)]
@@ -58,12 +73,22 @@ impl<'a> HeaderDetails<'a> {
(self.elapsed_time.as_secs() % 3600) / 60,
self.elapsed_time.as_secs() % 60
),
- Style::default()
- .fg(*color)
- .modifier(Modifier::BOLD),
+ Style::default().fg(*color).modifier(Modifier::BOLD),
)];
Paragraph::new(elapsed_time_text.iter())
.alignment(Alignment::Right)
.render(frame, rect);
}
+
+ fn render_paused(&self, frame: &mut Frame<impl Backend>, rect: Rect, color: &Color) {
+ if self.paused {
+ let paused_text = [Text::styled(
+ format!("PAUSED"),
+ Style::default().fg(*color).modifier(Modifier::BOLD),
+ )];
+ Paragraph::new(paused_text.iter())
+ .alignment(Alignment::Center)
+ .render(frame, rect);
+ }
+ }
}
0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
<dev@bernhard-posselt.com> <nukeawhale@gmail.com>
<dev@bernhard-posselt.com> <raydiation@users.noreply.github.com>
<dev@bernhard-posselt.com> <bernhard@posselt.at>
<dev@bernhard-posselt.com> <BernhardPosselt@users.noreply.github.com>
<cosenal@gmail.com> <acosenti@malutchosky.(none)>
David-Development <david-dev@live.de>
<hey@morrisjobke.de> <morris.jobke@gmail.com>
Alessandro Cosentino <cosenal@gmail.com> Alessandro <cosenal@gmail.com>
Jenkins for ownCloud <owncloud-bot@tmit.eu> Jenkins for ownCloud <thomas.mueller@tmit.eu>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
bastei <bastei@users.noreply.github.com> bastei <none>
Konrad Graefe <konradgraefe@aol.com> kgraefe <konradgraefe@aol.com>
<lukas@owncloud.com> <lukas@statuscode.ch>
<dev@ibboard.co.uk> <github@ibboard.co.uk>
<anoymouserver+github@mailbox.org> <anoymouserver@users.noreply.github.com>