diff options
Diffstat (limited to 'src/options.rs')
-rw-r--r-- | src/options.rs | 94 |
1 files changed, 52 insertions, 42 deletions
diff --git a/src/options.rs b/src/options.rs index 12b05372..0e05e132 100644 --- a/src/options.rs +++ b/src/options.rs @@ -4,7 +4,6 @@ use std::{ borrow::Cow, collections::{HashMap, HashSet}, convert::TryInto, - path::PathBuf, str::FromStr, time::Instant, }; @@ -12,10 +11,10 @@ use std::{ use crate::{ app::{ layout_manager::*, - widgets::{DiskWidgetState, ProcWidget, ProcWidgetMode, TempWidgetState}, + widgets::{CpuWidgetState, DiskTableWidget, ProcWidget, ProcWidgetMode, TempWidgetState}, *, }, - canvas::ColourScheme, + canvas::{canvas_colours::CanvasColours, ColourScheme}, constants::*, units::data_units::DataUnit, utils::error::{self, BottomError}, @@ -252,7 +251,7 @@ pub struct IgnoreList { pub fn build_app( matches: &clap::ArgMatches, config: &mut Config, widget_layout: &BottomLayout, default_widget_id: u64, default_widget_type_option: &Option<BottomWidgetType>, - config_path: Option<PathBuf>, + colours: &CanvasColours, ) -> Result<App> { use BottomWidgetType::*; let autohide_time = get_autohide_time(matches, config); @@ -272,7 +271,7 @@ pub fn build_app( let mut net_state_map: HashMap<u64, NetWidgetState> = HashMap::new(); let mut proc_state_map: HashMap<u64, ProcWidget> = HashMap::new(); let mut temp_state_map: HashMap<u64, TempWidgetState> = HashMap::new(); - let mut disk_state_map: HashMap<u64, DiskWidgetState> = HashMap::new(); + let mut disk_state_map: HashMap<u64, DiskTableWidget> = HashMap::new(); let mut battery_state_map: HashMap<u64, BatteryWidgetState> = HashMap::new(); let autohide_timer = if autohide_time { @@ -295,6 +294,37 @@ pub fn build_app( let network_scale_type = get_network_scale_type(matches, config); let network_use_binary_prefix = get_network_use_binary_prefix(matches, config); + let app_config_fields = AppConfigFields { + update_rate_in_milliseconds: get_update_rate_in_milliseconds(matches, config) + .context("Update 'rate' in your config file.")?, + temperature_type: get_temperature(matches, config) + .context("Update 'temperature_type' in your config file.")?, + show_average_cpu: get_show_average_cpu(matches, config), + use_dot: get_use_dot(matches, config), + left_legend: get_use_left_legend(matches, config), + use_current_cpu_total: get_use_current_cpu_total(matches, config), + use_basic_mode, + default_time_value, + time_interval: get_time_interval(matches, config) + .context("Update 'time_delta' in your config file.")?, + hide_time: get_hide_time(matches, config), + autohide_time, + use_old_network_legend: get_use_old_network_legend(matches, config), + table_gap: if get_hide_table_gap(matches, config) { + 0 + } else { + 1 + }, + disable_click: get_disable_click(matches, config), + // no_write: get_no_write(matches, config), + no_write: false, + show_table_scroll_position: get_show_table_scroll_position(matches, config), + is_advanced_kill, + network_scale_type, + network_unit_type, + network_use_binary_prefix, + }; + for row in &widget_layout.rows { for col in &row.children { for col_row in &col.children { @@ -337,7 +367,12 @@ pub fn build_app( Cpu => { cpu_state_map.insert( widget.widget_id, - CpuWidgetState::init(default_time_value, autohide_timer), + CpuWidgetState::new( + &app_config_fields, + default_time_value, + autohide_timer, + colours, + ), ); } Mem => { @@ -365,21 +400,29 @@ pub fn build_app( proc_state_map.insert( widget.widget_id, - ProcWidget::init( + ProcWidget::new( + &app_config_fields, mode, is_case_sensitive, is_match_whole_word, is_use_regex, show_memory_as_values, is_default_command, + colours, ), ); } Disk => { - disk_state_map.insert(widget.widget_id, DiskWidgetState::default()); + disk_state_map.insert( + widget.widget_id, + DiskTableWidget::new(&app_config_fields, colours), + ); } Temp => { - temp_state_map.insert(widget.widget_id, TempWidgetState::default()); + temp_state_map.insert( + widget.widget_id, + TempWidgetState::new(&app_config_fields, colours), + ); } Battery => { battery_state_map @@ -417,37 +460,6 @@ pub fn build_app( None }; - let app_config_fields = AppConfigFields { - update_rate_in_milliseconds: get_update_rate_in_milliseconds(matches, config) - .context("Update 'rate' in your config file.")?, - temperature_type: get_temperature(matches, config) - .context("Update 'temperature_type' in your config file.")?, - show_average_cpu: get_show_average_cpu(matches, config), - use_dot: get_use_dot(matches, config), - left_legend: get_use_left_legend(matches, config), - use_current_cpu_total: get_use_current_cpu_total(matches, config), - use_basic_mode, - default_time_value, - time_interval: get_time_interval(matches, config) - .context("Update 'time_delta' in your config file.")?, - hide_time: get_hide_time(matches, config), - autohide_time, - use_old_network_legend: get_use_old_network_legend(matches, config), - table_gap: if get_hide_table_gap(matches, config) { - 0 - } else { - 1 - }, - disable_click: get_disable_click(matches, config), - // no_write: get_no_write(matches, config), - no_write: false, - show_table_scroll_position: get_show_table_scroll_position(matches, config), - is_advanced_kill, - network_scale_type, - network_unit_type, - network_use_binary_prefix, - }; - let used_widgets = UsedWidgets { use_cpu: used_widget_set.get(&Cpu).is_some() || used_widget_set.get(&BasicCpu).is_some(), use_mem: used_widget_set.get(&Mem).is_some() || used_widget_set.get(&BasicMem).is_some(), @@ -528,8 +540,6 @@ pub fn build_app( temp_filter, net_filter, }) - .config(config.clone()) - .config_path(config_path) .build()) } |