Commit Graph

676 Commits

Author SHA1 Message Date
David Sansome 3f5e188045 Initial support for MTP devices 2010-08-14 15:57:05 +00:00
David Sansome 39132c4dcd In the organise dialog, prompt before connecting a device that hasn't been connected before 2010-08-14 12:30:51 +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 1dbb1817e8 Codereview comments from r1685 2010-08-12 16:35:43 +00:00
David Sansome b27238a480 Test whether we can still talk to afc before freeing the lockdownd client (fixes usbmuxd errors once and for all), report afc copy errors, keep track of files that failed to copy to a device, don't attempt to write the itunesdb if there were errors during copying. 2010-08-10 19:42:43 +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
John Maguire b1a96fd54d Fix encoding of tags we get from gstreamer. 2010-08-09 13:12:54 +00:00
David Sansome 58506b0469 strdup to the rescue! 2010-08-08 17:45:57 +00:00
David Sansome a228e2b806 Copy files to afc devices. Doesn't quite work yet 2010-08-08 17:41:06 +00:00
David Sansome 49da0eee27 Put a mutex around all the taglib stuff 2010-08-08 12:35:23 +00:00
David Sansome aadd38708f Fix an overflow when calculating free space and capacity. Thanks YellowOnion. Fixes issue #584 2010-08-07 10:00:20 +00:00
John Maguire 67eb9770c4 Code review comments for r1631 2010-08-04 12:37:46 +00:00
John Maguire 35e87b2a77 Start gstreamer playing from a separate thread. 2010-08-04 12:13:43 +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
John Maguire f5449b9f8d Move playlist loading off the GUI thread. 2010-08-03 14:59:18 +00:00
John Maguire 812a91214e Add a warning if Song::InitFrom{Query,File}() is called from the GUI thread. 2010-08-03 13:37:47 +00:00
David Sansome 6604e97493 Make it possible to change the language with --language, or an option in the settings dialog. Fixes issue #583 2010-08-02 19:02:21 +00:00
John Maguire 8166a50b2a Use persistent model index. 2010-08-02 14:07:34 +00:00
John Maguire 992e0fb95e Add support for saving songs in a separate thread.
Updates issue #542
2010-08-02 14:00:43 +00:00
David Sansome 7a6499abde Copy the iTunes database off a libimobiledevice device and load it from the local file 2010-08-01 14:13:27 +00:00
David Sansome 5517e2a503 Oops, don't need this hack any more 2010-08-01 11:05:14 +00:00
David Sansome 02783b1d5d Unmount devices from the main thread instead of the organiser thread - fixes a crash when unmounting after copying 2010-08-01 11:01:07 +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 a236861dfa Option to group the library by file type 2010-07-31 14:14:03 +00:00
David Sansome e54f0a18d9 Add an implementation of FileSystemCapacity and FileSystemFreeSpace for windows 2010-07-29 22:58:23 +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
John Maguire 124ceb2db9 Fix compiling with Clang. 2010-07-27 13:21:28 +00:00
John Maguire fe26c8bb8f Fix crash when expanding last.fm tree.
Fixes issue #463
2010-07-26 17:32:16 +00:00
John Maguire 7235194016 Hack font size down to 11pt on Mac.
Fixes issue #546
2010-07-26 12:55:33 +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 1d5cef0f0d Set the organise progress to 100% when all files have been copied, but before the device is finalised 2010-07-24 17:40:19 +00:00
David Sansome b624be9800 Add almost-working support for writing to ipods 2010-07-24 16:58:14 +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
John Maguire 3f78df5725 Fix the parsing of Finder command line options.
Fixes issue #537
2010-07-24 14:57:56 +00:00
David Sansome f3491add62 Load albumartist from flac and ogg metadata. Thanks YellowOnion 2010-07-24 14:49:49 +00:00
David Sansome 77b4ec54bd Look at the file extension as well as magic when loading a local playlist. Fixes issue #507 2010-07-24 14:09:27 +00:00
David Sansome 692e5715e3 Replace slashes with underscores when organising files. Fixes issue #503 2010-07-24 13:56:49 +00:00
David Sansome 60eb5a34f8 Add global shortcuts for show/hide and show osd.
Update issue #533
Status: Fixed
Thanks for the patch :)
2010-07-24 12:39:09 +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 d108841e36 Fix a build failure with mingw 2010-07-19 19:33:13 +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 2f11ee5d2b Load embedded album art from id3v2 tags 2010-07-19 11:40:30 +00:00
John Maguire 95bb4eccea Unpack artist/title from SomaFM streams correctly.
Fixes issue #497
2010-07-15 12:59:14 +00:00
John Maguire 579c7cc592 Fix some Latin1 encoding guessing. 2010-07-15 12:46:08 +00:00
John Maguire 41ab99e62e Generate Hypnotoad rather than streaming it. 2010-07-14 11:16:56 +00:00
David Sansome d612e8468d Make the mute shortcut toggle 2010-07-13 22:22:04 +00:00
John Maguire d03bdda5f7 Fixes issu...
,'``.._   ,'``.
              :,--._:)\,:,._,.:       All Glory to
              :`--,''   :`...';\      the HYPNO TOAD!
               `,'       `---'  `.
               /                 :
              /                   \
            ,'                     :\.___,-.
           `...,---'``````-..._    |:       \
             (                 )   ;:    )   \  _,-.
              `.              (   //          `'    \
               :               `.//  )      )     , ;
             ,-|`.            _,'/       )    ) ,' ,'
            (  :`.`-..____..=:.-':     .     _,' ,'
             `,'\ ``--....-)='    `._,  \  ,') _ '``._
          _.-/ _ `.       (_)      /     )' ; / \ \`-.'
         `--(   `-:`.     `' ___..'  _,-'   |/   `.)
             `-. `.`.``-----``--,  .'
               |/`.\`'        ,','); SSt
                   `         (/  (/
2010-07-12 19:51:23 +00:00
David Sansome 91f801639a Unpack "Artist - Title" from icycast metadata. Fixes issue #425 2010-07-10 19:51:34 +00:00
David Sansome d8cc037446 Don't grab global shortcuts while the global shortcut grabber is open. Fixes issue #462 2010-07-10 19:17:21 +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 e9525e8ec3 Very basic support for reading iPods with libgpod. Uses a hardcoded ~/.gvfs path for now. 2010-07-04 20:52:45 +00:00
David Sansome 2b58a1e19a Pass dataChanged through MergedProxyModel 2010-07-04 11:43:17 +00:00
David Sansome 8c26c61b0b Sort the device libraries properly 2010-07-04 00:58:01 +00:00
David Sansome 71a1cf3c41 Disconnecting devices works 2010-07-04 00:33:34 +00:00
David Sansome db5409b66b Store devices in the main database 2010-07-03 23:00:07 +00:00
David Sansome 6654182032 Don't connect new devices automatically, put them in a list model. Add icons for ipods, android phones and USB memory sticks. 2010-07-03 21:05:55 +00:00
John Maguire b4fa694847 Fix crash in file organiser. 2010-07-01 19:10:48 +00:00
David Sansome a1fbd65f68 Test whether sqlite3 has the FTS3 at compile time, and use the static sqlite3 module if not 2010-06-30 19:55:46 +00:00
John Maguire 88be9986f1 Catch Enter key events & ignore events we don't understand.
Fixes issue #443
2010-06-29 18:44:36 +00:00
David Sansome 8d3ca44d14 moc doesn't know about config.h, so these slots need to always be declared. 2010-06-26 15:09:32 +00:00
David Sansome 0404ecec70 Fix compilation without gstreamer. Fixes issue #440 2010-06-26 13:20:08 +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 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 cc6413ab0e Add tracing to every timer event, might help track down CPU usage... 2010-06-25 08:46:03 +00:00
David Sansome 69924cd76a Add copy and move menu items to the playlist 2010-06-24 23:36:39 +00:00
David Sansome e1e8866424 Make pausing and resuming library scans come from the task manager, not the organiser. 2010-06-24 22:59:29 +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 f9e3d405cd Consts and grammar 2010-06-24 18:59:09 +00:00
David Sansome 5f9c1bb2aa Oops, don't need this any more 2010-06-24 18:37:13 +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 44d58482f0 Make the LibraryWatcher report on its progresss. Fixes issue #436 2010-06-23 14:00:18 +00:00
David Sansome eb830051c8 Show a percentage next to the loading indicator 2010-06-23 13:47:27 +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 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 9106abb1a0 Handle redirect messages from mmssrc properly. Fixes issue #385. 2010-06-23 11:47:54 +00:00
David Sansome c96e622897 Merge merge merge 2010-06-22 20:57:05 +00:00
John Maguire 15b8b90556 Implement native dock menu on Mac.
Fixes issue #349
2010-06-22 14:09:13 +00:00
David Sansome c357b2d548 Use the same last.fm API for automatic and manual fetching 2010-06-22 13:54:07 +00:00
David Sansome ad4229160e Pedantry 2010-06-21 12:42:22 +00:00
David Sansome 1339ee860d Don't need these symbols any more 2010-06-21 12:41:38 +00:00
David Sansome ea52bbf3e2 Register the FTS3 tokenizer with a QSqlQuery, so it works even if we couldn't resolve the sqlite symbols. 2010-06-21 12:38:24 +00:00
John Maguire b91a61c260 Tidy unicode length detection & add Cyrillic FTS test. 2010-06-21 12:07:56 +00:00
John Maguire f544e28051 Fix FTS on Mac & Win. 2010-06-21 09:32:57 +00:00
John Maguire 614e031c20 Hopefully fix static sqlite, ie. Mac & Win. 2010-06-20 21:05:18 +00:00
John Maguire 379681157a OCD 2010-06-20 20:59:54 +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
John Maguire f989976d30 Some tests for the new FTS stuff. 2010-06-20 20:44:54 +00:00
John Maguire 59984c49ad Tidy up a bit. 2010-06-20 20:07:32 +00:00
John Maguire de4b889986 >.> 2010-06-20 20:05:01 +00:00
John Maguire 9f7803d964 The atrocity that is unicode-aware FTS.
Yes, this code is horrible. Maybe I'll fix it.
2010-06-20 19:46:51 +00:00
David Sansome c701c49004 Don't try to register empty global shortcuts (avoids loads of warnings being printed to stderr) 2010-06-20 18:43:20 +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 e0d7b7021b Change the rain URL to one on clementine-player.org so we can redirect if the actual URL changes 2010-06-18 13:35:17 +00:00
John Maguire 82b728528e Better unicode search.
Fixes issue #419
2010-06-18 12:54:11 +00:00
David Sansome f82ff23d9b Don't miss out the first filename on the commandline 2010-06-18 12:19:19 +00:00
John Maguire 256b507cae Leopard compile fixes 2010-06-18 11:41:16 +00:00
David Sansome 28505857fc Fix commandline option parsing 2010-06-18 00:31:54 +00:00
David Sansome 398bd54203 Don't put NULL in these not nullable columns - fixes a crash when downloading the Magnatune db 2010-06-18 00:11:15 +00:00
John Maguire 67bc9351bd Only show mac universal access dialog if user clicks on button in global shortcuts dialog. 2010-06-17 23:11:51 +00:00
John Maguire 9f2db477f8 Remove useless function. 2010-06-17 23:00:07 +00:00
John Maguire 077dfd46b0 Support more shortcut keys on mac. 2010-06-17 22:55:34 +00:00
David Sansome 3fd807df31 Add an (unimplemented) label and button to the global shortcut dialog for mac 2010-06-17 22:15:07 +00:00
John Maguire a562190bbe Code review comments for r1198
Put back media keys for non-mac.

In this year:
The town of Riga is chartered as a city by Bishop Albert, who landed on the site of the town with 1,500 crusaders earlier that year.
2010-06-17 21:54:42 +00:00
John Maguire 25be0a1465 *Catch global shortcuts when clementine is focused.
*Automatically ask the user to enable assistive devices.
2010-06-17 21:33:16 +00:00
John Maguire f9e29fccf4 Global keyboard shortcuts for Cocoa.
Requires "Enable access for assistive devices" set in Universal Access control panel.
2010-06-17 20:31:34 +00:00
David Sansome 89ac81be10 Treat 0 the same as -1 and NULL for numeric columns such as "disc".
Update issue #411
Status: Fixed
Ah ha!  I knew it was the disc tag - one of them had a value of 0 set, and the other had no value at all which was taken by clementine to mean "-1", which was lower than 0 so screwed up the sorting.  Try now and it should be fixed (you'll have to get Clementine to rescan that directory - probably remove it from the library settings and add it again).
2010-06-17 15:52:06 +00:00
David Sansome 057a896967 Fix a few minor warnings 2010-06-17 14:05:21 +00:00
David Sansome c15afd8083 Fix a warning message 2010-06-16 22:12:08 +00:00
John Maguire 5307ca3db0 Return the correct type from GstBusFunc()s 2010-06-15 22:32:20 +00:00
John Maguire a8f7df9e28 Remove incorrect gst_message_unref. It should only be called from *sync* handlers that are returning GST_BUS_DROP. 2010-06-15 22:30:06 +00:00
John Maguire abdc2eee2e Put LoadUrl for mac back. 2010-06-15 21:56:33 +00:00
David Sansome 0f8ada10d3 Typo 2010-06-15 18:34:15 +00:00
David Sansome f162d9d620 Add a SongLoaderInserter that loads a list of URLs and inserts them into a playlist when it's done. Wire up everything in the GUI that loads URLs or filenames to use the new SongLoader. 2010-06-15 18:24:08 +00:00
David Sansome 25ff2bca59 Always treat text/uri-list as M3U 2010-06-15 14:52:42 +00:00
David Sansome 987a918d90 Timeout when fetching remote things 2010-06-15 14:44:28 +00:00
David Sansome 7afa3372f5 Fix the qWarning warning 2010-06-15 14:42:32 +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 a27b6d3561 Herp derp 2010-06-15 13:28:08 +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
John Maguire 73a381fe89 Rain! 2010-06-14 20:00:17 +00:00
John Maguire 5a97697702 Add support for opening files via Finder in OS X.
Update issue #405
Status: Started
Opening from Finder works but Clementine still isn't a "recommended" application.
2010-06-14 13:22:45 +00:00
David Sansome a8d79582c1 Add a status bar indicator to tell the user how many tracks are loaded. Fixes issue #155 2010-06-12 21:20:53 +00:00
David Sansome 083eb716a7 Crossfade magnatune streams properly 2010-06-12 20:22:58 +00:00
David Sansome 36abad486b Add a dialog for manual searching of Last.fm album covers. Fixes issue #402 2010-06-12 17:13:01 +00:00
David Sansome f69a82bc6e Force a re-download of the magnatune database so svn users will get the sku-codes required for downloading 2010-06-09 14:04:56 +00:00
David Sansome 40bb827fcd Make all the source files a single cmake target again. 2010-06-08 22:39:31 +00:00
John Maguire 2830ee1a62 Fix MPRIS pause behaviour.
Update issue 374
Pause/unpause should be fixed now.
2010-06-08 16:00:09 +00:00
David Sansome 7a449a545c Fix a compilation error when enabling other engines 2010-06-08 13:24:48 +00:00
John Maguire d34283a113 ProjectM on mac deployment fixes. 2010-06-07 11:38:43 +00:00
John Maguire a4386de578 Add some useful mac functions. 2010-06-07 09:49:20 +00:00
John Maguire 2e9dc6c570 Never override UTF-8 strings from TagLib. 2010-06-03 15:22:30 +00:00
David Sansome f33604580c Stop ASCII from voting, and add a failing test 2010-06-03 15:16:15 +00:00
David Sansome 3652ff30e0 Don't assert if one of the operands to our LIKE function is NULL 2010-06-03 14:56:49 +00:00
John Maguire 8a13f3e481 Qt is nice :-) 2010-06-03 14:11:53 +00:00
John Maguire 2ad15ffec6 Code review comments for r1023 2010-06-03 13:26:46 +00:00
John Maguire 407bc7a41e Fix segfault. 2010-06-03 13:02:24 +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 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 c7d351f68a Make it possible to wait for a background thread to start 2010-06-02 14:22:40 +00:00
David Sansome e891543f42 Fix the encoding of composers and albumartists as well 2010-06-02 13:22:54 +00:00
John Maguire f4385d4545 Detect cp866 & windows-1251 in "latin1" tags. 2010-06-02 12:31:40 +00:00
David Sansome 3dad151608 Undo part of r1004, thanks John 2010-05-31 21:24:54 +00:00
David Sansome d760721f61 Make this all a bit more sane 2010-05-31 20:59:13 +00:00
David Sansome 99cea19994 Create engine_ in the initialisation list. 2010-05-31 20:51:29 +00:00
David Sansome 5d272a89ee Codereview comment from r1000 2010-05-31 20:24:05 +00:00
David Sansome 3365c7c217 Fix a few memory leaks 2010-05-28 19:51:51 +00:00
David Sansome 2c9a29e226 Give this variable a default value so it doesn't get passed to QThread::start uninitialised 2010-05-28 18:42:11 +00:00
David Sansome 791534703c Allow names for custom saved streams. Fixes issue #242 2010-05-27 22:53:07 +00:00
John Maguire 734d505eb7 Fix media key global shortcuts on mac.
Dave: *again* :-P
2010-05-27 13:21:05 +00:00
John Maguire 722981e71d Stop streams on PlayPause. 2010-05-27 13:17:28 +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 98235eea03 Remember the ordering of playlists 2010-05-21 10:37:24 +00:00
David Sansome 119c6fbd6e Refer to playlists by ID rather than index in the tabbar, so they can be moved around 2010-05-21 10:29:17 +00:00
David Sansome 1572124962 Seperate last played values for each playlist 2010-05-20 22:30:55 +00:00
David Sansome e515724bf7 Basic support for multiple playlists. Not everything works yet 2010-05-20 21:21:55 +00:00
David Sansome 33614533d8 Fix playlist wrapping into a last.fm stream, for real this time. 2010-05-19 13:08:52 +00:00
David Sansome a292677320 Refactor the way Player gets tracks to play from RadioPlaylistItems. They can now return synchronously with a URL, asynchronously via a signal, or with an error. This properly fixes the problem of preloading a last.fm stream when the track before is about to end. 2010-05-18 20:43:10 +00:00
John Maguire af3f8bcdfe Preload the next item in the playlist correctly when it's a radio station. 2010-05-18 14:30:55 +00:00
David Sansome bb015ca3aa Global shortcuts dialog should work now. 2010-05-17 11:06:50 +00:00
David Sansome 6806d78f96 Add a button to the global shortcuts dialog to open gnome's keybinding properties dialog. 2010-05-17 00:31:39 +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 bdc5d1ab1c Make sure the OSD and album cover manager use a "no cover" image when there's no artwork 2010-05-16 22:53:42 +00:00
David Sansome 9694977b34 Don't pad images in the OSD 2010-05-16 22:41:01 +00:00
John Maguire 6794b67a2f Fix LibraryModel tests. 2010-05-11 19:03:29 +00:00
John Maguire ae233ada44 Use canFetchMore/fetchMore instead of nasty const_casts. 2010-05-11 18:17:41 +00:00
David Sansome 51446cbb88 Implement canFetchMore and fetchMore in MergedProxyModel 2010-05-11 18:01:30 +00:00
John Maguire ff4eb346da Fix mac build 2010-05-11 12:51:31 +00:00
John Maguire 5dd0a9c35f Autodetect weird encodings in ID3v1 tags.
Fixes issue #254
2010-05-11 12:03:55 +00:00
David Sansome 72f5307524 Fix a little race condition 2010-05-10 22:47:14 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +00:00