MCPcopy Create free account
hub / github.com/ModOrganizer2/modorganizer / refreshList

Method refreshList

src/downloadmanager.cpp:330–441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330void DownloadManager::refreshList()
331{
332 TimeThis tt("DownloadManager::refreshList()");
333
334 try {
335 // avoid triggering other refreshes
336 ScopedDisableDirWatcher scopedDirWatcher(this);
337
338 int downloadsBefore = m_ActiveDownloads.size();
339
340 // remove finished downloads
341 for (QVector<DownloadInfo*>::iterator iter = m_ActiveDownloads.begin();
342 iter != m_ActiveDownloads.end();) {
343 if (((*iter)->m_State == STATE_READY) || ((*iter)->m_State == STATE_INSTALLED) ||
344 ((*iter)->m_State == STATE_UNINSTALLED)) {
345 delete *iter;
346 iter = m_ActiveDownloads.erase(iter);
347 } else {
348 ++iter;
349 }
350 }
351
352 const QStringList supportedExtensions =
353 m_OrganizerCore->installationManager()->getSupportedExtensions();
354 std::vector<std::wstring> nameFilters;
355 for (const auto& extension : supportedExtensions) {
356 nameFilters.push_back(L"." + extension.toLower().toStdWString());
357 }
358
359 nameFilters.push_back(QString(UNFINISHED).toLower().toStdWString());
360
361 QDir dir(QDir::fromNativeSeparators(m_OutputDirectory));
362
363 // find orphaned meta files and delete them (sounds cruel but it's better for
364 // everyone)
365 QStringList orphans;
366 QStringList metaFiles = dir.entryList(QStringList() << "*.meta");
367 foreach (const QString& metaFile, metaFiles) {
368 QString baseFile = metaFile.left(metaFile.length() - 5);
369 if (!QFile::exists(dir.absoluteFilePath(baseFile))) {
370 orphans.append(dir.absoluteFilePath(metaFile));
371 }
372 }
373 if (orphans.size() > 0) {
374 log::debug("{} orphaned meta files will be deleted", orphans.size());
375 shellDelete(orphans, true);
376 }
377
378 std::set<std::wstring> seen;
379
380 struct Context
381 {
382 DownloadManager& self;
383 std::set<std::wstring>& seen;
384 std::vector<std::wstring>& extensions;
385 };
386
387 Context cx = {*this, seen, nameFilters};

Callers 2

updateMethod · 0.80
refreshMethod · 0.80

Calls 10

QStringClass · 0.85
forEachEntryFunction · 0.85
ToLowerCopyFunction · 0.85
installationManagerMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected