Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions anki_ocr/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
from math import ceil
from typing import List

from PyQt5.QtWidgets import QMenu
from PyQt6 import QtWidgets, QtGui
from PyQt6.QtWidgets import QMenu
from aqt import mw
from aqt.browser import Browser
from aqt.qt import QAction
from aqt.utils import showInfo, askUser, showCritical

from ._vendor import pytesseract
Expand Down Expand Up @@ -43,7 +43,7 @@ def on_run_ocr(browser: Browser):
try:
progress = mw.progress
progress.start(immediate=True, min=0, max=num_batches)
progress.update(value=0, max=num_batches, label="Starting OCR processing...")
progress.update(0, maximum=num_batches, label="Starting OCR processing...")
except TypeError: # old version of Qt/Anki
progress = None

Expand All @@ -58,12 +58,14 @@ def on_run_ocr(browser: Browser):
ocr.run_ocr_on_notes(note_ids=selected_nids)
if progress:
progress.finish()

time_taken = time.time() - time_start
log_messages = logger.handlers[0].flush()
showInfo(
f"Processed OCR for {num_notes} notes in {round(time_taken, 1)}s ({round(time_taken / num_notes, 1)}s per note)\n"
f"{log_messages}")


except pytesseract.TesseractNotFoundError:
if progress:
progress.finish()
Expand Down Expand Up @@ -92,8 +94,8 @@ def on_run_ocr(browser: Browser):
finally:

browser.model.reset()
mw.requireReset()

#mw.requireReset()
mw.progress.finish()

def on_rm_ocr_fields(browser: Browser):
config = mw.addonManager.getConfig(__name__)
Expand All @@ -118,13 +120,13 @@ def on_rm_ocr_fields(browser: Browser):


def on_menu_setup(browser: Browser):
anki_ocr_menu = QMenu(("AnkiOCR"), browser)
anki_ocr_menu = QtWidgets.QMenu(("AnkiOCR"), browser)

act_run_ocr = QAction(browser, text="Run AnkiOCR on selected notes")
act_run_ocr = QtGui.QAction(browser, text="Run AnkiOCR on selected notes")
act_run_ocr.triggered.connect(lambda b=browser: on_run_ocr(browser))
anki_ocr_menu.addAction(act_run_ocr)

act_rm_ocr_fields = QAction(browser, text="Remove OCR data from selected notes")
act_rm_ocr_fields = QtGui.QAction(browser, text="Remove OCR data from selected notes")
act_rm_ocr_fields.triggered.connect(lambda b=browser: on_rm_ocr_fields(browser))
anki_ocr_menu.addAction(act_rm_ocr_fields)

Expand Down