Vocabulary builder: add Undo study status (#9528)

Adds button to undo last study operation (got it/forgot)
in more (...).
reviewable/pr9582/r1
weijiuqiao 2 years ago committed by GitHub
parent 05aba404b7
commit 5d9f036331
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -205,6 +205,10 @@ function VocabularyBuilder:gotOrForgot(item, isGot)
due_time = current_time + 24 * 30 * 3600
end
item.last_review_count = item.review_count
item.last_review_time = item.review_time
item.last_due_time = item.due_time
item.review_count = target_count
item.review_time = current_time
item.due_time = due_time

@ -398,9 +398,20 @@ function WordInfoDialog:init()
end
}
local buttons = {{reset_button, remove_button}}
if self.show_parent.item.last_due_time then
table.insert(buttons, {{
text = _("Undo study status"),
callback = function()
self.undo_callback()
UIManager:close(self)
end
}})
end
local focus_button = ButtonTable:new{
width = width,
buttons = {{reset_button, remove_button}},
buttons = buttons,
show_parent = self
}
@ -815,6 +826,19 @@ function VocabItemWidget:resetProgress()
self.item.review_count = 0
self.item.due_time = os.time()
self.item.review_time = self.item.due_time
self.item.last_due_time = nil
self:initItemWidget()
UIManager:setDirty(self.show_parent, function()
return "ui", self[1].dimen end)
end
function VocabItemWidget:undo()
self.item.review_count = self.item.last_review_count or self.item.review_count
self.item.review_time = self.item.last_review_time
self.item.due_time = self.item.last_due_time or self.item.due_time
self.item.last_review_count = nil
self.item.last_review_time = nil
self.item.last_due_time = nil
self:initItemWidget()
UIManager:setDirty(self.show_parent, function()
return "ui", self[1].dimen end)
@ -839,6 +863,9 @@ function VocabItemWidget:showMore()
reset_callback = function()
self:resetProgress()
end,
undo_callback = function()
self:undo()
end,
show_parent = self
}

Loading…
Cancel
Save