TODO-list for amaroK
======================
<nick>  == reported by
-->nick == assigned to


SHORT-TERM (URGENT):

  <mxcl>   With retrieve similar artists amaroK hangs just after song-change. Disabling this feature removes
           the hang. This is annoying me so much now I've disabled the feature. I use sqlite.

  <markey> amaroK fails to download any stream playlist from http://dir.xiph.org. Part of the problem is
           PlaylistLoader::isPlaylistFile(const KURL&), which only looks at the filename's extension. This
           fails for URLs like http://dir.xiph.org/listen.php?pid=669641&file=listen.m3u, because the filename
           is "listen.php". So it must look at the whole url instead.

  <markey> OSD doesn't show on top of other widgets with Fluxbox and other window managers.

  <markey> Make the "Add Playlist" button in the Playlist-Browser show a Enter-Location dialog, just like
           in Konqueror. This way you will be able to open remote stream playlists with it.

  <mxcl>   Changing the title track to "" does such things as I cannot figure out, it appears to work, but
           perhaps the collection isn't updated, or maybe the tag, or both. Can't tell.

  <mxcl>   On first-ever-run, if amaroK crashes building the sqlite collection, it is impossible to _ever_
           build a collection unless the user's amarokrc file is deleted! This MUST be fixed before 1.2!
           ::muesli:: We could just _always_ try to create the sql tables on startup. This would fail on
           ::muesli:: systems which already got the tables, but would fix the situation where tables are
           ::muesli:: missing, as in this situation. Just pump the debug of these calls to /dev/null.

  <mxcl>   Just before we load any engine plugin, write to a file, and it we don't succeed the next time
           amaroK starts show a big warning saying "Gah!" and load a different one.

  <markey> In the settings dialog the "Apply" button is broken (always enabled).
           Update: This is now fixed except if you build with MySQL support. Reason is the MySQL password
           KConfigXT entry. Fix this properly for 1.2.1.

  <mxcl>   Hitting the DEL key in the playlist activates the file-browser delete shortcut, offering to trash
           whatever is selected there. Nice!

  <mxcl>   Tabbing in inline-edit mode in playlist visits hidden columns and invisible ones. - KDElibs bug

  <mxcl>   If you drag and drop the cool-streams playlist without expanding it first, it doesn't work properly

  <mxcl>   Playlist with files that exist that gst can't play + repeat-playlist = infinite loop - presumably
           load() and play() return true so the controller doesn't stop the playback

  <muesli> Enabling "stop playing after current track" and enqueueing a song at the same time confuses amarok.

  <mxcl>   If you inline set the title tag to "", prettyTitle gets inserted as the title tag.

  <markey> When the KDE color scheme is changed while amaroK is running, all toolbar buttons (those with text)
           lose their texts.

  <muesli> Show "Artist - Song" for Various Artist folder.

  <markey> Ctrl-C in Playlist for copying title doesn't work, because the event gets eaten by another widget.


