Skip to content

Commit fd3cbd2

Browse files
ERRORERROR
authored andcommitted
Move the solution to the Rust layer
1 parent 83d0f5d commit fd3cbd2

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

qt/aqt/operations/deck.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ def reparent_decks(
3535
return CollectionOp(
3636
parent, lambda col: col.decks.reparent(deck_ids=deck_ids, new_parent=new_parent)
3737
).success(
38-
lambda out: tooltip(
39-
tr.browsing_reparented_decks(count=out.count), parent=parent
40-
)
38+
lambda out: out.count > 0
39+
and tooltip(tr.browsing_reparented_decks(count=out.count), parent=parent)
4140
)
4241

4342

rslib/src/decks/reparent.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,33 @@ impl Collection {
2020
new_parent: Option<DeckId>,
2121
) -> Result<usize> {
2222
let usn = self.usn()?;
23-
let target_deck;
23+
let mut target_deck = None;
2424
let mut target_name = None;
2525
if let Some(target) = new_parent {
2626
if let Some(target) = self.storage.get_deck(target)? {
2727
if target.is_filtered() {
2828
return Err(FilteredDeckError::MustBeLeafNode.into());
2929
}
30-
target_deck = target;
31-
target_name = Some(&target_deck.name);
30+
target_deck = Some(target);
31+
target_name = Some(target_deck.as_ref().unwrap().name.clone());
3232
}
3333
}
3434

3535
let mut count = 0;
3636
for deck in deck_ids {
3737
if let Some(mut deck) = self.storage.get_deck(*deck)? {
38-
if let Some(new_name) = deck.name.reparented_name(target_name) {
38+
if let Some(new_name) = deck.name.reparented_name(target_name.as_ref()) {
39+
40+
let parent_decks = self.storage.parent_decks(&deck).unwrap();
41+
match target_deck {
42+
Some(ref target) => if parent_decks.contains(&target) {
43+
continue;
44+
}
45+
None => if parent_decks.is_empty() {
46+
continue;
47+
}
48+
}
49+
3950
count += 1;
4051
let orig = deck.clone();
4152

0 commit comments

Comments
 (0)