Commit Graph

226 Commits

Author SHA1 Message Date
cornicis dcab14e5fe added removeDuplicateSongs() function to playlist.cpp and added this action to the playlist-menu
Fixes issue #21
2012-07-06 11:46:04 +02:00
David Sansome b9bb449651 Use the first visible column when dragging+dropping within the playlist, instead of column 0 which may be hidden
Fixes issue 2879
2012-06-15 10:18:38 +01:00
Robbert Krebbers 3b186c698d Allow playlist sorting and shuffling to be undone. Fixes issue 654.
Also:
  - When sorting a dynamic playlist, only songs after the currently playing track are sorted.
  - When moving songs in a dynamic playlist, recolor them if moved across the current track.
  - When playing a future song in a dynamic playlist, move it to the current location.  Fixes issue 1140
2012-06-09 14:33:51 +01:00
David Sansome 8c33cb91e0 Don't show any tooltips for the Mood column 2012-05-27 22:01:37 +01:00
David Sansome a2feaa61e7 Create and render moodbars in background threads to avoid blocking the UI 2012-05-27 18:53:57 +01:00
David Sansome 19c3e1d5ec Add a Mood column to the playlist 2012-05-27 16:46:16 +01:00
David Flatz 1e9a7e2119 Fix segfault when drag&dropping playlist entries from different instance
Fixes issue 2896
2012-04-25 16:38:59 +01:00
David Sansome 9be641ee87 The external tagreader mostly works now:
* Make TagReaderClient a singleton until it's easier to pass dependencies around
 * Add a WaitForSignal() that uses a local event loop to wait for a signal to be emitted
 * Add a WaitForFinished() to _MessageReplyBase that blocks using a semaphore
 * Add blocking versions of all TagReaderClient methods
 * Use the TagReaderClient everywhere that Song::InitFromFile and friends were used before
