Use const reference for AlbumCoverLoaderResult

This commit is contained in:
Jonas Kvinge
2023-04-09 22:26:17 +02:00
parent f8d2c7eba3
commit 2f17647cd3
37 changed files with 242 additions and 309 deletions

View File

@@ -21,8 +21,6 @@
#include "config.h"
#include <memory>
#include <QWidget>
#include <QDialog>
#include <QStandardItemModel>
@@ -159,7 +157,7 @@ void AlbumCoverSearcher::Init(AlbumCoverFetcher *fetcher) {
}
AlbumCoverImageResultPtr AlbumCoverSearcher::Exec(const QString &artist, const QString &album) {
AlbumCoverImageResult AlbumCoverSearcher::Exec(const QString &artist, const QString &album) {
ui_->artist->setText(artist);
ui_->album->setText(album);
@@ -169,16 +167,16 @@ AlbumCoverImageResultPtr AlbumCoverSearcher::Exec(const QString &artist, const Q
Search();
}
if (exec() == QDialog::Rejected) return AlbumCoverImageResultPtr();
if (exec() == QDialog::Rejected) return AlbumCoverImageResult();
QModelIndex selected = ui_->covers->currentIndex();
if (!selected.isValid() || !selected.data(Role_ImageFetchFinished).toBool())
return AlbumCoverImageResultPtr();
return AlbumCoverImageResult();
AlbumCoverImageResultPtr result = std::make_shared<AlbumCoverImageResult>();
result->image_data = selected.data(Role_ImageData).toByteArray();
result->image = selected.data(Role_Image).value<QImage>();
result->mime_type = Utilities::MimeTypeFromData(result->image_data);
AlbumCoverImageResult result;
result.image_data = selected.data(Role_ImageData).toByteArray();
result.image = selected.data(Role_Image).value<QImage>();
result.mime_type = Utilities::MimeTypeFromData(result.image_data);
return result;
@@ -244,19 +242,19 @@ void AlbumCoverSearcher::SearchFinished(const quint64 id, const CoverProviderSea
}
void AlbumCoverSearcher::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderResultPtr result) {
void AlbumCoverSearcher::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderResult &result) {
if (!cover_loading_tasks_.contains(id)) return;
QStandardItem *item = cover_loading_tasks_.take(id);
if (cover_loading_tasks_.isEmpty()) ui_->busy->hide();
if (!result || !result->success || result->album_cover->image_data == nullptr || result->album_cover->image_data.isNull() || result->album_cover->image.isNull() || result->image_thumbnail.isNull()) {
if (!result.success || result.album_cover.image_data.isNull() || result.album_cover.image.isNull() || result.image_thumbnail.isNull()) {
model_->removeRow(item->row());
return;
}
const QPixmap pixmap = QPixmap::fromImage(result->image_thumbnail);
const QPixmap pixmap = QPixmap::fromImage(result.image_thumbnail);
if (pixmap.isNull()) {
model_->removeRow(item->row());
return;
@@ -265,10 +263,10 @@ void AlbumCoverSearcher::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoad
const QIcon icon(pixmap);
item->setData(true, Role_ImageFetchFinished);
item->setData(result->album_cover->image_data, Role_ImageData);
item->setData(result->album_cover->image, Role_Image);
item->setData(result->album_cover->image.width() * result->album_cover->image.height(), Role_ImageDimensions);
item->setData(result->album_cover->image.size(), Role_ImageSize);
item->setData(result.album_cover.image_data, Role_ImageData);
item->setData(result.album_cover.image, Role_Image);
item->setData(result.album_cover.image.width() * result.album_cover.image.height(), Role_ImageDimensions);
item->setData(result.album_cover.image.size(), Role_ImageSize);
if (!icon.isNull()) item->setIcon(icon);
}