Save cover image to file before copying to iPod

Fixes #519
This commit is contained in:
Jonas Kvinge
2020-08-31 18:38:54 +02:00
parent c30ad2819d
commit ab8cd619d5

View File

@@ -34,6 +34,7 @@
#include <QUrl>
#include <QImage>
#include <QtDebug>
#include <QTemporaryFile>
#include "core/logging.h"
#include "core/application.h"
@@ -181,16 +182,26 @@ bool GPodDevice::CopyToStorage(const CopyJob &job) {
bool result = false;
if (!job.metadata_.image().isNull()) {
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
result = itdb_track_set_thumbnails_from_data(track, job.metadata_.image().constBits(), job.metadata_.image().sizeInBytes());
track->has_artwork = 1;
// Workaround, see issue: https://github.com/strawberrymusicplayer/strawberry/issues/519
// result = itdb_track_set_thumbnails_from_data(track, job.metadata_.image().constBits(), job.metadata_.image().sizeInBytes());
QTemporaryFile cover_file;
if (cover_file.open()) {
QImage image = job.metadata_.image();
if (image.save(cover_file.fileName())) {
result = itdb_track_set_thumbnails(track, cover_file.fileName().toLocal8Bit().constData());
if (result) track->has_artwork = 1;
}
cover_file.close();
cover_file.remove();
}
#else
result = itdb_track_set_thumbnails_from_data(track, job.metadata_.image().constBits(), job.metadata_.image().byteCount());
track->has_artwork = 1;
if (result) track->has_artwork = 1;
#endif
}
else if (!job.cover_source_.isEmpty()) {
result = itdb_track_set_thumbnails(track, job.cover_source_.toLocal8Bit().constData());
track->has_artwork = 1;
if (result) track->has_artwork = 1;
}
else {
result = true;