Add missing const

This commit is contained in:
Jonas Kvinge
2024-08-12 18:12:26 +02:00
parent 8d9c135498
commit bdca60c0ad
69 changed files with 413 additions and 300 deletions

View File

@@ -21,6 +21,8 @@
#include "config.h"
#include <utility>
#include <QtGlobal>
#include <QGuiApplication>
#include <QtConcurrentRun>
@@ -421,7 +423,7 @@ void AlbumCoverChoiceController::ShowCover(const Song &song, const QImage &image
}
}
for (const AlbumCoverLoaderOptions::Type type : cover_types_) {
for (const AlbumCoverLoaderOptions::Type type : std::as_const(cover_types_)) {
switch (type) {
case AlbumCoverLoaderOptions::Type::Unset:{
if (song.art_unset()) {
@@ -757,7 +759,8 @@ bool AlbumCoverChoiceController::IsKnownImageExtension(const QString &suffix) {
bool AlbumCoverChoiceController::CanAcceptDrag(const QDragEnterEvent *e) {
for (const QUrl &url : e->mimeData()->urls()) {
const QList<QUrl> urls = e->mimeData()->urls();
for (const QUrl &url : urls) {
const QString suffix = QFileInfo(url.toLocalFile()).suffix().toLower();
if (IsKnownImageExtension(suffix)) return true;
}
@@ -767,7 +770,8 @@ bool AlbumCoverChoiceController::CanAcceptDrag(const QDragEnterEvent *e) {
void AlbumCoverChoiceController::SaveCover(Song *song, const QDropEvent *e) {
for (const QUrl &url : e->mimeData()->urls()) {
const QList<QUrl> urls = e->mimeData()->urls();
for (const QUrl &url : urls) {
const QString filename = url.toLocalFile();
const QString suffix = QFileInfo(filename).suffix().toLower();

View File

@@ -23,6 +23,7 @@
#include <cmath>
#include <algorithm>
#include <utility>
#include <QObject>
#include <QCoreApplication>
@@ -73,7 +74,7 @@ AlbumCoverFetcherSearch::~AlbumCoverFetcherSearch() {
void AlbumCoverFetcherSearch::TerminateSearch() {
QList<int> ids = pending_requests_.keys();
const QList<int> ids = pending_requests_.keys();
for (const int id : ids) {
pending_requests_.take(id)->CancelSearch(id);
}
@@ -93,7 +94,7 @@ void AlbumCoverFetcherSearch::Start(SharedPtr<CoverProviders> cover_providers) {
QList<CoverProvider*> cover_providers_sorted = cover_providers->List();
std::stable_sort(cover_providers_sorted.begin(), cover_providers_sorted.end(), ProviderCompareOrder);
for (CoverProvider *provider : cover_providers_sorted) {
for (CoverProvider *provider : std::as_const(cover_providers_sorted)) {
if (!provider->is_enabled()) continue;
@@ -413,7 +414,7 @@ void AlbumCoverFetcherSearch::Cancel() {
TerminateSearch();
}
else if (!pending_image_loads_.isEmpty()) {
QList<QNetworkReply*> replies = pending_image_loads_.keys();
const QList<QNetworkReply*> replies = pending_image_loads_.keys();
for (QNetworkReply *reply : replies) {
QObject::disconnect(reply, &QNetworkReply::finished, this, nullptr);
reply->abort();

View File

@@ -22,6 +22,7 @@
#include "config.h"
#include <algorithm>
#include <utility>
#include <QObject>
#include <QMainWindow>
@@ -351,7 +352,7 @@ void AlbumCoverManager::Reset() {
QStringList artists(collection_backend_->GetAllArtistsWithAlbums());
std::stable_sort(artists.begin(), artists.end(), CompareNocase);
for (const QString &artist : artists) {
for (const QString &artist : std::as_const(artists)) {
if (artist.isEmpty()) continue;
new QListWidgetItem(artist_icon_, artist, ui_->artists, Specific_Artist);
}
@@ -388,7 +389,7 @@ void AlbumCoverManager::ArtistChanged(QListWidgetItem *current) {
// Sort by album name. The list is already sorted by sqlite but it was done case sensitively.
std::stable_sort(albums.begin(), albums.end(), CompareAlbumNameNocase);
for (const CollectionBackend::Album &album_info : albums) {
for (const CollectionBackend::Album &album_info : std::as_const(albums)) {
// Don't show songs without an album, obviously
if (album_info.album.isEmpty()) continue;
@@ -499,7 +500,7 @@ bool AlbumCoverManager::ShouldHide(const AlbumItem &album_item, const QString &f
return false;
}
QStringList query = filter.split(QLatin1Char(' '));
const QStringList query = filter.split(QLatin1Char(' '));
for (const QString &s : query) {
bool in_text = album_item.text().contains(s, Qt::CaseInsensitive);
bool in_albumartist = album_item.data(Role_AlbumArtist).toString().contains(s, Qt::CaseInsensitive);
@@ -590,7 +591,7 @@ bool AlbumCoverManager::eventFilter(QObject *obj, QEvent *e) {
bool some_unset = false;
bool some_clear = false;
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
if (ItemHasCover(*album_item)) some_with_covers = true;
if (album_item->data(Role_ArtUnset).toBool()) {
@@ -672,7 +673,7 @@ void AlbumCoverManager::ShowCover() {
void AlbumCoverManager::FetchSingleCover() {
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
quint64 id = cover_fetcher_->FetchAlbumCover(album_item->data(Role_AlbumArtist).toString(), album_item->data(Role_Album).toString(), QString(), false);
cover_fetching_tasks_[id] = album_item;
@@ -713,7 +714,7 @@ void AlbumCoverManager::SaveCoverToFile() {
// Load the image from disk
AlbumCoverImageResult result;
for (const AlbumCoverLoaderOptions::Type cover_type : cover_types_) {
for (const AlbumCoverLoaderOptions::Type cover_type : std::as_const(cover_types_)) {
switch (cover_type) {
case AlbumCoverLoaderOptions::Type::Unset:
return;
@@ -793,7 +794,7 @@ void AlbumCoverManager::SaveImageToAlbums(Song *song, const AlbumCoverImageResul
// Force the found cover on all of the selected items
QList<QUrl> urls;
QList<AlbumItem*> album_items;
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
switch (album_cover_choice_controller_->get_save_album_cover_type()) {
case CoverOptions::CoverType::Cache:
@@ -804,7 +805,7 @@ void AlbumCoverManager::SaveImageToAlbums(Song *song, const AlbumCoverImageResul
break;
}
case CoverOptions::CoverType::Embedded:{
for (const QUrl &url : album_item->urls) {
for (const QUrl &url : std::as_const(album_item->urls)) {
const bool art_embedded = !result.image_data.isEmpty();
TagReaderReply *reply = app_->tag_reader_client()->SaveEmbeddedArt(url.toLocalFile(), TagReaderClient::SaveCoverOptions(result.image_data, result.mime_type));
QObject::connect(reply, &TagReaderReply::Finished, this, [this, reply, album_item, url, art_embedded]() {
@@ -826,7 +827,7 @@ void AlbumCoverManager::UnsetCover() {
if (context_menu_items_.isEmpty()) return;
// Force the 'none' cover on all of the selected items
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
album_item->setIcon(icon_nocover_item_);
album_item->setData(Role_ArtEmbedded, false);
@@ -845,7 +846,7 @@ void AlbumCoverManager::ClearCover() {
if (context_menu_items_.isEmpty()) return;
// Force the 'none' cover on all of the selected items
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
album_item->setIcon(icon_nocover_item_);
album_item->setData(Role_ArtEmbedded, false);
@@ -861,7 +862,7 @@ void AlbumCoverManager::ClearCover() {
void AlbumCoverManager::DeleteCover() {
for (QListWidgetItem *list_widget_item : context_menu_items_) {
for (QListWidgetItem *list_widget_item : std::as_const(context_menu_items_)) {
AlbumItem *album_item = static_cast<AlbumItem*>(list_widget_item);
Song song = AlbumItemAsSong(album_item);
album_cover_choice_controller_->DeleteCover(&song);

View File

@@ -20,6 +20,7 @@
#include "config.h"
#include <algorithm>
#include <utility>
#include <QtGlobal>
#include <QObject>
@@ -214,7 +215,7 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
QMap<QUrl, CoverProviderSearchResult> results;
int i = 0;
for (const QJsonValueRef json_value : array_data) {
for (const QJsonValue &json_value : std::as_const(array_data)) {
if (!json_value.isObject()) {
Error(QStringLiteral("Invalid Json reply, data array value is not a object."));
@@ -272,8 +273,8 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
cover_result.album = Song::AlbumRemoveDiscMisc(album);
bool have_cover = false;
QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("cover_xl"), QSize(1000, 1000))
<< qMakePair(QStringLiteral("cover_big"), QSize(500, 500));
const QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("cover_xl"), QSize(1000, 1000))
<< qMakePair(QStringLiteral("cover_big"), QSize(500, 500));
for (const QPair<QString, QSize> &cover_size : cover_sizes) {
if (!obj_album.contains(cover_size.first)) continue;
QString cover = obj_album[cover_size.first].toString();

View File

@@ -146,9 +146,9 @@ void DiscogsCoverProvider::SendSearchRequest(SharedPtr<DiscogsCoverSearchContext
QNetworkReply *DiscogsCoverProvider::CreateRequest(QUrl url, const ParamList &params_provided) {
ParamList params = ParamList() << Param(QStringLiteral("key"), QString::fromLatin1(QByteArray::fromBase64(kAccessKeyB64)))
<< Param(QStringLiteral("secret"), QString::fromLatin1(QByteArray::fromBase64(kSecretKeyB64)))
<< params_provided;
const ParamList params = ParamList() << Param(QStringLiteral("key"), QString::fromLatin1(QByteArray::fromBase64(kAccessKeyB64)))
<< Param(QStringLiteral("secret"), QString::fromLatin1(QByteArray::fromBase64(kSecretKeyB64)))
<< params_provided;
QUrlQuery url_query;
QStringList query_items;
@@ -266,8 +266,8 @@ void DiscogsCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
return;
}
QJsonArray array_results = value_results.toArray();
for (QJsonValueRef value_result : array_results) {
const QJsonArray array_results = value_results.toArray();
for (const QJsonValue &value_result : array_results) {
if (!value_result.isObject()) {
Error(QStringLiteral("Invalid Json reply, results value is not a object."));
@@ -371,10 +371,10 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
EndSearch(search, release.id);
return;
}
QJsonArray array_artists = value_artists.toArray();
const QJsonArray array_artists = value_artists.toArray();
int i = 0;
QString artist;
for (const QJsonValueRef value_artist : array_artists) {
for (const QJsonValue &value_artist : array_artists) {
if (!value_artist.isObject()) {
Error(QStringLiteral("Invalid Json reply, atists array value is not a object."));
continue;
@@ -407,7 +407,7 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
EndSearch(search, release.id);
return;
}
QJsonArray array_images = value_images.toArray();
const QJsonArray array_images = value_images.toArray();
if (array_images.isEmpty()) {
Error(QStringLiteral("Invalid Json reply, images array is empty."));
@@ -415,7 +415,7 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
return;
}
for (const QJsonValueRef value_image : array_images) {
for (const QJsonValue &value_image : array_images) {
if (!value_image.isObject()) {
Error(QStringLiteral("Invalid Json reply, images array value is not an object."));

View File

@@ -20,6 +20,7 @@
#include "config.h"
#include <algorithm>
#include <utility>
#include <QObject>
#include <QLocale>
@@ -97,7 +98,7 @@ bool LastFmCoverProvider::StartSearch(const QString &artist, const QString &albu
QUrlQuery url_query;
QString data_to_sign;
for (const Param &param : params) {
for (const Param &param : std::as_const(params)) {
url_query.addQueryItem(QString::fromLatin1(QUrl::toPercentEncoding(param.first)), QString::fromLatin1(QUrl::toPercentEncoding(param.second)));
data_to_sign += param.first + param.second;
}
@@ -221,9 +222,9 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
emit SearchFinished(id, results);
return;
}
QJsonArray array_type = value_type.toArray();
const QJsonArray array_type = value_type.toArray();
for (const QJsonValueRef value : array_type) {
for (const QJsonValue &value : array_type) {
if (!value.isObject()) {
Error(QStringLiteral("Invalid Json reply, value in albummatches/trackmatches array is not a object."));
@@ -245,10 +246,10 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
Error(QStringLiteral("Invalid Json reply, album image is not a array."), json_image);
continue;
}
QJsonArray array_image = json_image.toArray();
const QJsonArray array_image = json_image.toArray();
QString image_url_use;
LastFmImageSize image_size_use(LastFmImageSize::Unknown);
for (const QJsonValueRef value_image : array_image) {
LastFmImageSize image_size_use = LastFmImageSize::Unknown;
for (const QJsonValue value_image : array_image) {
if (!value_image.isObject()) {
Error(QStringLiteral("Invalid Json reply, album image value is not an object."));
continue;

View File

@@ -158,14 +158,14 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
emit SearchFinished(search_id, results);
return;
}
QJsonArray array_releases = value_releases.toArray();
const QJsonArray array_releases = value_releases.toArray();
if (array_releases.isEmpty()) {
emit SearchFinished(search_id, results);
return;
}
for (const QJsonValueRef value_release : array_releases) {
for (const QJsonValue &value_release : array_releases) {
if (!value_release.isObject()) {
Error(QStringLiteral("Invalid Json reply, releases array value is not an object."));
@@ -182,10 +182,10 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
Error(QStringLiteral("Invalid Json reply, artist-credit is not a array."), json_artists);
continue;
}
QJsonArray array_artists = json_artists.toArray();
const QJsonArray array_artists = json_artists.toArray();
int i = 0;
QString artist;
for (const QJsonValueRef value_artist : array_artists) {
for (const QJsonValue value_artist : array_artists) {
if (!value_artist.isObject()) {
Error(QStringLiteral("Invalid Json reply, artist is not a object."));
continue;

View File

@@ -209,9 +209,9 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
return;
}
QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("coverImage800x800"), QSize(800, 800))
<< qMakePair(QStringLiteral("coverImage500x500"), QSize(500, 500))
<< qMakePair(QStringLiteral("coverImage350x350"), QSize(350, 350));
const QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("coverImage800x800"), QSize(800, 800))
<< qMakePair(QStringLiteral("coverImage500x500"), QSize(500, 500))
<< qMakePair(QStringLiteral("coverImage350x350"), QSize(350, 350));
for (const QPair<QString, QSize> &cover_size : cover_sizes) {
if (!obj_data.contains(cover_size.first)) continue;

View File

@@ -19,6 +19,8 @@
#include "config.h"
#include <utility>
#include <QtGlobal>
#include <QObject>
#include <QList>
@@ -284,7 +286,7 @@ QJsonObject OpenTidalCoverProvider::GetJsonObject(QNetworkReply *reply) {
}
QJsonObject json_obj = ExtractJsonObj(data);
if (json_obj.contains(QLatin1String("errors")) && json_obj[QLatin1String("errors")].isArray()) {
QJsonArray array = json_obj[QLatin1String("errors")].toArray();
const QJsonArray array = json_obj[QLatin1String("errors")].toArray();
for (const QJsonValue &value : array) {
if (!value.isObject()) continue;
QJsonObject obj = value.toObject();
@@ -367,7 +369,7 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
return;
}
QJsonArray array_albums = json_obj[QLatin1String("albums")].toArray();
const QJsonArray array_albums = json_obj[QLatin1String("albums")].toArray();
if (array_albums.isEmpty()) {
emit SearchFinished(search_request->id, CoverProviderSearchResults());
return;
@@ -375,7 +377,7 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
CoverProviderSearchResults results;
int i = 0;
for (const QJsonValueRef value_album : array_albums) {
for (const QJsonValue &value_album : array_albums) {
if (!value_album.isObject()) {
qLog(Debug) << "OpenTidal: Invalid Json reply: Albums array value is not a object.";
@@ -407,8 +409,8 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
QString artist;
const QString album = obj_resource[QLatin1String("title")].toString();
QJsonArray array_artists = obj_resource[QLatin1String("artists")].toArray();
for (const QJsonValueRef value_artist : array_artists) {
const QJsonArray array_artists = obj_resource[QLatin1String("artists")].toArray();
for (const QJsonValue &value_artist : array_artists) {
if (!value_artist.isObject()) {
continue;
}
@@ -420,8 +422,8 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
break;
}
QJsonArray array_covers = obj_resource[QLatin1String("imageCover")].toArray();
for (const QJsonValueRef value_cover : array_covers) {
const QJsonArray array_covers = obj_resource[QLatin1String("imageCover")].toArray();
for (const QJsonValue &value_cover : array_covers) {
if (!value_cover.isObject()) {
continue;
}

View File

@@ -20,6 +20,7 @@
#include "config.h"
#include <algorithm>
#include <utility>
#include <QtGlobal>
#include <QObject>
@@ -91,7 +92,7 @@ bool QobuzCoverProvider::StartSearch(const QString &artist, const QString &album
std::sort(params.begin(), params.end());
QUrlQuery url_query;
for (const Param &param : params) {
for (const Param &param : std::as_const(params)) {
url_query.addQueryItem(QString::fromLatin1(QUrl::toPercentEncoding(param.first)), QString::fromLatin1(QUrl::toPercentEncoding(param.second)));
}
@@ -209,9 +210,9 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
emit SearchFinished(id, results);
return;
}
QJsonArray array_items = value_items.toArray();
const QJsonArray array_items = value_items.toArray();
for (const QJsonValueRef value : array_items) {
for (const QJsonValue &value : array_items) {
if (!value.isObject()) {
Error(QStringLiteral("Invalid Json reply, value in items is not a object."));

View File

@@ -96,9 +96,9 @@ bool SpotifyCoverProvider::StartSearch(const QString &artist, const QString &alb
}
}
ParamList params = ParamList() << Param(QStringLiteral("q"), query)
<< Param(QStringLiteral("type"), type)
<< Param(QStringLiteral("limit"), QString::number(kLimit));
const ParamList params = ParamList() << Param(QStringLiteral("q"), query)
<< Param(QStringLiteral("type"), type)
<< Param(QStringLiteral("limit"), QString::number(kLimit));
QUrlQuery url_query;
for (const Param &param : params) {
@@ -201,14 +201,14 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
return;
}
QJsonArray array_items = json_obj[QLatin1String("items")].toArray();
const QJsonArray array_items = json_obj[QLatin1String("items")].toArray();
if (array_items.isEmpty()) {
emit SearchFinished(id, CoverProviderSearchResults());
return;
}
CoverProviderSearchResults results;
for (const QJsonValueRef value_item : array_items) {
for (const QJsonValue &value_item : array_items) {
if (!value_item.isObject()) {
continue;
@@ -223,19 +223,19 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
if (!obj_album.contains(QLatin1String("artists")) || !obj_album.contains(QLatin1String("name")) || !obj_album.contains(QLatin1String("images")) || !obj_album[QLatin1String("artists")].isArray() || !obj_album[QLatin1String("images")].isArray()) {
continue;
}
QJsonArray array_artists = obj_album[QLatin1String("artists")].toArray();
QJsonArray array_images = obj_album[QLatin1String("images")].toArray();
const QJsonArray array_artists = obj_album[QLatin1String("artists")].toArray();
const QJsonArray array_images = obj_album[QLatin1String("images")].toArray();
QString album = obj_album[QLatin1String("name")].toString();
QStringList artists;
for (const QJsonValueRef value_artist : array_artists) {
for (const QJsonValue &value_artist : array_artists) {
if (!value_artist.isObject()) continue;
QJsonObject obj_artist = value_artist.toObject();
if (!obj_artist.contains(QLatin1String("name"))) continue;
artists << obj_artist[QLatin1String("name")].toString();
}
for (const QJsonValueRef value_image : array_images) {
for (const QJsonValue &value_image : array_images) {
if (!value_image.isObject()) continue;
QJsonObject obj_image = value_image.toObject();
if (!obj_image.contains(QLatin1String("url")) || !obj_image.contains(QLatin1String("width")) || !obj_image.contains(QLatin1String("height"))) continue;

View File

@@ -85,9 +85,9 @@ bool TidalCoverProvider::StartSearch(const QString &artist, const QString &album
}
}
ParamList params = ParamList() << Param(QStringLiteral("query"), query)
<< Param(QStringLiteral("limit"), QString::number(kLimit))
<< Param(QStringLiteral("countryCode"), service_->country_code());
const ParamList params = ParamList() << Param(QStringLiteral("query"), query)
<< Param(QStringLiteral("limit"), QString::number(kLimit))
<< Param(QStringLiteral("countryCode"), service_->country_code());
QUrlQuery url_query;
for (const Param &param : params) {
@@ -191,7 +191,7 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
emit SearchFinished(id, CoverProviderSearchResults());
return;
}
QJsonArray array_items = value_items.toArray();
const QJsonArray array_items = value_items.toArray();
if (array_items.isEmpty()) {
emit SearchFinished(id, CoverProviderSearchResults());
return;
@@ -199,7 +199,7 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
CoverProviderSearchResults results;
int i = 0;
for (const QJsonValueRef value_item : array_items) {
for (const QJsonValue &value_item : array_items) {
if (!value_item.isObject()) {
Error(QStringLiteral("Invalid Json reply, items array item is not a object."));
@@ -250,9 +250,9 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
cover_result.album = Song::AlbumRemoveDiscMisc(album);
cover_result.number = ++i;
QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("1280x1280"), QSize(1280, 1280))
<< qMakePair(QStringLiteral("750x750"), QSize(750, 750))
<< qMakePair(QStringLiteral("640x640"), QSize(640, 640));
const QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QStringLiteral("1280x1280"), QSize(1280, 1280))
<< qMakePair(QStringLiteral("750x750"), QSize(750, 750))
<< qMakePair(QStringLiteral("640x640"), QSize(640, 640));
for (const QPair<QString, QSize> &cover_size : cover_sizes) {
QUrl cover_url(QStringLiteral("%1/images/%2/%3.jpg").arg(QLatin1String(TidalService::kResourcesUrl), cover).arg(cover_size.first));
cover_result.image_url = cover_url;