Commit Graph

392 Commits

Author SHA1 Message Date
Arnaud Bienner 57d3dfc96e Add source icons for JazzRadio and SoundCloud 2012-08-09 22:36:39 +02:00
David Sansome 2035c3e7f5 Fix a bug where dragging songs to the bottom of the playlist would actually move them back to the top. 2012-07-15 12:51:19 +01:00
David Sansome de782c980d Ignore custom playlist row colours for the currently playing item - they might clash with the glowing current track indicator. Fixes issue 3042. 2012-07-15 12:44:53 +01:00
Arnaud Bienner 3b50ed8953 Clear playlist search field when Esc is pressed 2012-07-14 00:00:16 +02:00
John Maguire 83f1aa9252 Copy the character that triggered a search box focus into the search box. 2012-07-12 19:09:03 +02:00
John Maguire 6b87318710 Revert "Typedef QSearchField to old LineEdit on non Mac, and make it compatible with QSearchField"
This reverts commit 59517f5b4e.

Update issue 3047
Status: Accepted
Breaks the mac build. We should do a proper fix for this.
2012-07-12 14:04:29 +02:00
Arnaud Bienner 59517f5b4e Typedef QSearchField to old LineEdit on non Mac, and make it compatible with QSearchField
Fixes issue 3047. (for now)
2012-07-10 00:44:05 +02:00
John Maguire 0558c7bf69 Fix build for Qt < 4.7 2012-07-09 11:34:47 +02:00
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
John Maguire b01a0de8d6 Re-enable a few disabled features from the Qocoa porting. 2012-06-28 12:35:20 +02:00
John Maguire 569c8295db Add qocoa and use it for the playlist search field. 2012-06-28 11:39:43 +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 836a2b0c89 Update the moodbar column on the correct model 2012-05-30 11:06:41 +01:00
David Sansome 8c33cb91e0 Don't show any tooltips for the Mood column 2012-05-27 22:01:37 +01:00
David Sansome b03563f317 Make it possible to compile out moodbar support 2012-05-27 21:33:05 +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
Arnaud Bienner 14cba7e704 Use application's palette when setting text color of the current playing song's row 2012-05-15 00:49:14 +02: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
Arnaud Bienner 58c217c1fa Always save previous background image, and start fading only is visible 2012-03-28 00:45:14 +02:00
David Sansome 7d9f2b7b7d Use LineEdit::set_focus() instead of QWidget::setFocus() on LineEdit widgets that might be OS X search widgets
Fixes issue 2823
2012-03-25 21:14:39 +01:00
Arnaud Bienner b9d449f3b0 Fadeout when player stop.
+ Also clear all background images when changing background image type to something different from AlbumCover or Custom
+ Remove useless code
2012-03-18 19:22:08 +01:00
Arnaud Bienner 9dff2dd0b1 Give background_type a default value, as some compilers sometimes wrongly assume that it might be used uninitialized 2012-03-17 13:34:29 +01:00
Arnaud Bienner ab0a050855 Add a fading animation when background image change 2012-03-16 22:39:39 +01:00
Arnaud Bienner 4e54634504 Reset current_covert_art when player is stopped 2012-03-13 23:15:53 +01:00
Arnaud Bienner 2a4ab30a69 Connect player->playlistview signals directly in playlistview, now that we have an Application object which holds player. 2012-03-13 22:59:18 +01:00
Arnaud Bienner b676676b9a Precompute the (CPU expensive) opacity filter in a new set_background_image function.
Also, convert the image and modify only alpha channel
2012-03-10 18:55:22 +01:00
Arnaud Bienner 45c172f3fb If the new playing song has no covers, display nothing as playlist background, instead of default cover.png, which isn't very nice as a background IMHO 2012-03-08 23:42:34 +01:00
Arnaud Bienner 0b9d7f2a1a Move all the logic about background precomputation in a new method, to make paintEvent cleaner 2012-03-08 22:39:27 +01:00
Arnaud Bienner b00bdcf04e Scale background image before applying (CPU expensive) opacity filter on it, if the scaled image will be smaller than the original one 2012-03-08 22:25:29 +01:00
John Maguire d09f96d6eb Use qBound instead of ಠ__ಠ 2012-03-06 14:46:35 +01:00
John Maguire 8e6dd551ef Fix background image rendering on Mac by pre-computing the opacity change.
Fixes issue #2745
2012-03-06 13:40:19 +01:00
Arnaud Bienner 790808c47d Add source icon for Jamendo songs.
Rely on URL's host. This doesn't sound perfect to me, but I can't think of a better way to do this.
Maybe making a comparison with one the Jamendo's streaming URLs host would have been better, but I think "api.jamendo.com" is very unlikely to change someday.
2012-03-05 01:13:11 +01:00
Arnaud Bienner 3b19d730b6 Add the ability to have the current playing song cover as playlist's background.
I think it can be nice. But some users' feedback about this might be nice...
Also, few things may be improved (like adding fading when cover changes)
2012-03-03 01:20:37 +01:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
Arnaud Bienner 906d6f5995 Force background redraw when changing background preferences. 2012-02-19 22:40:58 +01:00
Arnaud Bienner 639fcf6a3b Change background opacity 2012-02-19 22:26:11 +01:00
Arnaud Bienner 7912caa115 Do not use QPainter::setOpacity because, as explained in http://techbase.kde.org/Development/Tutorials/Graphics/Performance#QPainter::setOpacity.28.29 this deactivate hardware acceleration and make Clementine use 100% CPU when using a custom image as background. 2012-02-19 21:43:55 +01:00
Arnaud Bienner 089586ad07 Activate fast QString concatenation.
As this is not source compatible because we sometimes assumed (now wrongly) that '+' operation returns QString object (it now returns QStringBuilder object actually), some minor other corrections were needed.
2012-02-19 14:44:33 +01:00
Arnaud Bienner 2f710a9395 Add the ability to modify the playlistview's background image.
Updates issue 365
It is now possible to also modify background image, instead of just hide the default one
2012-02-18 19:57:36 +01:00
David Sansome 845fe2122e Use the highlighted text colour as the text colour of the currently playing song in the playlist view 2012-02-02 20:33:40 +00:00
David Sansome 7166f0d922 When pressing Ctrl+C on a playlist item, copy the text of all visible columns, rather than just the text of the "current" one. Fixes issue 2558 2012-01-29 19:24:13 +00:00
David Sansome 626ce20ec0 Merge branch 'external-tagreader' 2012-01-08 18:38:48 +00:00
David Sansome 5b71ed0837 Use a better spotify icon in the Source row, clean up pixmap drawing code 2012-01-08 15:16:36 +00:00
David Sansome bdf0ff4930 Make the "Loading" song info indicator and playlist queue/stop after indicators look nicer by aligning their QPainters properly 2012-01-07 23:52:31 +00:00
David Sansome 4618651cf4 Merge branch 'master' into external-tagreader 2012-01-07 22:52:18 +00: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
David Sansome 74c4720054 Don't crash when the playlist view in the smart playlist preview doesn't get a Player*. 2012-01-06 11:22:17 +00:00
David Sansome bfd725f2ed Don't crash when adding new columns to a stretch header view.
Fixes issue 2562
2012-01-04 18:45:08 +00:00
John Maguire 11619c9484 Bump the playlist view state version. 2012-01-04 15:43:28 +00:00
John Maguire 7a8103a352 Don't scale the source icon pixmap badly. 2012-01-04 13:59:07 +00:00
John Maguire 6200983dbc Add pixmap cache to source icons. 2012-01-04 12:04:17 +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 05460f9975 Mark spotify streams as not seekable 2011-11-28 18:45:12 +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 23bc7acaee Show filenames in the filename column if the URL has a "file" scheme. Also convert the path to native separators for windows 2011-11-12 19:57:21 +00:00
David Sansome efce2498ca Indicate which column alignment action is currently set on each column in the menu. 2011-11-12 16:23:41 +00: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
Arnaud Bienner 48db13b353 Make Playlist's InformOfCurrentSongChange public and use it when updating item instead of using UpdateItems (which will create a new item) 2011-11-11 02:42:48 +01: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 d62d11df8d When songs are added to the end of the playlist, scroll the playlist to ensure the top one is visible. 2011-09-27 22:28:12 +01:00
David Sansome 8f3ea57a64 Fix the background colour of items in the global search popup in Qt 4.7 with the GTK style. 2011-09-19 11:06:25 +01:00
David Sansome c1041ed6d4 Support for playing tracks from local library 2011-08-29 03:32:41 +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 3eb9aee989 Save the state of the playlist column sort marker
Fixes issue 2098
2011-07-25 16:55:45 +01:00
David Sansome f599c0fca7 Remember the playlist column stretch setting when changing it, and update the menu action's checked state properly when opening clementine. 2011-07-25 16:54:42 +01:00
David Sansome 30f68d6981 Store the floating point proportional playlist column widths directly instead of storing the integer pixel widths then recalculating the floating point values on startup, which would lead to floating point errors over time. Fixes a bug where columns would slowly change size the more times you opened and closed clementine. 2011-07-24 12:47:48 +01:00
David Sansome dd3eee63e5 Remove python scripting support 2011-07-23 15:32:12 +01:00
David Sansome 69bd5555e7 Fix a crash when loading an old playlist containing Radio items after an upgrade to a version where they're Internet items 2011-07-18 22:20:22 +00:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00
John Maguire 16b57935a9 Rename PlaylistManager.name(id) to PlaylistManager.GetPlaylistName(id) so that it doesn't clash with QObject::name() for Python scripts.
Thanks to Cristian Beskid
2011-07-13 18:14:14 +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
Tyler Rhodes 4daae2249e Add selection-size check before removing items from playlist.
Fixes issue 2038.
2011-07-05 20:24:59 +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
Andrea Decorte a36d0706b5 Ask for confirmation also on tab close button for now 2011-06-26 12:30:19 +00:00
Andrea Decorte 87a5ec5cc7 Add confirmation when removing playlist and close button on tabs. Fixes
issue 2003
2011-06-19 08:44:10 +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 7fca5d37dc Minor modifications on load audio CD, including better cleaning of objects 2011-06-14 23:38:43 +00:00
Arnaud Bienner 272841ab73 Starting audio CD support. Starts issue 701 2011-06-09 23:08:43 +00:00
Tyler Rhodes 827d37e64b Add 'Enable playlist background image' to preferences.
Fixes issue #365
2011-06-08 14:48:43 +00:00
David Sansome 7de618beff Fix registration of metatypes for list handlers on Qt 4.7 2011-05-29 14:08:55 +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
John Maguire 8880b06833 Make backspace delete in playlist view on Mac.
Fixes issue #1710
2011-05-26 14:34:22 +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