Commit Graph

354 Commits

Author SHA1 Message Date
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 7845a243c2 Oops, link against gio 2010-07-17 21:29:41 +00:00
David Sansome 0dcdf36535 Start of work on a GIO/GVFS device backend. 2010-07-17 14:22:07 +00:00
David Sansome 553184c7db Remove amarok's equalizer and use gstreamer's one instead for vastly reduced CPU usage. Fixes issue #494 2010-07-12 20:55:09 +00:00
David Sansome 41183107d2 Start of work on a queue manager 2010-07-11 15:37:40 +00:00
David Sansome 0c123d58e8 Use a system QtIoCompressor if it's available 2010-07-11 12:02:30 +00:00
David Sansome 9be9a7cc0a Add a cmake option to use a system install of QtSingleApplication 2010-07-10 20:33:28 +00:00
David Sansome acf9ff5fd3 Add a cmake option to use a system install of libprojectM. No, gentoo users, you shouldn't use this. 2010-07-10 20:21:06 +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 f151df00b0 Blur behind the pretty OSD on Windows Vista and above 2010-07-07 23:03:35 +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 b3af9fa7d7 Add a device properties dialog 2010-07-04 15:01:24 +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
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
David Sansome 0404ecec70 Fix compilation without gstreamer. Fixes issue #440 2010-06-26 13:20:08 +00:00
David Sansome 7c09e39d41 Only compile the DeviceKit bits on Linux 2010-06-26 12:57:00 +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 28ea240eb8 ConnectedDevices have a LibraryModel 2010-06-25 23:38:21 +00:00
David Sansome b750df38ce Rename the DeviceEngines to DeviceListers 2010-06-25 22:36:21 +00:00
David Sansome b423350208 Put each DeviceEngine in its own thread, don't pretend to be a QAbstractItemModel (it's annoying and not at all thread-safe), add a debugging class to listen to and print events. 2010-06-25 22:01:47 +00:00
David Sansome 2ef1fe5ac1 Fix LINGUAS processing 2010-06-25 20:48:39 +00:00
David Sansome ad9d6e7e73 Beginnings of some code to handle removable devices. DeviceKit engine for linux. Doesn't do anything useful yet. 2010-06-25 19:04:10 +00:00
David Sansome a9addb3c54 Add the DeviceKit-disks dbus interfaces 2010-06-25 16:17:17 +00:00
David Sansome f8d0afbc18 Move dbus xml files to src/dbus 2010-06-25 16:05:02 +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 b2dcaf5cd4 Add a dialog for organising files in a library. Doesn't work yet 2010-06-24 16:26:49 +00:00
John Maguire 4da0ef772d Fix bundle target. 2010-06-24 12:53:35 +00:00
David Sansome e9b1f03ea8 Generate the right .pot file... 2010-06-23 17:03:29 +00:00
David Sansome 88d1c7518a Move the "Configure Clementine" menu item into the Tools menu and rename it "Preferences". Also move the global shortcuts dialog into a page in the preferences dialog. Fixes issue #422 2010-06-23 16:27:23 +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 63861f2ee5 Explicitly produce static libraries even when BUILD_SHARED_LIBS is set 2010-06-22 16:07:29 +00:00
David Sansome faf34a92bb Make it possible to compile out the default CMAKE_INSTALL_PREFIX paths for projectm visualisations 2010-06-22 15:46:51 +00:00
John Maguire c8cb8cf012 Fixes for comments from r1266 2010-06-22 14:26:00 +00:00
John Maguire 15b8b90556 Implement native dock menu on Mac.
Fixes issue #349
2010-06-22 14:09:13 +00:00
David Sansome b4add2a7be Refactor the system tray icon code a bit 2010-06-22 11:52:55 +00:00
David Sansome 47790e9099 Merge translations from Launchpad 2010-06-18 15:53:08 +00:00
John Maguire 2824c153bc Fix Sparkle install. 2010-06-18 14:50:13 +00:00
David Sansome d415e3e125 Include strings from macglobalshortcutbackend.mm in translations regardless of the host OS 2010-06-17 22:19:29 +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
John Maguire ae3b500259 Make the buildsystem a little more robust. 2010-06-17 14:45:31 +00:00
David Sansome afa4d0a4e2 Add a Now Playing widget 2010-06-16 22:00:39 +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 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 1e80ac8c5b Use cmake rm. 2010-06-14 15:10:39 +00:00
John Maguire fd037c0f9a Fix buildsystem to build a new dmg every time.
Fixes issue #405
2010-06-14 14:50:04 +00:00
David Sansome dd36835b49 Make "" an acceptable option for LINGUAS meaning None 2010-06-12 19:36:22 +00:00
David Sansome a41a450218 Add an cmake option to leave translation out of the binary.
Update issue #400
Status: Fixed
Ok makes sense I suppose.  I've cleaned up the patch a bit and committed it.  I changed the cmake variable to LINGUAS (upper case), and valid values are "All", "None", or a space seperated list of languages.
2010-06-12 17:44:19 +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 516f769a75 Enable dragging and double clicking from the album cover manager to add albums to the playlist
Update issue #169
Status: Fixed
I hadn't forgotten about this, honest... :)
2010-06-12 15:18:16 +00:00
David Sansome 76f0803b81 Make visualisations optional.
Update issue #394
Status: Fixed
There's now an ENABLE_VISUALISATIONS option that you can set to cmake with cmake -DENABLE_VISUALISATIONS=OFF, or with ccmake or cmake-gui.
2010-06-10 22:48:23 +00:00
David Sansome 903dbba87e Dialog for downloading Magnatune albums 2010-06-09 14:02:26 +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 43ca921d65 Add a magnatune settings page (not functional yet), remove the last.fm config *dialog*, and instead make it bring up the settings dialog at the right page. 2010-06-08 22:56:31 +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 e8f1838d6d Fucking mac. 2010-06-07 20:39:06 +00:00
John Maguire 7d18f60ca8 Ignore silly Info.plist from Sparkle. 2010-06-07 20:22:43 +00:00
John Maguire ea95b847fc Update dmg target to stop Qt copying silly plugins. 2010-06-07 19:43:07 +00:00
John Maguire a821f5a505 Install resources into mac bundle. 2010-06-07 19:01:35 +00:00
David Sansome 0e155c1eaf Fix liblastfm finding 2010-06-06 21:08:52 +00:00
David Sansome 1895582eb9 Basic support for ProjectM visualisations 2010-06-06 14:06:23 +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 c5db4c025c We don't need to link against libz on windows or linux for some reason. 900 GET 2010-05-11 20:07:00 +00:00
John Maguire ff4eb346da Fix mac build 2010-05-11 12:51:31 +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
John Maguire 37960cb5df Start of (still disabled) ID3v1 encoding detector.
Comes with const_cast hackiness \o/
Updates issue #254
2010-05-10 13:46:06 +00:00
David Sansome 41f306fd2a Load cover art from Magnatune: make AlbumCoverLoader load from http, and make the OSD load artwork asynchronously. 2010-05-10 13:15:52 +00:00
David Sansome e2355d855d Move the library filter widget out of MainWindow into another class, and show the widget when magnatune is selected 2010-05-09 20:18:05 +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 72dbfd51c5 Start of a Magnatune service that downloads the list of songs and prints them on stdout. 2010-05-08 20:56:39 +00:00
David Sansome 9cd0fa6d7d Better error handling for the transcoder, and a log to show the user what's going on 2010-05-08 15:36:12 +00:00
John Maguire b909f56dbb Stupid msgmerge fix. 2010-05-07 12:30:06 +00:00
David Sansome 8c9b546cc5 Show the console window in debug mode on Windows 2010-05-05 16:56:55 +00:00
David Sansome a81d0c55e7 Fix some indentation in CMakeLists 2010-05-05 16:56:35 +00:00
David Sansome d5c52f32d8 Add an almost working music transcoder. Also some small translation fixes. 2010-05-03 18:52:35 +00:00
David Sansome 7039d04ee6 Keep all the version numbers in one file, so we don't have to change it in hundreds of places each release. 2010-05-03 13:58:41 +00:00
David Sansome d3cbeed9b7 Merge translations from launchpad 2010-05-03 13:10:38 +00:00
David Sansome 29a623739b Italian translation from Vincenzo Reale 2010-04-28 10:29:26 +00:00
David Sansome 0579b18850 Accept empty fields in the edit tags dialog. Fixes issue #251. 2010-04-27 17:19:07 +00:00
David Sansome 30daf4aca2 Merge translations from launchpad 2010-04-27 13:51:25 +00:00
David Sansome 9dca93e276 Merge translations from launchpad 2010-04-22 14:01:46 +00:00
David Sansome 37f7b1ca3b Use lconvert from the Qt sdk rather than $PATH, if it's available 2010-04-21 11:03:30 +00:00
David Sansome 32d5a1dd2d Add danish translation 2010-04-19 19:25:33 +00:00
David Sansome b2236bfd1e Undo and redo actions for the playlist. Note that undoing a sort or a shuffle doesn't work yet. Fixes issue #152 2010-04-19 18:44:35 +00:00
John Maguire 4948050327 Fix build without gstreamer.
Fixes issue #217
Thanks to christoph.gysin
2010-04-16 14:39:55 +00:00
John Maguire baf59f4c8d A bit more automation for mac builds. 2010-04-15 19:09:39 +00:00
David Sansome d3adcbabf8 Change "Behaviour" to "Behavior", and add a british english translation 2010-04-15 16:26:41 +00:00
John Maguire 8abb9ecd4b Most of the work to use Sparkle on OS X.
Updates issue #210.
2010-04-15 15:23:12 +00:00
David Sansome dd86b60411 CMake variables and commandline options to allow multiple engines to be built. Thanks christoph.gysin.
Fixes issue #203
2010-04-15 12:39:34 +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 b63fcb0b10 Add the new languages to the buildsystem 2010-04-14 16:50:18 +00:00
David Sansome 91d6ad79ea Add a "po_all" target 2010-04-14 16:41:11 +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
John Maguire a4405e7877 Add support for global media keys on mac (Cocoa only).
Updates issue #6
2010-04-13 13:55:54 +00:00
David Sansome 2ec6ca45c8 Commandline options support. Fixes issue #189 2010-04-12 22:44:29 +00:00
David Sansome 14d0b00f46 Factor out the gstreamer pipeline bits into another class. 2010-04-11 19:47:21 +00:00
David Sansome e6da826227 Make the equalizer sliders stick in the middle around '0' when being dragged. Updates issue #166 2010-04-11 13:29:27 +00:00
David Sansome c92d6f1852 Left clicking on the track slider will now jump to the absolute position in the track. Fixes issue #172 2010-04-08 21:15:33 +00:00
David Sansome c6fe113e79 GStreamer equalizer. Mostly working, just missing presets. Updates issue #166 2010-04-07 16:26:04 +00:00
David Sansome 96aef75c91 Don't add line numbers to the translations - cleans up diffs 2010-04-07 12:27:16 +00:00
David Sansome ac887cf468 Add a damn header to the .pot file 2010-04-06 21:52:29 +00:00
David Sansome 6de9b8e9d7 Moved to gnu gettext translations 2010-04-06 19:18:14 +00:00
David Sansome c7f4a091ed Let's give gstreamer another try... 2010-04-06 16:57:02 +00:00
David Sansome 1c5b6c6b05 Use the vlc engine on Windows 2010-04-05 15:50:53 +00:00
David Sansome 993a4f0e43 Experimental VLC audio engine 2010-04-04 20:45:03 +00:00
David Sansome d5eb2297d2 Move the audio engines to their own directory 2010-04-04 17:50:11 +00:00
David Sansome 134743bd29 Add an advanced grouping dialog for the library. boost::multi_index ftw. Fixes issue #94. 2010-03-31 23:11:45 +00:00
David Sansome ef9780b44e Add a cmake option to use phonon even on unix. Also fix a strange bug with the phonon backend that stopped the track slider from working. 2010-03-30 00:38:32 +00:00
David Sansome 96802bdf6e Remove debug lines from the cmake script 2010-03-30 00:08:48 +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
David Sansome afe2aadcf6 Use autocompletion in the edit tag dialog too. Thanks christoph.gysin. Fixes issue #130 2010-03-29 16:59:01 +00:00
David Sansome 227c64177c Automatically generate .po and .pot files from the translation sources, for launchpad 2010-03-29 16:05:23 +00:00
David Sansome 7d5673930d Pretty OSD. 2010-03-25 19:30:10 +00:00
John Maguire 7250587c03 Remove dependency on libnotify and use dbus directly. 2010-03-25 17:52:28 +00:00
John Maguire 2e35831b0b Mac build fixes 2010-03-24 21:34:32 +00:00
John Maguire f9972183c5 ifdef dbus stuff for X11 only. 2010-03-24 21:07:16 +00:00
John Maguire a8a37264f7 Add MPRIS support (thanks Amarok ;-)
Fixes issue #29

