示例#1
0
FileInfo RemoteFileInfoGatherer::getInfo(const QString &path)
{
    QFileInfo finfo(path);
    FileInfo info = toFileInfo(finfo);
#if 0
    info.icon = m_iconProvider->icon(path);
    info.displayType = m_iconProvider->type(path);
#endif
#ifndef QT_NO_FILESYSTEMWATCHER
    // ### Not ready to listen all modifications by default
    static const bool watchFiles = qEnvironmentVariableIsSet("QT_FILESYSTEMMODEL_WATCH_FILES");
    if (watchFiles) {
        if (!finfo.exists() && !finfo.isSymLink()) {
            watcher->removePath(finfo.absoluteFilePath());
        } else {
            const QString path = finfo.absoluteFilePath();
            if (!path.isEmpty() && finfo.exists() && finfo.isFile() && finfo.isReadable()
                && !watcher->files().contains(path)) {
                watcher->addPath(path);
            }
        }
    }
#endif

#ifdef Q_OS_WIN
    if (m_resolveSymlinks && info.isSymLink(/* ignoreNtfsSymLinks = */ true)) {
        QFileInfo resolvedInfo(finfo.symLinkTarget());
        resolvedInfo = resolvedInfo.canonicalFilePath();
        if (resolvedInfo.exists()) {
            emit nameResolved(finfo.filePath(), resolvedInfo.fileName());
        }
    }
#endif
    return info;
}
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;
}