void Client::on(DirectoryListingManagerListener::OpenListing, const DirectoryListingPtr& aList, const string& aDir, const string& aXML) noexcept { if (aList->getPartialList()) { aList->addPartialListTask(aXML, aDir, false); } else { aList->addFullListTask(aDir); } }
void DirectoryListingManager::on(QueueManagerListener::ItemFinished, const QueueItemPtr& qi, const string& dir, const HintedUser& aUser, int64_t /*aSpeed*/) noexcept { if (!qi->isSet(QueueItem::FLAG_CLIENT_VIEW) || !qi->isSet(QueueItem::FLAG_USER_LIST)) return; DirectoryListingPtr dl; { RLock l(cs); auto p = viewedLists.find(aUser.user); if (p == viewedLists.end()) { return; } dl = p->second; } if (dl) { dl->setFileName(qi->getListName()); if (dl->hasCompletedDownloads()) { dl->addFullListTask(dir); } else { fire(DirectoryListingManagerListener::OpenListing(), dl, dir, Util::emptyString); } } }