Competitive Drag-and-drop

Stories / Tasks

High-level Feature Goals

Provide users with greater visual feedback when performing drag & drop actions in Songbird. When item(s) are being dragged collapse them into something size wise that doesn't interfere with interacting with the UI.

  • Display how many items have been selected.
  • Draggable media items should appear as a single unit with a graphical icon + numeric cue.
  • Draggable media items should not appear like a row in the playlist.

Inform when the user can take actions with draggable media items in the application, by showing some change when hovering a drag & drop session over a valid target. For example:

  • Items in the service pane should clearly show they accept something (a playlist should highlight when hovered)
  • Draggable media items should indicate an icon if they are being added to something (such as a playlist or library)

Details

Songbird has several different kinds of items within the system. Various sources can generate a drag session containing these items, or consume a drag session to make use of them. The drag session itself can also escape or enter the system from the OS or another application. 

    Draggable Types
    MediaItem MediaItems MediaList Bookmark File URL XPI
    Internal External

Drag Session Sources

Playlist Widget

Dragging a selection in the playlist widget creates an iconified representation of that selection which can be treated as playlists or as a group of files bug 10301. Filter panes should drag their contents. bug 10349

Service Pane

Service pane nodes define their own drag behaviour. Playlists should be flavoured as internal sb/playlists. Bookmarks should be able to appear as URLs. All service pane nodes drag with their service-pane rendered appearance.

Browser

The browser can create standard drag browser sessions, as well as allowing tabs and URLs to be dragged. 

OS

The OS is beyond our control. However, we are interested in media/playlist files, URLs, and XPIs.

Drop Locations

There are many locations throughout the application which need to be able to consume drag sessions from various sources. Actions highlighted in red are not currently implemented.

Root Window

  • file (xpi)
    • add the addon

Playlist Widget (playlist mode)

all items dropped in the widget should be selected and the first item should be scrolled onscreen bug 10299

  • mediaitem(s)
    • add at drop location for other playlist
    • reorder within same playlist
    • [P3] (within same playlist) reorder/duplicate depending on [alt] key modifier
  • playlist
    • add at drop location
  • file(media)
    • add at drop location and import if necessary
  • file(playlist)
    • [P3] prompt: "add to this playlist, or import as playlist?" add contents to playlist.library as necessary.

Playlist Widget (library mode)

  • file (media)
    • [P1] import (if necessary)
  • file (playlist)
    • [P3] create new playlist and import items as necessary + display playlist

Service Pane (background)

  • file(media)
    • [P1] import and add to main library + select the library
  • file(playlist)
    • [P3] import and add playlist + display playlist
  • url
    • [P4] add to bookmarks if necessary or to library if media
    • [P4] cannot drop on downloads

Service Pane (bookmarks)

  • url
    • [P4] add bookmark as necessary (don't allow drops of media?)
  • bookmark
    • reorder

Service Pane (playlists)

  • mediaitem(s)
    • add to end of the list
  • (special) hover for a while
    • [P1] open playlist in a new tab without interrupting D&D session (or focus if open)
  • medialist
    • reorder
  • medialist (not present in service pane)
    • undefined -- currently not possible via any of our tools
  • file (playlist)
    • [P3] import and add as required + display playlist

New Playlist button

  • mediaitems / files(mediaitems)
    • create a new playlist with those items

Faceplate

  • [P3] mediaitem(s) / playlist / files
    • play what was dropped

External

Media lists dropped on the desktop or other applications should create a playlist file there. (P4) Dragging files out of the application should work and copy them to the drop location.

Tag page
FileSizeDateAttached by 
 attachment-1.png
Suggested UI for part of the drag and drop changes
151.18 kB19:34, 16 May 2008raffelActions
Viewing 3 of 3 comments: view all
Aus has a cool idea about being able to add media items into recently viewed media lists by dragging media items onto the back/forward button where the user is presented with a list of media lists in the history that they can drop on.

It would be cool to have smarts around auto-naming new playlists that are created as a result of drag and drop.

I think we can skip the subscription <-> bookmark use case. The current best thinking is to move bookmarks out of the service pane. We can decide to support this case later, if we chose?
Posted 14:04, 12 Jun 2008
Oh, probably fine to do that.

I'm not entirely sure about the back/forward button -- I don't think that makes sense to me, since the service pane is already showing all your playlists anyway and only certain kinds of playlists could be dropped on (simple playlists created by the user and not deleted, not smart playlists, web playlists, or anything else I can think of.)
Posted 18:35, 15 Jun 2008
Note to self: be sure final implementation of draggable media items makes it easy for media pagers to get access to it.
Posted 17:19, 19 Jun 2008
Viewing 3 of 3 comments: view all
You must login to post a comment.