@@ -127,7 +127,7 @@ impl<T> UglyList<T> {
127127 }
128128}
129129
130- impl < T : Clone + Widget > Widget for UglyList < T >
130+ impl < T : Clone + Default + Widget > Widget for UglyList < T >
131131where
132132 T :: Args : SetHeadingLevel ,
133133{
@@ -228,10 +228,20 @@ where
228228 self . ulis [ new_i] . action = ListItemAction :: None ;
229229 }
230230 self . len = new_len;
231+ // -----------------
232+ // Proper Items Done
233+ // -----------------
234+ for i in self . len ..self . ulis . len ( ) {
235+ self . ulis [ i] . item = T :: default ( ) ;
236+ self . ulis [ i] . action = ListItemAction :: Remove ;
237+ }
238+ // --------------------
239+ // Improper Items Wiped
240+ // --------------------
231241 }
232242}
233243
234- impl < T : Clone + StoreWidget > StoreWidget for UglyList < T >
244+ impl < T : Clone + Default + StoreWidget > StoreWidget for UglyList < T >
235245where
236246 T :: Args : SetHeadingLevel ,
237247{
@@ -280,6 +290,10 @@ where
280290 for i in self . len ..self . ulis . len ( ) {
281291 let key_i = format ! ( "{}_{}" , key, i) ;
282292 set_tooltip ( & key_i, & format ! ( "DOES NOT EXIST" ) ) ;
293+ let key_i_item = format ! ( "{}_item" , key_i) ;
294+ T :: default ( ) . insert_into ( settings_map, & key_i_item) ;
295+ let key_i_action = format ! ( "{}_action" , key_i) ;
296+ ListItemAction :: Remove . insert_into ( settings_map, & key_i_action) ;
283297 }
284298 settings_map. insert ( key, & new_list) ;
285299 set_tooltip ( key, & format ! ( "{:?}" , new_list) ) ;
0 commit comments