mirror of
https://github.com/veeso/termscp.git
synced 2026-03-31 23:32:20 -07:00
feat: consolidate theme progress bar fields into single transfer_progress_bar
This commit is contained in:
@@ -775,8 +775,7 @@ mod tests {
|
||||
transfer_local_explorer_highlighted = "Yellow"
|
||||
transfer_log_background = "255, 255, 255"
|
||||
transfer_log_window = "LightGreen"
|
||||
transfer_progress_bar_full = "forestgreen"
|
||||
transfer_progress_bar_partial = "Green"
|
||||
transfer_progress_bar = "forestgreen"
|
||||
transfer_remote_explorer_background = "#f0f0f0"
|
||||
transfer_remote_explorer_foreground = "rgb(40, 40, 40)"
|
||||
transfer_remote_explorer_highlighted = "LightBlue"
|
||||
|
||||
@@ -114,14 +114,11 @@ pub struct Theme {
|
||||
pub transfer_log_window: Color,
|
||||
#[serde(
|
||||
deserialize_with = "deserialize_color",
|
||||
serialize_with = "serialize_color"
|
||||
serialize_with = "serialize_color",
|
||||
alias = "transfer_progress_bar_full",
|
||||
alias = "transfer_progress_bar_partial"
|
||||
)]
|
||||
pub transfer_progress_bar_full: Color,
|
||||
#[serde(
|
||||
deserialize_with = "deserialize_color",
|
||||
serialize_with = "serialize_color"
|
||||
)]
|
||||
pub transfer_progress_bar_partial: Color,
|
||||
pub transfer_progress_bar: Color,
|
||||
#[serde(
|
||||
deserialize_with = "deserialize_color",
|
||||
serialize_with = "serialize_color"
|
||||
@@ -176,8 +173,7 @@ impl Default for Theme {
|
||||
transfer_local_explorer_highlighted: Color::Yellow,
|
||||
transfer_log_background: Color::Reset,
|
||||
transfer_log_window: Color::LightGreen,
|
||||
transfer_progress_bar_partial: Color::Green,
|
||||
transfer_progress_bar_full: Color::Green,
|
||||
transfer_progress_bar: Color::Green,
|
||||
transfer_remote_explorer_background: Color::Reset,
|
||||
transfer_remote_explorer_foreground: Color::Reset,
|
||||
transfer_remote_explorer_highlighted: Color::LightBlue,
|
||||
@@ -239,8 +235,7 @@ mod test {
|
||||
assert_eq!(theme.transfer_local_explorer_highlighted, Color::Yellow);
|
||||
assert_eq!(theme.transfer_log_background, Color::Reset);
|
||||
assert_eq!(theme.transfer_log_window, Color::LightGreen);
|
||||
assert_eq!(theme.transfer_progress_bar_full, Color::Green);
|
||||
assert_eq!(theme.transfer_progress_bar_partial, Color::Green);
|
||||
assert_eq!(theme.transfer_progress_bar, Color::Green);
|
||||
assert_eq!(theme.transfer_remote_explorer_background, Color::Reset);
|
||||
assert_eq!(theme.transfer_remote_explorer_foreground, Color::Reset);
|
||||
assert_eq!(theme.transfer_remote_explorer_highlighted, Color::LightBlue);
|
||||
|
||||
@@ -142,18 +142,17 @@ impl TransferProgress {
|
||||
self.files_total <= 1
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn bytes_written(&self) -> usize {
|
||||
self.bytes_written
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn files_completed(&self) -> usize {
|
||||
self.files_completed
|
||||
}
|
||||
|
||||
pub fn files_total(&self) -> usize {
|
||||
self.files_total
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn files_started(&self) -> usize {
|
||||
self.files_started
|
||||
}
|
||||
@@ -381,7 +380,7 @@ mod test {
|
||||
progress.add_bytes(256);
|
||||
|
||||
let display = progress.to_string();
|
||||
assert!(display.contains("/ 1.0 KB"));
|
||||
assert!(display.contains("/ 1.0 KiB"));
|
||||
assert!(!display.contains('~'));
|
||||
}
|
||||
|
||||
|
||||
@@ -426,7 +426,7 @@ impl FileTransferActivity {
|
||||
&mut self,
|
||||
root_name: String,
|
||||
) {
|
||||
let prog_color = self.theme().transfer_progress_bar_full;
|
||||
let prog_color = self.theme().transfer_progress_bar;
|
||||
ui_result(self.app.remount(
|
||||
Id::TransferProgressBar,
|
||||
Box::new(components::TransferProgressBar::new(
|
||||
|
||||
@@ -103,8 +103,7 @@ pub enum IdTheme {
|
||||
MiscSave,
|
||||
MiscTitle,
|
||||
MiscWarn,
|
||||
ProgBarFull,
|
||||
ProgBarPartial,
|
||||
ProgBar,
|
||||
StatusHidden,
|
||||
StatusSorting,
|
||||
StatusSync,
|
||||
@@ -225,10 +224,8 @@ pub enum ThemeMsg {
|
||||
MiscSaveBlurUp,
|
||||
MiscWarnBlurDown,
|
||||
MiscWarnBlurUp,
|
||||
ProgBarFullBlurDown,
|
||||
ProgBarFullBlurUp,
|
||||
ProgBarPartialBlurDown,
|
||||
ProgBarPartialBlurUp,
|
||||
ProgBarBlurDown,
|
||||
ProgBarBlurUp,
|
||||
StatusHiddenBlurDown,
|
||||
StatusHiddenBlurUp,
|
||||
StatusSortingBlurDown,
|
||||
|
||||
@@ -248,11 +248,8 @@ impl SetupActivity {
|
||||
IdTheme::LogWindow => {
|
||||
theme.transfer_log_window = color;
|
||||
}
|
||||
IdTheme::ProgBarFull => {
|
||||
theme.transfer_progress_bar_full = color;
|
||||
}
|
||||
IdTheme::ProgBarPartial => {
|
||||
theme.transfer_progress_bar_partial = color;
|
||||
IdTheme::ProgBar => {
|
||||
theme.transfer_progress_bar = color;
|
||||
}
|
||||
IdTheme::StatusHidden => {
|
||||
theme.transfer_status_hidden = color;
|
||||
@@ -339,12 +336,9 @@ impl SetupActivity {
|
||||
let transfer_log_window = self
|
||||
.get_color(&Id::Theme(IdTheme::LogWindow))
|
||||
.map_err(|_| Id::Theme(IdTheme::LogWindow))?;
|
||||
let transfer_progress_bar_full = self
|
||||
.get_color(&Id::Theme(IdTheme::ProgBarFull))
|
||||
.map_err(|_| Id::Theme(IdTheme::ProgBarFull))?;
|
||||
let transfer_progress_bar_partial = self
|
||||
.get_color(&Id::Theme(IdTheme::ProgBarPartial))
|
||||
.map_err(|_| Id::Theme(IdTheme::ProgBarPartial))?;
|
||||
let transfer_progress_bar = self
|
||||
.get_color(&Id::Theme(IdTheme::ProgBar))
|
||||
.map_err(|_| Id::Theme(IdTheme::ProgBar))?;
|
||||
let transfer_status_hidden = self
|
||||
.get_color(&Id::Theme(IdTheme::StatusHidden))
|
||||
.map_err(|_| Id::Theme(IdTheme::StatusHidden))?;
|
||||
@@ -378,8 +372,7 @@ impl SetupActivity {
|
||||
theme.transfer_remote_explorer_highlighted = transfer_remote_explorer_highlighted;
|
||||
theme.transfer_log_background = transfer_log_background;
|
||||
theme.transfer_log_window = transfer_log_window;
|
||||
theme.transfer_progress_bar_full = transfer_progress_bar_full;
|
||||
theme.transfer_progress_bar_partial = transfer_progress_bar_partial;
|
||||
theme.transfer_progress_bar = transfer_progress_bar;
|
||||
theme.transfer_status_hidden = transfer_status_hidden;
|
||||
theme.transfer_status_sorting = transfer_status_sorting;
|
||||
theme.transfer_status_sync_browsing = transfer_status_sync_browsing;
|
||||
|
||||
@@ -649,50 +649,25 @@ impl Component<Msg, NoUserEvent> for MiscWarn {
|
||||
}
|
||||
|
||||
#[derive(MockComponent)]
|
||||
pub struct ProgBarFull {
|
||||
pub struct ProgBar {
|
||||
component: InputColor,
|
||||
}
|
||||
|
||||
impl ProgBarFull {
|
||||
pub fn new(value: Color) -> Self {
|
||||
impl ProgBar {
|
||||
pub fn new(color: Color) -> Self {
|
||||
Self {
|
||||
component: InputColor::new(
|
||||
"'Full transfer' Progress bar",
|
||||
IdTheme::ProgBarFull,
|
||||
value,
|
||||
Msg::Theme(ThemeMsg::ProgBarFullBlurDown),
|
||||
Msg::Theme(ThemeMsg::ProgBarFullBlurUp),
|
||||
"Progress bar",
|
||||
IdTheme::ProgBar,
|
||||
color,
|
||||
Msg::Theme(ThemeMsg::ProgBarBlurDown),
|
||||
Msg::Theme(ThemeMsg::ProgBarBlurUp),
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Component<Msg, NoUserEvent> for ProgBarFull {
|
||||
fn on(&mut self, ev: Event<NoUserEvent>) -> Option<Msg> {
|
||||
self.component.on(ev)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(MockComponent)]
|
||||
pub struct ProgBarPartial {
|
||||
component: InputColor,
|
||||
}
|
||||
|
||||
impl ProgBarPartial {
|
||||
pub fn new(value: Color) -> Self {
|
||||
Self {
|
||||
component: InputColor::new(
|
||||
"'Partial transfer' Progress bar",
|
||||
IdTheme::ProgBarPartial,
|
||||
value,
|
||||
Msg::Theme(ThemeMsg::ProgBarPartialBlurDown),
|
||||
Msg::Theme(ThemeMsg::ProgBarPartialBlurUp),
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Component<Msg, NoUserEvent> for ProgBarPartial {
|
||||
impl Component<Msg, NoUserEvent> for ProgBar {
|
||||
fn on(&mut self, ev: Event<NoUserEvent>) -> Option<Msg> {
|
||||
self.component.on(ev)
|
||||
}
|
||||
|
||||
@@ -467,7 +467,7 @@ impl SetupActivity {
|
||||
}
|
||||
}
|
||||
ThemeMsg::ExplorerRemoteHgBlurDown => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBarFull)) {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBar)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
@@ -476,23 +476,13 @@ impl SetupActivity {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
ThemeMsg::ProgBarFullBlurDown => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBarPartial)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
ThemeMsg::ProgBarFullBlurUp => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ExplorerRemoteHg)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
ThemeMsg::ProgBarPartialBlurDown => {
|
||||
ThemeMsg::ProgBarBlurDown => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::LogBg)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
ThemeMsg::ProgBarPartialBlurUp => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBarFull)) {
|
||||
ThemeMsg::ProgBarBlurUp => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ExplorerRemoteHg)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
@@ -502,7 +492,7 @@ impl SetupActivity {
|
||||
}
|
||||
}
|
||||
ThemeMsg::LogBgBlurUp => {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBarPartial)) {
|
||||
if let Err(err) = self.app.active(&Id::Theme(IdTheme::ProgBar)) {
|
||||
error!("Failed to activate component: {err}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,8 +184,7 @@ impl SetupActivity {
|
||||
.constraints(
|
||||
[
|
||||
Constraint::Length(1), // Title
|
||||
Constraint::Length(3), // Full prog bar
|
||||
Constraint::Length(3), // Partial prog bar
|
||||
Constraint::Length(3), // prog bar
|
||||
Constraint::Length(3), // log bg
|
||||
Constraint::Length(3), // log window
|
||||
Constraint::Length(3), // status sorting
|
||||
@@ -202,39 +201,34 @@ impl SetupActivity {
|
||||
transfer_colors_layout_col2[0],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::ProgBarFull),
|
||||
&Id::Theme(IdTheme::ProgBar),
|
||||
f,
|
||||
transfer_colors_layout_col2[1],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::ProgBarPartial),
|
||||
&Id::Theme(IdTheme::LogBg),
|
||||
f,
|
||||
transfer_colors_layout_col2[2],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::LogBg),
|
||||
&Id::Theme(IdTheme::LogWindow),
|
||||
f,
|
||||
transfer_colors_layout_col2[3],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::LogWindow),
|
||||
&Id::Theme(IdTheme::StatusSorting),
|
||||
f,
|
||||
transfer_colors_layout_col2[4],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::StatusSorting),
|
||||
&Id::Theme(IdTheme::StatusHidden),
|
||||
f,
|
||||
transfer_colors_layout_col2[5],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::StatusHidden),
|
||||
f,
|
||||
transfer_colors_layout_col2[6],
|
||||
);
|
||||
self.app.view(
|
||||
&Id::Theme(IdTheme::StatusSync),
|
||||
f,
|
||||
transfer_colors_layout_col2[7],
|
||||
transfer_colors_layout_col2[6],
|
||||
);
|
||||
// Popups
|
||||
self.view_popups(f);
|
||||
@@ -430,19 +424,8 @@ impl SetupActivity {
|
||||
error!("Failed to remount component: {err}");
|
||||
}
|
||||
if let Err(err) = self.app.remount(
|
||||
Id::Theme(IdTheme::ProgBarFull),
|
||||
Box::new(components::ProgBarFull::new(
|
||||
theme.transfer_progress_bar_full,
|
||||
)),
|
||||
vec![],
|
||||
) {
|
||||
error!("Failed to remount component: {err}");
|
||||
}
|
||||
if let Err(err) = self.app.remount(
|
||||
Id::Theme(IdTheme::ProgBarPartial),
|
||||
Box::new(components::ProgBarPartial::new(
|
||||
theme.transfer_progress_bar_partial,
|
||||
)),
|
||||
Id::Theme(IdTheme::ProgBar),
|
||||
Box::new(components::ProgBar::new(theme.transfer_progress_bar)),
|
||||
vec![],
|
||||
) {
|
||||
error!("Failed to remount component: {err}");
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "#c6d0f5"
|
||||
transfer_local_explorer_highlighted = "#e5c890"
|
||||
transfer_log_background = "#303446"
|
||||
transfer_log_window = "#e5c890"
|
||||
transfer_progress_bar_full = "##a6d189"
|
||||
transfer_progress_bar_partial = "##a6d189"
|
||||
transfer_progress_bar = "##a6d189"
|
||||
transfer_remote_explorer_background = "#303446"
|
||||
transfer_remote_explorer_foreground = "#c6d0f5"
|
||||
transfer_remote_explorer_highlighted = "#99d1db"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "#4c4f69"
|
||||
transfer_local_explorer_highlighted = "#fe640b"
|
||||
transfer_log_background = "#eff1f5"
|
||||
transfer_log_window = "#179299"
|
||||
transfer_progress_bar_full = "#40a02b"
|
||||
transfer_progress_bar_partial = "#40a02b"
|
||||
transfer_progress_bar = "#40a02b"
|
||||
transfer_remote_explorer_background = "#eff1f5"
|
||||
transfer_remote_explorer_foreground = "#4c4f69"
|
||||
transfer_remote_explorer_highlighted = "#1e66f5"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "#cad3f5"
|
||||
transfer_local_explorer_highlighted = "#f5a97f"
|
||||
transfer_log_background = "#cad3f5"
|
||||
transfer_log_window = "#a6da95"
|
||||
transfer_progress_bar_full = "#a6da95"
|
||||
transfer_progress_bar_partial = "#a6da95"
|
||||
transfer_progress_bar = "#a6da95"
|
||||
transfer_remote_explorer_background = "#24273a"
|
||||
transfer_remote_explorer_foreground = "#cad3f5"
|
||||
transfer_remote_explorer_highlighted = "#8aadf4"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "#cdd6f4"
|
||||
transfer_local_explorer_highlighted = "#fab387"
|
||||
transfer_log_background = "#1e1e2e"
|
||||
transfer_log_window = "#a6e3a1"
|
||||
transfer_progress_bar_full = "#a6e3a1"
|
||||
transfer_progress_bar_partial = "#a6e3a1"
|
||||
transfer_progress_bar = "#a6e3a1"
|
||||
transfer_remote_explorer_background = "#1e1e2e"
|
||||
transfer_remote_explorer_foreground = "#cdd6f4"
|
||||
transfer_remote_explorer_highlighted = "#89b4fa"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "Yellow"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "LightGreen"
|
||||
transfer_progress_bar_full = "Green"
|
||||
transfer_progress_bar_partial = "Green"
|
||||
transfer_progress_bar = "Green"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "LightBlue"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "aquamarine"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "#c43bff"
|
||||
transfer_progress_bar_full = "deeppink"
|
||||
transfer_progress_bar_partial = "turquoise"
|
||||
transfer_progress_bar = "deeppink"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "greenyellow"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "lightcoral"
|
||||
transfer_local_explorer_highlighted = "coral"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "royalblue"
|
||||
transfer_progress_bar_full = "hotpink"
|
||||
transfer_progress_bar_partial = "deeppink"
|
||||
transfer_progress_bar = "hotpink"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "lightsalmon"
|
||||
transfer_remote_explorer_highlighted = "salmon"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "#bbbbbb"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "black"
|
||||
transfer_progress_bar_full = "black"
|
||||
transfer_progress_bar_partial = "black"
|
||||
transfer_progress_bar = "black"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "#bbbbbb"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "white"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "white"
|
||||
transfer_progress_bar_full = "white"
|
||||
transfer_progress_bar_partial = "white"
|
||||
transfer_progress_bar = "white"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "white"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "pink"
|
||||
transfer_local_explorer_highlighted = "hotpink"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "palevioletred"
|
||||
transfer_progress_bar_full = "hotpink"
|
||||
transfer_progress_bar_partial = "deeppink"
|
||||
transfer_progress_bar = "hotpink"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "plum"
|
||||
transfer_remote_explorer_highlighted = "violet"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "Yellow"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "lawngreen"
|
||||
transfer_progress_bar_full = "lawngreen"
|
||||
transfer_progress_bar_partial = "lawngreen"
|
||||
transfer_progress_bar = "lawngreen"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "turquoise"
|
||||
|
||||
@@ -17,8 +17,7 @@ transfer_local_explorer_foreground = "Default"
|
||||
transfer_local_explorer_highlighted = "orange"
|
||||
transfer_log_background = "Default"
|
||||
transfer_log_window = "limegreen"
|
||||
transfer_progress_bar_full = "lawngreen"
|
||||
transfer_progress_bar_partial = "limegreen"
|
||||
transfer_progress_bar = "lawngreen"
|
||||
transfer_remote_explorer_background = "Default"
|
||||
transfer_remote_explorer_foreground = "Default"
|
||||
transfer_remote_explorer_highlighted = "turquoise"
|
||||
|
||||
Reference in New Issue
Block a user