+ Added drag & drop for text files

* Fixed spaces not being allowed in text area
This commit is contained in:
Sync1211 2022-05-25 11:32:19 +02:00
parent 1cb3c795d6
commit 0685603832
No known key found for this signature in database
GPG Key ID: B8878699435E69EC
2 changed files with 13 additions and 4 deletions

View File

@ -665,6 +665,6 @@ body.high-contrast #control-overlay { background-color: var(--shade); }
height: 50vh; height: 50vh;
width: var(--paper-width); width: var(--paper-width);
overflow: hidden auto; overflow: hidden auto;
white-space: pre-line; white-space: break-spaces;
resize:none; resize:none;
} }

View File

@ -317,7 +317,16 @@ class CanvasController {
this.canvas.addEventListener('dragover', prevent_default); this.canvas.addEventListener('dragover', prevent_default);
this.canvas.addEventListener('dragenter', prevent_default); this.canvas.addEventListener('dragenter', prevent_default);
this.canvas.addEventListener('drop', (event) => { this.canvas.addEventListener('drop', (event) => {
this.insertPicture(event.dataTransfer.files); if (event.dataTransfer?.files[0]?.type.split("/")[0] == "text") {
let file_reader = new FileReader();
file_reader.onload = () => {
this.textArea.value = file_reader.result;
Dialog.alert("#text-input", () => this.insertText(this.textArea.value));
};
file_reader.readAsText(event.dataTransfer.files[0]);
} else {
this.insertPicture(event.dataTransfer.files);
}
return prevent_default(event); return prevent_default(event);
}); });
@ -480,7 +489,7 @@ class CanvasController {
let split_pos = max_length; let split_pos = max_length;
let newline_index = text.indexOf("\n"); let newline_index = text.indexOf("\n");
if (newline_index > 0 && newline_index < max_length) { if (newline_index > 0 && newline_index < max_length) {
return [text.slice(0, newline_index).trim(), text.slice(newline_index, text.length).trim()]; return [text.slice(0, newline_index), text.slice(newline_index, text.length)];
} }
if (this.wrapBySpace.checked) { if (this.wrapBySpace.checked) {
@ -488,7 +497,7 @@ class CanvasController {
if (split_pos <= 0) { split_pos = max_length; } if (split_pos <= 0) { split_pos = max_length; }
} }
return [text.slice(0, split_pos).trim(), text.slice(split_pos, text.length).trim()]; return [text.slice(0, split_pos), text.slice(split_pos, text.length)];
} }
ctx.font = canvas_font; ctx.font = canvas_font;