Playlist multi-select UI considerations ======================================= Version A: ---------- 0. Start in Playlist Viewer 1. NEXT to start multi-select 2. UP or DOWN extends selection (while marking entries in UI) 3. PREV, NEXT or SELECT to stop, or LONG SELECT for stop + context menu 4. UP or DOWN moves selection (maybe PREV/Next too?) 5. LONG SELECT for context menu 6. Context menu adds item "Select", which allows going to step 2 and e.g. extending an existing selection. "Move" basically returns, "Copy" toggles to copying mode. 7. PREV or SELECT aborts multi-select mode, puts cursor on most recently marked file Pros: + Intuitive + Efficient for moving things around Cons: - Breaks NEXT for starting playback within playlist Open: o Button redundancy in step 3? o Practical issues with context menu (LONG SELECT) vs. abort (SELECT)? o Marking cursor in selection? Version B: ---------- 0. Start in Playlist Viewer 1. LONG SELECT for context menu (as-is) 2. Contect menu adds item "Select", which (re)starts the operation 3. UP or DOWN extends selection (while marking entries in UI) 4. PREV, NEXT or SELECT to stop, or LONG SELECT for stop + context menu 5. UP or DOWN moves selection (maybe PREV/Next too?) 6. LONG SELECT for context menu 7. Context menu adds item "Select", which allows going to step 3 and e.g. extending an existing selection. "Move" basically returns, "Copy" toggles to copying mode. 7. PREV or SELECT aborts multi-select mode, puts cursor on most recently marked file Pros: + Integrates seamlessly without breaking anything Cons: - Still OK to use, but adds several keypresses vs. version A Open: o Button redundancy in step 4? o Practical issues with context menu (LONG SELECT) vs. abort (SELECT)? o Marking cursor in selection? Version C --------- Feel free to come up with something better. :) Internals ========= Things we need to keep track of: * Selection start & end (both up and down) * Cursor position * (when moving) cannot move beyond ends of list * (when copying) pretty much the same, since we're moving stuff out of the way in each step (need to make enough space in very first step though) * ?items in selection? --> memory? Needs i18n string: * Context menu item "Select" Implementation of move and copy: * "Wrapper" for existing functions? I'm afraid that may be cumbersome and inefficient. * New functions? Clarify device dependency