fix latex render progress; display more frequently

This commit is contained in:
Damien Elmes 2020-02-11 16:46:57 +10:00
parent 49cda5ffbb
commit 0c27126817
2 changed files with 14 additions and 11 deletions

View file

@ -6,6 +6,7 @@ from __future__ import annotations
import os import os
import re import re
import sys import sys
import time
import urllib.error import urllib.error
import urllib.parse import urllib.parse
import urllib.request import urllib.request
@ -176,24 +177,23 @@ class MediaManager:
If an error is encountered, returns (note_id, error_message) If an error is encountered, returns (note_id, error_message)
""" """
last_progress = intTime() last_progress = time.time()
for c, (nid, mid, flds) in enumerate( checked = 0
self.col.db.execute("select id, mid, flds from notes") for (nid, mid, flds) in self.col.db.execute(
"select id, mid, flds from notes where flds like '%[%'"
): ):
if "[" not in flds:
continue
model = self.col.models.get(mid) model = self.col.models.get(mid)
_html, errors = render_latex_returning_errors(flds, model, self.col) _html, errors = render_latex_returning_errors(flds, model, self.col)
if errors: if errors:
return (nid, "\n".join(errors)) return (nid, "\n".join(errors))
if c % 10 == 0: checked += 1
elap = last_progress - intTime() elap = time.time() - last_progress
if elap >= 1 and progress_cb is not None: if elap >= 0.3 and progress_cb is not None:
last_progress = intTime() last_progress = intTime()
if not progress_cb(c + 1): if not progress_cb(checked):
return None return None
return None return None

View file

@ -98,8 +98,11 @@ class MediaChecker:
self.progress_dialog = self.mw.progress.start() self.progress_dialog = self.mw.progress.start()
try: try:
out = self.mw.col.media.render_all_latex(self._on_render_latex_progress) out = self.mw.col.media.render_all_latex(self._on_render_latex_progress)
if self.progress_dialog.wantCancel:
return
finally: finally:
self.mw.progress.finish() self.mw.progress.finish()
self.progress_dialog = None
if out is not None: if out is not None:
nid, err = out nid, err = out