diff --git a/qt/aqt/operations/deck.py b/qt/aqt/operations/deck.py index c526a016b..518beafaf 100644 --- a/qt/aqt/operations/deck.py +++ b/qt/aqt/operations/deck.py @@ -32,13 +32,13 @@ def remove_decks( def reparent_decks( *, parent: QWidget, deck_ids: Sequence[DeckId], new_parent: DeckId ) -> CollectionOp[OpChangesWithCount]: - def on_success(out): - if out.count > 0: - tooltip(tr.browsing_reparented_decks(count=out.count), parent=parent) - return CollectionOp( parent, lambda col: col.decks.reparent(deck_ids=deck_ids, new_parent=new_parent) - ).success(on_success) + ).success( + lambda out: tooltip( + tr.browsing_reparented_decks(count=out.count), parent=parent + ) + ) def rename_deck( diff --git a/rslib/src/decks/reparent.rs b/rslib/src/decks/reparent.rs index 59f6baa08..bfb3fee05 100644 --- a/rslib/src/decks/reparent.rs +++ b/rslib/src/decks/reparent.rs @@ -20,36 +20,25 @@ impl Collection { new_parent: Option, ) -> Result { let usn = self.usn()?; - let mut target_deck = None; + let target_deck; let mut target_name = None; if let Some(target) = new_parent { if let Some(target) = self.storage.get_deck(target)? { if target.is_filtered() { return Err(FilteredDeckError::MustBeLeafNode.into()); } - target_deck = Some(target); - target_name = Some(target_deck.as_ref().unwrap().name.clone()); + target_deck = target; + target_name = Some(&target_deck.name); } } let mut count = 0; for deck in deck_ids { if let Some(mut deck) = self.storage.get_deck(*deck)? { - if let Some(new_name) = deck.name.reparented_name(target_name.as_ref()) { - let parent_decks = self.storage.parent_decks(&deck).unwrap(); - match target_deck { - Some(ref target) => { - if parent_decks.contains(target) { - continue; - } - } - None => { - if parent_decks.is_empty() { - continue; - } - } + if let Some(new_name) = deck.name.reparented_name(target_name) { + if new_name == deck.name { + continue; } - count += 1; let orig = deck.clone();