diff --git a/index.html b/index.html index 35b2b33..4a9d447 100644 --- a/index.html +++ b/index.html @@ -76,6 +76,15 @@

Font Size (in px)

+
+
+

OCR Language

Language + Codes +
+ +
+ diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c5dcf1d..fa14df2 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -76,7 +76,8 @@ fn init_settings() { let settings = r#" { - "fontSize": "16px" + "fontSize": "16px", + "ocrLanguage": "eng", } "#; diff --git a/src/main.ts b/src/main.ts index a495b1b..d5e1bcb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -125,6 +125,12 @@ window.addEventListener("DOMContentLoaded", async () => { createNoteTagEl = document.querySelector("#create-tag"); searchbarEl = document.querySelector("#note-searchbar"); notesMsgEl = document.querySelector("#notes-list"); + + // apply font size + if (createNoteContentEl) { + createNoteContentEl.style.fontSize = settings.fontSize + "px"; + } + showNotes(); document.querySelector("#save-button")?.addEventListener("click", (e) => { e.preventDefault(); @@ -228,7 +234,7 @@ window.addEventListener("DOMContentLoaded", async () => { ocrFileInputEl.src = URL.createObjectURL(files[0]); (async () => { // TODO: change ocr language in settings - const worker = await createWorker('eng'); + const worker = await createWorker(settings ? settings.ocrLanguage : "eng"); const ret = await worker.recognize(files[0]); console.log(ret.data.text); if (createNoteContentEl) [ @@ -245,7 +251,8 @@ window.addEventListener("DOMContentLoaded", async () => { async function loadSettings(): Promise { const defaultSettings: Settings = { - fontSize: "16px" + fontSize: "16px", + ocrLanguage: "eng" }; try { @@ -634,11 +641,14 @@ function handleOpenSettingsModal() { const modalBg = document.getElementById("id-modal-bg"); const setingsModalContainer = document.getElementById("settings-modal-container"); const settingsFontsizeInput = document.getElementById("fontsize-setting-input") as HTMLInputElement; + const settingsOcrLanguageInput = document.getElementById("ocr-language-setting-input") as HTMLInputElement; + const settingsSaveButton = document.getElementById("save-settings-button"); if (modalBg && setingsModalContainer && settingsFontsizeInput) { modalBg.style.display = "block"; setingsModalContainer.style.display = "block"; settingsFontsizeInput.focus(); settingsFontsizeInput.value = settings ? settings.fontSize : "16"; + settingsOcrLanguageInput.value = settings ? settings.ocrLanguage : "eng"; modalBg.addEventListener("click", () => { setingsModalContainer.style.display = "none"; @@ -649,7 +659,8 @@ function handleOpenSettingsModal() { if (event.key === "Enter") { console.log("saving settings..") settings = { - fontSize: settingsFontsizeInput.value + fontSize: settingsFontsizeInput.value, + ocrLanguage: settingsOcrLanguageInput.value === "" ? "eng" : settingsOcrLanguageInput.value } await invoke("save_settings", { settings: JSON.stringify(settings) @@ -668,6 +679,28 @@ function handleOpenSettingsModal() { } }); + if (settingsSaveButton) { + settingsSaveButton.addEventListener("click", async () => { + console.log("saving settings..") + settings = { + fontSize: settingsFontsizeInput.value, + ocrLanguage: settingsOcrLanguageInput.value === "" ? "eng" : settingsOcrLanguageInput.value + } + await invoke("save_settings", { + settings: JSON.stringify(settings) + }); + if (createNoteContentEl) { + createNoteContentEl.style.fontSize = settingsFontsizeInput.value + "px"; + } else { + console.error("failed to get createNoteContentEl") + } + setingsModalContainer.style.display = "none"; + modalBg.style.display = "none"; + }); + } else { + console.error("Failed to get Settings Modal save button."); + } + } else { console.error("Failed to get Settings Modal elements."); diff --git a/src/model.ts b/src/model.ts index dce7a04..331adf5 100644 --- a/src/model.ts +++ b/src/model.ts @@ -6,5 +6,6 @@ export type Note = { }; export type Settings = { - fontSize: string + fontSize: string, + ocrLanguage: string, }; diff --git a/src/styles.css b/src/styles.css index 4273cc2..3733d4c 100644 --- a/src/styles.css +++ b/src/styles.css @@ -334,6 +334,11 @@ button { z-index: 4; } +#save-settings-button { + margin: 1em; + +} + /* MISC */ /* Fancier Scrollbar */