本文整理汇总了C++中dom::Node::previousSibling方法的典型用法代码示例。如果您正苦于以下问题:C++ Node::previousSibling方法的具体用法?C++ Node::previousSibling怎么用?C++ Node::previousSibling使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dom::Node
的用法示例。
在下文中一共展示了Node::previousSibling方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deleteSubTree
void EnhancedTagAttributeTree::deleteSubTree()
{
QuantaView *view = ViewManager::ref()->activeView();
if(!curNode || !view->document())
return;
Node *oldCurNode;
NodeModifsSet *modifs;
int curLine, curCol;
long offset;
DOM::Node domNode;
QValueList<int> loc;
//Save the cursor position in kafka/quanta
if(view->hadLastFocus() == QuantaView::SourceFocus)
curNode->tag->beginPos(curLine, curCol);
else
{
KafkaDocument::ref()->getKafkaWidget()->getCurrentNode(domNode, offset);
if(!domNode.previousSibling().isNull())
domNode = domNode.previousSibling();
else if(!domNode.parentNode().isNull())
domNode = domNode.parentNode();
else
domNode = KafkaDocument::ref()->getKafkaWidget()->document();
if(domNode.nodeType() == DOM::Node::TEXT_NODE)
offset = domNode.nodeValue().length();
else
offset = 0;
loc = kafkaCommon::getLocation(domNode);
}
//Remove the Nodes
oldCurNode = curNode;
curNode = 0L;
attrTree->setCurrentNode(curNode);
modifs = new NodeModifsSet();
kafkaCommon::extractAndDeleteNode(oldCurNode, modifs);
view->document()->docUndoRedo->addNewModifsSet(modifs, undoRedo::NodeTreeModif);
//set the cursor position in kafka/quanta
if(view->hadLastFocus() == QuantaView::SourceFocus)
view->document()->viewCursorIf->setCursorPositionReal((uint)curLine, (uint)curCol);
else
{
domNode = kafkaCommon::getNodeFromLocation(loc,
KafkaDocument::ref()->getKafkaWidget()->document());
KafkaDocument::ref()->getKafkaWidget()->setCurrentNode(domNode, offset);
}
}
示例2: showRecursive
void DOMTreeView::showRecursive(const DOM::Node &pNode, const DOM::Node &node, uint depth)
{
DOMListViewItem *cur_item;
DOMListViewItem *parent_item = m_itemdict[pNode.handle()];
if (depth > m_maxDepth) {
m_maxDepth = depth;
}
if (depth == 0) {
cur_item = new DOMListViewItem(node, m_listView);
m_document = pNode.ownerDocument();
} else {
cur_item = new DOMListViewItem(node, parent_item);
}
//kdDebug(90180) << node.nodeName().string() << " [" << depth << "]" << endl;
addElement (node, cur_item, false);
cur_item->setOpen(depth < m_expansionDepth);
if(node.handle()) {
m_itemdict.insert(node.handle(), cur_item);
}
DOM::Node child = node.lastChild();
if (child.isNull()) {
DOM::HTMLFrameElement frame = node;
if (!frame.isNull()) child = frame.contentDocument().documentElement();
}
while(!child.isNull()) {
showRecursive(node, child, depth + 1);
child = child.previousSibling();
}
const DOM::Element element = node;
if (!m_bPure) {
if (!element.isNull() && !element.firstChild().isNull()) {
if(depth == 0) {
cur_item = new DOMListViewItem(node, m_listView, cur_item);
m_document = pNode.ownerDocument();
} else {
cur_item = new DOMListViewItem(node, parent_item, cur_item);
}
//kdDebug(90180) << "</" << node.nodeName().string() << ">" << endl;
addElement(element, cur_item, true);
// cur_item->setOpen(depth < m_expansionDepth);
}
}
}
示例3: postUnenhanceNode
void HTMLEnhancer::postUnenhanceNode(DOM::Node domNode)
{
DOM::Node child, next;
kNodeAttrs *attrs;
if(domNode.isNull())
return;
//Try to remove the EmptyTextAsChildOfAChildlessElement Node first if present
if(domNode.hasChildNodes())
{
child = domNode.firstChild();
while(!child.isNull())
{
attrs = m_wkafkapart->getAttrs(child);
next = child.nextSibling();
if(attrs && attrs->specialBehavior() == kNodeAttrs::emptyTextAsChildOfAChildlessElement)
kafkaCommon::removeDomNode(child);
child = next;
}
}
//Then try to remove the emptyTextSurroundingBlockElement* Nodes if present.
if(!domNode.previousSibling().isNull())
{
attrs = m_wkafkapart->getAttrs(domNode.previousSibling());
if(attrs && attrs->specialBehavior() == kNodeAttrs::emptyTextSurroundingBlockElementAtTheLeft)
kafkaCommon::removeDomNode(domNode.previousSibling());
}
if(!domNode.nextSibling().isNull())
{
attrs = m_wkafkapart->getAttrs(domNode.nextSibling());
if(attrs && attrs->specialBehavior() == kNodeAttrs::emptyTextSurroundingBlockElementAtTheRight)
kafkaCommon::removeDomNode(domNode.nextSibling());
}
}
示例4: deleteNode
void EnhancedTagAttributeTree::deleteNode()
{
QuantaView *view = ViewManager::ref()->activeView();
if(!curNode || !view->document())
return;
Node *oldCurNode, *oldCurNodeParent, *child;
QTag *oldCurNodeParentQTag;
int curLine, curCol;
long offset;
DOM::Node domNode;
QValueList<int> loc;
NodeModifsSet *modifs;
//Save the cursor position in kafka/quanta
if(view->hadLastFocus() == QuantaView::SourceFocus)
curNode->tag->beginPos(curLine, curCol);
else
{
KafkaDocument::ref()->getKafkaWidget()->getCurrentNode(domNode, offset);
if(!domNode.previousSibling().isNull())
domNode = domNode.previousSibling();
else if(!domNode.parentNode().isNull())
domNode = domNode.parentNode();
else
domNode = KafkaDocument::ref()->getKafkaWidget()->document();
if(domNode.nodeType() == DOM::Node::TEXT_NODE)
offset = domNode.nodeValue().length();
else
offset = 0;
loc = kafkaCommon::getLocation(domNode);
}
//remove the Nodes
oldCurNode = curNode;
oldCurNodeParent = curNode->parent;
curNode = 0L;
attrTree->setCurrentNode(curNode);
modifs = new NodeModifsSet();
kafkaCommon::extractAndDeleteNode(oldCurNode, modifs, false);
//Then we see if the new parent - child relationships are valid, and if not, delete the child and restart
if(oldCurNodeParent)
{
oldCurNodeParentQTag = QuantaCommon::tagFromDTD(oldCurNodeParent);
if(oldCurNodeParentQTag)
{
child = oldCurNodeParent->child;
while(child)
{
if(!oldCurNodeParentQTag->isChild(child))
{
kafkaCommon::extractAndDeleteNode(child, modifs, false);
//too lazy to get the real next node ;-)
child = oldCurNodeParent->child;
}
else
child = child->next;
}
}
}
view->document()->docUndoRedo->addNewModifsSet(modifs, undoRedo::NodeTreeModif);
//set the cursor position in kafka/quanta
if(view->hadLastFocus() == QuantaView::SourceFocus)
view->document()->viewCursorIf->setCursorPositionReal((uint)curLine, (uint)curCol);
else
{
domNode = kafkaCommon::getNodeFromLocation(loc,
KafkaDocument::ref()->getKafkaWidget()->document());
KafkaDocument::ref()->getKafkaWidget()->setCurrentNode(domNode, offset);
}
}
示例5: postEnhanceNode
void HTMLEnhancer::postEnhanceNode(DOM::Node domNode)
{
DOM::Node textNode;
kNodeAttrs *props;
QTag *qTag;
bool isInline;
if(domNode.isNull())
return;
//If domNode is a Block and there is no text around, and if domNode's parent can handle
//text or a P tag, add an empty text DOM::Node
// so that the user can access this area.
qTag = QuantaCommon::tagFromDTD(m_wkafkapart->getCurrentDoc()->defaultDTD(),
domNode.nodeName().string());
isInline = kafkaCommon::isInline(domNode.nodeName().string());
if(domNode.nodeType() == DOM::Node::ELEMENT_NODE &&
(!isInline || (isInline && qTag && qTag->isSingle())))
{
qTag = QuantaCommon::tagFromDTD(m_wkafkapart->getNode(domNode.parentNode()));
if((domNode.nextSibling().isNull() ||
(!domNode.nextSibling().isNull() &&
domNode.nextSibling().nodeType() == DOM::Node::ELEMENT_NODE &&
!kafkaCommon::isInline(domNode.nextSibling().nodeName().string())))
&& qTag && (qTag->isChild("#text", false) || qTag->isChild("p", false)) &&
domNode.nodeName().string().lower() != "p")
{
textNode = kafkaCommon::createTextDomNode("",
m_wkafkapart->getKafkaWidget()->document());
props = m_wkafkapart->connectDomNodeToQuantaNode(textNode, 0L);
props->setIsLinkedToNode(false);
props->setSpecialBehavior(kNodeAttrs::emptyTextSurroundingBlockElementAtTheRight);
kafkaCommon::insertDomNode(textNode, domNode.parentNode(),
domNode.nextSibling());
}
if((domNode.previousSibling().isNull() || (!domNode.previousSibling().isNull() &&
domNode.previousSibling().nodeType() == DOM::Node::ELEMENT_NODE &&
!kafkaCommon::isInline(domNode.previousSibling().nodeName().string())))
&& qTag && (qTag->isChild("#text", false) || qTag->isChild("p", false)) &&
domNode.nodeName().string().lower() != "p")
{
textNode = kafkaCommon::createTextDomNode("",
m_wkafkapart->getKafkaWidget()->document());
props = m_wkafkapart->connectDomNodeToQuantaNode(textNode, 0L);
props->setIsLinkedToNode(false);
props->setSpecialBehavior(kNodeAttrs::emptyTextSurroundingBlockElementAtTheLeft);
kafkaCommon::insertDomNode(textNode, domNode.parentNode(),
domNode);
}
}
//If domNode is an childless element, and if it can handle Text or a P tag,
//add an empty text DOM::Node so that the
//user can access this area.
qTag = QuantaCommon::tagFromDTD(m_wkafkapart->getNode(domNode));
if(domNode.nodeType() == DOM::Node::ELEMENT_NODE &&
!domNode.hasChildNodes() && qTag && (qTag->isChild("#text", false) ||
qTag->isChild("p", false)))
{
textNode = kafkaCommon::createTextDomNode("",
m_wkafkapart->getKafkaWidget()->document());
props = m_wkafkapart->connectDomNodeToQuantaNode(textNode, 0L);
props->setIsLinkedToNode(false);
props->setSpecialBehavior(kNodeAttrs::emptyTextAsChildOfAChildlessElement);
kafkaCommon::insertDomNode(textNode, domNode);
}
}