mirror of
https://github.com/ankitects/anki.git
synced 2025-11-09 06:07:11 -05:00
prevent flicker on modal dialogs
This commit is contained in:
parent
96a1802fc7
commit
915798cf46
3 changed files with 11 additions and 6 deletions
|
|
@ -32,9 +32,9 @@ class AddCards(QDialog):
|
||||||
self.onReset()
|
self.onReset()
|
||||||
self.history = []
|
self.history = []
|
||||||
self.forceClose = False
|
self.forceClose = False
|
||||||
#restoreGeom(self, "add")
|
restoreGeom(self, "add")
|
||||||
addHook('reset', self.onReset)
|
addHook('reset', self.onReset)
|
||||||
self.mw.requireReset()
|
self.mw.requireReset(modal=True)
|
||||||
self.open()
|
self.open()
|
||||||
self.setupNewFact()
|
self.setupNewFact()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class EditCurrent(QDialog):
|
||||||
self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea)
|
self.editor = aqt.editor.Editor(self.mw, self.form.fieldsArea)
|
||||||
self.editor.setFact(self.mw.reviewer.card.fact())
|
self.editor.setFact(self.mw.reviewer.card.fact())
|
||||||
restoreGeom(self, "editcurrent")
|
restoreGeom(self, "editcurrent")
|
||||||
self.mw.requireReset()
|
self.mw.requireReset(modal=True)
|
||||||
self.open()
|
self.open()
|
||||||
# reset focus after open
|
# reset focus after open
|
||||||
self.editor.web.setFocus()
|
self.editor.web.setFocus()
|
||||||
|
|
|
||||||
11
aqt/main.py
11
aqt/main.py
|
|
@ -130,8 +130,9 @@ class AnkiQt(QMainWindow):
|
||||||
self.deck.reset()
|
self.deck.reset()
|
||||||
runHook("reset")
|
runHook("reset")
|
||||||
|
|
||||||
def requireReset(self):
|
def requireReset(self, modal=False):
|
||||||
"Signal queue needs to be rebuilt when edits are finished or by user."
|
"Signal queue needs to be rebuilt when edits are finished or by user."
|
||||||
|
self.resetModal = modal
|
||||||
if self.state in ("overview", "review"):
|
if self.state in ("overview", "review"):
|
||||||
self.moveToState("resetRequired")
|
self.moveToState("resetRequired")
|
||||||
elif self.state == "editCurrent":
|
elif self.state == "editCurrent":
|
||||||
|
|
@ -145,15 +146,19 @@ class AnkiQt(QMainWindow):
|
||||||
|
|
||||||
def _resetRequiredState(self, oldState):
|
def _resetRequiredState(self, oldState):
|
||||||
self.returnState = oldState
|
self.returnState = oldState
|
||||||
|
if self.resetModal:
|
||||||
|
# we don't have to change the webview, as we have a covering window
|
||||||
|
return
|
||||||
self.web.setKeyHandler(None)
|
self.web.setKeyHandler(None)
|
||||||
self.web.setLinkHandler(lambda url: self.maybeReset())
|
self.web.setLinkHandler(lambda url: self.maybeReset())
|
||||||
|
i = _("Close the editing window to resume.")
|
||||||
|
b = self.button("refresh", _("Resume Now"))
|
||||||
self.web.stdHtml("""
|
self.web.stdHtml("""
|
||||||
<center><div style="height: 100%%">
|
<center><div style="height: 100%%">
|
||||||
<div style="position:relative; vertical-align: middle;">
|
<div style="position:relative; vertical-align: middle;">
|
||||||
%s<br>
|
%s<br>
|
||||||
%s</div></div></center>
|
%s</div></div></center>
|
||||||
""" % (_("Close the editing window to resume."),
|
""" % (i, b), css=self.sharedCSS)
|
||||||
self.button("refresh", _("Resume Now"))), css=self.sharedCSS)
|
|
||||||
|
|
||||||
# HTML helpers
|
# HTML helpers
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue