@@ -21,6 +21,7 @@ use osm::css::CSSValue;
2121use osm:: css:: Color ;
2222use osm:: css:: Number ;
2323use osm:: css:: Rule ;
24+ use osm:: css:: Selector ;
2425use wgpu:: SurfaceConfiguration ;
2526
2627use crate :: app_state:: AppState ;
@@ -181,15 +182,15 @@ fn add_slider_float(ui: &mut Ui, rule: &mut Rule, attribute: &str) {
181182 . insert ( attribute. to_string ( ) , CSSValue :: Number ( Number :: Px ( value) ) ) ;
182183}
183184
184- fn add_display_none ( ui : & mut Ui , rule : & mut Rule ) {
185+ fn add_display_none ( ui : & mut Ui , rule : & mut Rule , label : & str ) {
185186 let attribute = "display" ;
186187 let mut value = if let Some ( CSSValue :: String ( value) ) = rule. kvs . get ( attribute) {
187188 !matches ! ( & value[ ..] , "none" )
188189 } else {
189190 true
190191 } ;
191192
192- ui. checkbox ( & mut value, WidgetText :: from ( attribute ) ) ;
193+ ui. checkbox ( & mut value, WidgetText :: from ( label ) ) ;
193194
194195 if !value {
195196 rule. kvs
@@ -326,7 +327,7 @@ impl MainWindow {
326327 add_color_picker ( ui, rule, "border-color" ) ;
327328 add_slider_float ( ui, rule, "border-width" ) ;
328329 add_slider_float ( ui, rule, "line-width" ) ;
329- add_display_none ( ui, rule) ;
330+ add_display_none ( ui, rule, "display" ) ;
330331 } ) ;
331332 }
332333 } else {
@@ -409,46 +410,10 @@ impl SidePanel {
409410 . show ( ctx, |ui| {
410411 ScrollArea :: vertical ( ) . max_height ( 800.0 ) . show ( ui, |ui| {
411412 let feature_collection = app_state. feature_collection ( ) ;
412- let css_cache = app_state. css_cache_mut ( ) ;
413413 let mut features = feature_collection. write ( ) . unwrap ( ) ;
414- let features = features. features_mut ( ) ;
415- for feature in features {
416- let mut rules = css_cache. get_matching_rules_mut ( & feature. selector ) ;
417-
418- println ! ( "{}" , feature. selector) ;
419- // assert!(rules.len() <= 1);
420- let rule = rules. first_mut ( ) ;
421- if rule. is_none ( ) {
422- css_cache. add_rule ( Rule {
423- selector : feature. selector . clone ( ) ,
424- kvs : BTreeMap :: new ( ) ,
425- } ) ;
426- }
427- let mut rules = css_cache. get_matching_rules_mut ( & feature. selector ) ;
428- // TODO: Ugly!
429- let rule = rules. first_mut ( ) . unwrap ( ) ;
430- let value = rule
431- . kvs
432- . entry ( "display" . to_string ( ) )
433- . or_insert ( CSSValue :: String ( "block" . to_string ( ) ) ) ;
434- let mut display_mut = false ;
435- match & value {
436- CSSValue :: String ( value) => match & value[ ..] {
437- "none" => display_mut = false ,
438- _ => display_mut = true ,
439- } ,
440- value => log:: info!(
441- "The value '{:?}' is currently not supported for 'display'." ,
442- value
443- ) ,
444- }
445-
446- ui. checkbox ( & mut display_mut, feature. selector . to_string ( ) ) ;
447- if display_mut {
448- * value = CSSValue :: String ( "block" . to_string ( ) ) ;
449- } else {
450- * value = CSSValue :: String ( "none" . to_string ( ) ) ;
451- }
414+ let layers = features. layers_mut ( ) ;
415+ for layer in layers {
416+ ui. checkbox ( & mut layer. display , & layer. name ) ;
452417 }
453418 } )
454419 } ) ;
0 commit comments