web: the histogram opens top-left, and CLEAR asks before it forgets
The histogram used to park itself in the top-right corner on the first paint; it now starts at the top-left of the photo and is dragged from there, the way the rest of the overlay is. Nothing else changed in it — same drag, same clamping, same resize. The stage also gains a CLEAR button, sitting before the picker button, which is now OPEN PHOTO. CLEAR takes the photo off the stage, but not before asking: SAVE PHOTO files it first and only then clears, EXPORT IMAGE writes the JPEG and then clears, CLEAR WITHOUT SAVING drops it there and then, and CANCEL leaves everything alone. Saving from that modal resumes the clear once the file has really landed — a guest, a capped account or a cancelled name prompt never loses the frame. Clearing forgets the working photo (source, preview, GPS, ISO, and the IndexedDB copy session.ts now deletes), while the look, the crop and the undo history stay put, so the next photo opens on the same settings the way replacing a photo already did.
This commit is contained in:
@@ -22,7 +22,8 @@ export const en: Dict = {
|
||||
|
||||
'drop.title': 'Drag & drop a photo here',
|
||||
'drop.hint': 'or click to pick one · paste from the clipboard with Ctrl+V',
|
||||
'drop.replace': 'Choose another photo',
|
||||
'drop.replace': 'Open photo',
|
||||
'drop.clear': 'Clear',
|
||||
'drop.peeking': 'SHOWING THE ORIGINAL',
|
||||
'drop.peekHint': 'Hold right-click or the \\ key to compare with the original',
|
||||
'drop.compare': 'Compare with original picture',
|
||||
@@ -164,6 +165,15 @@ export const en: Dict = {
|
||||
'del.confirm': 'DELETE PHOTO',
|
||||
'del.cancel': 'CANCEL',
|
||||
|
||||
// CLEAR's confirmation: keep the work one of two ways, or let it go.
|
||||
'clear.title': 'Clear this photo?',
|
||||
'clear.hint':
|
||||
'The photo leaves the workspace. Save it to MY PHOTOS to carry on editing later, export it as an image file, or clear it without keeping anything.',
|
||||
'clear.save': 'SAVE PHOTO',
|
||||
'clear.export': 'EXPORT IMAGE',
|
||||
'clear.discard': 'CLEAR WITHOUT SAVING',
|
||||
'clear.cancel': 'CANCEL',
|
||||
|
||||
'photo.uploading': 'UPLOADING…',
|
||||
|
||||
'photos.title': 'My photos',
|
||||
|
||||
@@ -29,7 +29,8 @@ export const vi = {
|
||||
|
||||
'drop.title': 'Kéo & thả ảnh vào đây',
|
||||
'drop.hint': 'hoặc bấm để chọn ảnh · dán từ clipboard bằng Ctrl+V',
|
||||
'drop.replace': 'Đổi ảnh khác',
|
||||
'drop.replace': 'Mở ảnh',
|
||||
'drop.clear': 'Xoá ảnh',
|
||||
'drop.peeking': 'ĐANG XEM ẢNH GỐC',
|
||||
'drop.peekHint': 'Giữ chuột phải hoặc phím \\ để so ảnh gốc',
|
||||
'drop.compare': 'So với ảnh gốc',
|
||||
@@ -172,6 +173,15 @@ export const vi = {
|
||||
'del.confirm': 'XOÁ ẢNH',
|
||||
'del.cancel': 'HUỶ',
|
||||
|
||||
// Xác nhận của CLEAR: giữ lại thành quả theo một trong hai cách, hoặc bỏ hẳn.
|
||||
'clear.title': 'Xoá ảnh đang mở?',
|
||||
'clear.hint':
|
||||
'Ảnh sẽ rời khỏi màn hình làm việc. Lưu vào ẢNH CỦA TÔI để lần sau sửa tiếp, xuất ra tệp ảnh, hoặc xoá mà không giữ lại gì.',
|
||||
'clear.save': 'LƯU ẢNH',
|
||||
'clear.export': 'XUẤT ẢNH',
|
||||
'clear.discard': 'XOÁ KHÔNG LƯU',
|
||||
'clear.cancel': 'HUỶ',
|
||||
|
||||
'photo.uploading': 'ĐANG TẢI…',
|
||||
|
||||
'photos.title': 'Ảnh của tôi',
|
||||
|
||||
Reference in New Issue
Block a user