diff --git a/src/controller/model_utils/signal_reducer.rs b/src/controller/model_utils/signal_reducer.rs index bee4d47..590e569 100644 --- a/src/controller/model_utils/signal_reducer.rs +++ b/src/controller/model_utils/signal_reducer.rs @@ -33,3 +33,19 @@ pub fn coef_of_signal_reduce(Vs: f64, V: f64) -> f64 { Vs / V } } + +pub fn set_default_values(model: &ListStore) { + for number in (0..=100).step_by(5) { + if number == 0 { + model.append(&Frequency::new(1.0)); + } else if (number >= 70 && number % 10 == 0) || (number < 70 && number % 5 == 0) { + model.append(&Frequency::new(number as f64)); + } + } +} + +pub fn find_by_frequency_value(model: &ListStore, new_elem: &Frequency) -> Option { + model.find_with_equal_func(|elem| { + elem.downcast_ref::().unwrap().frequency() == new_elem.frequency() + }) +} diff --git a/src/view/pages/signal_reducing.rs b/src/view/pages/signal_reducing.rs index 99eb946..69d0530 100644 --- a/src/view/pages/signal_reducing.rs +++ b/src/view/pages/signal_reducing.rs @@ -66,13 +66,7 @@ pub fn signal_reducing_page(wrapper: &Box) { let model_for_events = model.clone(); - for number in (0..=100).step_by(5) { - if number == 0 { - model.append(&Frequency::new(1.0)); - } else if (number >= 70 && number % 10 == 0) || (number < 70 && number % 5 == 0) { - model.append(&Frequency::new(number as f64)); - } - } + set_default_values(&model); let numeric_sorter = CustomSorter::new(|a, b| { let a = a.downcast_ref::().unwrap().frequency();