diff -r 0deabf747b8f -r ac57d564efce QTfrontend/util/DataManager.cpp --- a/QTfrontend/util/DataManager.cpp Thu Apr 20 11:22:29 2017 -0400 +++ b/QTfrontend/util/DataManager.cpp Fri Apr 21 17:42:09 2017 +0200 @@ -31,6 +31,7 @@ #include "hwconsts.h" #include "HWApplication.h" #include "sdlkeys.h" +#include "physfs.h" #include "DataManager.h" @@ -61,7 +62,8 @@ QStringList DataManager::entryList( const QString & subDirectory, QDir::Filters filters, - const QStringList & nameFilters + const QStringList & nameFilters, + bool withDLC ) const { QDir tmpDir(QString("physfs://%1").arg(subDirectory)); @@ -69,9 +71,13 @@ // sort case-insensitive QMap sortedFileNames; + QString absolutePath = datadir->absolutePath().toLocal8Bit().data(); foreach ( QString fn, result) { - sortedFileNames.insert(fn.toLower(), fn); + // Filter out DLC entries if desired + QString realDir = PHYSFS_getRealDir(QString(subDirectory + "/" + fn).toLocal8Bit().data()); + if(withDLC || realDir == absolutePath) + sortedFileNames.insert(fn.toLower(), fn); } result = sortedFileNames.values();