Commit Graph

287 Commits

Author SHA1 Message Date
Paweł Bara fdda938c53 now that we have more cover providers, we're bringing the cover manager and the cover searcher goodness to our last.fm-less users 2011-04-27 19:10:37 +00:00
David Sansome d28e5ae09a Add a test for shared pointers in python 2011-04-22 18:53:33 +00:00
Paweł Bara 880579ee24 fixing test 2011-04-21 22:12:57 +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 e69502dfd3 Use system gtest and gmock if available. Fixes issue 1653 2011-03-29 19:05:13 +00:00
David Sansome 32e03ad8a3 Fix the mpris1 when last.fm is disabled. Thanks Nikoli 2011-03-25 19:59:09 +00:00
John Maguire 4fda021d16 Fix compile error in test when lastfm disabled.
Fixes issue #1617
2011-03-25 15:48:54 +00:00
David Sansome b3db5d699e Remove CanDecode from GstEngine - it was only used by a test, and the test was disabled on buildbot because it was unreliable. 2011-03-20 19:36:50 +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 41f659ff4b fixing tests 2011-03-19 10:43:50 +00:00
John Maguire 0a54c5135b Ignore empty lines in m3u files.
Fixes issue #1403
2011-03-17 16:05:08 +00:00
David Sansome 7086d7bf03 Fix tests when build some options are disabled 2011-03-13 20:01:24 +00:00
David Sansome b271c714b8 Fix this test on Windows 2011-03-13 19:22:41 +00:00
David Sansome 3ba97ead0b Fix a couple of tests 2011-03-13 18:50:32 +00:00
Paweł Bara 47f5de6176 fixing tests 2011-03-10 22:05:56 +00:00
David Sansome 4c2a2bb0fe Don't build the python test if python is disabled 2011-03-04 22:27:59 +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
Paweł Bara 7f3f4f4107 more accurate parsing of indices in CUEs (we now respect the FRAMES part)
+ incorporating arnaud's code comment in fileviewlist
2011-02-15 22:26:56 +00:00
David Sansome aeb2ab9625 Only run the MPRIS1 test on Linux 2011-02-14 19:34:54 +00:00
David Sansome 8c691d2b3e Use constants instead of "1eN" literals for converting between time units. 2011-02-14 19:34:37 +00:00
David Sansome f801252e3d Refactor Player and PlaylistManagers to have interfaces and add more MPRIS1 tests 2011-02-13 18:37:45 +00:00
David Sansome 12da941885 Add a really basic unit test for MPRIS1 2011-02-13 18:37:21 +00:00
David Sansome 3a1853a681 Use nanoseconds in playlist parsers, and fix the tests 2011-02-13 18:35:26 +00:00
John Maguire df0f3e1589 Fix building tests on mac. 2011-02-04 15:00:27 +00:00
John Maguire 01915cc351 Remove taglib prefix from #includes in tests. 2011-02-04 13:29:49 +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
David Sansome bcc35ec29c Add a test for stuff in the module's global dict 2011-01-28 21:43:10 +00:00
David Sansome 9ca237bfa2 Add a unit test for some basic python scripting functionality 2011-01-28 20:52:38 +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
David Sansome 1344103515 Add a workaround for broken XML entities in ASX playlists 2011-01-15 13:58:35 +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
Paweł Bara d4d7f19fab better .cue spec conformity (allow many files in one sheet, use the SONGWRITER field as song's composer, ignore data files) 2011-01-05 20:23:53 +00:00
Paweł Bara 59378166b4 finalized the support for loading .cue based media using 'files' tab or drag and drop from the system's file browser
use FILE's PERFORMER as albumartist
2011-01-03 23:36:10 +00:00
David Sansome 37c0876686 Fix the m3u parser test 2010-12-25 15:46:20 +00:00
Paweł Bara d7fe4600b8 an initial version of .cue sheets parser
initial support for multipart media files in Song ('beginning' and 'end' fields)
2010-12-23 21:13:43 +00:00
Paweł Bara 712782d40c corrections to tests after yesterday's current_index -> current_row renaming 2010-12-17 16:41:19 +00:00
David Sansome a739ff2714 Fix playlist parser tests 2010-12-11 11:07:00 +00:00
David Sansome 6f889947c8 Fix the playlist test 2010-11-20 20:10:51 +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 eb9660edad Parse FMPS ratings and played counts from mp3 id3v2 tags 2010-10-17 16:03:49 +00:00
David Sansome 47004d0ac3 Fix album cover manager test 2010-10-16 18:21:28 +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 0c281bb837 Add cmake options for more libraries.
Fixes issue #738
Thanks to Nickollai for the patch.
2010-09-22 13:05:51 +00:00
John Maguire 214d77bc0e Fix test and fix song loader infinite loop. 2010-08-31 21:24:57 +00:00
David Sansome dedb9621e8 Fix the songloader test by making it wait for the gstreamer engine to finish initialisation 2010-08-28 19:22:58 +00:00
John Maguire 36264e0b2b Separate out UniversalEncodingHandler. 2010-08-03 19:29:49 +00:00
John Maguire 9d253fdf37 Fix playlist loading tests. 2010-08-03 16:00:51 +00:00
John Maguire 8a82a12865 Disable disabling tests on compilers that don't support it (old GCCs). 2010-07-27 15:18:25 +00:00
John Maguire e9f4bba1c1 Silence a few extra Clang warnings. 2010-07-27 13:57:31 +00:00
John Maguire 124ceb2db9 Fix compiling with Clang. 2010-07-27 13:21:28 +00:00
David Sansome 692e5715e3 Replace slashes with underscores when organising files. Fixes issue #503 2010-07-24 13:56:49 +00:00
John Maguire 579c7cc592 Fix some Latin1 encoding guessing. 2010-07-15 12:46:08 +00:00
David Sansome 384ff16f2b Add a parser for a weird playlist format that looks like a cross between ASX and PLS. I don't know what it's called... 2010-07-10 18:39:41 +00:00
David Sansome f0b984cbe9 Prepend a 0 to single-digit track numbers in the organiser. Fixes issue #438 2010-06-25 15:15:02 +00:00
David Sansome 093f198556 Use this handy cmake variable 2010-06-25 12:34:04 +00:00
David Sansome 0848f62c3d Move OrganiseFormat to core/ and add an Organise class that actually does the work. 2010-06-24 18:33:38 +00:00
David Sansome 3de7311c36 Add tests for the various format flags 2010-06-24 16:44:12 +00:00
David Sansome b2dcaf5cd4 Add a dialog for organising files in a library. Doesn't work yet 2010-06-24 16:26:49 +00:00
David Sansome f0d043d19f Build test libraries as static libs 2010-06-23 15:16:54 +00:00
David Sansome 6f9341bff8 Fix test 2010-06-23 15:16:44 +00:00
David Sansome ed422c3743 Set a longer remote timeout on unit tests so they don't fail when they run on buildbit with high load. 2010-06-23 11:51:13 +00:00
David Sansome 0e278adb70 Disable this test for now until it can be made more reliable 2010-06-22 14:55:10 +00:00
John Maguire b91a61c260 Tidy unicode length detection & add Cyrillic FTS test. 2010-06-21 12:07:56 +00:00
John Maguire 2f1a2fa9c7 More FTS tests. 2010-06-20 20:58:32 +00:00
John Maguire abf79ca447 Tests and refactoring for FTS. 2010-06-20 20:51:57 +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 80837ce652 Oops - it helps if we actually remember to set the URL of the song we just loaded. Fixes issue #426 2010-06-20 12:50:08 +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 b7a8e43a53 Not just OCD - Qt creator uses this order too 2010-06-18 14:26:14 +00:00
John Maguire 82b728528e Better unicode search.
Fixes issue #419
2010-06-18 12:54:11 +00:00
David Sansome 91057acd78 Fix some test values 2010-06-17 16:54:23 +00:00
David Sansome d423d008d4 Fix this stupid test, *again* 2010-06-16 22:32:02 +00:00
David Sansome 747d466bcc Fix this test on Windows properly maybe 2010-06-16 13:13:34 +00:00
David Sansome 43309a13d0 Fix for lame OSs that don't have mkdtemp 2010-06-15 18:34:01 +00:00
David Sansome 02d01b1314 PLS playlists aren't really INI files - they don't follow the same rules with escaping characters, so parse them the old fashioned way. 2010-06-15 17:34:00 +00:00
David Sansome 8c7539f02e ASF files aren't really XML - try to correct the mismatching case 2010-06-15 17:00:48 +00:00
David Sansome 25ff2bca59 Always treat text/uri-list as M3U 2010-06-15 14:52:42 +00:00
David Sansome 032374c74b Oops, misleading comment 2010-06-15 14:25:18 +00:00
David Sansome de630e0a9f Run LoadLocalDirectory in another thread so it doesn't block 2010-06-15 14:24:17 +00:00
David Sansome 2c3e9276aa Fix some of the comments on r1148 2010-06-15 13:56:41 +00:00
David Sansome 08a01d6997 The start of some code to automagically determine whether a URL is a playlist or a song, and load the songs in the playlist if it's a playlist. Still to do: timeout, forcing M3U for text/uri-list. 2010-06-15 13:24:17 +00:00
David Sansome b3fd856e4a Add an m4a to fileformats_test 2010-06-10 12:38:26 +00:00
David Sansome f33604580c Stop ASCII from voting, and add a failing test 2010-06-03 15:16:15 +00:00
John Maguire 2ad15ffec6 Code review comments for r1023 2010-06-03 13:26:46 +00:00
John Maguire b9df2a09d4 Add voting for codecs, eg. if 3/4 tags in a file are windows-1251 then they will all be decoded with windows-1251. 2010-06-03 12:36:43 +00:00
David Sansome 6dd32da591 Make the M3U parser use the local 8-bit encoding instead of latin1. Yes I know the spec says m3us are always latin1 - you didn't expect anyone else to actually follow that did you? Fixes issue #364. 2010-06-02 20:06:47 +00:00
David Sansome 531fa90cbd Fix test compilation 2010-06-02 16:58:34 +00:00
David Sansome 21c990e3c7 Test for UTF8 in a Latin1 field 2010-06-02 13:11:51 +00:00
John Maguire f4385d4545 Detect cp866 & windows-1251 in "latin1" tags. 2010-06-02 12:31:40 +00:00
John Maguire 4836b8d420 Fix XML parsers to output file URLs. 2010-05-27 22:43:07 +00:00
John Maguire e8dab5c065 ASX support.
Fixes issue #325
2010-05-27 20:55:34 +00:00
David Sansome c59a819068 Fix a warning 2010-05-25 22:19:30 +00:00
John Maguire 07b2c38690 Save support for M3U. 2010-05-23 17:00:45 +00:00
John Maguire 1b76ead951 Implement playlist saving for XSPF. 2010-05-23 16:26:32 +00:00
John Maguire a59f5a3887 *Fix m3u parsing
*Add regression test
*Fix clang warnings
2010-05-23 15:35:28 +00:00
David Sansome 06c6bebe15 Support for saving .pls files 2010-05-22 21:27:51 +00:00
David Sansome 211ae65e3d .pls parser. Fixes issue #302 2010-05-22 21:11:22 +00:00
David Sansome c9c44ca592 Move the playlist parsers to another directory, and add a PlaylistParser class that magically uses the right parser. 2010-05-22 20:06:19 +00:00
David Sansome 1572124962 Seperate last played values for each playlist 2010-05-20 22:30:55 +00:00
David Sansome 3d8c11ff5a Fix tests 2010-05-19 17:00:09 +00:00
David Sansome b9438a3a90 Fix tests 2010-05-18 20:56:28 +00:00
John Maguire 6794b67a2f Fix LibraryModel tests. 2010-05-11 19:03:29 +00:00
John Maguire 5dd0a9c35f Autodetect weird encodings in ID3v1 tags.
Fixes issue #254
2010-05-11 12:03:55 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00
David Sansome 481dbae992 Save magnatune playlist items properly, also fix tests from before 2010-05-10 14:19:43 +00:00
David Sansome 88ab9a8299 Add a table for the Magnatune library, and add the Magnatune database to it when the Magnatune node is expanded. Sort the Magnatune library model properly, and don't crash when adding or removing items. 2010-05-09 16:53:35 +00:00
David Sansome 6b8d6c93f9 Add a MergedProxyModel that lets us merge two models into one... 2010-05-09 15:51:04 +00:00
David Sansome 1b00aaa8b3 Big refactoring of the Library <-> LibraryBackend <-> SQLite interaction.
The LibraryBackend has now been split into a Database class that deals with setting up sqlite, and PlaylistBackend that contains the functions for persisting the playlist.  The LibraryBackend now only contains functions for accessing "a collection of songs", and can be parameterised with table names to access different collections.  It also no longer lives in a background thread, and follows the Qt memory management model instead of using shared_ptr.
Most of Library has been moved into LibraryModel - a QAbstractItemModel for any LibraryBackend.  What's left of Library is now specific to the user's local library on disk.
2010-05-09 00:10:26 +00:00
David Sansome 0c9e69ed30 Group "remove" undo commands in the playlist. Fixes issue #262 2010-04-29 23:58:31 +00:00
David Sansome 48bd5020cd Don't crash when editing a song that doesn't exist any more, also don't even add deleted songs to the playlist. Fixes issue #253. 2010-04-27 17:37:26 +00:00
David Sansome 36af3ddbe4 After shuffling the playlist, make sure next works as expected. Fixes issue #248 2010-04-26 11:36:10 +00:00
David Sansome 5fed8efc44 Test WMA files too 2010-04-21 18:21:27 +00:00
David Sansome 7263983e0c More debug output in CanDecode, and set the gst path in GstEngine rather than main() 2010-04-21 17:11:50 +00:00
David Sansome 4eedddd57c Make the gst engine emit Error() instead of showing its own dialog when a plugin couldn't be found. 2010-04-21 11:14:12 +00:00
David Sansome 0656330548 Test we can load various popular file formats 2010-04-20 22:00:02 +00:00
David Sansome 58ae505377 If you remove the currently playing song, then undo it, keep the "currently playing" status on the newly re-added song. Updates issue #152. 2010-04-20 19:08:12 +00:00
David Sansome 57c9a0d00a Tests for playlist undo/redo 2010-04-20 18:41:12 +00:00
David Sansome 2a33954725 Codereview comments from r701 2010-04-14 22:36:28 +00:00
David Sansome ed152be391 Scoped transaction test 2010-04-14 22:32:07 +00:00
David Sansome c29742a739 Fix the playlist test to use shared_ptrs 2010-04-14 22:11:59 +00:00
David Sansome d1966aa7f6 Check these additional tables exist 2010-04-14 21:09:28 +00:00
David Sansome af07b5becd Store the playlist in the database. This is still quite slow. 2010-04-14 21:03:00 +00:00
David Sansome 04f467b2fe Add missing file - buildbot is useful! 2010-04-14 16:25:04 +00:00
David Sansome 76ef868c0a Don't pass non-const references 2010-04-14 16:12:33 +00:00
David Sansome 65440dd374 Codereview comments from r685 2010-04-14 16:00:45 +00:00
David Sansome 3172f6b950 Basic playlist manipulation tests 2010-04-14 15:57:58 +00:00
David Sansome 747ae61620 More playlist tests 2010-04-14 15:39:24 +00:00
David Sansome 921eb94a21 Abstract the QSettings usage out of Playlist and PlaylistSequence, create a mock for it, and add a basic playlist test 2010-04-14 14:48:10 +00:00
John Maguire f429b53212 Use static version of qsqlite plugin on mac as well & disable qxt for mac.
The plugin shipped with Qt has the sqlite symbols set to hidden. It seems dlsym() actually cares about that on Snow Leopard whereas it doesn't in Leopard.
If it can't find the sqlite functions in the given library, then it will go fishing and find /usr/lib/libsqlite3.dylib and that's bad :-(
2010-04-13 19:43:08 +00:00
David Sansome 7238bd7014 Fix tests 2010-04-11 21:45:01 +00:00
David Sansome a4e14afdbb Load translations from an empty context too. 2010-04-08 14:29:08 +00:00
David Sansome 9f3fc3d8ab Add the library test back in 2010-04-04 16:28:34 +00:00
David Sansome fd2da463b1 Update library backend tests 2010-04-04 13:17:07 +00:00
David Sansome 48270bfeec Fix tests 2010-04-01 17:03:42 +00:00
David Sansome 29ba8d5bd3 Fix tests on windows 2010-03-31 19:33:12 +00:00
David Sansome b8be261700 Some little fixes for compilation on Windows 2010-03-31 02:55:05 +00:00
David Sansome 4c42813d9f Add "group by" support to the library, and improve the whole library model to make it more robust.
Still todo: the "Group by advanced..." dialog, unit tests.
Updates issue #94.
2010-03-31 00:30:57 +00:00
John Maguire df38ebf9d9 A few little mac fixes. 2010-03-30 15:53:45 +00:00
David Sansome 1081c948ae Add missing copyright headers 2010-03-29 19:25:08 +00:00
David Sansome ea1df6dbff Fix the translation resource file generation - thanks Henry Sylvain. Also add a test to make sure they're always found. 2010-03-29 19:12:06 +00:00
John Maguire 5e482b99ec Namespace test only targets. 2010-03-29 13:52:29 +00:00
John Maguire 813fa70db1 Only build test main twice rather than once per test. 2010-03-29 13:47:46 +00:00
David Sansome 0e4fb1b789 Fix loading songs with a # (or other URL special characters) in the name. Fixes issue #117 2010-03-27 15:53:02 +00:00
John Maguire 2afd94ce47 Switch cover manager filter from OR to AND. 2010-03-26 15:04:38 +00:00
John Maguire 1cad21a3e0 Only enable gui in tests that need it. 2010-03-26 12:50:27 +00:00
John Maguire 2b812a76fd Split search query in cover manager.
Add unit tests.
Fixes issue #119
2010-03-26 12:22:19 +00:00
John Maguire 2e71390acd Switch from OR to AND in split queries.
Fixes issue #116
2010-03-25 15:59:58 +00:00
John Maguire 95252ccc71 Support query splitting in library search.
Improve performance of LIKE().
Fixes issue #104
2010-03-25 13:58:24 +00:00
David Sansome ceb225c236 More tests for edge cases when removing songs from the library 2010-03-24 19:53:00 +00:00