Commit Graph

54 Commits

Author SHA1 Message Date
John Maguire f300946c81 Remove most usages of QFutureWatcher 2015-11-27 14:28:12 +00:00
Eduardo Sánchez Muñoz e0816800b1 Add support for original year tags. 2015-06-30 18:34:34 +02:00
Mattias Andersson 82dcdd3a12 Sort discs numerically when using Group by disc. 2015-05-23 09:19:23 +02:00
Ignas Kaziukenas a2df43c830 Reverted changes amde to groupby_performer 2014-10-27 15:49:11 +02:00
Ignas Kaziukenas 7516438c8b Added disc to the groupby interface. Replced groupby_performer to groupby_disc 2014-10-27 14:47:04 +02:00
Mark Furneaux 2332a74bbe Add persistent disk cache for library pixmaps
I'll reference #4379

When viewing the library with album covers visible, the covers load very slowly the first time
as they have to wait on the tagreaders. If I scroll down the library, it takes minutes for the
tagreader to catch up. The nice thing is that the pixmaps are cached. However, once
Clementine is restarted, the whole process has to happen again.

This patch adds a persistent disk cache in the form of a QNetworkDiskCache to store the
pixmaps on disk and load them into the QPixmapCache as required.

I've noted literally night and day performance improvements, not only when scrolling through the library.
There is much better interface responsiveness when searching, and I no longer see the no_cover_icon
temporarily anymore.
2014-05-27 17:40:25 -04:00
John Maguire 192b60d965 Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
John Maguire bebd781fdf Reformat all non-3rd-party C/C++/Objective-C++.
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
 -style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
GitAnt a39e559425 Implemented sort by bitrate 2013-12-17 16:07:20 +01:00
GitAnt d53bcde897 Consistently added GroupBy_Bitrate enum item 2013-12-16 19:18:02 +01:00
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
David Sansome 57865f82c2 Make the grouping of global search results configurable 2012-06-17 16:20:40 +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
David Sansome e9253af931 Load cover art for the library in a background thread. Fixes issue 2243 2011-11-13 00:31:27 +00:00
Andrea Decorte ecda0ada4a Playlists get an automatic name, no more prompts. Fixes issue #423 2011-03-25 19:16:12 +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
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 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 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 23d1ea81ea Add dividers to the list of icecast stations 2010-11-24 21:34:54 +00:00
David Sansome e4a3a12a83 Show progress information while downloading and parsing Jamendo and Icecast catalogues. Also parse Jamendo in chunks rather than all in one go. 2010-11-23 18:53:08 +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 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 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 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