MID-TERM:

  <mxcl>   Should be able to open collection browser by right clicking on stuff in contextB, so show the
           artist or album that is right clicked.

  ADD 148 <markey> AudioCD support for gst engine (cdparanoia ! *sink). -->markey

  ADD 143 <mxcl>   DCOP interface for ContextBrowser

  FIX 121 <markey> We should cut down on unnecessary/redundant debug output/warnings (noise).

  ADD 105 <markey> Make ArtsEngine depend not only on kdemultimedia-devel, but also on kdemultimedia,
                   since arts itself contains these crappy decoders and ppl come complain about bad sound.
                   Update: Would be even better to detect the mpeglib arts-plugins directly, since some
                   distros offer them as a separate package.

  ADD 104 <mxcl>   Perhaps a nice idea: when you drag playlistItems to a branch in the collection browser
                   it prompts to change the track's tags, so drag a track to the "moolaaa" album and that
                   track get's it's album tag changed to "moolaaa" and is inserted into the branch, so the user
                   know's what has happened.

  ADD  96 <mxcl>   User asked for a CTRL-J itty-bitty dialog that allows you to jump to a specific part
                   of a track. I'll see if I can do it with tiny amount of code -->mxcl

  FIX  87 <muesli> Don't rely on KDE timeouts to see whether a file is accessible or not,
                   since this really sucks for disconnected network shares. XMMS handles
                   this way better and it really is a problem in userland. maybe a thread
                   helps, which simply tries to fopen() the file. if this task hasn't been
                   finished in (let's say) 3 seconds, jump to the next song. XMMS even
                   remembers such files and their folders, so that it's not going to open
                   another file from that folder for the next few minutes. what about hdd
                   sleep-timeouts? opinions?

  CHG  78 <mxcl>   Determine some behavior for the clear/shuffle/etc. buttons when a search is in action
                   clear   -> only clear the stuff that was searched for?
                   shuffle -> stop the search and do normal shuffle?
                   ADDitionally what to do when user rearranges a set of items that are the search result?
          <larson> No big deal to me as long as the behaviour is consistent. I.e. if shuffle shuffles
                   the search, then clear should clear the search only, and visa versa.

  FIX  76 <larson> Make playlist toolbar buttons toggle like the playerwidget buttons.

  ADD  75          Toolbar button in FileBrowser for switching recursive directory reading.

  FIX  73 <mxcl>   Can't resize newly displayed columns if they are hidden at beginning of session -->mxcl

  ADD  39 <markey> Add playlist column for media-type (mp3, ogg, mod, etc).
                   Display type of media next to bitrate (<berkus> i moved it here, seems its the same as above, no?)

  ADD  28 <muesli> Add an option "clean up playlist on startup".
          <mxcl>   Do you mean remove duplicates or dead entries etc. ? Cool.

  ADD     <mxcl>   Option: don't crossfade for sequential tracks on same album. Comments? -->mxcl
                   Of course, there would still be the up to 150ms gap, but we can fix that some other time..
          <markey> Please clarify: is this the same as BR #75388 ?
          <mxcl>   No, this is just to make crossfading not ruin album transitions

  FIX              Add dirs to combo history when user adds a track from that dir to the playlist.

  ADD              "Show playlist" to the right click menu, redundant but necessary.

  ADD              More KTips, better KTips, somehow use the "Did you know" tip dialog (eg kmail, gideon, etc.) -->mxcl

  ADD              History to add dialog, or implement better system for adding urls etc.

  ADD              Option to automatically adjust column widths.

  ADD              Option to implicitly sort playlist by { track, album } (on drop only) -->mxcl

  ADD              "Add item"-dialog should support multiple selections.

  ADD     <berkus> Playmode indication button in main widget (repeat track/pl/shuffle), clickable.


LONG-TERM:

  CHG  21 <markey> Use more accurate interpolation for analyzers (cubic or spline)

  ADD              Tabbed playlists.
                   Pro: it's convenient to have several playlists
                   Contra: the playlist is getting cluttered enough as it is!

  ADD              Make windows magnetic / sticking together (difficult).

  ADD              Playlist export (generate text or html document from playlist entries)

  ADD              Make PlayerWidget shadeable (like XMMS)
          <mxcl>   Doesn't the systray provide this functionality already?
          <berkus> No it doesn't, double click the winamp/xmms window and see for yourself
          <larson> How do you propose this should work? Since we are handled by kwin and have
                   normal window borders, double clicking the titlebar is handled by kwin. Also, should
                   the playlist be shadable?

  ADD              Support for compressed archives / tarballs

  ADD     <mxcl>   Implement beat detection (thread?), interface should glow/move to
                   the beat, visualisations have access to beat/bpm info.

  ADD              Audio system info widget, showing all available codecs and similar info.

  CHG              Resizable playerwidget, like in Winamp3.


IDEAS:

  ADD              Bookmarks inside of tracks (good for very long tracks), and nifty bookmark browser

  ADD              Using filelight (as a kpart maybe) for a graphical representation of the playlist. so
                   you could see at first glance how the altogether playing time is divided into different
                   albums, tunes and so on.


DISCUSSING:

          <markey> I'd very much appreciate people keeping line length in all amaroK sources/textfiles
                   at 110 characters max. Longer lines cause horrible dynamic line breaks or scrolling when
                   you only have limited screen width, like in console or kdevelop. pretty please with icing =)
          <mxcl>   I added a 110 char marker to my editor (since ages ago). However I don't always keep to it.
                   Breaking lines is most often ugly :( Mostly I do though. You can praise me now ;)


DO-NOT-IMPLEMENT:

  FIX  61 <markey> Allow removing of playlist items by dragging back into browser.
          <larson> I think this is really weird. When I drag something I expect that someting to be
                   ADDed or opened in the target. Not removed from the sender.
                   (RFC: is this still appropriate or would it be misleading?)
          <muesli> imho, it's misleading and not hid-compatible. i would rather
                   expect that file to be copied to the browser's current directory.

  ADD              "Hide playlist when main widget is not active" option (?? comments please: )
          <berkus> Noo, we have it hiding into tray, thats enough (imagine how much flashing will be
                   if i drag mouse around with "focus follows mouse" on - this is the one i use all the time)
          <mxcl>   Hence it's an option, you'd not use it with focus follows mouse. But it was just an idea
                   anyway.. dunno if I like the sound of it anymore either.


BACKTRACE/DEBUG


