Example #1
0
//! [9]
QObjectXmlModel::AllMetaObjects QObjectXmlModel::allMetaObjects() const
{
    QXmlQuery query(namePool());
    query.bindVariable("root", root());
    query.setQuery("declare variable $root external;"
                   "$root/descendant-or-self::QObject");
    Q_ASSERT(query.isValid());

    QXmlResultItems result;
    query.evaluateTo(&result);
    QXmlItem i(result.next());

    AllMetaObjects objects;
    while (!i.isNull()) {
        const QMetaObject *moo = asQObject(i.toNodeModelIndex())->metaObject();
        while (moo) {
            if (!objects.contains(moo))
                objects.append(moo);
            moo = moo->superClass();
        }
        i = result.next();
    }

    Q_ASSERT(!objects.contains(0));
    return objects;
}
//! [2]
FileTree::FileTree(const QXmlNamePool& pool)
    : QSimpleXmlNodeModel(pool),
      m_filterAllowAll(QDir::AllEntries |
                       QDir::AllDirs |
                       QDir::NoDotAndDotDot |
                       QDir::Hidden),
      m_sortFlags(QDir::Name)
{
    QXmlNamePool np = namePool();
    m_names.resize(7);
    m_names[File]               = QXmlName(np, QLatin1String("file"));
    m_names[Directory]          = QXmlName(np, QLatin1String("directory"));
    m_names[AttributeFileName]  = QXmlName(np, QLatin1String("fileName"));
    m_names[AttributeFilePath]  = QXmlName(np, QLatin1String("filePath"));
    m_names[AttributeSize]      = QXmlName(np, QLatin1String("size"));
    m_names[AttributeMIMEType]  = QXmlName(np, QLatin1String("mimeType"));
    m_names[AttributeSuffix]    = QXmlName(np, QLatin1String("suffix"));
}
Example #3
0
QXmlName QObjectXmlModel::name(const QXmlNodeModelIndex &n) const
{
    switch (toNodeType(n))
    {
    case IsQObject:
        return QXmlName(namePool(), QLatin1String("QObject"));
    case MetaObject:
        return QXmlName(namePool(), QLatin1String("metaObject"));
    case QObjectClassName:
    case MetaObjectClassName:
        return QXmlName(namePool(), QLatin1String("className"));
    case QObjectProperty:
        return QXmlName(namePool(), toMetaProperty(n).name());
    case MetaObjects:
        return QXmlName(namePool(), QLatin1String("metaObjects"));
    case MetaObjectSuperClass:
        return QXmlName(namePool(), QLatin1String("superClass"));
    }

    Q_ASSERT(false);
    return QXmlName();
}