diff --git a/src/model/types.rs b/src/model/types.rs index deca012..bc1ca4f 100644 --- a/src/model/types.rs +++ b/src/model/types.rs @@ -65,6 +65,7 @@ impl Model { view.on_category_added("_Index"); view.on_category_added("_Dim"); view.on_category_added("_Measure"); + view.set_axis("_Measure", crate::view::Axis::Page); } m } @@ -869,7 +870,7 @@ mod model_tests { let v = m.active_view(); assert_eq!(v.axis_of("_Index"), Axis::None); assert_eq!(v.axis_of("_Dim"), Axis::None); - assert_eq!(v.axis_of("_Measure"), Axis::None); + assert_eq!(v.axis_of("_Measure"), Axis::Page); } #[test] @@ -1950,7 +1951,7 @@ mod five_category { assert_eq!(v.axis_of("Product"), Axis::Column); assert_eq!(v.axis_of("Channel"), Axis::Page); assert_eq!(v.axis_of("Time"), Axis::Page); - assert_eq!(v.axis_of("_Measure"), Axis::None); + assert_eq!(v.axis_of("_Measure"), Axis::Page); } #[test] diff --git a/src/view/layout.rs b/src/view/layout.rs index 37c457b..a549b08 100644 --- a/src/view/layout.rs +++ b/src/view/layout.rs @@ -93,14 +93,13 @@ impl GridLayout { let page_coords = page_cats .iter() - .map(|cat| { + .filter_map(|cat| { let items: Vec = model.effective_item_names(cat); let sel = view .page_selection(cat) .map(String::from) - .or_else(|| items.first().cloned()) - .unwrap_or_default(); - (cat.clone(), sel) + .or_else(|| items.first().cloned())?; + Some((cat.clone(), sel)) }) .collect(); @@ -594,6 +593,9 @@ mod tests { ]), CellValue::Number(50.0), ); + // Records mode setup: _Measure should not filter + m.active_view_mut() + .set_axis("_Measure", Axis::None); m }