From 55346b5b79682ab65380669fe8f343be94f75cb5 Mon Sep 17 00:00:00 2001 From: Wesley Moore Date: Thu, 11 Aug 2022 11:41:03 +1000 Subject: [PATCH] Add option to hide clock seconds --- src/app.rs | 7 ++++++- src/app/modes/clock.rs | 5 ++++- src/main.rs | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app.rs b/src/app.rs index 6e831f5..182aa7c 100644 --- a/src/app.rs +++ b/src/app.rs @@ -21,6 +21,9 @@ pub(crate) enum Mode { /// Do not show date #[clap(short = 'D', long, takes_value = false)] no_date: bool, + /// Do not show seconds + #[clap(short = 'S', long, takes_value = false)] + no_seconds: bool, /// Show milliseconds #[clap(short, long, takes_value = false)] millis: bool, @@ -71,14 +74,16 @@ impl App { let mode = self.mode.as_ref().unwrap_or(&Mode::Clock { no_date: false, millis: false, + no_seconds: false, }); match mode { - Mode::Clock { no_date, millis } => { + Mode::Clock { no_date, no_seconds, millis } => { self.clock = Some(Clock { size: self.size, style, show_date: !no_date.to_owned(), show_millis: millis.to_owned(), + show_secs: !*no_seconds, }); } Mode::Timer { diff --git a/src/app/modes/clock.rs b/src/app/modes/clock.rs index 24d9765..e6837f0 100644 --- a/src/app/modes/clock.rs +++ b/src/app/modes/clock.rs @@ -9,6 +9,7 @@ pub(crate) struct Clock { pub style: Style, pub show_date: bool, pub show_millis: bool, + pub show_secs: bool, } impl Widget for &Clock { @@ -18,8 +19,10 @@ impl Widget for &Clock { let mut str = now.format("%H:%M:%S%.3f").to_string(); str.truncate(str.len() - 2); str - } else { + } else if self.show_secs { now.format("%H:%M:%S").to_string() + } else { + now.format("%H:%M").to_string() }; let time_str = time_str.as_str(); let text = BricksText::new(time_str, self.size, self.size, self.style); diff --git a/src/main.rs b/src/main.rs index 42e651d..13d40df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -61,7 +61,7 @@ fn main() -> Result<(), Box> { // create app and run it let low_rate = match app.mode { - Some(Mode::Clock { millis, .. }) => !millis, + Some(Mode::Clock { millis, no_seconds, .. }) => !millis || no_seconds, Some(Mode::Timer { no_millis, .. }) => no_millis, _ => false, };