diff --git a/autotests/mediaplaylisttest.cpp b/autotests/mediaplaylisttest.cpp --- a/autotests/mediaplaylisttest.cpp +++ b/autotests/mediaplaylisttest.cpp @@ -24,6 +24,8 @@ #include "trackslistener.h" #include "qabstractitemmodeltester.h" +#include "config-upnp-qt.h" + #include #include #include @@ -6708,6 +6710,7 @@ QCOMPARE(newTrackByNameInListSpy.count(), 0); QCOMPARE(newEntryInListSpy.count(), 2); +#if defined KF5FileMetaData_FOUND && KF5FileMetaData_FOUND QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::TitleRole).toString(), QStringLiteral("Title")); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::AlbumRole).toString(), QStringLiteral("Test")); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::ArtistRole).toString(), QStringLiteral("Artist")); @@ -6720,6 +6723,20 @@ QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::TrackNumberRole).toInt(), 1); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::DiscNumberRole).toInt(), 1); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::MilliSecondsDurationRole).toInt(), 1000); +#else + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::TitleRole).toString(), QStringLiteral("test.ogg")); + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::AlbumRole).toString(), QStringLiteral("")); + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::ArtistRole).toString(), QStringLiteral("")); + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::TrackNumberRole).toInt(), -1); + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::DiscNumberRole).toInt(), -1); + QCOMPARE(myPlayList.data(myPlayList.index(0, 0), MediaPlayList::MilliSecondsDurationRole).toInt(), 0); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::TitleRole).toString(), QStringLiteral("test2.ogg")); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::AlbumRole).toString(), QStringLiteral("")); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::ArtistRole).toString(), QStringLiteral("")); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::TrackNumberRole).toInt(), -1); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::DiscNumberRole).toInt(), -1); + QCOMPARE(myPlayList.data(myPlayList.index(1, 0), MediaPlayList::MilliSecondsDurationRole).toInt(), 0); +#endif } void MediaPlayListTest::testEmptyEnqueue() diff --git a/src/abstractfile/abstractfilelisting.cpp b/src/abstractfile/abstractfilelisting.cpp --- a/src/abstractfile/abstractfilelisting.cpp +++ b/src/abstractfile/abstractfilelisting.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #include @@ -248,6 +247,8 @@ emitNewFiles(newFiles); newFiles.clear(); } + } else { + qCDebug(orgKdeElisaIndexer()) << "AbstractFileListing::scanDirectory" << newFilePath << "is not a valid track"; } if (d->mStopRequest == 1) { @@ -376,6 +377,8 @@ { auto newFiles = QList(); + qCDebug(orgKdeElisaIndexer()) << "AbstractFileListing::scanDirectoryTree" << path; + scanDirectory(newFiles, QUrl::fromLocalFile(path)); if (!newFiles.isEmpty() && d->mStopRequest == 0) { @@ -463,6 +466,8 @@ allRemovedFiles.push_back(itFile.key()); } + qCDebug(orgKdeElisaIndexer()) << "AbstractFileListing::checkFilesToRemove" << allRemovedFiles.size(); + if (!allRemovedFiles.isEmpty()) { setWaitEndTrackRemoval(true); Q_EMIT removedTracksList(allRemovedFiles); @@ -484,6 +489,8 @@ return true; } } +#else + Q_UNUSED(localFileName) #endif return false; diff --git a/src/baloo/localbaloofilelisting.cpp b/src/baloo/localbaloofilelisting.cpp --- a/src/baloo/localbaloofilelisting.cpp +++ b/src/baloo/localbaloofilelisting.cpp @@ -350,7 +350,7 @@ if (!scanFileInfo.exists()) { qCDebug(orgKdeElisaBaloo()) << "LocalBalooFileListing::triggerRefreshOfContent" << fileName << "file does not exists"; - return; + continue; } auto itExistingFile = allFiles().find(newFileUrl); diff --git a/src/databaseinterface.cpp b/src/databaseinterface.cpp --- a/src/databaseinterface.cpp +++ b/src/databaseinterface.cpp @@ -5531,9 +5531,12 @@ qulonglong DatabaseInterface::internalInsertTrack(const MusicAudioTrack &oneTrack, const QHash &covers, bool &isInserted) { + qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack trying to insert" << oneTrack; + qulonglong resultId = 0; if (oneTrack.title().isEmpty()) { + qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << oneTrack << "is not inserted"; return resultId; } @@ -5705,6 +5708,7 @@ d->mInsertTrackQuery.bindValue(QStringLiteral(":hasEmbeddedCover"), oneTrack.hasEmbeddedCover()); auto result = execQuery(d->mInsertTrackQuery); + qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::internalInsertTrack" << oneTrack << "is inserted"; if (result && d->mInsertTrackQuery.isActive()) { d->mInsertTrackQuery.finish(); diff --git a/src/file/localfilelisting.cpp b/src/file/localfilelisting.cpp --- a/src/file/localfilelisting.cpp +++ b/src/file/localfilelisting.cpp @@ -19,6 +19,8 @@ #include "musicaudiotrack.h" +#include "abstractfile/indexercommon.h" + #include #include #include @@ -46,13 +48,16 @@ void LocalFileListing::executeInit(QHash allFiles) { + qCDebug(orgKdeElisaIndexer()) << "LocalFileListing::executeInit" << "with" << allFiles.size() << "files"; AbstractFileListing::executeInit(std::move(allFiles)); } void LocalFileListing::triggerRefreshOfContent() { Q_EMIT indexingStarted(); + qCDebug(orgKdeElisaIndexer()) << "LocalFileListing::triggerRefreshOfContent" << allRootPaths(); + AbstractFileListing::triggerRefreshOfContent(); const auto &rootPaths = allRootPaths(); diff --git a/src/filescanner.cpp b/src/filescanner.cpp --- a/src/filescanner.cpp +++ b/src/filescanner.cpp @@ -19,6 +19,8 @@ #include "config-upnp-qt.h" +#include "abstractfile/indexercommon.h" + #if defined KF5FileMetaData_FOUND && KF5FileMetaData_FOUND #include @@ -35,6 +37,7 @@ #endif +#include #include #include @@ -60,15 +63,16 @@ MusicAudioTrack FileScanner::scanOneFile(const QUrl &scanFile, const QMimeDatabase &mimeDatabase) { -#if defined KF5FileMetaData_FOUND && KF5FileMetaData_FOUND MusicAudioTrack newTrack; auto localFileName = scanFile.toLocalFile(); QFileInfo scanFileInfo(localFileName); newTrack.setFileModificationTime(scanFileInfo.fileTime(QFile::FileModificationTime)); newTrack.setResourceURI(scanFile); + newTrack.setRating(0); +#if defined KF5FileMetaData_FOUND && KF5FileMetaData_FOUND const auto &fileMimeType = mimeDatabase.mimeTypeForFile(localFileName); if (!fileMimeType.name().startsWith(QStringLiteral("audio/"))) { return newTrack; @@ -92,23 +96,31 @@ scanProperties(localFileName, newTrack); - return newTrack; + qCDebug(orgKdeElisaIndexer()) << "scanOneFile" << scanFile << "using KFileMetaData" << newTrack; #else - Q_UNUSED(scanFile) Q_UNUSED(mimeDatabase) - return {}; + newTrack.setTitle(scanFileInfo.fileName()); + newTrack.setValid(true); + + qCDebug(orgKdeElisaIndexer()) << "scanOneFile" << scanFile << "no metadata provider" << newTrack; #endif + + return newTrack; } void FileScanner::scanProperties(const Baloo::File &match, MusicAudioTrack &trackData) { #if defined KF5Baloo_FOUND && KF5Baloo_FOUND d->mAllProperties = match.properties(); scanProperties(match.path(), trackData); + + qCDebug(orgKdeElisaIndexer()) << "scanProperties" << match.path() << "using Baloo" << trackData; #else Q_UNUSED(match) Q_UNUSED(trackData) + + qCDebug(orgKdeElisaIndexer()) << "scanProperties" << "no metadata provider" << trackData; #endif } diff --git a/src/musiclistenersmanager.cpp b/src/musiclistenersmanager.cpp --- a/src/musiclistenersmanager.cpp +++ b/src/musiclistenersmanager.cpp @@ -124,6 +124,15 @@ connect(&d->mDatabaseInterface, &DatabaseInterface::cleanedDatabase, this, &MusicListenersManager::cleanedDatabase); +#if defined KF5Baloo_FOUND && KF5Baloo_FOUND + connect(&d->mBalooDetector, &BalooDetector::balooAvailabilityChanged, + this, &MusicListenersManager::balooAvailabilityChanged); +#endif + + qCInfo(orgKdeElisaIndexersManager) << "Local file system indexer is inactive"; + qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is unavailable"; + qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is inactive"; + const auto &localDataPaths = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation); auto databaseFileName = QString(); if (!localDataPaths.isEmpty()) { @@ -159,15 +168,6 @@ connect(&d->mDatabaseInterface, &DatabaseInterface::tracksAdded, this, &MusicListenersManager::increaseImportedTracksCount); - -#if defined KF5Baloo_FOUND && KF5Baloo_FOUND - connect(&d->mBalooDetector, &BalooDetector::balooAvailabilityChanged, - this, &MusicListenersManager::balooAvailabilityChanged); -#endif - - qCInfo(orgKdeElisaIndexersManager) << "Local file system indexer is inactive"; - qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is unavailable"; - qCInfo(orgKdeElisaIndexersManager) << "Baloo indexer is inactive"; } MusicListenersManager::~MusicListenersManager() @@ -306,14 +306,6 @@ if (!d->mBalooIndexerActive && !d->mFileSystemIndexerActive) { testBalooIndexerAvailability(); - } else { - if (d->mBalooIndexerActive) { -#if defined KF5Baloo_FOUND && KF5Baloo_FOUND - QMetaObject::invokeMethod(d->mBalooListener.fileListing(), "init", Qt::QueuedConnection); -#endif - } else if (d->mFileSystemIndexerActive) { - QMetaObject::invokeMethod(d->mFileListener.fileListing(), "init", Qt::QueuedConnection); - } } #if defined UPNPQT_FOUND && UPNPQT_FOUND