Simeon Bird
09e839353e
Speed up playlist restoring by moving sqlite query off main thread
...
The playlist fetching uses QtConcurrent to make the playlist on a
different thread (possibly concurrently for each item).
However, profiling reveals that the slow operation is fetching
the rows from the SQLite database, making this redundant.
Instead move the whole playlist loading, including the database access,
into a single function, and call that function in a different thread via
QtConcurrent::run.
This has the side effect of moving all the concurrent stuff from
PlaylistBackend into the callers.
kstartperf measures:
Before: 7.5s cold
3.6 s warm
After: ~4.0 s cold
3.5 s warm
2014-12-09 12:47:37 -05:00
Juan Luis Boya García
292fff7e3a
Fix #4420 : Previous track in dynamic random mix
2014-11-29 19:34:31 +01:00
Arnaud Bienner
7ac9e4c6d1
Fix a bug in InsertItems functions that makes Cdda tracks to not be saved/restored correctly when restarting Clementine
2014-10-26 17:08:12 +01:00
Arnaud Bienner
dc0d3436c8
Finish CD integration update to Gstreamer 1.0
...
Move everything related to CDDA to a seperate class, so we can more easily reuse it in SongLoader
2014-10-26 03:32:37 +01:00
Arnaud Bienner
c35e573637
Missing things from previous commit
2014-10-07 00:29:46 +02:00
Arnaud Bienner
f6e6d3b937
Revert "Finished the changes to the quick change menu. Everything should work."
...
This reverts commit a468085c3a
.
Conflicts:
src/playlist/playlistcontainer.cpp
src/playlist/playlistcontainer.h
src/ui/behavioursettingspage.cpp
2014-10-07 00:29:46 +02:00
ppkt
43a6740b48
Remove unavailable items from playlist
2014-08-24 10:44:27 +02:00
Gavin Howard
f41bebbeb2
Ran 'make format' on my patch.
2014-08-18 09:56:01 -06:00
Gavin Howard
a468085c3a
Finished the changes to the quick change menu. Everything should work.
2014-08-15 18:52:01 -06:00
Helder Martins
e4054fad5e
Clarified comment to be more accurate of what it does
2014-08-03 10:48:01 +01:00
Helder Martins
56fc242520
complemented condition inside reshuffleindices function to take into account the selected track
2014-07-27 23:07:50 +01:00
Helder Martins
0c2d4e9f1c
Fixed a minor issue where the playlist wasnt updating the queue order, when a track was dequeued using the ctrl-d shortcut
2014-07-23 00:15:06 +01:00
David Sansome
c8625deffb
Update persistent model indexes properly when sorting the playlist. Fixes #4358
2014-06-07 13:31:25 +10:00
David Sansome
53be1e1f65
Revert "Use guaranteed random number generator." Fixes #4400
...
This reverts commit 9f6899ac82
.
2014-06-07 12:12:08 +10:00
Arnaud Bienner
134b617ec4
Emit dataChanged when changing skip track state.
...
Otherwise, when changing this for the currently playing track, the "strike out" change wasn't visible.
2014-05-25 18:44:54 +02:00
John Maguire
9f6899ac82
Use guaranteed random number generator.
...
Fixes #4352
2014-05-20 17:03:04 +02: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
Mark Furneaux
d0ca2cef6c
Comment remove
2014-04-25 23:02:42 -04:00
Mark Furneaux
ce8b7303c0
Formatting
2014-04-25 22:50:52 -04:00
Mark Furneaux
c890af6306
More elegant solution to last commit
...
set_current_row now takes optional parameter "is_stopping" for when auto stop
is enabled.
2014-04-25 22:45:25 -04: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
Mark Furneaux
416d06bb06
Fix stop after track
...
Stop after track would cause now playing widget, OSD, and last.fm
scrobbler to change to next track after stopping. This patch prevents
set_current_row() from firing an event which triggers the track change.
2014-04-25 14:30:31 -04: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
Dave Sansome
89369029ab
Merge branch 'skip_track' of https://github.com/asiviero/Clementine into asiviero-skip_track
...
Conflicts:
src/playlist/playlist.cpp
src/playlist/playlistitem.h
src/ui/mainwindow.cpp
2014-02-08 13:19:23 +11: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
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
Mladen Pejaković
657bbcf00f
Fix for pull request #4170
2014-02-04 15:04:19 +01:00
asiviero
c0132b2ed3
Renaming skip properties, strike out track when it is to be skipped
2014-01-27 00:26:51 -02:00
David Sansome
f816a47ad9
Make SongLoader add URLs as raw streams if there exists a URL handler
...
for that scheme. This fixes a bug where sky:// URLs couldn't be added
with MPRIS.
2014-01-24 23:54:38 +11:00
asiviero
c817431593
Greying out song and added verification to next on album mode
2014-01-20 22:35:01 -02:00
asiviero
5c21768760
Minor fixes and label adjustments
2014-01-20 22:10:23 -02:00
asiviero
1c0a221563
Added skip track feature
2014-01-20 22:10:16 -02:00
asiviero
048c2d9b9c
Modified queue to store tracks to skip
2014-01-20 22:10:08 -02:00
Arnaud Bienner
3715e5f15e
Revert revision 316b5d7db4
and revision e7a5c482fe
(aka re-enable inline editing)
2013-11-22 20:59:31 +01:00
Arnaud Bienner
316b5d7db4
(Add a comment to explain why I removed this)
2013-11-17 19:42:06 +01:00
Arnaud Bienner
e7a5c482fe
Don't allow tag inline editing anymore.
...
This was a pretty good idea, but now we have a dedicated tag dialog editor, I'm not sure it is very useful. It was probably faster to edit tags this way, but I'm afraid lot of people may inadvertently modify their tags because of this. Still allow inline editing of score and comment, because they sound less critical to me.
Fixes issue 3251.
2013-11-17 19:00:44 +01:00
Arnaud Bienner
5e6821dead
Add a 'favorite' widget to playlist tab, and keep in playlistlist container only favorite playlists, instead of all playlists.
2013-05-11 23:18:03 +02:00
David Sansome
dac22dbd72
Explicitly cast scoped_ptrs to bool. Fixes issue 3570.
2013-04-15 21:41:54 +10: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
John Maguire
8bbcd6b760
Use a better check for support for std::unordered_map.
2012-11-22 12:24:38 +01:00
David Sansome
0beab5c9a8
Temporarily use tr1/unordered_map on OS X
2012-11-22 19:38:17 +11:00
Arnaud Bienner
af8e8c753e
Use a better data structure to track uniques songs when removing duplicate.
2012-11-22 02:06:29 +01:00
Przemysław Dąbek
a241774fb5
more consistent whitespaces
2012-11-21 18:46:42 +01:00
Przemysław Dąbek
92637cb7d1
improved removing duplicated songs
2012-11-21 16:06:19 +01:00
Anand
1aec4a4c7f
When pressing the Previous button in Repeat Track mode, go to the previous track instead of repeating the current one. Fixes issue 2897
2012-08-26 13:11:28 +01:00
David Sansome
2035c3e7f5
Fix a bug where dragging songs to the bottom of the playlist would actually move them back to the top.
2012-07-15 12:51:19 +01:00
David Sansome
de782c980d
Ignore custom playlist row colours for the currently playing item - they might clash with the glowing current track indicator. Fixes issue 3042.
2012-07-15 12:44:53 +01:00
John Maguire
0558c7bf69
Fix build for Qt < 4.7
2012-07-09 11:34:47 +02:00
cornicis
dcab14e5fe
added removeDuplicateSongs() function to playlist.cpp and added this action to the playlist-menu
...
Fixes issue #21
2012-07-06 11:46:04 +02:00
David Sansome
b9bb449651
Use the first visible column when dragging+dropping within the playlist, instead of column 0 which may be hidden
...
Fixes issue 2879
2012-06-15 10:18:38 +01:00
Robbert Krebbers
3b186c698d
Allow playlist sorting and shuffling to be undone. Fixes issue 654.
...
Also:
- When sorting a dynamic playlist, only songs after the currently playing track are sorted.
- When moving songs in a dynamic playlist, recolor them if moved across the current track.
- When playing a future song in a dynamic playlist, move it to the current location. Fixes issue 1140
2012-06-09 14:33:51 +01:00
David Sansome
8c33cb91e0
Don't show any tooltips for the Mood column
2012-05-27 22:01:37 +01:00
David Sansome
a2feaa61e7
Create and render moodbars in background threads to avoid blocking the UI
2012-05-27 18:53:57 +01:00
David Sansome
19c3e1d5ec
Add a Mood column to the playlist
2012-05-27 16:46:16 +01:00
David Flatz
1e9a7e2119
Fix segfault when drag&dropping playlist entries from different instance
...
Fixes issue 2896
2012-04-25 16:38:59 +01:00
David Sansome
9be641ee87
The external tagreader mostly works now:
...
* Make TagReaderClient a singleton until it's easier to pass dependencies around
* Add a WaitForSignal() that uses a local event loop to wait for a signal to be emitted
* Add a WaitForFinished() to _MessageReplyBase that blocks using a semaphore
* Add blocking versions of all TagReaderClient methods
* Use the TagReaderClient everywhere that Song::InitFromFile and friends were used before
2012-01-07 00:26:07 +00:00
John Maguire
bcf9475f2b
Add a source column to the playlist view with appropriate icons.
2012-01-04 11:56:09 +00:00
David Sansome
0aba1ce77d
Fix a crash when creating a new smart playlist
2011-11-29 13:01:54 +00:00
Robbert Krebbers
7c1cedeac8
Fix a bug where moving songs down in the playlist could not be undone properly. Fixes issue 1908
2011-11-29 11:39:47 +00:00
David Sansome
b873209d39
Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h.
2011-11-28 13:56:55 +00:00
Angus Gratton
360aaabd0d
Add playlist album artist for use in playlist grid view (Issue 509)
2011-11-28 11:04:38 +00:00
David Sansome
da532ef3ca
Make manual track changes ignore the "repeat track" setting. Fixes issue 2426
2011-11-27 21:02:37 +00:00
David Sansome
b8ee548eb4
Rename the existing "Shuffle by album" mode to "Shuffle tracks in this album", and add a new "Shuffle albums" mode that plays all the tracks in each album sequentially, but then jumps to a different random album afterwards.
...
Fixes issue 1152
2011-11-27 15:01:10 +00:00
Arnaud Bienner
ceab3bd6f0
Add Grooveshark songs as internet items, when adding them from global search, so user can use all GS custom actions
2011-11-24 00:30:11 +01:00
Arnaud Bienner
867a072579
Improve UpdateItems complexity: still quadratic in wort-case, twice better in average, but linear in best case, which is very likely to happen in real usecases
2011-11-19 16:01:58 +01:00
Arnaud Bienner
fdad2bd706
Make the async load of folders thread-safe
2011-11-18 21:55:54 +01:00
David Sansome
63fdf11cd8
Keep the playlist column alignment setting in PlaylistView instead of in each individual Playlist, ensuring all playlists share the same column alignments and there's only one place to save/restore them.
...
Fixes issue 1795
2011-11-12 16:12:51 +00:00
HyperQuantum
94a7ceb898
Add an "Expand" button to add more tracks to a dynamic playlist. Fixes issue 1268
2011-11-10 11:21:41 +00:00
Arnaud Bienner
89680a02f0
Add the ability to have custom actions for PlaylistItems, and InternetPlaylistItems (through services). Add 'add to playlists' actions for Grooveshark
2011-11-06 16:12:44 +01:00
Arnaud Bienner
4143823870
Get GrooveShark songs' length (give the ability to seek through stream). markStream and markSongComplete, as resquested by GrooveShark
2011-10-02 12:05:56 +02:00
David Sansome
53e175e503
When stopping due to "Stop after this track", set the current song to the one after, so when the user presses Play it plays the next song instead of the last one again.
2011-09-27 23:31:15 +01:00
David Sansome
804cbbc14e
Save the playlist after editing fields of files in it - affects files that are not in the library.
2011-08-27 23:09:42 +01:00
David Sansome
9312f153b7
Don't show a notification and update the now playing widget when editing a song that isn't currently playing. Fixes issue 1689
2011-08-27 23:08:53 +01:00
David Sansome
7e0e4e48e4
When loading a CUE from disk that isn't in the library, don't overwrite the metadata of its first song with the metadata from the audio file. Fixes issue 2092
2011-08-27 22:29:35 +01:00
Arnaud Bienner
cb28557a77
Correct typo
2011-08-08 23:44:49 +02:00
David Sansome
dd3eee63e5
Remove python scripting support
2011-07-23 15:32:12 +01:00
Tyler Rhodes
ded8e5f6f0
Refactor "Radio" files into "Internet" files.
2011-07-15 13:27:50 +00:00
Tyler Rhodes
5c6f9e625b
Allow shorter playlist column names if header size is too small.
...
Fixes issue 201.
2011-07-06 13:22:42 +00:00
David Sansome
c8305c0eee
Don't record an undo step when all the songs inserted into the playlist were vetoed. Thanks schizosfera.
2011-07-01 20:48:18 +00:00
David Sansome
5dbdc8354b
Port the deleted songs invalidator script to PythonQt. Thanks schizosfera. Fixes issue 2035
2011-07-01 20:47:46 +00:00
David Sansome
7415d85dce
When initialising a song from a library query, don't always assume the metadata originally came from a file (which means icycast tags are ignored when it is played). Fixes issue 1857
2011-06-17 20:00:10 +00:00
Arnaud Bienner
272841ab73
Starting audio CD support. Starts issue 701
2011-06-09 23:08:43 +00:00
David Sansome
6dd1634946
Add Python bindings for Playlists, port the rainbowizer plugin to PythonQt and make its colours a bit more tasteful
2011-05-29 12:55:18 +00:00
David Sansome
e2c6526840
Make dynamic playlists use the limit specified in the smart playlist dialog. Thanks google@robbertkrebbers.nl. Fixes issue 1082. Fixes issue 1192.
2011-05-14 13:44:10 +00:00
David Sansome
06852aaeb7
Show spotify search results in a separate playlist tab rather than in a tree in the sidebar.
2011-04-28 17:50:45 +00:00
David Sansome
ccb9f8cf94
Use URLs everywhere instead of filenames. Move the URL parsing and song loading code out of individual playlist parsers and into the base class. Fix the playlist parser unit tests.
2011-04-28 12:27:53 +00:00
David Sansome
3d6677fe6d
Allow radio services (Spotify) to store whole songs in playlist items
2011-04-26 22:06:58 +00:00
David Sansome
3eedc916ad
Add a new logging system
2011-04-22 16:50:29 +00:00
Paweł Bara
b8e1880854
"remove deleted songs from playlists" action in the 'deleted songs invalidator' plugin (fixes issue #1594 )
2011-04-21 21:56:37 +00:00
David Sansome
8f4c1dbbf6
When doing gapless playback, fix a bug where the TrackEnded signal would be emitted too early, before the track had actually ended. This caused the song after the current song to get scrobbled and its playcount increased. Fixes issue 1771
2011-04-17 14:11:37 +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
f905ce3510
Put a limit on the size of the playlist undo stack, and don't add operations to the stack if they affect more than 500 items. Fixes issue 1762
2011-04-16 13:31:57 +00:00
Andrea Decorte
5d8f1fe872
Added scrobbling button in main window and a global shortcut for
...
toggling it. Fixes issue 1090
Improved last.fm error handling
2011-04-07 16:25:52 +00:00
Andrea Decorte
ecda0ada4a
Playlists get an automatic name, no more prompts. Fixes issue #423
2011-03-25 19:16:12 +00:00
David Sansome
31ead96e91
Fix last.fm scrobbling. Fixes issue 1503
2011-03-20 22:19:38 +00:00
Paweł Bara
e619d7a280
fixing a bug where streams were removed from playlist during Clementine's startup
2011-03-20 16:07:24 +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
3db00fc339
plugin that lets you grey out deleted songs on demand ("main menu / playlist") - available by default
...
also: this action will "ungrey" songs that were deleted but got restored
SIPs
2011-03-19 10:22:55 +00:00