mirror of
https://codeberg.org/unspeaker/perch.git
synced 2025-12-06 17:46:42 +01:00
filter out duplicate tasks
This commit is contained in:
parent
1215ace1ae
commit
648c37e9d4
1 changed files with 6 additions and 3 deletions
|
|
@ -38,14 +38,17 @@ macro_rules! setter {
|
||||||
value: &str
|
value: &str
|
||||||
) {
|
) {
|
||||||
if let Some(entries) = entries_under(&mut state.entries, index) {
|
if let Some(entries) = entries_under(&mut state.entries, index) {
|
||||||
for (path, entry) in entries.into_iter() {
|
for (p, entry) in entries.into_iter() {
|
||||||
if let Some(item) = entry.write().unwrap().$name(&value) {
|
if let Some(item) = entry.write().unwrap().$name(&value) {
|
||||||
state.tasks.push(Task { path, item, });
|
state.tasks.retain(|t|{(t.path != p) || (t.item.key() != item.key())});
|
||||||
|
state.tasks.push(Task { path: p, item, });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
} else if let Some(entry) = state.entries.get_mut(index) {
|
} else if let Some(entry) = state.entries.get_mut(index) {
|
||||||
|
let p = entry.path.clone();
|
||||||
if let Some(item) = entry.$name(&value) {
|
if let Some(item) = entry.$name(&value) {
|
||||||
state.tasks.push(Task { path: entry.path.clone(), item, });
|
state.tasks.retain(|t|{(t.path != p) || (t.item.key() != item.key())});
|
||||||
|
state.tasks.push(Task { path: p, item, });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue