diff --git a/src/controller/view_utils/signal_reduce_input_utils.rs b/src/controller/view_utils/signal_reduce_input_utils.rs index 021a28e..92537f5 100644 --- a/src/controller/view_utils/signal_reduce_input_utils.rs +++ b/src/controller/view_utils/signal_reduce_input_utils.rs @@ -7,7 +7,7 @@ use gtk::{ TextBuffer, }; -use crate::view::components::{info_bar::InfoBar, input::Input}; +use crate::{model::models::SignalReduce, view::components::input::Input}; pub fn get_error_message(error_instance: ParseFloatError) -> Option<&'static str> { match error_instance.to_string().as_str() { @@ -17,11 +17,9 @@ pub fn get_error_message(error_instance: ParseFloatError) -> Option<&'static str } } -pub fn parse_fields(all_inputs: Vec) -> Option<[f64; 6]> { +pub fn parse_fields(all_inputs: Vec) -> Result { let mut values: [f64; 6] = [0f64; 6]; - let info_bar = InfoBar::get_instance(); - for (i, input) in all_inputs.iter().enumerate() { let input_text_buffer: TextBuffer = input.clone().get_input().buffer(); let try_extract_value = f64::from_str( @@ -36,16 +34,11 @@ pub fn parse_fields(all_inputs: Vec) -> Option<[f64; 6]> { ); match try_extract_value { Ok(value) => values[i] = value, - Err(error) => { - let error_kind: Option<&str> = get_error_message(error); - - info_bar.set_text_label(error_kind); - info_bar.show_infobar(5u64); - - return None; - } + Err(error) => return Err(error), } } - Some(values) + Ok(SignalReduce( + values[0], values[1], values[2], values[3], values[4], values[5], + )) }