From 08edc492fb38614cfcdb0d96c1dd5e0518d50cee Mon Sep 17 00:00:00 2001 From: RJ Ryan Date: Sat, 25 Oct 2014 22:16:43 -0400 Subject: Avoid doing file I/O in the main thread. --- src/library/coverartcache.cpp | 3 ++- src/library/dao/coverartdao.cpp | 1 - src/library/dao/coverartdao.h | 1 - src/test/coverartcache_test.cpp | 11 +++++------ src/test/coverartdao_test.cpp | 1 - src/widget/wcoverartmenu.cpp | 1 - 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/library/coverartcache.cpp b/src/library/coverartcache.cpp index 32433ff4db..838167a054 100644 --- a/src/library/coverartcache.cpp +++ b/src/library/coverartcache.cpp @@ -236,8 +236,9 @@ CoverArtCache::FutureResult CoverArtCache::searchImage( // Looking for cover stored in track diretory. if (res.img.isNull()) { + QString trackBaseName = QFileInfo(coverInfo.trackLocation).baseName(); res.coverLocation = CoverArtUtils::searchInTrackDirectory( - coverInfo.trackDirectory, coverInfo.trackBaseName, coverInfo.album); + coverInfo.trackDirectory, trackBaseName, coverInfo.album); res.img = CoverArtUtils::maybeResizeImage(QImage(res.coverLocation), kMaxCoverSize); } diff --git a/src/library/dao/coverartdao.cpp b/src/library/dao/coverartdao.cpp index 7be3220a97..d175eecc80 100644 --- a/src/library/dao/coverartdao.cpp +++ b/src/library/dao/coverartdao.cpp @@ -178,7 +178,6 @@ CoverArtDAO::CoverArtInfo CoverArtDAO::getCoverArtInfo(int trackId) { coverInfo.trackDirectory = query.value(3).toString(); QString filename = query.value(4).toString(); coverInfo.trackLocation = query.value(5).toString(); - coverInfo.trackBaseName = QFileInfo(filename).baseName(); return coverInfo; } diff --git a/src/library/dao/coverartdao.h b/src/library/dao/coverartdao.h index ba242c8a42..e006a9d078 100644 --- a/src/library/dao/coverartdao.h +++ b/src/library/dao/coverartdao.h @@ -32,7 +32,6 @@ class CoverArtDAO : public DAO { QString coverLocation; QString hash; QString album; - QString trackBaseName; QString trackDirectory; QString trackLocation; }; diff --git a/src/test/coverartcache_test.cpp b/src/test/coverartcache_test.cpp index 18c5e147b1..c52f465a5e 100644 --- a/src/test/coverartcache_test.cpp +++ b/src/test/coverartcache_test.cpp @@ -134,7 +134,6 @@ TEST_F(CoverArtCacheTest, searchImage) { "", // cInfo.coverLocation "", // cInfo.hash "album_name", // cInfo.album - "track", // cInfo.trackBaseName trackdir, // cInfo.trackDirectory trackdir % "/track.mp3" // cInfo.trackLocation }; @@ -160,7 +159,7 @@ TEST_F(CoverArtCacheTest, searchImage) { EXPECT_EQ(img, res.img); // setting image source and default format - cInfo.trackLocation = trackdir % "/" % cInfo.trackBaseName % ".mp3"; + cInfo.trackLocation = trackdir % "/track.mp3"; img = QImage(kCoverLocationTest); const char* format("jpg"); @@ -199,7 +198,7 @@ TEST_F(CoverArtCacheTest, searchImage) { // saving more covers using the preferred names in the right order QStringList prefCovers; // 1. track_filename.jpg - QString cLoc_filename = QString(trackdir % "/" % cInfo.trackBaseName % "."); + QString cLoc_filename = QString(trackdir % "/track."); cLoc_filename.append(format); EXPECT_TRUE(img.scaled(500,500).save(cLoc_filename, format)); prefCovers << cLoc_filename; @@ -252,17 +251,17 @@ TEST_F(CoverArtCacheTest, searchImage) { // As we are looking for %album%.jpg and %base_track.jpg%, // we need to check if everything works with UTF8 chars. + QString trackBaseName = QString::fromUtf8("track_ðÑöæäî"); const CoverArtDAO::CoverArtInfo cInfoUtf8 = { 2, // cInfo.trackId "", // cInfo.coverLocation "", // cInfo.hash QString::fromUtf8("öæäîðÑ_album"), // cInfo.album - QString::fromUtf8("track_ðÑöæäî"), // cInfo.trackBaseName trackdir, // cInfo.trackDirectory - trackdir % "/" % cInfo.trackBaseName % ".mp3" // cInfo.trackLocation + trackdir % "/" % trackBaseName % ".mp3" // cInfo.trackLocation }; // 1. track_filename.jpg - cLoc_filename = QString(trackdir % "/" % cInfoUtf8.trackBaseName % "."); + cLoc_filename = QString(trackdir % "/" % trackBaseName % "."); cLoc_filename.append(format); EXPECT_TRUE(img.save(cLoc_filename, format)); res = CoverArtCache::searchImage(cInfoUtf8, QSize(0,0), false); diff --git a/src/test/coverartdao_test.cpp b/src/test/coverartdao_test.cpp index d4d03f8b55..ee36b2b014 100644 --- a/src/test/coverartdao_test.cpp +++ b/src/test/coverartdao_test.cpp @@ -263,7 +263,6 @@ TEST_F(CoverArtDAOTest, getCoverArtInfo) { EXPECT_QSTRING_EQ(coverLocation, coverInfo.coverLocation); EXPECT_QSTRING_EQ(coverHash, coverInfo.hash); EXPECT_QSTRING_EQ(album, coverInfo.album); - EXPECT_QSTRING_EQ(file.baseName(), coverInfo.trackBaseName); EXPECT_QSTRING_EQ(file.absolutePath(), coverInfo.trackDirectory); EXPECT_QSTRING_EQ(trackLocation, coverInfo.trackLocation); } diff --git a/src/widget/wcoverartmenu.cpp b/src/widget/wcoverartmenu.cpp index 59d645e735..5af8a7395e 100644 --- a/src/widget/wcoverartmenu.cpp +++ b/src/widget/wcoverartmenu.cpp @@ -124,7 +124,6 @@ void WCoverArtMenu::slotReload() { info.album = m_pTrack->getAlbum(); info.trackDirectory = m_pTrack->getDirectory(); info.trackLocation = m_pTrack->getLocation(); - info.trackBaseName = QFileInfo(m_pTrack->getFilename()).baseName(); CoverArtCache::FutureResult res = pCache->searchImage( info, QSize(0,0), false); QPixmap px; -- cgit v1.2.3