mirror of
https://github.com/ankitects/anki.git
synced 2025-11-07 05:07:10 -05:00
Previewer is a QDialog
As suggested by Glutanimate in https://github.com/ankitects/anki/pull/532#discussion_r401256921
This commit is contained in:
parent
6564f00748
commit
00d04cd6c9
1 changed files with 15 additions and 14 deletions
|
|
@ -22,13 +22,15 @@ from aqt.utils import restoreGeom, saveGeom
|
||||||
from aqt.webview import AnkiWebView
|
from aqt.webview import AnkiWebView
|
||||||
|
|
||||||
|
|
||||||
class Previewer:
|
class Previewer(QDialog):
|
||||||
_lastState = None
|
_lastState = None
|
||||||
_cardChanged = False
|
_cardChanged = False
|
||||||
_lastRender: Union[int, float] = 0
|
_lastRender: Union[int, float] = 0
|
||||||
_timer = None
|
_timer = None
|
||||||
|
|
||||||
def __init__(self, parent: QWidget, mw: AnkiQt):
|
def __init__(self, parent: QWidget, mw: AnkiQt):
|
||||||
|
super().__init__(None, Qt.Window)
|
||||||
|
self._open = True
|
||||||
self._parent = parent
|
self._parent = parent
|
||||||
self.mw = mw
|
self.mw = mw
|
||||||
|
|
||||||
|
|
@ -41,14 +43,13 @@ class Previewer:
|
||||||
self._create_gui()
|
self._create_gui()
|
||||||
self._setupWebview()
|
self._setupWebview()
|
||||||
self.render(True)
|
self.render(True)
|
||||||
self._window.show()
|
self.show()
|
||||||
|
|
||||||
def _create_gui(self):
|
def _create_gui(self):
|
||||||
self._window = QDialog(None, Qt.Window)
|
self.setWindowTitle(_("Preview"))
|
||||||
self._window.setWindowTitle(_("Preview"))
|
|
||||||
|
|
||||||
self._window.finished.connect(self._onFinished)
|
self.finished.connect(self._onFinished)
|
||||||
self._window.silentlyClose = True
|
self.silentlyClose = True
|
||||||
self.vbox = QVBoxLayout()
|
self.vbox = QVBoxLayout()
|
||||||
self.vbox.setContentsMargins(0, 0, 0, 0)
|
self.vbox.setContentsMargins(0, 0, 0, 0)
|
||||||
self._web = AnkiWebView(title="previewer")
|
self._web = AnkiWebView(title="previewer")
|
||||||
|
|
@ -72,23 +73,23 @@ class Previewer:
|
||||||
self.showBothSides.toggled.connect(self._onShowBothSides)
|
self.showBothSides.toggled.connect(self._onShowBothSides)
|
||||||
|
|
||||||
self.vbox.addWidget(self.bbox)
|
self.vbox.addWidget(self.bbox)
|
||||||
self._window.setLayout(self.vbox)
|
self.setLayout(self.vbox)
|
||||||
restoreGeom(self._window, "preview")
|
restoreGeom(self, "preview")
|
||||||
|
|
||||||
def _onFinished(self, ok):
|
def _onFinished(self, ok):
|
||||||
saveGeom(self._window, "preview")
|
saveGeom(self, "preview")
|
||||||
self.mw.progress.timer(100, self._onClose, False)
|
self.mw.progress.timer(100, self._onClose, False)
|
||||||
|
|
||||||
def _onReplayAudio(self):
|
def _onReplayAudio(self):
|
||||||
self.mw.reviewer.replayAudio(self)
|
self.mw.reviewer.replayAudio(self)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self._window:
|
if self:
|
||||||
self._window.close()
|
self.close()
|
||||||
self._onClose()
|
self._onClose()
|
||||||
|
|
||||||
def _onClose(self):
|
def _onClose(self):
|
||||||
self._window = None
|
self._open = False
|
||||||
|
|
||||||
def _setupWebview(self):
|
def _setupWebview(self):
|
||||||
jsinc = [
|
jsinc = [
|
||||||
|
|
@ -131,7 +132,7 @@ class Previewer:
|
||||||
self.cancelTimer()
|
self.cancelTimer()
|
||||||
self._lastRender = time.time()
|
self._lastRender = time.time()
|
||||||
|
|
||||||
if not self._window:
|
if not self._open:
|
||||||
return
|
return
|
||||||
c = self.card()
|
c = self.card()
|
||||||
func = "_showQuestion"
|
func = "_showQuestion"
|
||||||
|
|
@ -239,7 +240,7 @@ class MultipleCardsPreviewer(Previewer):
|
||||||
...
|
...
|
||||||
|
|
||||||
def _updateButtons(self):
|
def _updateButtons(self):
|
||||||
if not self._window:
|
if not self._open:
|
||||||
return
|
return
|
||||||
self._prev.setEnabled(self._should_enable_prev())
|
self._prev.setEnabled(self._should_enable_prev())
|
||||||
self._next.setEnabled(self._should_enable_next())
|
self._next.setEnabled(self._should_enable_next())
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue