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

View file

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