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],
+ ))
}