Arnaud Bienner
db5fbe2059
Update issue 1175:
...
Add an option in preferences to save all ratings/statistics into files, for all songs
2013-03-26 23:56:46 +01:00
Arnaud Bienner
b157c307e7
Add preference to save ratings and statistics in files
2013-02-24 18:36:37 +01:00
Arnaud Bienner
08d40f5fca
Handle statistics tags apart, and write them to file when they change.
...
Next step: add a preference to activate this (should be deactivated by default IMO).
2013-02-24 17:45:25 +01: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
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
Angus Gratton
f33d9b82d4
Prompt user if they are adding one part of a larger compilation to Various Artists. Fixes issue 2725
2012-02-19 13:55:30 +00:00
Angus Gratton
c5c581a4f1
Autodetect compilations based on effective_albumartist not artist (Fixes issue 509)
2011-11-28 11:04:38 +00:00
Angus Gratton
2cf6875c6d
Fix bug caused by adding Various Artists for albumartist, where nodes would sometimes not move under Various Artists due to album node never being empty (Issue 509)
2011-11-28 11:04:38 +00:00
David Sansome
e6b2e5bcae
Make the DeleteSongs function actually delete songs again, and make a new MarkUnavailable function that is called when songs are deleted from disk (and stop it from removing the song from the search index).
2011-07-06 20:07:56 +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
David Sansome
792352be3b
When songs disappear from the filesystem (either they're deleted or are on a removable media that was unmounted), mark them as unavailable instead of removing them from the database. Thanks google@robbertkrebbers.nl. Fixes issue 401
2011-05-14 13:43:57 +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
002ae13817
Use the canonical file path (resolve symlinks and '..') when adding directories to the library, and when adding files to the playlist. Fixes issue #1494
2011-03-13 14:43:03 +00:00
David Sansome
507c5e2632
Change the fields in Song from seconds to nanoseconds
2011-02-13 18:34:30 +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
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
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
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
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
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
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
John Maguire
214d77bc0e
Fix test and fix song loader infinite loop.
2010-08-31 21:24:57 +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
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
4a8bff5f4e
Cope with removable media changing mount point
2010-07-04 12:10:44 +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
7eb83634b7
Update the library view when album covers get set by the cover manager
2010-06-18 13:47:11 +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
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
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
1aee5e4667
Split all the source files up into seven new directories.
2010-05-10 21:50:31 +00:00