本文整理汇总了C++中QXmlNodeModelIndex::isNull方法的典型用法代码示例。如果您正苦于以下问题:C++ QXmlNodeModelIndex::isNull方法的具体用法?C++ QXmlNodeModelIndex::isNull怎么用?C++ QXmlNodeModelIndex::isNull使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QXmlNodeModelIndex
的用法示例。
在下文中一共展示了QXmlNodeModelIndex::isNull方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: constCorrectness
void tst_QXmlNodeModelIndex::constCorrectness() const
{
const QXmlNodeModelIndex index;
/* All these functions should be const. */
index.internalPointer();
index.data();
index.additionalData();
index.isNull();
index.model();
}
示例2: sendFromAxis
void QAbstractXmlReceiver::sendFromAxis(const QXmlNodeModelIndex &node)
{
Q_ASSERT(!node.isNull());
const QXmlNodeModelIndex::Iterator::Ptr it(node.iterate(axis));
QXmlNodeModelIndex next(it->next());
while(!next.isNull())
{
sendAsNode(next);
next = it->next();
}
}
示例3: metaObjectSibling
QXmlNodeModelIndex QObjectXmlModel::metaObjectSibling(const int pos, const QXmlNodeModelIndex &n) const
{
Q_ASSERT(pos == 1 || pos == -1);
Q_ASSERT(!n.isNull());
const int indexOf = m_allMetaObjects.indexOf(static_cast<const QMetaObject *>(n.internalPointer())) + pos;
if (indexOf >= 0 && indexOf < m_allMetaObjects.count())
return createIndex(const_cast<QMetaObject *>(m_allMetaObjects.at(indexOf)), MetaObject);
else
return QXmlNodeModelIndex();
}
示例4: mapToItem
Item AxisStep::mapToItem(const QXmlNodeModelIndex &node,
const DynamicContext::Ptr &context) const
{
Q_ASSERT(!node.isNull());
Q_ASSERT(Item(node).isNode());
Q_ASSERT(Item(node));
Q_UNUSED(context);
if(m_nodeTest->itemMatches(Item(node)))
return Item(node);
else
return Item();
}
示例5: isNull
void tst_QXmlNodeModelIndex::isNull() const
{
/* Check default value. */
{
const QXmlNodeModelIndex index;
QVERIFY(index.isNull());
}
/* Test default value on a temporary object. */
{
QVERIFY(QXmlNodeModelIndex().isNull());
}
}
示例6: hasChildElement
bool XsdInstanceReader::hasChildElement() const
{
const QXmlNodeModelIndex index = m_model.index();
QXmlNodeModelIndex::Iterator::Ptr it = index.model()->iterate(index, QXmlNodeModelIndex::AxisChild);
QXmlNodeModelIndex currentIndex = it->next();
while (!currentIndex.isNull()) {
if (currentIndex.kind() == QXmlNodeModelIndex::Element)
return true;
currentIndex = it->next();
}
return false;
}
示例7: attribute
QHash<QXmlName, QXmlItem> PullBridge::attributeItems()
{
Q_ASSERT(m_current == StartElement);
QHash<QXmlName, QXmlItem> attributes;
QXmlNodeModelIndex::Iterator::Ptr it = m_index.iterate(QXmlNodeModelIndex::AxisAttribute);
QXmlNodeModelIndex index = it->next();
while (!index.isNull()) {
const Item attribute(index);
attributes.insert(index.name(), QXmlItem(index));
index = it->next();
}
return attributes;
}
示例8: text
QString XsdInstanceReader::text() const
{
const QXmlNodeModelIndex index = m_model.index();
QXmlNodeModelIndex::Iterator::Ptr it = index.model()->iterate(index, QXmlNodeModelIndex::AxisChild);
QString result;
QXmlNodeModelIndex currentIndex = it->next();
while (!currentIndex.isNull()) {
if (currentIndex.kind() == QXmlNodeModelIndex::Text) {
result.append(Item(currentIndex).stringValue());
}
currentIndex = it->next();
}
return result;
}
示例9: copyNodeTo
void AccelTree::copyNodeTo(const QXmlNodeModelIndex &node,
QAbstractXmlReceiver *const receiver,
const NodeCopySettings &settings) const
{
/* This code piece can be seen as a customized version of
* QAbstractXmlReceiver::item/sendAsNode(). */
Q_ASSERT(receiver);
Q_ASSERT(!node.isNull());
typedef QHash<QXmlName::PrefixCode, QXmlName::NamespaceCode> Binding;
QStack<Binding> outputted;
switch(node.kind())
{
case QXmlNodeModelIndex::Element:
{
outputted.push(Binding());
/* Add the namespace for our element name. */
const QXmlName elementName(node.name());
receiver->startElement(elementName);
if(!settings.testFlag(InheritNamespaces))
receiver->namespaceBinding(QXmlName(StandardNamespaces::StopNamespaceInheritance, 0,
StandardPrefixes::StopNamespaceInheritance));
if(settings.testFlag(PreserveNamespaces))
node.sendNamespaces(receiver);
else
{
/* Find the namespaces that we actually use and add them to outputted. These are drawn
* from the element name, and the node's attributes. */
outputted.top().insert(elementName.prefix(), elementName.namespaceURI());
const QXmlNodeModelIndex::Iterator::Ptr attributes(iterate(node, QXmlNodeModelIndex::AxisAttribute));
QXmlNodeModelIndex attr(attributes->next());
while(!attr.isNull())
{
const QXmlName &attrName = attr.name();
outputted.top().insert(attrName.prefix(), attrName.namespaceURI());
attr = attributes->next();
}
Binding::const_iterator it(outputted.top().constBegin());
const Binding::const_iterator end(outputted.top().constEnd());
for(; it != end; ++it)
receiver->namespaceBinding(QXmlName(it.value(), 0, it.key()));
}
/* Send the attributes of the element. */
{
QXmlNodeModelIndex::Iterator::Ptr attributes(node.iterate(QXmlNodeModelIndex::AxisAttribute));
QXmlNodeModelIndex attribute(attributes->next());
while(!attribute.isNull())
{
const QString &v = attribute.stringValue();
receiver->attribute(attribute.name(), QStringRef(&v));
attribute = attributes->next();
}
}
/* Send the children of the element. */
copyChildren(node, receiver, settings);
receiver->endElement();
outputted.pop();
break;
}
case QXmlNodeModelIndex::Document:
{
/* We need to intercept and grab the elements of the document node, such
* that we preserve/inherit preference applies to them. */
receiver->startDocument();
copyChildren(node, receiver, settings);
receiver->endDocument();
break;
}
default:
receiver->item(node);
}
}
示例10: baseUri
QUrl AccelTree::baseUri(const QXmlNodeModelIndex &ni) const
{
switch(kind(toPreNumber(ni)))
{
case QXmlNodeModelIndex::Document:
return baseUri();
case QXmlNodeModelIndex::Element:
{
const QXmlNodeModelIndex::Iterator::Ptr it(iterate(ni, QXmlNodeModelIndex::AxisAttribute));
QXmlNodeModelIndex next(it->next());
while(!next.isNull())
{
if(next.name() == QXmlName(StandardNamespaces::xml, StandardLocalNames::base))
{
const QUrl candidate(next.stringValue());
// TODO. The xml:base spec says to do URI escaping here.
if(!candidate.isValid())
return QUrl();
else if(candidate.isRelative())
{
const QXmlNodeModelIndex par(parent(ni));
if(par.isNull())
return baseUri().resolved(candidate);
else
return par.baseUri().resolved(candidate);
}
else
return candidate;
}
next = it->next();
}
/* We have no xml:base-attribute. Can any parent supply us a base URI? */
const QXmlNodeModelIndex par(parent(ni));
if(par.isNull())
return baseUri();
else
return par.baseUri();
}
case QXmlNodeModelIndex::ProcessingInstruction:
/* Fallthrough. */
case QXmlNodeModelIndex::Comment:
/* Fallthrough. */
case QXmlNodeModelIndex::Attribute:
/* Fallthrough. */
case QXmlNodeModelIndex::Text:
{
const QXmlNodeModelIndex par(ni.iterate(QXmlNodeModelIndex::AxisParent)->next());
if(par.isNull())
return QUrl();
else
return par.baseUri();
}
case QXmlNodeModelIndex::Namespace:
return QUrl();
}
Q_ASSERT_X(false, Q_FUNC_INFO, "This line is never supposed to be reached.");
return QUrl();
}
示例11: kind
QXmlNodeModelIndex::NodeKind LoadingModel::kind(const QXmlNodeModelIndex &ni) const
{
Q_ASSERT(!ni.isNull());
return toInternal(ni)->kind;
}
示例12: kind
QXmlNodeModelIndex::NodeKind LoadingModel::kind(const QXmlNodeModelIndex &ni) const
{
if (ni.isNull())
qFatal("%s: node model index should not be null", Q_FUNC_INFO);
return toInternal(ni)->kind;
}