Skip to content

Commit cd1e37a

Browse files
authored
ugly_list: wipe improper items to Default, Remove (#129)
1 parent b4bdd21 commit cd1e37a

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

crates/ugly_widget/src/ugly_list.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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>
131131
where
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>
235245
where
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

Comments
 (0)