Commit Graph

299 Commits

Author SHA1 Message Date
Arnaud Bienner 946c0381d1 Don't set thread priority in LibraryWatcher constructor, as this is executed in the main thread.
Do it when thread actually starts (create a new Thread class for this purpose).
Fixes #4523.
2015-02-28 16:44:32 +01:00
Ignas Kaziukenas 0a2a358d8b "Green Day Problem" solved. Year-Album grouping also obeys grouping tag that allows to order albums released in the same year non-alphabetically 2014-10-29 15:29:45 +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
Gavin Howard 0e030b5461 Ran make format. 2014-08-26 10:54:05 -06:00
Gavin Howard 54742de613 A quick patch to have the library ignore all articles when sorting. 2014-08-25 21:22:53 -06:00
David Sansome 01ae151f8a Delay writing WMA ratings and play counts until playback has finished. Fixes #3593 2014-06-07 15:29:23 +10:00
David Sansome f6a72828a9 Write statistics and ratings in Library, not LibraryBackend. 2014-06-07 15:19:43 +10:00
Mark Furneaux b463f32459 Fix memory leak in pixmap disk cache 2014-05-28 17:30:07 -04:00
Mark Furneaux b2bd7828c4 More style changes 2014-05-27 20:18:24 -04:00
Mark Furneaux 94b391e0c9 Optimizations and style changes 2014-05-27 18:21:30 -04: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 24a4cff807 Merge pull request #4288 from sundrythoughts/rating-optimization
Increase performance of mass rating changes.
2014-05-20 12:42:39 +01:00
Joseph Freeman fe4a80b2d5 Removed commented-out code and ran make format. 2014-04-25 19:41:04 -04:00
Joseph Freeman 156728390d Increase performance of mass rating changes. 2014-04-25 19:37:46 -04:00
Mattias Andersson 5fffbbc689 Add explanatory comment to last commit. 2014-04-22 12:25:59 +02:00
Mattias Andersson 56dade2598 Fix slow library search on sqlite 3.8. 2014-04-19 14:23:50 +02:00
Mattias Andersson cdf5363320 Prevent translation of the names of the available fields in the tool tip for the library search field. 2014-02-22 18:21:58 +01:00
John Maguire 5146bcdebc Some more NULL -> nullptr conversions. 2014-02-21 17:30:46 +01:00
Mattias Andersson 3b01247df9 Iterate over a copy of the parents container since we are removing elements from the original. 2014-02-13 10:41:24 +01:00
John Maguire 192b60d965 Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
John Maguire 3323c2d094 Convert all instances of foreach() to a C++11 for
find ext src -name '*.cpp' -exec \
    sed -i -e 's/foreach(\([^,]\+\),/for (\1 :/' {} \;
2014-02-10 14:43:32 +01:00
Mattias Andersson 175827f73f Add a tool tip to the library search field. 2014-02-08 14:50:12 +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
David Sansome eaf182a59a Merge pull request #4161 from BrummbQ/master
don't rescan unchanged files if library has been unavailable.  Fixes #3032
2014-02-07 22:45:55 +11:00
Gregor Tätzner 0cab75b28f removed useless debug log 2014-02-06 19:27:36 +01:00
John Maguire 8d1f4612db Hide use of boost multi-index behind pimpl. 2014-02-06 17:53:33 +01:00
John Maguire 71893e4847 Use nullptr instead of NULL everywhere. 2014-02-06 17:29:59 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
Gregor Tätzner 7317b6792e don't rescan unchanged files if library has been unavailable 2014-02-01 20:21:28 +01:00
Arnaud Bienner 08a4629565 '-' is considered as 'NOT' operator by FTS, leading to unexpected results. Not sure how to escape it, better to replace it for now 2014-01-16 16:35:09 +01:00
Mattias Andersson bd880dcafe Tweak the replacement of colons.
Make sure that there are no trailing whitspaces on tokens before appending "* ".
2014-01-14 01:09:24 +01:00
Mattias Andersson 3f4e8e5b88 Check if token is a valid column name in the fts table before treating it as such. 2014-01-13 16:16:33 +01:00
goetzc ad0f8a6f90 playlist context menu entry: Show in library 2014-01-11 15:03:32 -05: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
Andreas 98dd001a4f Further work on portable version. 2013-10-03 17:08:42 +02:00
Andreas acb18cdcde First tries on a portable version. 2013-09-29 10:43:34 +02:00
Mateusz Kowalczyk ff71138079 Change file deletion question dialogs to warnings. 2013-06-01 16:23:37 +10: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
Arnaud Bienner 6108a8a46a Oops 2013-03-27 00:13:11 +01:00
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
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
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
David Sansome e3c8caa613 Preserve user stats like play/skip counts when reloading song metadata when opening the edit tag dialog. Fixes issue 3359. 2012-12-26 00:50:32 +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