setting for ocr language, properly apply them
This commit is contained in:
parent
a40578ea30
commit
08951bae4c
|
@ -76,6 +76,15 @@
|
||||||
<h3>Font Size (in px)</h3>
|
<h3>Font Size (in px)</h3>
|
||||||
<input type="number" name="fontsize" id="fontsize-setting-input" placeholder="">
|
<input type="number" name="fontsize" id="fontsize-setting-input" placeholder="">
|
||||||
</div>
|
</div>
|
||||||
|
<div id="ocrlanguage-setting">
|
||||||
|
<div>
|
||||||
|
<h3>OCR Language</h3> <a style="display: inline;" href="https://tesseract-ocr.github.io/tessdoc/Data-Files"
|
||||||
|
target="_blank">Language
|
||||||
|
Codes</a>
|
||||||
|
</div>
|
||||||
|
<input type="text" name="ocrlanguage" id="ocr-language-setting-input" placeholder="eng">
|
||||||
|
</div>
|
||||||
|
<button class="save-button" id="save-settings-button">Save</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,8 @@ fn init_settings() {
|
||||||
|
|
||||||
let settings = r#"
|
let settings = r#"
|
||||||
{
|
{
|
||||||
"fontSize": "16px"
|
"fontSize": "16px",
|
||||||
|
"ocrLanguage": "eng",
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
|
|
39
src/main.ts
39
src/main.ts
|
@ -125,6 +125,12 @@ window.addEventListener("DOMContentLoaded", async () => {
|
||||||
createNoteTagEl = document.querySelector("#create-tag");
|
createNoteTagEl = document.querySelector("#create-tag");
|
||||||
searchbarEl = document.querySelector("#note-searchbar");
|
searchbarEl = document.querySelector("#note-searchbar");
|
||||||
notesMsgEl = document.querySelector("#notes-list");
|
notesMsgEl = document.querySelector("#notes-list");
|
||||||
|
|
||||||
|
// apply font size
|
||||||
|
if (createNoteContentEl) {
|
||||||
|
createNoteContentEl.style.fontSize = settings.fontSize + "px";
|
||||||
|
}
|
||||||
|
|
||||||
showNotes();
|
showNotes();
|
||||||
document.querySelector("#save-button")?.addEventListener("click", (e) => {
|
document.querySelector("#save-button")?.addEventListener("click", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -228,7 +234,7 @@ window.addEventListener("DOMContentLoaded", async () => {
|
||||||
ocrFileInputEl.src = URL.createObjectURL(files[0]);
|
ocrFileInputEl.src = URL.createObjectURL(files[0]);
|
||||||
(async () => {
|
(async () => {
|
||||||
// TODO: change ocr language in settings
|
// 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]);
|
const ret = await worker.recognize(files[0]);
|
||||||
console.log(ret.data.text);
|
console.log(ret.data.text);
|
||||||
if (createNoteContentEl) [
|
if (createNoteContentEl) [
|
||||||
|
@ -245,7 +251,8 @@ window.addEventListener("DOMContentLoaded", async () => {
|
||||||
|
|
||||||
async function loadSettings(): Promise<Settings> {
|
async function loadSettings(): Promise<Settings> {
|
||||||
const defaultSettings: Settings = {
|
const defaultSettings: Settings = {
|
||||||
fontSize: "16px"
|
fontSize: "16px",
|
||||||
|
ocrLanguage: "eng"
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -634,11 +641,14 @@ function handleOpenSettingsModal() {
|
||||||
const modalBg = document.getElementById("id-modal-bg");
|
const modalBg = document.getElementById("id-modal-bg");
|
||||||
const setingsModalContainer = document.getElementById("settings-modal-container");
|
const setingsModalContainer = document.getElementById("settings-modal-container");
|
||||||
const settingsFontsizeInput = document.getElementById("fontsize-setting-input") as HTMLInputElement;
|
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) {
|
if (modalBg && setingsModalContainer && settingsFontsizeInput) {
|
||||||
modalBg.style.display = "block";
|
modalBg.style.display = "block";
|
||||||
setingsModalContainer.style.display = "block";
|
setingsModalContainer.style.display = "block";
|
||||||
settingsFontsizeInput.focus();
|
settingsFontsizeInput.focus();
|
||||||
settingsFontsizeInput.value = settings ? settings.fontSize : "16";
|
settingsFontsizeInput.value = settings ? settings.fontSize : "16";
|
||||||
|
settingsOcrLanguageInput.value = settings ? settings.ocrLanguage : "eng";
|
||||||
|
|
||||||
modalBg.addEventListener("click", () => {
|
modalBg.addEventListener("click", () => {
|
||||||
setingsModalContainer.style.display = "none";
|
setingsModalContainer.style.display = "none";
|
||||||
|
@ -649,7 +659,8 @@ function handleOpenSettingsModal() {
|
||||||
if (event.key === "Enter") {
|
if (event.key === "Enter") {
|
||||||
console.log("saving settings..")
|
console.log("saving settings..")
|
||||||
settings = {
|
settings = {
|
||||||
fontSize: settingsFontsizeInput.value
|
fontSize: settingsFontsizeInput.value,
|
||||||
|
ocrLanguage: settingsOcrLanguageInput.value === "" ? "eng" : settingsOcrLanguageInput.value
|
||||||
}
|
}
|
||||||
await invoke("save_settings", {
|
await invoke("save_settings", {
|
||||||
settings: JSON.stringify(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 {
|
} else {
|
||||||
console.error("Failed to get Settings Modal elements.");
|
console.error("Failed to get Settings Modal elements.");
|
||||||
|
|
|
@ -6,5 +6,6 @@ export type Note = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Settings = {
|
export type Settings = {
|
||||||
fontSize: string
|
fontSize: string,
|
||||||
|
ocrLanguage: string,
|
||||||
};
|
};
|
||||||
|
|
|
@ -334,6 +334,11 @@ button {
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#save-settings-button {
|
||||||
|
margin: 1em;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* MISC */
|
/* MISC */
|
||||||
|
|
||||||
/* Fancier Scrollbar */
|
/* Fancier Scrollbar */
|
||||||
|
|
Loading…
Reference in New Issue