Example command lines:
dbus-send --print-reply --dest=org.mpris.clementine /Player org.freedesktop.MediaPlayer.Play
dbus-send --print-reply --dest=org.mpris.clementine / org.freedesktop.MediaPlayer.Identity
dbus-send --print-reply --dest=org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack
dbus-send --print-reply --dest=org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata int32:0
2010-03-24 20:58:17 +00:00
David Sansome 91b08cb4a3 Don't set the g++ warning flags on c files. Thanks christoph.gysin. Fixes issue #108 2010-03-24 16:45:44 +00:00
John Maguire f312b04df7 Enable more compiler warnings and fix them.
Fixes issue #108
2010-03-24 12:07:37 +00:00
David Sansome 16e1deaade Make it possible for the LibraryBackend to be mocked, and add a simple test for Library. 2010-03-23 17:26:54 +00:00
David Sansome ceb6382e9f Fix compilation in release mode 2010-03-23 14:07:05 +00:00
David Sansome b1e1de709c Bring the QSQLITE plugin into the source tree and statically link it on Windows.
Also remove the unused xine windows patches, and move all the windows resources into dist/windows
2010-03-22 18:35:31 +00:00
John Maguire 6947fe2923 Set version to 0.2 for mac. 2010-03-22 16:18:03 +00:00
David Sansome eea777e74e Global shortcuts on gnome, with GSD over DBUS 2010-03-21 19:02:56 +00:00
David Sansome d09eaac67a Fix up the other 2D analyzers 2010-03-21 17:22:05 +00:00
David Sansome 1314ef2e37 Remove the global shortcuts dialog from trunk 2010-03-21 16:37:38 +00:00
John Maguire b468306d2f Stop linking against sqlite and use the loaded plugin. 2010-03-21 13:29:06 +00:00
John Maguire 758f99be49 Support unicode-aware comparisons in Sqlite3.
Fixes issue #71
2010-03-20 23:41:59 +00:00
David Sansome e1c44cdc77 Add options for choosing or disabling the analyzer.
Fixes issue #75.
2010-03-20 22:45:54 +00:00
David Sansome aee1cbb4fd Revert the multiple playlist commits until they can be cleaned up a bit. These are: r324, r326, r327, r328, r335, r336, r337, r338, and r339. 2010-03-10 00:04:04 +00:00
John Maguire 11330d0177 XSPF parser with test. 2010-03-09 17:17:32 +00:00
John Maguire 4eb51bf6d9 Remove pointless cpp file. 2010-03-09 15:46:26 +00:00
David Sansome 67214bf4dc Rename ShuffleRepeatWidget to PlaylistSequence 2010-03-08 18:05:41 +00:00
David Sansome c9ddf09869 Add shuffle and repeat options. These don't do anything yet.
Updates issue #20
2010-03-08 14:08:54 +00:00
Bartek Taczała 8ae713802d Playlist manager for handling multiple playlists. Storing/restoring is enabled. 2010-03-07 20:06:00 +00:00
David Sansome 35a306b9a7 Install .desktop file and icon. Also add an "uninstall" target.
Fixes issue #52
2010-03-04 16:41:14 +00:00
David Sansome 4d3bd03f16 More windows fixes 2010-03-02 22:02:43 +00:00
David Sansome 72aa271b23 Fixes for mingw32 cross-compiling 2010-03-02 20:46:46 +00:00
John Maguire 864215cb23 Adds a test for LibraryBackend (not as trivial as it sounds :-)
Adds Googlemock.
Adds mock Qt database drivers.
2010-03-01 22:00:15 +00:00
David Sansome 0dc1a87781 Automatically generate the qm files, and the translations qrc file 2010-03-01 17:31:54 +00:00
John Maguire c043eaba0c Add mostly done M3UParser with basic unit tests.
Add lots of test infrastructure.
2010-03-01 15:40:12 +00:00
John Maguire 7e500a2fa8 fix build and move gtest to 3rdparty 2010-03-01 12:55:51 +00:00
John Maguire e7c064809c Link resources into library & init in main(). 2010-03-01 12:15:15 +00:00
John Maguire 461157bbc9 Mac build & deploy updates. 2010-03-01 12:13:11 +00:00
John Maguire 42fd8c6f1e Seems resources need to be linked directly in the binary. 2010-03-01 02:49:47 +00:00
John Maguire 269957e7ca Add infrastructure for unit tests. 2010-03-01 01:47:50 +00:00
John Maguire 30fa135521 cmake fix 2010-02-28 20:56:27 +00:00
John Maguire ad52c825ae Mac deploy script - generates most of the commands necessary for an app bundle. 2010-02-28 20:55:10 +00:00
David Sansome 12273256e5 Album cover art manager. So far this only displays cover art that was loaded from disk. 2010-02-28 18:04:50 +00:00
John Maguire f9ad923f3a CMake support \o/
Also fixes xine deprecation messages.
2010-02-28 17:28:56 +00:00