The one action that deletes a photograph
Rejecting is most of culling, and a Reject is a word, not a deletion. This page is about Empty bin, the one action in Vixlo that deletes photographs. The bin rule, and the small things Vixlo removes covers the other removals.
A Reject is metadata
Press R and the frame's state becomes Reject, which puts it in the bin. It stays in the pass you are walking, and the photograph stays exactly where it is in the library's folder. In a library you imported, the Reject is also written into the small .xmp file beside the photograph, never into the photograph itself.
No decision deletes, moves or renames a photograph, and neither do Restore, Undo, closing the library or quitting the app. The one file that can go is that small .xmp file, when nothing is left in it — as after you return a bare Reject to Undecided.
The bin is a state of the pass, not a place: click Rejects on the views line and the pass narrows to the rejected frames. The pass line then shows the bin's count and, once Vixlo has measured the files, their size, with Restore all and Empty bin… beside it.
Restore all puts every rejected frame back to Undecided in one step, and one ⌘Z takes that back. To restore one frame, press U on it, or give it a Take or a Hold.
Empty bin
Empty bin… is the only action in Vixlo that deletes a photograph. It deletes the library's own copy of each frame in the bin, the frame's own file, and nothing else: never a photograph on your card, never a file in another library, never anything outside the library's folder.
Click it and a sheet headed Empty bin? opens before anything is touched. It says: Every file below is a removed frame's own copy inside this library. Emptying the bin deletes them from disk — this is the one action in Vixlo that cannot be undone. Under that are two numbers — how many files, and how much on disk — and a red row in the shape This permanently deletes 180 files — 1.2 GB, with These are the library's own copies. This cannot be undone — no restore, no undo, no way back through Vixlo.
If Vixlo cannot vouch for some of the files — one already missing, or one that is not where a library's own copy should be — the sheet counts them on a row of their own, in the shape 2 removed frames left untouched. They are not deleted.
Keep them closes the sheet and deletes nothing.
What is checked before a file goes
In the instant before each file is removed, Vixlo looks again, and refuses the file with a sentence of its own when something is wrong:
- The frame must still be in the bin. One restored in between: No longer in the bin — it was restored or changed after Empty was confirmed.
- The file must be the one the confirmation described, with the same place, size and modification date: This file changed on disk since Empty was confirmed — refusing to delete it.
- The file must be a photograph inside the library's folder, reached directly. Otherwise: This file is not inside the library — refusing to delete it., This path is a symlink — refusing to delete through it., This path is a directory, not a photograph — refusing to delete it. or This path resolves somewhere different than recorded — refusing to delete through it.
A refused file is not deleted and stays in the bin. A file that disappeared between the confirmation and the click is reported as already gone, not as an error and not as deleted.
What the result says
When it finishes, the sheet is headed Bin emptied, or Bin emptied — with gaps if anything was refused: Permanently deleted 180 files., or Permanently deleted 178 of 180 files. 2 could not be deleted and remain in the bin. With gaps, a row counts the files that could not be deleted and gives the reason for the first of them. Done closes it.
⌘Z undoes your decisions because each one is an entry in the library's journal, until you add photographs to the library or rebuild its index, which clear it. A deleted file was never in that journal, so there is nothing for Undo to reverse.
Emptied frames come back. Empty bin hides the frames it deleted only until you close the library. Their rows stay Reject in the index, so when you open the library again every emptied frame is back in Rejects, counted, with no photograph behind it. Empty bin… cannot clear them: it lists them as removed frames left untouched. Restore all and U put them into the pass as Undecided frames that show nothing.
To clear them, close the library and choose Rebuild the index… from More on its row on the launch screen. It reads the photographs still in Originals/ and leaves out the rows whose file is gone, at the cost of the undo history and your favourites (A library is a folder).
While you still have the card, there is another way. Vixlo never deletes from it, and it recognises a frame by the content the library has recorded for it, so a scan of the same card offers the emptied photographs as new files, copies them back into Originals/ and points the same frames at them, each still a Reject. Every frame this version imported has its content on record, and so does every frame of a rebuilt library. For a frame an older build imported with none, whose photograph is now gone, the card's photograph comes in as a new frame beside the empty Reject. Any scan of the card for another reason also copies the emptied photographs back behind their frames in Rejects. Scanning a card again has the rules.
A RAW+JPEG pair is only half deleted. Empty bin deletes the frame's own file, which for a pair is the RAW. The JPEG copied beside it stays in Originals/, and so does the frame's .xmp file, which still says Reject. The sheet's count and size cover the RAW alone. A rebuild reads that JPEG in as a frame of its own and takes the Reject from the .xmp file, so the pair comes back in Rejects as a JPEG instead of being cleared.
To be rid of the pair, delete its JPEG and the .xmp file with the same name from Originals/ in the Finder, then rebuild the index.