Repository navigation
feat(gui): let tracks be taken back out of the list - #29
Conversation
A drop is usually a whole folder, and there was no way to convert all of it but one. The list was whatever had been handed over, until the window was given something else. Each row now carries a cross, kept faint until the row is under the pointer: it is the one control here that throws work away, and a column of them down a list of two hundred would read as the point of the screen rather than as an escape from it. Its click stops there, because the row already opens on click and one press should not answer twice. Beside the convert button there is a clear, outlined in red rather than filled. The orange one next to it is what people came to press, and two solid blocks of the same size would make the destructive one just as easy to hit by accident. It fills only under the pointer. Nothing on disk is touched either way — this empties a list. Taking a track out rewrites the list to what is left, rather than filtering on the way past. The folder behind a drop is re-read whenever a setting changes, which would otherwise bring back everything ever removed. Neither control is live during a run, when what is being converted was settled before the button was pressed.
Clear is the one control that throws away work with a single press, and red alone is a warning nobody reads twice. It now asks. The cancel comes first and holds focus. A dialog that opens with the destructive button under the return key is one that gets dismissed by reflex into the thing it was asking about. Escape and the ground behind it both cancel. Neither button says OK. One says how many tracks leave the list, the other says that no file is deleted — which is the question somebody actually has at that moment.
|
Added a confirmation on Clear, replacing what this PR originally argued for. The reasoning in the description — that nothing on disk is touched, so the cost of being wrong is dropping the folder again — holds for the cross on a single row. It does not hold for the button that empties two hundred of them at one press. Red on its own is a warning that stops being read after the second time. The cancel comes first and holds focus on open. A dialog that arrives with the destructive button under the return key is one that gets dismissed by reflex into the very thing it was asking about. Escape and a click on the ground behind it both cancel. Neither button says OK. One line says how many tracks leave the list, the other says that no file is deleted — which is the question somebody actually has at that moment. The per-row cross still asks nothing. It removes one, it is faint until hovered, and putting a dialog in front of it would make trimming a list unusable. |
A drop is usually a whole folder, and there was no way to convert all of it but one. The list was whatever had been handed over, until the window was given something else.
Two controls
A cross on each row, kept faint until the row is under the pointer. It is the one control on this screen that throws work away, and a column of them down a list of two hundred would read as the point of the screen rather than as an escape from it. Its click stops there — the row already opens on click, and one press should not answer twice.
A clear beside the convert button, outlined in red rather than filled. The orange one next to it is what people came here to press, and two solid blocks of the same size would make the destructive one just as easy to hit by accident. It fills only under the pointer, which is late enough to be a warning and not a wall.
No confirmation on either. Nothing on disk is touched: this empties a list, and the cost of being wrong is dropping the folder again.
The part that would have been a bug
Taking a track out rewrites the list to what is left, rather than filtering on the way past.
droppedholds the paths that were handed over — usually one folder — and that folder is re-read whenever a setting changes, so a track filtered out of the display would come straight back the next time the gear selection or the comment switch moved. Rewriting it to the concrete paths that remain is what makes a removal stick.Neither control is live during a run.
run()captures the list when it is pressed, and changing it underneath would leave the screen describing something other than what is being converted.