Skip to content

Conversation

@tomholford
Copy link

@tomholford tomholford commented Oct 5, 2025

Preview

Drag and Drop

transmission-drag-and-drop.mov

Copy and Paste

transmission-copy-and-paste.mov

Changes

  • Add paste handler for .torrent files in open dialog
  • Add drag-and-drop support with visual feedback
  • Context-aware paste: allows text paste in URL field, intercepts files elsewhere
  • Files accumulate in input without replacing existing selections
  • Event listener cleanup on dialog close

@tomholford tomholford changed the title feat: add paste and drag-and-drop support for torrent files feat: add paste and drag-and-drop of .torrents to web ui Oct 5, 2025
@tomholford tomholford marked this pull request as ready for review October 5, 2025 19:07
@tomholford tomholford changed the title feat: add paste and drag-and-drop of .torrents to web ui feat(web): add paste and drag-and-drop of .torrents to web ui Oct 5, 2025
@killemov
Copy link

killemov commented Oct 5, 2025

Hey @tomholford, I am the creator of Shift and I was wondering about the use-case for copy(/cut) + paste. Is there anything that copy + paste can do that can't be done with drag + drop? Also, I have made it so dragging and dropping is something that is processed automatically. This allows for large drops that parallelize loading and uploading as much as possible.

Oh, and I also believe you should not commit the transmission-app files.

@tomholford
Copy link
Author

Hello @killemov thanks for the comment.

I am the creator of Shift

Cool project, was not aware of custom Transmission UIs. Will give it a shot.

Is there anything that copy + paste can do that can't be done with drag + drop?

AFAIK It's the same net effect. Slightly more ergonomic UX (mouse is optional).

Also, I have made it so dragging and dropping is something that is processed automatically. This allows for large drops that parallelize loading and uploading as much as possible.

This is a good idea. Perhaps I will add this as an enhancement in a future PR. For now, I'll keep it simple to increase the odds of merge.

Oh, and I also believe you should not commit the transmission-app files.

Thank you, will remove it

@killemov
Copy link

Thanks @tomholford ! I implemented paste in Shift as well.

@tomholford tomholford force-pushed the th/open-ux branch 2 times, most recently from 28e2567 to eb08fdb Compare October 27, 2025 16:40
@killemov
Copy link

Would:
this._boundDragOverHandler = (e) => this._onDragOver(e);
be the same as:
this._boundDragOverHandler = this._onDragOver;
?

@ckerr
Copy link
Member

ckerr commented Nov 2, 2025

@Rukario can you review this?

- Add paste handler for .torrent files in open dialog
- Add drag-and-drop support with visual feedback
- Context-aware paste: allows text paste in URL field, intercepts files elsewhere
- Files accumulate in input without replacing existing selections
- Event listener cleanup on dialog close
- Update .gitignore to exclude generated web files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants