Commit Graph

302 Commits

Author SHA1 Message Date
Paweł Bara 0182829223 user-friendly name for 'Open in new playlist' playlists (fixes issue #1445) 2011-02-14 17:00:13 +00:00
David Sansome 507c5e2632 Change the fields in Song from seconds to nanoseconds 2011-02-13 18:34:30 +00:00
Paweł Bara 60ac6768b8 Fresh new 'open in new playlist' action (Updates issue #1431). 2011-02-09 17:51:59 +00:00
Paweł Bara 4cd01a43b7 fixing names of all the 'add to playlist' items in context menus (Fixes issue #1421) 2011-02-08 22:42:09 +00:00
Arnaud Bienner de2193f5af Display tooltip info in library only if text displayed is elided (as it was done for playlistdelegates, r2745). Partially fixes issue 451 2011-02-08 21:55:32 +00:00
Paweł Bara b7cd42fe53 minor C++ stuff 2011-02-06 14:34:47 +00:00
Paweł Bara 82e92bb3ac library view has now three modes: 'all songs', 'duplicates only' and new 'untagged songs only' (check out the http://code.google.com/p/clementine-player/wiki/LibraryViewModes) - fixes issue #305
+ hiding the 'complexity' of QueryOptions filter and query_mode mutual exclusion behind it's API
2011-02-06 13:18:18 +00:00
Paweł Bara 9a9d8ad177 don't let invalid CUE related media files into library (invalid == those which were not recognized by TagLib)
better logging of erroneous DB queries (error + query + bound values instead of just error)
2011-02-05 13:43:04 +00:00
John Maguire 084b9a2fe3 Remove taglib prefix from includes as the taglib include path contains it already. 2011-02-04 12:36:56 +00:00
Paweł Bara 7bdac8fba6 when loading playlist, take only it's valid songs (+ force validity of CUE and PLS related songs) 2011-02-03 17:47:32 +00:00
Paweł Bara 77151d7ebd Hiding some of Song's cover art logic complexity in Song's API (namely: embedded and manually unset covers). 2011-02-02 21:01:08 +00:00
Paweł Bara ce104b9cf4 working on making disable for library filter widget work on MacOS (Updates issue #1396) 2011-02-02 16:46:57 +00:00
Paweł Bara 8aedda1795 moving the 'Save cover to file' action into AlbumCoverChoiceController; implementing the action in all related places (now playing widget, album cover manager, edit tag dialog)
now playing widget: disable all cover related context menu options (except for the 'save cover' one) when in 'Kittens' mode
2011-02-02 16:22:04 +00:00
Paweł Bara 5b5d3f0c2e watch out for optional last.fm dependencies in AlbumCoverChoiceController -> fixes issue #1393
from the creators of "david is always right" movie -> maybe fix issue #1396
2011-01-31 15:21:32 +00:00
Paweł Bara 2959dbff85 'show duplicates only' view for library where you can see which songs in your library are duplicated and delete unnecessary duplicates (fixes issue #1328) 2011-01-30 21:00:49 +00:00
David Sansome 0beb12fc14 Add some options to control what happens when you double click or use the menu to add tracks to the playlist 2011-01-24 21:16:26 +00:00
David Sansome fe818e5597 Don't drop the embedded art indicator from songs when updating the library. Thanks markwatkinson 2011-01-23 15:36:09 +00:00
Paweł Bara 70952d94d8 I wonder how those Cisco routers are so good if people responsible for them are SLACKERS! 2011-01-18 17:20:42 +00:00
Paweł Bara e24e786a5d incorporating David's suggestions 2011-01-18 17:12:05 +00:00
Paweł Bara 07739d6c68 Python bindings for LibraryView + new UI hook for plugins: the view's context menu
support for IN operator in LibraryQuery.AddWhere
2011-01-18 16:34:43 +00:00
Paweł Bara ddd3f119d3 CUE songs are now properly updated in library - you can delete a CUE sheet, add it, you can change section markers in it etc. and everything should work as expected
Song now knows it's cue path (if any)
2011-01-15 18:46:23 +00:00
Paweł Bara 4f7e804638 library: watcher now updates CUE associated songs + ignores the not-CUE-associated songs in a CUE sheet
CueParser: properly update length for the last song from every FILE in multifile CUE sheet
new 'playlist_path' argument in the 'Load' part of PlaylistParser's API
2011-01-11 23:09:59 +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 d78ad452f2 Make the "No cover" image the same size as the cover art when showing cover art in the library. Thanks markwatkinson. Fixes issue #785. 2011-01-02 18:58:52 +00:00
David Sansome 43940de195 Add an option to show cover art in the library view. Thanks markwatkinson. Fixes issue #785 2011-01-02 14:51:01 +00:00
David Sansome 6ea9ea3b4d Add a linebreak to a tooltip 2010-12-30 18:26:13 +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
Paweł Bara da5f941333 consider .cues when scanning the library
persist the new 'beginning' marker of songs
fixed a bug where %allsongstables script would not update the attached databases
2010-12-28 15:36:01 +00:00
David Sansome 1362809b5d Make the library scanner use filter words for selecting cover art. Thanks markwatkinson. Fixes issue #634 2010-12-28 12:52:58 +00:00
David Sansome 9b82ecbb72 Add tag completers for albumartist, composer and genre, and load completion models in background threads 2010-12-25 13:11:09 +00:00
David Sansome 8cdce2767b Implement the reset play counts button 2010-12-25 11:54:21 +00:00
Arnaud Bienner 3218e08118 Displaying different text depending on the number of selected songs 2010-12-21 00:20:36 +00:00
David Sansome c8520021d7 Start of a new edit tag dialog. Lots of things don't work and it doesn't actually save tags yet (so it's about as useful as before). 2010-12-19 23:40:36 +00:00
David Sansome 05a1bf6e37 Make the clear button a part of the search textbox. Fixes issue #1071 2010-12-18 20:32:05 +00:00
John Maguire 21415ff230 Fix some mac ui and metadata bugs. 2010-12-14 15:00:46 +00:00
David Sansome 5e17e93360 Smarter adding/removing from various artists. Fixes issue #717 2010-12-11 14:17:07 +00:00
David Sansome 47c13c4479 Listen for keyPressEvent instead of keyReleaseEvent in the library view. Thanks arnaud.bienner. Fixes issue #1042 2010-12-09 14:33:20 +00:00
David Sansome 34532ed85f Allow editing tracks from the library pane. Thanks arnaud.bienner. Fixes issue #65 2010-12-06 21:16:04 +00:00
David Sansome 3216f5b75e Remove ( and ) characters from FTS queries. Fixes issue #1010 2010-12-04 18:16:00 +00:00
David Sansome dd937fb06d Make searching more responsive on large libraries (Jamendo) 2010-11-27 20:20:26 +00:00
David Sansome af234763f2 Do library searching and grouping in a background thread 2010-11-27 20:09:00 +00:00
David Sansome e63c101223 Don't show the various artists node for Jamendo (there aren't any various artists albums) - making search a bit faster 2010-11-27 19:37:34 +00:00
David Sansome bea4b39020 Make Jamendo search work again 2010-11-27 19:37:09 +00:00
David Sansome f11c494c44 Add a random smart playlist to Jamendo 2010-11-27 19:18:56 +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 623b90e5e2 Make sure the smart playlists node really really gets put at the top 2010-11-27 18:43:49 +00:00
David Sansome 69d3d89b0f Have a different list of smart playlists for Jamendo and the normal Library. Only add default Jamendo smart playlists once. 2010-11-27 17:52:08 +00:00
David Sansome b85ddbb380 Put the Jamendo songs in a separate database that gets attached to the main database. "Reload" it by deleting the file, which is much faster than DELETEing all the songs inside. Make reloading the Jamendo, Icecast and Magnatune databases always bypass the network cache. Store the Jamendo track IDs in a separate table - for some reason this makes inserts faster. Fix the Jamendo model after the inital database load. Make the Jamendo dymanic playlist use the entries that are already in the local database rather than fetching the song metadata again. 2010-11-27 16:14:09 +00:00
David Sansome 4e60558053 Use the Jamendo track id as the ROWID for tracks, and implement reloading the database. 2010-11-25 23:05:37 +00:00
David Sansome 23d1ea81ea Add dividers to the list of icecast stations 2010-11-24 21:34:54 +00:00
David Sansome e4a3a12a83 Show progress information while downloading and parsing Jamendo and Icecast catalogues. Also parse Jamendo in chunks rather than all in one go. 2010-11-23 18:53:08 +00:00
Paweł Bara 5ceb64c9e3 "mute" command in main menu and context menu of tray icon (Fixes issue #962)
"now playing" tray icon's tooltip in Qt environments
2010-11-21 21:36:27 +00:00
David Sansome a73b46d382 Don't show smart playlists in the library when it's filtered 2010-11-21 12:16: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 759e97c275 Fix a bug where smart playlists wouldn't get removed correctly 2010-11-20 15:47:44 +00:00
David Sansome 353485e34e Better smart playlist icons 2010-11-20 15:29:42 +00:00
David Sansome 69db0e0ee4 Don't draw the library view at all if there are no songs in the library 2010-11-20 14:59:11 +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 ffdfc0ed34 Make deleting smart playlists work 2010-11-20 12:27:19 +00:00
David Sansome 63d2496784 Add a couple more default smart playlists. Fixes issue #971 2010-11-20 12:05:51 +00:00
David Sansome bb1c2b22ef Create, edit and delete smart playlists from the context menu 2010-11-18 23:08:37 +00:00
David Sansome 1f267881fe Put all smart playlist classes in their own namespace 2010-11-18 20:19:33 +00:00
David Sansome d9ed5c91ef Add smart playlist context menu items 2010-11-18 19:34:04 +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 2a480f7b1c Somewhat-working smart playlist preview widget for the wizard. Still needs a lot of polish. 2010-10-29 18:41:49 +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 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 f706c21be6 Add a library backend function to set song ratings 2010-10-17 20:53:48 +00:00
David Sansome 0a42a9efb5 Don't ever restructure or reset the library model when statistics on a song are changed. 2010-10-17 19:34:45 +00:00
David Sansome a13e0ba3f3 Increment play and skip counts when playing or skipping songs from the library 2010-10-17 19:27:31 +00:00
David Sansome 56d72a00bf Try the next UI experiment - wide buttons down the side like Qt Creator 2010-10-01 19:27:01 +00:00
David Sansome 8c0b17c000 Ooops, perhaps the code to stop devices from auto-expanding would work better in the DeviceView class. 2010-09-18 14:29:43 +00:00
David Sansome 3f926f0cca Don't recursively expand (and connect) devices in the device view. Fixes issue #610 2010-09-18 13:55:04 +00:00
David Sansome ce1e7f73df Fix the artist and album library icons in Qt 4.7 2010-09-18 13:35:52 +00:00
David Sansome 7419c52bec Fix a path handling problem that caused the OK button to be greyed out when copying files to a device on Windows. Also show an error message when trying to copy songs that can't be copied (like streams). Fixes issue #750 2010-09-15 20:00:17 +00:00
John Maguire 214d77bc0e Fix test and fix song loader infinite loop. 2010-08-31 21:24:57 +00:00
David Sansome 1453d264dd Fix an assert when setting the library grouping to None 2010-08-30 16:37:29 +00:00
David Sansome ce0e468d75 Sort items in the library view under the correct divider when they have no unicode decomposition.
Update issue #672
Can you try this and see if it fixes it for you?
2010-08-30 16:20:04 +00:00
David Sansome 5a616cf40a Fix the organise dialog 2010-08-30 15:40:53 +00:00
David Sansome 2a160bee5f Pass the list of songs into the organiser from the library 2010-08-30 15:28:55 +00:00
David Sansome 1311a29dfa Fix some weird behaviour in the library view 2010-08-30 14:03:32 +00:00
David Sansome 3cf2b5ba47 Revert to the old type-to-scroll behaviour in the library view 2010-08-30 10:31:44 +00:00
David Sansome 2881b6b6b2 Clean up this code a bit 2010-08-29 16:58:22 +00:00
David Sansome d337ffc6e4 Group things in the library model by the unicode decomposition of their
first character, and do a locale aware sort.  Fixes issue #668 (again).
2010-08-29 16:46:28 +00:00
David Sansome eb65c06b24 Make pressing enter in the library filter widget add the search results to the playlist. Also make the cursor keys work when the filter widget is focused. Fixes issue #641 2010-08-29 12:15:30 +00:00
John Maguire d87733b005 Use Mac search widget for library & magnatune. 2010-08-28 19:29:20 +00:00
David Sansome 8306ddc90b Convert paths to native windows seperators in many places throughout the UI 2010-08-28 19:07:23 +00:00
David Sansome d980fd5ff8 Remove the pointless CreateInThread method from BackgroundThread and instead move objects to the right thread after creation. 2010-08-27 18:36:57 +00:00
David Sansome 35708a09c5 Lazy load more context menus and dialogs 2010-08-27 16:15:54 +00:00
John Maguire b450545a63 Disable focus rectangle on Mac for playlist & library views. 2010-08-26 12:22:13 +00:00
David Sansome c0ea45a9c9 Show an error dialog when copying or deleting files failed. 2010-08-14 11:51:50 +00:00
David Sansome 5e00eb11de Pass shared_ptrs to music storage things to the organiser thread so they won't get deleted if the device is disconnected 2010-08-09 21:50:46 +00:00
David Sansome 1cbd0af8fb Fix compilation with gcc 2010-08-04 08:17:31 +00:00
John Maguire 36264e0b2b Separate out UniversalEncodingHandler. 2010-08-03 19:29:49 +00:00
John Maguire e67f9a66c8 Load playlist in separate threads on startup. 2010-08-03 18:57:17 +00:00
David Sansome a207a3def5 Make pressing return in the library view the same as double clicking 2010-07-31 17:29:52 +00:00
David Sansome 51b5e7d607 Fix an assert when the library is grouped by file type 2010-07-31 16:13:50 +00:00
David Sansome 1f2b69c6bc Add support for deleting files from the filesystem, devices, and ipods. 2010-07-31 16:12:16 +00:00
David Sansome 5a1fe772ac Fix the ordering of tracks in the library view, again 2010-07-31 15:00:31 +00:00
David Sansome a236861dfa Option to group the library by file type 2010-07-31 14:14:03 +00:00
David Sansome a21b7541e5 Sort items in the library model that don't have track/disc information in a more deterministic way 2010-07-31 12:50:00 +00:00
David Sansome 6f259d4ecc Show a free space bar in the organise dialog, and also show how much space would be taken up after copying files. 2010-07-29 22:16:12 +00:00
David Sansome 87b8c3ce69 Detect symlinks in music library. Patch by Knuckster 2010-07-29 18:40:10 +00:00
David Sansome b2aba2bac2 Add an option to eject a device after copying files to it. Now with bonus multiple virtual inheritance. 2010-07-25 09:52:29 +00:00
David Sansome 81a1a9926e Disable the "copy to device" action if there are no devices connected 2010-07-24 18:31:05 +00:00
David Sansome c35bd8779a Make sure -1 and "" get stored in the database instead of NULL for song metadata. Thanks YellowOnion. Fixes issue #396. Fixes issue #479. 2010-07-24 15:13:09 +00:00
David Sansome 9f2d610e9d Add a menu item for copying songs to devices. Only filesystem devices supported so far 2010-07-19 21:16:22 +00:00
David Sansome 62616304d8 Add a MusicStorage interface that can be used to abstract away the details of copying a file to a device. 2010-07-19 19:56:29 +00:00
David Sansome 0d0f1521f2 Show embedded cover art in the album cover manager too, but only for the first file in an album 2010-07-19 18:08:25 +00:00
David Sansome f64cdb23e9 Make the AlbumCoverLoader read embedded album cover art when it's available. Fixes issue #516 2010-07-19 17:55:02 +00:00
David Sansome fca4fb8264 On second thoughts, use temporary metadata for all playlist items. 2010-07-10 19:45:29 +00:00
David Sansome d620779696 Add an option to disable directory watchers 2010-07-10 17:03:28 +00:00
David Sansome 2762d80722 Show the scanning progress in the device view 2010-07-04 15:56:08 +00:00
David Sansome 4a8bff5f4e Cope with removable media changing mount point 2010-07-04 12:10:44 +00:00
David Sansome 88474551d5 Make the device view prettier 2010-07-04 11:34:25 +00:00
David Sansome 2deca7fd61 Add a DeviceManager which holds all the listers and connected devices. Make FilesystemDevices use their own LibraryWatcher. 2010-06-26 12:41:18 +00:00
David Sansome 2b17a8ee1f Revert r1344 (the timer tracing), it didn't help 2010-06-25 22:04:24 +00:00
David Sansome cc6413ab0e Add tracing to every timer event, might help track down CPU usage... 2010-06-25 08:46:03 +00:00
David Sansome dbe51d2cf5 Add an "Organise files..." menu option to the Library view 2010-06-24 22:45:30 +00:00
David Sansome 05b6c8fe71 Allow organising of whole directories, and pause the library watcher while organising is in progress. 2010-06-24 21:46:18 +00:00
David Sansome 44d58482f0 Make the LibraryWatcher report on its progresss. Fixes issue #436 2010-06-23 14:00:18 +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 492d8fec87 Use sqlite's Full Text Search on the songs table 2010-06-20 16:30:10 +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 7eb83634b7 Update the library view when album covers get set by the cover manager 2010-06-18 13:47:11 +00:00
David Sansome 6d39996466 Make the indentation in the settings pages more consistent 2010-06-16 22:45:13 +00:00
David Sansome 7f3c0b853a Sort by album artist properly.
Update issue #408
Status: Fixed
Looks good, thanks!
2010-06-16 14:52:01 +00:00
David Sansome efcd2c968a Search library on composer and genre too 2010-06-12 13:19:55 +00:00
David Sansome 7e1b54a779 Fix the height of items in the album cover manager, don't show artists with no albums, and add a status bar (currently unused) 2010-06-11 22:35:41 +00:00
David Sansome 0e83490766 Search in albumartist too. Fixes issue #387 2010-06-11 12:01:41 +00:00
David Sansome 15df3b90a3 Set window icons on all the dialogs. Fixes issue #394 2010-06-10 22:09:35 +00:00
David Sansome 9b713c2ed9 Add or load *all* selected library items, not just the one that you right clicked on. Fixes issue #366 2010-06-09 15:49:05 +00:00
David Sansome 5f92d652a9 Show a "Configure Magnatune" button on the magnatune header 2010-06-09 15:38:00 +00:00
David Sansome f1fb9ab6b9 Remove the library config dialog and make it show the page in the settings dialog instead 2010-06-08 23:06:29 +00:00
David Sansome 40bb827fcd Make all the source files a single cmake target again. 2010-06-08 22:39:31 +00:00
David Sansome 5099503b45 Make the small toolbar buttons stay small even on gtk styles that use bigger buttons 2010-06-08 11:43:34 +00:00
David Sansome c834a5f31f Do the compilation processing in the database thread, and make everything lock on the database to ensure two threads don't access it at once. 2010-06-02 16:22:20 +00:00
David Sansome 03d876a599 Put the Database object in its own thread, and create the Library and Playlist backends in that database thread. The database calls don't happen in the database thread yet, but this is the first step towards making sure sqlite access is thread safe. 2010-06-02 15:58:07 +00:00
David Sansome 3365c7c217 Fix a few memory leaks 2010-05-28 19:51:51 +00:00
David Sansome 48830f2acc When doing a keyboard search in the library view, scroll so that the index is at the top of the viewport instead of at the bottom. Fixes issue #354 2010-05-28 12:52:22 +00:00
David Sansome e6a13c76f1 Be sure to signal about changes to the library model so that the proxy model's cache gets updated. 2010-05-25 22:18:27 +00:00
David Sansome 0021e5f7e4 Make library scanning on startup optional, and add a menu item to update the library. Fixes issue #341 2010-05-25 20:40:45 +00:00
David Sansome b116d4a306 First go at a UI for playlist search and multiple playlists. Nothing works yet. 2010-05-20 14:12:15 +00:00
David Sansome a95fb6d1e6 Do UpdateCompilations in the library scanner thread so as to not block
the GUI on startup.
2010-05-20 12:27:48 +00:00
David Sansome 3d8c11ff5a Fix tests 2010-05-19 17:00:09 +00:00
David Sansome 4d57ccb41c Use icons from the desktop theme where possible, fall back on oxygen. 2010-05-19 15:45:29 +00:00
David Sansome 55bc18a9c0 Fix the appearance of several dialogs when using a high font DPI. Fixes issue #310 2010-05-17 00:47:43 +00:00
David Sansome 84c8caea55 Automatically expand the nodes in the magnatune database when searching 2010-05-16 23:44:33 +00:00
David Sansome 4954a99867 Call fetchMore() when recursively expanding the library view, to fix a bug where empty items would appear when you searched the library. 2010-05-16 22:28:26 +00:00
David Sansome f7c08d375a Add a "load" menu item to the library, files view, and radio view to replace the current playlist with the selection. Also add an option to make this the default. Fixes issue #311 2010-05-15 17:45:04 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00