From 3dbd79585052bd9e8c8d6835877894afcabf6c3f Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Thu, 13 Nov 2014 02:43:13 +0100 Subject: [PATCH] Fix dupes if you add a collection subfolder to your collection again --- src/libtomahawk/filemetadata/MusicScanner.cpp | 9 +++++++++ src/libtomahawk/filemetadata/MusicScanner.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/libtomahawk/filemetadata/MusicScanner.cpp b/src/libtomahawk/filemetadata/MusicScanner.cpp index eaed4907d..96c78fde0 100644 --- a/src/libtomahawk/filemetadata/MusicScanner.cpp +++ b/src/libtomahawk/filemetadata/MusicScanner.cpp @@ -286,6 +286,8 @@ MusicScanner::postOps() m_filesToDelete.clear(); } + m_processedFiles.clear(); + if ( !m_cmdQueue ) cleanup(); } @@ -348,6 +350,13 @@ MusicScanner::commandFinished() void MusicScanner::scanFile( const QFileInfo& fi ) { + // Don't process a single file twice, this might happen if you add a subfolder of another collection folder to your collection + if ( m_processedFiles.contains( fi.canonicalFilePath() ) ) + return; + else + m_processedFiles << fi.canonicalFilePath(); + + if ( m_filemtimes.contains( "file://" + fi.canonicalFilePath() ) ) { if ( !m_filemtimes.value( "file://" + fi.canonicalFilePath() ).values().isEmpty() && diff --git a/src/libtomahawk/filemetadata/MusicScanner.h b/src/libtomahawk/filemetadata/MusicScanner.h index bfd48729a..160ffef88 100644 --- a/src/libtomahawk/filemetadata/MusicScanner.h +++ b/src/libtomahawk/filemetadata/MusicScanner.h @@ -158,6 +158,7 @@ private: unsigned int m_cmdQueue; + QSet< QString > m_processedFiles; QVariantList m_scannedfiles; QVariantList m_filesToDelete; quint32 m_batchsize;