From e6abe486a73928b8ec5bf01acd475d23aec722e0 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 9 Aug 2015 13:04:01 +0200 Subject: added some (currently unused) functionality to dump the list of file mappings from real to virtual location --- src/organizercore.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/organizercore.cpp') diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 50c95f0c..46065937 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1570,3 +1570,43 @@ void OrganizerCore::prepareStart() { storeSettings(); } +std::vector> OrganizerCore::fileMapping() +{ + IPluginGame *game = qApp->property("managed_game").value(); + return fileMapping(game->dataDirectory().absolutePath(), + directoryStructure(), + directoryStructure()); +} + + +std::vector> OrganizerCore::fileMapping( + const QString &dataPath, + const DirectoryEntry *base, + const DirectoryEntry *directoryEntry) +{ + std::vector> result; + + for (FileEntry::Ptr current : directoryEntry->getFiles()) { + bool isArchive = false; + int origin = current->getOrigin(isArchive); + if (isArchive || (origin == 0)) { + continue; + } + + QString fileName = ToQString(current->getRelativePath()); + QString source = ToQString(base->getOriginByID(origin).getPath()) + fileName; + QString target = QDir::toNativeSeparators(dataPath) + fileName; + result.push_back(std::make_pair(source, target)); + } + + // recurse into subdirectories + std::vector::const_iterator current, end; + directoryEntry->getSubDirectories(current, end); + for (; current != end; ++current) { + std::vector> subRes = fileMapping(dataPath, base, *current); + result.insert(result.end(), subRes.begin(), subRes.end()); + } + return result; +} + + -- cgit v1.3.1