2012-01-07 00:26:07 +00:00
John Maguire bcf9475f2b Add a source column to the playlist view with appropriate icons. 2012-01-04 11:56:09 +00:00
David Sansome 0aba1ce77d Fix a crash when creating a new smart playlist 2011-11-29 13:01:54 +00:00
Robbert Krebbers 7c1cedeac8 Fix a bug where moving songs down in the playlist could not be undone properly. Fixes issue 1908 2011-11-29 11:39:47 +00:00
David Sansome b873209d39 Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h. 2011-11-28 13:56:55 +00:00
Angus Gratton 360aaabd0d Add playlist album artist for use in playlist grid view (Issue 509) 2011-11-28 11:04:38 +00:00
David Sansome da532ef3ca Make manual track changes ignore the "repeat track" setting. Fixes issue 2426 2011-11-27 21:02:37 +00:00
David Sansome b8ee548eb4 Rename the existing "Shuffle by album" mode to "Shuffle tracks in this album", and add a new "Shuffle albums" mode that plays all the tracks in each album sequentially, but then jumps to a different random album afterwards.
Fixes issue 1152
2011-11-27 15:01:10 +00:00
Arnaud Bienner ceab3bd6f0 Add Grooveshark songs as internet items, when adding them from global search, so user can use all GS custom actions 2011-11-24 00:30:11 +01:00
Arnaud Bienner 867a072579 Improve UpdateItems complexity: still quadratic in wort-case, twice better in average, but linear in best case, which is very likely to happen in real usecases 2011-11-19 16:01:58 +01:00
Arnaud Bienner fdad2bd706 Make the async load of folders thread-safe 2011-11-18 21:55:54 +01:00
David Sansome 63fdf11cd8 Keep the playlist column alignment setting in PlaylistView instead of in each individual Playlist, ensuring all playlists share the same column alignments and there's only one place to save/restore them.
Fixes issue 1795
2011-11-12 16:12:51 +00:00
HyperQuantum 94a7ceb898 Add an "Expand" button to add more tracks to a dynamic playlist. Fixes issue 1268 2011-11-10 11:21:41 +00:00
Arnaud Bienner 89680a02f0 Add the ability to have custom actions for PlaylistItems, and InternetPlaylistItems (through services). Add 'add to playlists' actions for Grooveshark 2011-11-06 16:12:44 +01:00
Arnaud Bienner 4143823870 Get GrooveShark songs' length (give the ability to seek through stream). markStream and markSongComplete, as resquested by GrooveShark 2011-10-02 12:05:56 +02:00
David Sansome 53e175e503 When stopping due to "Stop after this track", set the current song to the one after, so when the user presses Play it plays the next song instead of the last one again. 2011-09-27 23:31:15 +01:00
David Sansome 804cbbc14e Save the playlist after editing fields of files in it - affects files that are not in the library. 2011-08-27 23:09:42 +01:00
David Sansome 9312f153b7 Don't show a notification and update the now playing widget when editing a song that isn't currently playing. Fixes issue 1689 2011-08-27 23:08:53 +01:00
David Sansome 7e0e4e48e4 When loading a CUE from disk that isn't in the library, don't overwrite the metadata of its first song with the metadata from the audio file. Fixes issue 2092 2011-08-27 22:29:35 +01:00
Arnaud Bienner cb28557a77 Correct typo 2011-08-08 23:44:49 +02:00
David Sansome dd3eee63e5 Remove python scripting support 2011-07-23 15:32:12 +01:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00
Tyler Rhodes 5c6f9e625b Allow shorter playlist column names if header size is too small.
Fixes issue 201.
2011-07-06 13:22:42 +00:00
David Sansome c8305c0eee Don't record an undo step when all the songs inserted into the playlist were vetoed. Thanks schizosfera. 2011-07-01 20:48:18 +00:00
David Sansome 5dbdc8354b Port the deleted songs invalidator script to PythonQt. Thanks schizosfera. Fixes issue 2035 2011-07-01 20:47:46 +00:00
David Sansome 7415d85dce When initialising a song from a library query, don't always assume the metadata originally came from a file (which means icycast tags are ignored when it is played). Fixes issue 1857 2011-06-17 20:00:10 +00:00
Arnaud Bienner 272841ab73 Starting audio CD support. Starts issue 701 2011-06-09 23:08:43 +00:00
David Sansome 6dd1634946 Add Python bindings for Playlists, port the rainbowizer plugin to PythonQt and make its colours a bit more tasteful 2011-05-29 12:55:18 +00:00
David Sansome e2c6526840 Make dynamic playlists use the limit specified in the smart playlist dialog. Thanks google@robbertkrebbers.nl. Fixes issue 1082. Fixes issue 1192. 2011-05-14 13:44:10 +00:00
David Sansome 06852aaeb7 Show spotify search results in a separate playlist tab rather than in a tree in the sidebar. 2011-04-28 17:50:45 +00:00
David Sansome ccb9f8cf94 Use URLs everywhere instead of filenames. Move the URL parsing and song loading code out of individual playlist parsers and into the base class. Fix the playlist parser unit tests. 2011-04-28 12:27:53 +00:00
David Sansome 3d6677fe6d Allow radio services (Spotify) to store whole songs in playlist items 2011-04-26 22:06:58 +00:00
David Sansome 3eedc916ad Add a new logging system 2011-04-22 16:50:29 +00:00
Paweł Bara b8e1880854 "remove deleted songs from playlists" action in the 'deleted songs invalidator' plugin (fixes issue #1594) 2011-04-21 21:56:37 +00:00
David Sansome 8f4c1dbbf6 When doing gapless playback, fix a bug where the TrackEnded signal would be emitted too early, before the track had actually ended. This caused the song after the current song to get scrobbled and its playcount increased. Fixes issue 1771 2011-04-17 14:11:37 +00:00
Arnaud Bienner 65ef047c38 Loading file in async way, in two times: fast loading files and insert them in playlist view, while loading info (tags, ...) in background thread 2011-04-16 14:04:15 +00:00
David Sansome f905ce3510 Put a limit on the size of the playlist undo stack, and don't add operations to the stack if they affect more than 500 items. Fixes issue 1762 2011-04-16 13:31:57 +00:00
Andrea Decorte 5d8f1fe872 Added scrobbling button in main window and a global shortcut for
toggling it. Fixes issue 1090
Improved last.fm error handling
2011-04-07 16:25:52 +00:00
Andrea Decorte ecda0ada4a Playlists get an automatic name, no more prompts. Fixes issue #423 2011-03-25 19:16:12 +00:00
David Sansome 31ead96e91 Fix last.fm scrobbling. Fixes issue 1503 2011-03-20 22:19:38 +00:00
Paweł Bara e619d7a280 fixing a bug where streams were removed from playlist during Clementine's startup 2011-03-20 16:07:24 +00:00
Paweł Bara bfb068a6d1 conditionally hide some context menu actions in library view and playlist view
Song.is_stream()
2011-03-20 12:43:10 +00:00
Paweł Bara 3db00fc339 plugin that lets you grey out deleted songs on demand ("main menu / playlist") - available by default
also: this action will "ungrey" songs that were deleted but got restored

SIPs
2011-03-19 10:22:55 +00:00
Paweł Bara 823f798451 new option for greying out deleted songs on startup 2011-03-19 09:41:00 +00:00
Paweł Bara a4bf317f33 minor deleted items handling fixes 2011-03-18 21:54:22 +00:00
Paweł Bara ad7223f8b3 code review 2011-03-13 13:02:48 +00:00
Paweł Bara ce17d5f1c9 API for coloring rows in playlist view
graying out of broken songs on playback

David's POT?
2011-03-13 11:43:44 +00:00
Paweł Bara 8722e00103 Clementine now skips songs that don't exist anymore (updates issue #250) 2011-03-10 18:01:35 +00:00
David Sansome 0acfbda94d Don't crash when closing a playlist that has a pending SongLoaderInserter. Fixes issue #1471 2011-03-06 14:46:01 +00:00
David Sansome 507c5e2632 Change the fields in Song from seconds to nanoseconds 2011-02-13 18:34:30 +00:00
Arnaud Bienner e6b59de56b Corrected center on last played track 2011-02-11 20:16:42 +00:00
Arnaud Bienner 79159700fc Center on last played song when restoring playlist. Fixes issue 410. 2011-02-10 20:55:19 +00:00
Paweł Bara a883630ab3 duplicate remover script (fixes #21)
fix a scripting crash when one native object was registered more than once
veto mechanism for inserting songs into playlist
2011-01-16 23:46:58 +00:00
David Sansome 135b32642e Refactor all the code that handles adding items to the playlist - whether it be by a context menu item, double clicking in a view or dragging. Everything now uses the models' mimeData() instead of duplicating the same code everywhere. 2011-01-10 22:26:13 +00:00
David Sansome dc619eb437 Start refactoring the RadioModel to inherit from QStandardItemModel 2011-01-09 18:27:41 +00:00
David Sansome 7a089faa29 Fix a crash that ocurrs when something calls GetCaps over dbus before the playlist is initialised, and when a repeat mode is set. 2011-01-07 19:16:45 +00:00
David Sansome ca032eb445 Add an "Enqueue to playlist" menu item. Thanks bendarb. Fixes issue #980 2010-12-29 15:08:43 +00:00
David Sansome 95ef57cf1e Add column text alignment options to the playlist header menu. Thanks brunciter! 2010-12-22 10:45:14 +00:00
Paweł Bara 5b2625f420 fixes a crash when trying to rate the current song if there's none (rate using global shortcut) 2010-12-18 17:41:03 +00:00
David Sansome 28fdb147d8 Make last.fm optional. Thanks volkov0aa. Fixes issue #49 2010-12-18 17:28:02 +00:00
Paweł Bara 32f9825794 global shortcuts for rating songs (Fixes issue #1089)
renaming *index* methods in Playlist to *row*
2010-12-17 00:21:20 +00:00
Paweł Bara 49f46bced8 playlists now emit PlaylistChanged also when their ordering changes (Updates issue #374) 2010-12-09 20:43:06 +00:00
David Sansome bbf0cd48c2 Insert songs as library playlist items if they're in the library. Fixes issue #1039 2010-12-07 19:33:19 +00:00
David Sansome f818577907 Regression - remove the next track from the queue if it is the currently playing track. Fixes issue #1005 2010-12-04 16:47:28 +00:00
David Sansome a07a808e5f Show new lines properly in the comment tooltip, and simplify whitespace in the comment column. Fixes issue #1011 2010-12-04 16:43:09 +00:00
David Sansome 31a6aa2de7 Add a Comment field to the playlist. Fixes issue #890 2010-11-28 15:22:48 +00:00
David Sansome 96a45bb0ca Fix inline editing of multiple tracks from the playlist. Fixes issue #869 2010-11-28 14:47:35 +00:00
David Sansome b1bf95a668 Remember which library a dynamic playlist was using when you restart clementine 2010-11-27 19:11:36 +00:00
David Sansome 927937e236 Save and restore Jamendo playlist items properly. Add a Jamendo context menu. 2010-11-25 22:04:23 +00:00
David Sansome c43a06c04e Support drag&drop of icecast streams to the playlist 2010-11-24 19:25:41 +00:00
David Sansome 560d1c5006 When repopulating a dymanic playlist, don't remove items that are queued 2010-11-21 17:48:58 +00:00
David Sansome 5969e2b3d7 Remember whether a dynamic playlist was active between restarts 2010-11-20 20:30:21 +00:00
David Sansome 3dd0e56c1b Show controls at the bottom of the playlist when a dynamic playlist is active 2010-11-20 20:00:40 +00:00
David Sansome 7d54549213 Add support for dynamic playlists. A dynamic playlist is just a smart playlist that chooses and adds a new track when you finish listening to a song. 2010-11-20 18:49:54 +00:00
David Sansome ed1a25693c Add missing licenses to debian/copyright, and add copyright information to each source file 2010-11-20 13:27:10 +00:00
David Sansome 1f267881fe Put all smart playlist classes in their own namespace 2010-11-18 20:19:33 +00:00
David Sansome 4750c19d00 Remove the playlists tab and add a smart playlists section to the library view instead 2010-11-17 20:21:04 +00:00
David Sansome 9e20ef13bc Automatic scoring. Thanks Arnaud Bienner. Fixes issue #141 2010-11-01 21:15:52 +00:00
David Sansome 5d9e43bc14 Add a new smart playlist wizard. Doesn't do anything yet except look pretty. 2010-10-24 23:46:05 +00:00
David Sansome f8fd0e578c Support dragging a smart playlist into a playlist 2010-10-24 16:40:19 +00:00
David Sansome 30afc130a4 Start of some work for smart/dynamic playlists. Only simple generators based on sql queries are supported, and the UI still needs polish. 2010-10-24 15:38:12 +00:00
David Sansome 3a32c41c7e Update the rating stars in the currently playing item properly, and the fix the bug that would cause the currently playing item pixmap cache to not be updated with the whole row. 2010-10-23 20:58:20 +00:00
David Sansome bcddb2317a Allow song ratings to be set by clicking on the stars in the playlist 2010-10-17 21:56:19 +00:00
David Sansome bbe1250c31 Add skip count and last played columns to the playlist, draw the background behind the rating column properly, hide rating and statistic columns when upgrading from an old version. 2010-10-17 18:21:30 +00:00
David Sansome dd4afe9b06 Add rating and play count columns to the playlist 2010-10-17 17:10:19 +00:00
David Sansome b97b2138fa Play last.fm tag radio or similar artists radio when clicking on a tag in the song/artist info pane. 2010-10-16 15:22:14 +00:00
John Maguire ad16a8b1ba Load local files from the DB if we already have them. 2010-08-31 19:45:33 +00:00
David Sansome e940f9c5d2 Ignore case when sorting the playlist. Fixes issue #650 2010-08-29 16:31:09 +00:00
David Sansome 1d5ea90b98 Use a locale aware string sort when sorting the playlist. Fixes issue #668 2010-08-29 11:28:14 +00:00
John Maguire f077e33091 Fix playlist loading. 2010-08-16 18:58:26 +00:00
David Sansome d81db5f255 Reload playlist items in the background after editing 2010-08-08 12:36:07 +00:00
John Maguire 16d50b29d8 Nice typedefs. 2010-08-03 19:40:54 +00:00
John Maguire 78371a5d3a Remove debug 2010-08-03 19:08:05 +00:00
John Maguire e67f9a66c8 Load playlist in separate threads on startup. 2010-08-03 18:57:17 +00:00
John Maguire 8166a50b2a Use persistent model index. 2010-08-02 14:07:34 +00:00
John Maguire 992e0fb95e Add support for saving songs in a separate thread.
Updates issue #542
2010-08-02 14:00:43 +00:00
John Maguire 14dd723e3a Connect up signals for queuing tracks so that the view is updated correctly.
Fixes issue #548
2010-07-26 15:53:06 +00:00
David Sansome 40a2302311 Support dragging and dropping between playlists 2010-07-17 12:47:59 +00:00
David Sansome aa2d69f1bf Make the player actually use the queue order. Fixes issue #24. 2010-07-11 19:02:31 +00:00
David Sansome 4b81a86d1d Implement moving items in the queue 2010-07-11 17:39:11 +00:00
David Sansome 1f9e72f971 Add icons to the move up/move down/clear buttons, and implement the clear button 2010-07-11 16:58:22 +00:00
David Sansome f750ac1351 Display an indicator next to each playlist item showing its position in the queue 2010-07-11 16:17:38 +00:00
David Sansome 41183107d2 Start of work on a queue manager 2010-07-11 15:37:40 +00:00
David Sansome f808591ec7 Refactor the loading indicator widget into a seperate TaskManager class that can handle tasks with progress 2010-06-23 13:21:30 +00:00
David Sansome d3be5a4215 Make double-clicking on radio items work properly again. It's hacks all the way down... 2010-06-18 15:31:49 +00:00
David Sansome 8dd0b9902b When album cover art changes, update songs matching those albums in the playlist 2010-06-18 14:26:46 +00:00
David Sansome 4dbd1f2a2f Make sure the last played track gets restored properly when we re-open clementine 2010-06-17 17:43:58 +00:00
David Sansome 68edaff32f Show the whole URL in the playlist for streams that don't have a title or basefilename set. 2010-06-16 16:18:28 +00:00
David Sansome 357f229e02 Make saved radio streams use the song loader when dragged to the playlist 2010-06-16 16:11:23 +00:00
David Sansome f162d9d620 Add a SongLoaderInserter that loads a list of URLs and inserts them into a playlist when it's done. Wire up everything in the GUI that loads URLs or filenames to use the new SongLoader. 2010-06-15 18:24:08 +00:00
David Sansome a8d79582c1 Add a status bar indicator to tell the user how many tracks are loaded. Fixes issue #155 2010-06-12 21:20:53 +00:00
David Sansome f739ae5e00 (Vertical) center align playlist items again.
Update issue #379
Fixed the alignment.
2010-06-11 16:41:29 +00:00
David Sansome 6eea954fb1 Right-align numeric fields in the playlist 2010-06-10 17:04:05 +00:00
David Sansome b487ec00ef GUI for saving playlists 2010-05-22 22:20:00 +00:00
David Sansome ab1b80c1db Playlist filtering 2010-05-22 16:36:13 +00:00
David Sansome 1572124962 Seperate last played values for each playlist 2010-05-20 22:30:55 +00:00
David Sansome e515724bf7 Basic support for multiple playlists. Not everything works yet 2010-05-20 21:21:55 +00:00
David Sansome 56765caf64 Make previous follow the same order of virtual indices that next follows.
Update issue #316
I've fixed the second part of your report in this one - pressing "back" should follow the same random order now.  It goes a bit weird if you go back past the first random track you played, but I don't care too much about that :)
2010-05-17 00:02:22 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00