void RemoteFileInfoGatherer::driveRemoved() { QStringList drives; const QFileInfoList driveInfoList = QDir::drives(); for (const QFileInfo &fi : driveInfoList) drives.append(translateDriveName(fi)); newListOfFiles(QString(), drives); }
/* Get specific file info's, batch the files so update when we have 100 items and every 200ms after that */ void RemoteFileInfoGatherer::getFileInfos(const QString &path, const QStringList &files) { // List drives if (path.isEmpty()) { #ifdef QT_BUILD_INTERNAL fetchedRoot.store(true); #endif QFileInfoList infoList; if (files.isEmpty()) { infoList = QDir::drives(); } else { infoList.reserve(files.count()); for (const auto &file : files) infoList << QFileInfo(file); } for (int i = infoList.count() - 1; i >= 0; --i) { QString driveName = translateDriveName(infoList.at(i)); QVector<QPair<QString,FileInfo> > updatedFiles; updatedFiles.append(QPair<QString,FileInfo>(driveName, toFileInfo(infoList.at(i)))); emit updates(path, updatedFiles); } return; } QElapsedTimer base; base.start(); QFileInfo fileInfo; bool firstTime = true; QVector<QPair<QString, FileInfo> > updatedFiles; QStringList filesToCheck = files; QStringList allFiles; if (files.isEmpty()) { QDirIterator dirIt(path, QDir::AllEntries | QDir::System | QDir::Hidden); while (!abort.load() && dirIt.hasNext()) { dirIt.next(); fileInfo = dirIt.fileInfo(); allFiles.append(fileInfo.fileName()); fetch(fileInfo, base, firstTime, updatedFiles, path); } } if (!allFiles.isEmpty()) emit newListOfFiles(path, allFiles); QStringList::const_iterator filesIt = filesToCheck.constBegin(); while (!abort.load() && filesIt != filesToCheck.constEnd()) { fileInfo.setFile(path + QDir::separator() + *filesIt); ++filesIt; fetch(fileInfo, base, firstTime, updatedFiles, path); } if (!updatedFiles.isEmpty()) emit updates(path, updatedFiles); emit directoryLoaded(path); }
int QFileInfoGatherer::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QThread::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: updates((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QList<QPair<QString,QFileInfo> >(*)>(_a[2]))); break; case 1: newListOfFiles((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QStringList(*)>(_a[2]))); break; case 2: nameResolved((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; case 3: list((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 4: fetchExtendedInformation((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QStringList(*)>(_a[2]))); break; case 5: updateFile((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 6: setResolveSymlinks((*reinterpret_cast< bool(*)>(_a[1]))); break; case 7: { bool _r = resolveSymlinks(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 8: setIconProvider((*reinterpret_cast< QFileIconProvider*(*)>(_a[1]))); break; case 9: { QFileIconProvider* _r = iconProvider(); if (_a[0]) *reinterpret_cast< QFileIconProvider**>(_a[0]) = _r; } break; } _id -= 10; } return _id; }