QgsLayerTreeLayer *QgsLayerTreeGroup::insertLayer( int index, QgsMapLayer *layer ) { if ( !layer ) return nullptr; QgsLayerTreeLayer *ll = new QgsLayerTreeLayer( layer ); insertChildNode( index, ll ); return ll; }
QgsLayerTreeLayer*QgsLayerTreeGroup::insertLayer( int index, QgsMapLayer* layer ) { if ( !layer || QgsMapLayerRegistry::instance()->mapLayer( layer->id() ) != layer ) return nullptr; QgsLayerTreeLayer* ll = new QgsLayerTreeLayer( layer ); insertChildNode( index, ll ); return ll; }
void RenderContainer::addChild(RenderObject* newChild, RenderObject* beforeChild) { bool needsTable = false; if (newChild->isListItem()) updateListMarkerNumbers(beforeChild ? beforeChild : m_lastChild); else if (newChild->isTableCol() && newChild->style()->display() == TABLE_COLUMN_GROUP) needsTable = !isTable(); else if (newChild->isRenderBlock() && newChild->style()->display() == TABLE_CAPTION) needsTable = !isTable(); else if (newChild->isTableSection()) needsTable = !isTable(); else if (newChild->isTableRow()) needsTable = !isTableSection(); else if (newChild->isTableCell()) { needsTable = !isTableRow(); // I'm not 100% sure this is the best way to fix this, but without this // change we recurse infinitely when trying to render the CSS2 test page: // http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/htmlbodyheadrendering2.html. // See Radar 2925291. if (needsTable && isTableCell() && !m_firstChild && !newChild->isTableCell()) needsTable = false; } if (needsTable) { RenderTable* table; RenderObject* afterChild = beforeChild ? beforeChild->previousSibling() : m_lastChild; if (afterChild && afterChild->isAnonymous() && afterChild->isTable()) table = static_cast<RenderTable*>(afterChild); else { table = new (renderArena()) RenderTable(document() /* is anonymous */); RefPtr<RenderStyle> newStyle = RenderStyle::create(); newStyle->inheritFrom(style()); newStyle->setDisplay(TABLE); table->setStyle(newStyle.release()); addChild(table, beforeChild); } table->addChild(newChild); } else { // just add it... insertChildNode(newChild, beforeChild); } if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) { RefPtr<StringImpl> textToTransform = static_cast<RenderText*>(newChild)->originalText(); if (textToTransform) static_cast<RenderText*>(newChild)->setText(textToTransform.release(), true); } }
void QgsLayerTreeGroup::addChildNode( QgsLayerTreeNode* node ) { insertChildNode( -1, node ); }
QgsLayerTreeGroup* QgsLayerTreeGroup::insertGroup( int index, const QString& name ) { QgsLayerTreeGroup* grp = new QgsLayerTreeGroup( name ); insertChildNode( index, grp ); return grp; }
void RenderSVGContainer::addChild(RenderObject* newChild, RenderObject* beforeChild) { insertChildNode(newChild, beforeChild); }
void WTreeNode::addChildNode(WTreeNode *node) { insertChildNode(childNodes_.size(), node); }