⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qresource.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
QStringList QResourceInfo::children() const{    if(!container || related.isEmpty())        return QStringList();    if(!hasChildren) {        hasChildren = true;        QString path = searchFile;        if(path.startsWith(QLatin1Char(':')))            path = path.mid(1);        QSet<QString> kids;        for(int i = 0; i < related.size(); ++i) {            QStringList related_children = related.at(i).children(path);            for(int kid = 0; kid < related_children.size(); ++kid) {                QString k = related_children.at(kid);                if(!kids.contains(k)) {                    mChildren += k;                    kids.insert(k);                }            }        }    }    return mChildren;}Q_CORE_EXPORT bool qRegisterResourceData(int version, const unsigned char *tree,                                         const unsigned char *name, const unsigned char *data){    if(version == 0x01 && resourceList()) {        QResource res(tree, name, data);        if (!resourceList()->contains(res))            resourceList()->append(res);        return true;    }    return false;}Q_CORE_EXPORT bool qUnregisterResourceData(int version, const unsigned char *tree,                                           const unsigned char *name, const unsigned char *data){    if(version == 0x01 && resourceList()) {        QResource res(tree, name, data);        for(int i = 0; i < resourceList()->size(); ) {            if(resourceList()->at(i) == res)                resourceList()->remove(i);            else                ++i;        }        return true;    }    return false;}//file type handlerclass QResourceFileEngineHandler : public QAbstractFileEngineHandler{public:    QResourceFileEngineHandler() { }    ~QResourceFileEngineHandler() { }    QAbstractFileEngine *create(const QString &path) const;};QAbstractFileEngine *QResourceFileEngineHandler::create(const QString &path) const{    if (path.size() > 0 && path.startsWith(QLatin1Char(':')))        return new QResourceFileEngine(path);    return 0;}//resource engineclass QResourceFileEnginePrivate : public QAbstractFileEnginePrivate{protected:    Q_DECLARE_PUBLIC(QResourceFileEngine)private:    qint64 offset;    QResourceInfo resource;protected:    QResourceFileEnginePrivate() : offset(0) { }};bool QResourceFileEngine::mkdir(const QString &, bool) const{    return false;}bool QResourceFileEngine::rmdir(const QString &, bool) const{    return false;}bool QResourceFileEngine::setSize(qint64){    return false;}QStringList QResourceFileEngine::entryList(QDir::Filters filters, const QStringList &filterNames) const{    Q_D(const QResourceFileEngine);    const bool doDirs     = (filters & QDir::Dirs) != 0;    const bool doFiles    = (filters & QDir::Files) != 0;    const bool doReadable = (filters & QDir::Readable) != 0;    QStringList ret;    if((!doDirs && !doFiles) || ((filters & QDir::PermissionMask) && !doReadable))        return ret;    if(!d->resource.exists() || !d->resource.isContainer())        return ret; // cannot read the "directory"    QStringList entries = d->resource.children();    for(int i = 0; i < entries.size(); i++) {        QResourceInfo entry(d->resource.fileName() + "/" + entries[i]);#ifndef QT_NO_REGEXP        if(!(filters & QDir::AllDirs && entry.isContainer())) {            bool matched = false;            for(QStringList::ConstIterator sit = filterNames.begin(); sit != filterNames.end(); ++sit) {                QRegExp rx(*sit,                           (filters & QDir::CaseSensitive) ? Qt::CaseSensitive : Qt::CaseInsensitive,                           QRegExp::Wildcard);                if (rx.exactMatch(entries[i])) {                    matched = true;                    break;                }            }            if(!matched)                continue;        }#endif        if  ((doDirs && entry.isContainer()) ||             (doFiles && !entry.isContainer()))            ret.append(entries[i]);    }    return ret;}bool QResourceFileEngine::caseSensitive() const{    return true;}QResourceFileEngine::QResourceFileEngine(const QString &file) :    QAbstractFileEngine(*new QResourceFileEnginePrivate){    Q_D(QResourceFileEngine);    d->resource.setFileName(file);}QResourceFileEngine::~QResourceFileEngine(){}void QResourceFileEngine::setFileName(const QString &file){    Q_D(QResourceFileEngine);    d->resource.setFileName(file);}bool QResourceFileEngine::open(QIODevice::OpenMode flags){    Q_D(QResourceFileEngine);    if (d->resource.fileName().isEmpty()) {        qWarning("QFSFileEngine::open: No file name specified");        return false;    }    if(flags & QIODevice::WriteOnly)        return false;    if(!d->resource.exists())       return false;    return true;}bool QResourceFileEngine::close(){    Q_D(QResourceFileEngine);    d->offset = 0;    return true;}bool QResourceFileEngine::flush(){    return false;}qint64 QResourceFileEngine::read(char *data, qint64 len){    Q_D(QResourceFileEngine);    if(len > d->resource.data().size()-d->offset)        len = d->resource.data().size()-d->offset;    if(len <= 0)        return 0;    memcpy(data, d->resource.data().constData()+d->offset, len);    d->offset += len;    return len;}qint64 QResourceFileEngine::write(const char *, qint64){    return -1;}bool QResourceFileEngine::remove(){    return false;}bool QResourceFileEngine::copy(const QString &){    return false;}bool QResourceFileEngine::rename(const QString &){    return false;}bool QResourceFileEngine::link(const QString &){    return false;}qint64 QResourceFileEngine::size() const{    Q_D(const QResourceFileEngine);    if(!d->resource.exists())        return 0;    return d->resource.data().size();}qint64 QResourceFileEngine::pos() const{    Q_D(const QResourceFileEngine);    return d->offset;}bool QResourceFileEngine::atEnd() const{    Q_D(const QResourceFileEngine);    if(!d->resource.exists())        return true;    return d->offset == d->resource.data().size();}bool QResourceFileEngine::seek(qint64 pos){    Q_D(QResourceFileEngine);    if(!d->resource.exists())        return false;    if(d->offset > d->resource.data().size())        return false;    d->offset = pos;    return true;}bool QResourceFileEngine::isSequential() const{    return false;}QAbstractFileEngine::FileFlags QResourceFileEngine::fileFlags(QAbstractFileEngine::FileFlags type) const{    Q_D(const QResourceFileEngine);    QAbstractFileEngine::FileFlags ret = 0;    if(!d->resource.exists())        return ret;    if(type & PermsMask)        ret |= QAbstractFileEngine::FileFlags(ReadOwnerPerm|ReadUserPerm|ReadGroupPerm|ReadOtherPerm);    if(type & TypesMask) {        if(d->resource.isContainer())            ret |= DirectoryType;        else            ret |= FileType;    }    if(type & FlagsMask) {        ret |= ExistsFlag;        if(d->resource.fileName() == QLatin1String(":/"))            ret |= RootFlag;    }    return ret;}bool QResourceFileEngine::setPermissions(uint){    return false;}QString QResourceFileEngine::fileName(FileName file) const{    Q_D(const QResourceFileEngine);    if(file == BaseName) {	int slash = d->resource.fileName().lastIndexOf(QLatin1Char('/'));	if (slash == -1)	    return d->resource.fileName();	return d->resource.fileName().mid(slash + 1);    } else if(file == PathName || file == AbsolutePathName) {	const int slash = d->resource.fileName().lastIndexOf(QLatin1Char('/'));	if (slash != -1)	    return d->resource.fileName().left(slash);    } else if(file == CanonicalName || file == CanonicalPathName) {        const QString canonicalPath = d->resource.searchFileName();        if(file == CanonicalPathName) {            const int slash = canonicalPath.lastIndexOf(QLatin1Char('/'));            if (slash != -1)                return canonicalPath.left(slash);        }        return canonicalPath;    }    return d->resource.fileName();}bool QResourceFileEngine::isRelativePath() const{    return false;}uint QResourceFileEngine::ownerId(FileOwner) const{    static const uint nobodyID = (uint) -2;    return nobodyID;}QString QResourceFileEngine::owner(FileOwner) const{    return QString();}QDateTime QResourceFileEngine::fileTime(FileTime) const{    return QDateTime();}bool QResourceFileEngine::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output){    Q_UNUSED(extension);    Q_UNUSED(option);    Q_UNUSED(output);    return false;}bool QResourceFileEngine::supportsExtension(Extension extension) const{    Q_UNUSED(extension);    return false;}//Initialization and cleanupQ_GLOBAL_STATIC(QResourceFileEngineHandler, resource_file_handler)static int qt_force_resource_init() { resource_file_handler(); return 1; }Q_CORE_EXPORT void qInitResourceIO() { resource_file_handler(); }static int qt_forced_resource_init = qt_force_resource_init();Q_CONSTRUCTOR_FUNCTION(qt_force_resource_init)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -