diff --git a/src/collection/collectionmodel.cpp b/src/collection/collectionmodel.cpp index 47d1eac0c..97ba98e0a 100644 --- a/src/collection/collectionmodel.cpp +++ b/src/collection/collectionmodel.cpp @@ -27,10 +27,9 @@ #include #include -#include +#include #include #include -#include #include #include #include @@ -52,7 +51,6 @@ #include #include "core/application.h" -#include "core/closure.h" #include "core/database.h" #include "core/iconloader.h" #include "core/logging.h" @@ -859,18 +857,15 @@ void CollectionModel::LazyPopulate(CollectionItem *parent, const bool signal) { } void CollectionModel::ResetAsync() { - QFuture future = QtConcurrent::run(this, &CollectionModel::RunQuery, root_); - NewClosure(future, this, SLOT(ResetAsyncQueryFinished(QFuture)), future); + (void)QtConcurrent::run([=]() { ResetAsyncQueryFinished(RunQuery(root_)); }); } -void CollectionModel::ResetAsyncQueryFinished(QFuture future) { +void CollectionModel::ResetAsyncQueryFinished(QueryResult result) { if (QThread::currentThread() != thread() && QThread::currentThread() != backend_->thread()) { backend_->Close(); } - const struct QueryResult result = future.result(); - BeginReset(); root_->lazy_loaded = true; diff --git a/src/collection/collectionmodel.h b/src/collection/collectionmodel.h index 949820b2e..23835927f 100644 --- a/src/collection/collectionmodel.h +++ b/src/collection/collectionmodel.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -213,7 +212,7 @@ class CollectionModel : public SimpleTreeModel { void ClearDiskCache(); // Called after ResetAsync - void ResetAsyncQueryFinished(QFuture future); + void ResetAsyncQueryFinished(QueryResult result); void AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderResult &result); diff --git a/src/dialogs/edittagdialog.cpp b/src/dialogs/edittagdialog.cpp index c35befa0e..f10545ba7 100644 --- a/src/dialogs/edittagdialog.cpp +++ b/src/dialogs/edittagdialog.cpp @@ -25,8 +25,7 @@ #include #include -#include -#include +#include #include #include #include @@ -286,16 +285,15 @@ void EditTagDialog::SetSongs(const SongList &s, const PlaylistItemList &items) { ui_->song_list->clear(); // Reload tags in the background - QFuture> future = QtConcurrent::run(this, &EditTagDialog::LoadData, s); - NewClosure(future, this, SLOT(SetSongsFinished(QFuture>)), future); + (void)QtConcurrent::run([=]{ SetSongsFinished(LoadData(s)); }); } -void EditTagDialog::SetSongsFinished(QFuture> future) { +void EditTagDialog::SetSongsFinished(QList _data) { if (!SetLoading(QString())) return; - data_ = future.result(); + data_ = _data; if (data_.count() == 0) { // If there were no valid songs, disable everything ui_->song_list->setEnabled(false); diff --git a/src/dialogs/edittagdialog.h b/src/dialogs/edittagdialog.h index 1f926f651..71731c270 100644 --- a/src/dialogs/edittagdialog.h +++ b/src/dialogs/edittagdialog.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -100,7 +99,7 @@ class EditTagDialog : public QDialog { }; private slots: - void SetSongsFinished(QFuture> future); + void SetSongsFinished(QList _data); void AcceptFinished(); void SelectionChanged(); diff --git a/src/engine/gststartup.cpp b/src/engine/gststartup.cpp index 4de5d7593..ff24b6c8d 100644 --- a/src/engine/gststartup.cpp +++ b/src/engine/gststartup.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -40,7 +40,7 @@ #include "gststartup.h" GstStartup::GstStartup(QObject *parent) : QObject(parent) { - initialising_ = QtConcurrent::run(this, &GstStartup::InitialiseGStreamer); + initialising_ = QtConcurrent::run([=]{ InitialiseGStreamer(); }); } GstStartup::~GstStartup() { diff --git a/src/organise/organisedialog.cpp b/src/organise/organisedialog.cpp index 5f30de061..869b4fb9b 100644 --- a/src/organise/organisedialog.cpp +++ b/src/organise/organisedialog.cpp @@ -25,7 +25,7 @@ #include #include -#include +#include #include #include #include @@ -344,10 +344,9 @@ bool OrganiseDialog::SetUrls(const QList &urls) { bool OrganiseDialog::SetFilenames(const QStringList &filenames) { - songs_future_ = QtConcurrent::run(this, &OrganiseDialog::LoadSongsBlocking, filenames); - NewClosure(songs_future_, [=]() { SetSongs(songs_future_.result()); }); - SetLoadingSongs(true); + songs_future_ = QtConcurrent::run([=]{ SetSongs(LoadSongsBlocking(filenames)); }); + return true; } diff --git a/src/organise/organisedialog.h b/src/organise/organisedialog.h index b74b38853..93c044752 100644 --- a/src/organise/organisedialog.h +++ b/src/organise/organisedialog.h @@ -117,7 +117,7 @@ class OrganiseDialog : public QDialog { OrganiseFormat format_; - QFuture songs_future_; + QFuture songs_future_; SongList songs_; Organise::NewSongInfoList new_songs_info_; quint64 total_size_; diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 0fc818ed1..298117afa 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include #include #include @@ -1314,17 +1314,15 @@ void Playlist::Restore() { collection_items_by_id_.clear(); cancel_restore_ = false; - QFuture> future = QtConcurrent::run(backend_, &PlaylistBackend::GetPlaylistItems, id_); - NewClosure(future, this, SLOT(ItemsLoaded(QFuture)), future); + + (void)QtConcurrent::run([=]() { ItemsLoaded(backend_->GetPlaylistItems(id_)); }); } -void Playlist::ItemsLoaded(QFuture future) { +void Playlist::ItemsLoaded(PlaylistItemList items) { if (cancel_restore_) return; - PlaylistItemList items = future.result(); - // Backend returns empty elements for collection items which it couldn't match (because they got deleted); we don't need those QMutableListIterator it(items); while (it.hasNext()) { @@ -1353,7 +1351,7 @@ void Playlist::ItemsLoaded(QFuture future) { // Should we gray out deleted songs asynchronously on startup? if (greyout) { - QtConcurrent::run(this, &Playlist::InvalidateDeletedSongs); + (void)QtConcurrent::run([=]() { InvalidateDeletedSongs(); }); } emit PlaylistLoaded(); diff --git a/src/playlist/playlist.h b/src/playlist/playlist.h index c5ef6d186..ff5297a7f 100644 --- a/src/playlist/playlist.h +++ b/src/playlist/playlist.h @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -349,7 +348,7 @@ class Playlist : public QAbstractListModel { void QueueLayoutChanged(); void SongSaveComplete(TagReaderReply *reply, const QPersistentModelIndex &index); void ItemReloadComplete(const QPersistentModelIndex &index); - void ItemsLoaded(QFuture future); + void ItemsLoaded(PlaylistItemList items); void SongInsertVetoListenerDestroyed(); void AlbumCoverLoaded(const Song &song, const AlbumCoverLoaderResult &result); diff --git a/src/playlist/playlistmanager.cpp b/src/playlist/playlistmanager.cpp index a41741c05..4b0d4a8dc 100644 --- a/src/playlist/playlistmanager.cpp +++ b/src/playlist/playlistmanager.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -42,7 +42,6 @@ #include #include "core/application.h" -#include "core/closure.h" #include "core/logging.h" #include "core/player.h" #include "core/utilities.h" @@ -211,18 +210,11 @@ void PlaylistManager::Save(int id, const QString &filename, Playlist::Path path_ } else { // Playlist is not in the playlist manager: probably save action was triggered from the left side bar and the playlist isn't loaded. - QFuture> future = QtConcurrent::run(playlist_backend_, &PlaylistBackend::GetPlaylistSongs, id); - NewClosure(future, this, SLOT(ItemsLoadedForSavePlaylist(QFuture, QString, Playlist::Path)), future, filename, path_type); + (void)QtConcurrent::run([=]() { parser_->Save(playlist_backend_->GetPlaylistSongs(id), filename, path_type); }); } } -void PlaylistManager::ItemsLoadedForSavePlaylist(QFuture future, const QString &filename, Playlist::Path path_type) { - - parser_->Save(future.result(), filename, path_type); - -} - void PlaylistManager::SaveWithUI(int id, const QString &playlist_name) { QSettings settings; diff --git a/src/playlist/playlistmanager.h b/src/playlist/playlistmanager.h index d4cc39a83..6836ddab0 100644 --- a/src/playlist/playlistmanager.h +++ b/src/playlist/playlistmanager.h @@ -215,7 +215,6 @@ class PlaylistManager : public PlaylistManagerInterface { void OneOfPlaylistsChanged(); void UpdateSummaryText(); void SongsDiscovered(const SongList& songs); - void ItemsLoadedForSavePlaylist(QFuture future, const QString& filename, Playlist::Path path_type); void PlaylistLoaded(); private: diff --git a/src/playlist/songloaderinserter.cpp b/src/playlist/songloaderinserter.cpp index 90abb936e..7483e9eb3 100644 --- a/src/playlist/songloaderinserter.cpp +++ b/src/playlist/songloaderinserter.cpp @@ -20,7 +20,7 @@ #include "config.h" -#include +#include #include #include #include @@ -83,7 +83,7 @@ void SongLoaderInserter::Load(Playlist *destination, int row, bool play_now, boo deleteLater(); } else { - QtConcurrent::run(this, &SongLoaderInserter::AsyncLoad); + (void)QtConcurrent::run([=]{ AsyncLoad(); }); } }