Commit Graph

133 Commits

Author SHA1 Message Date
Arnaud Bienner 88918d45c5 Update issue 1175:
Save rating and statistics in two distinct ways, and let users activate them separately in preferences.
2013-03-30 23:42:29 +01:00
Uwe Klotz a6d3b48231 Extend tag support: performer, grouping
The transaction handling while upgrading the database schema had to be revised.
Furthermore some QSqlQuery statements needed to be finished properly.

Fixes issue 2556
2013-03-10 18:16:03 +11:00
David Sansome 2302b80d52 Fix some style issues 2012-10-27 16:30:13 -07:00
Tony Motakis 09580b6df2 Various artists node now will appear in any GroupBy level
With this patch, compilations will be grouped under Various artists not
only when Artist is used as the top most Group By setting, but also in
lower levels as well. For example the user can set the top level Group By
to 'Genre' and still get compilations organized separately under each genre
when using Artist or AlbumArtist for the second nested Group By level.

Fixes issue 2757
2012-10-27 16:30:13 -07:00
Tony Motakis 25685e7cba Postpone CreateCompilationArtistNode() until PostQuery()
With the previous patch the Various artists node creation is oved to
RunQuery, which means that a later call to BeginReset() will delete it.
In this patch, we keep the logic deciding whether we need the node in
RunQuery(), but postpone the actual creation until PostQuery().
2012-10-27 16:30:10 -07:00
Tony Motakis 207225d620 HasCompilations() implementation local to the LibraryModel
Instead of relying on the backend to provide us with the information
of whether there are compilations in the whole of the library, we instead
look into the query we are currently working with for compilations. This
way we can be as granular as we want in the future.

This also means we now have to add the Various artists node at the time we
do the query with RunQuery() instead at BeginReset().
2012-10-27 16:30:08 -07:00
Tony Motakis 14eca258a2 Refactor duplicate code in LazyPopulate and ResetAsync
There is no reason why these need to reimplement the same thing;
put the common functionality in RunQuery() and PostQuery() and re use
the code. Less code paths to keep track of make it easier to implement
new features and fixes.
2012-10-27 16:30:05 -07:00
Ilya Kasnacheev 682acad53f Preserve the current song in the library view when filtering. Fixes issue 2936 2012-08-26 13:36:44 +01:00
David Sansome b427fc8a24 Merge branch 'globalsearch-tree'
Fixes issue 2238
Fixes issue 2241
Fixes issue 2368
Fixes issue 2375
Fixes issue 2843
Fixes issue 2872
Fixes issue 2938
2012-06-16 21:24:29 +01:00
David Sansome 21fbd40f9f Don't try to initialise the library model until after the grouping settings have been read from the config. Fixes issue 3005 2012-06-16 20:54:08 +01:00
David Sansome 41fab25569 Auto-expand tree items and lazy load album cover art 2012-06-10 17:15:32 +01:00
David Sansome 9c36cfa199 Replace the global search widget with a "Search" view on the sidebar. Organise results in a tree automatically. 2012-06-10 16:36:15 +01:00
David Sansome 27a4bd426e Cache album art in the library model between resets (to prevent flickering when filtering), and don't load art for the same album multiple times.
Fixes issue 2528
2012-06-02 14:52:30 +01:00
David Sansome bacef04405 Refactoring: remove a couple of the AlbumCoverLoader instances and instead use a shared CurrentArtLoader. 2012-02-26 14:40:51 +00: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
Alan Briolat 336750f15c Treat "albumartist" as artist, not album 2012-01-29 15:47:15 +00:00
Angus Gratton b158f6788d Add support for Various Artists in Album Artist library mode (Issue 509) 2011-11-28 11:04:38 +00:00
Angus Gratton edb9b0b4fe Add album effective_artist filter that falls back to artist when unavailable (Issue 509) 2011-11-28 11:04:38 +00:00
David Sansome e9253af931 Load cover art for the library in a background thread. Fixes issue 2243 2011-11-13 00:31:27 +00:00
David Sansome 6d45415b00 Consistently use "Various artists" with a lower case "a" 2011-10-30 16:53:39 +00:00
Arnaud Bienner f7859f591c Adding CD devices in devices tab. Fixes issue 701. 2011-08-05 02:15:16 +02:00
Arnaud Bienner 63300d79db Set tr function's codec to system encoding. Should (finally) resolve problems with already translated strings 2011-06-22 20:41:48 +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
John Maguire 02e4d30354 Fix compile error. 2011-06-14 16:13:48 +00:00
David Sansome ccd7afed17 Replace LibraryModel assertions with error logging 2011-06-14 15:33:51 +00:00
David Sansome 42fe215443 Don't treat the smart playlist node in the library like a regular container when applying filters - fixes an assertion when clicking the smart playlist node with None/None/None grouping. Fixes issue 1913 2011-06-14 15:27:07 +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
Andrea Decorte c6c4902d3f Added two new options for date queries in smart playlists. Fixes issue
1141
2011-04-24 17:52:16 +00:00
Arnaud Bienner 41a4393b24 Translate dynamic playlist names at runtime. 2011-04-19 21:39:02 +00:00
Paweł Bara 032b5f7e48 initial commit of "multiple covers providers" feature:
- simple API for cover providers (both C++ and SIP)
- a new "package" for cover related code
2011-04-02 13:34:06 +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 0594fc53af Enable the "Edit track information..." item in the library context menu when right-clicking an un-expanded node 2011-03-17 19:52:15 +00:00
Andrea Decorte cfe6b9e652 Added option to hide dividers in library view. Fixes issue #1125 2011-03-05 15:20:27 +00:00
David Sansome 2b08d27a88 Show loading indicators in the library model and the status bar when asynchronously loading songs during initialisation. 2011-02-26 14:27:57 +00:00
David Sansome 62b6d052de Fix the library model test 2011-02-26 13:34:31 +00:00
Arnaud Bienner 609f882e27 Making library init async. Prevent from freezing GUI with large collection (especially Jamendo) when loading from DB for the first time since startup 2011-02-24 23:29:45 +00:00
Paweł Bara 5c8c5c5413 making availability of library view's context menu items saner (?). also makes the CUEs readonly from library view 2011-02-21 20:06:44 +00:00
Paweł Bara 7de912d3a1 moving the responsibility for naming playlists into mimeData() methods (into models)
this means that pretty names for new playlists now also work when double clicking (in certain mode) or dragging and dropping
fixes issue #1477
2011-02-16 18:29:35 +00:00
Arnaud Bienner b8bf93fc23 Being consistent: use already defined name_for_new_playlist_ field and GetNameForNewPlaylist function, to have the same behavior through the 'Open in a new playlist' action than with drag and drop 2011-02-16 01:04:48 +00:00
Arnaud Bienner 4d58e75e0a Using library item's name instead of generic text 'Playlist' when creating new playlist by DnD from the library, or when using 'Open in new playlist' 2011-02-14 23:06:36 +00:00
Paweł Bara d109b70898 David's comments 2011-02-14 17:29:56 +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 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 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 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 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 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
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 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 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 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 ce1e7f73df Fix the artist and album library icons in Qt 4.7 2010-09-18 13:35:52 +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 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 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
John Maguire e67f9a66c8 Load playlist in separate threads on startup. 2010-08-03 18:57:17 +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 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 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 492d8fec87 Use sqlite's Full Text Search on the songs table 2010-06-20 16:30:10 +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 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 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 4d57ccb41c Use icons from the desktop theme where possible, fall back on oxygen. 2010-05-19 15:45:29 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00