void Layout::synchronizeItem(Item*& layoutItem, Item*& externalItem, Model::Node* node) { // When refactoring this method have in mind that layoutItem might point to the same item as externalItem. if (externalItem != layoutItem) { SAFE_DELETE_ITEM(layoutItem); setUpdateNeeded(); } if (externalItem && externalItem->node() != node ) { SAFE_DELETE_ITEM(externalItem); layoutItem = nullptr; // One of the safe deletes above deleted this item setUpdateNeeded(); } if (!externalItem && node) { externalItem = renderer()->render(nullptr, node); externalItem->setParentItem(this); layoutItem = externalItem; setUpdateNeeded(); } }
void RootItem::determineChildren() { if (node() && needsUpdate() == FullUpdate) SAFE_DELETE_ITEM(item_); if (item_ && node() && item_->node() != node() ) SAFE_DELETE_ITEM(item_); if (!item_ && node()) item_ = renderer()->render(this, node()); }
PanelBorderLayout::~PanelBorderLayout() { SAFE_DELETE_ITEM(top_); SAFE_DELETE_ITEM(left_); SAFE_DELETE_ITEM(bottom_); SAFE_DELETE_ITEM(right_); SAFE_DELETE_ITEM(content_); }
void PanelBorderLayout::setContent(Item* content, bool deleteOldContent) { if (content_ == content) return; if ( deleteOldContent ) SAFE_DELETE_ITEM(content_); else if (content_) content_->setParentItem(nullptr); if ( content ) content->setParentItem(this); content_ = content; setUpdateNeeded(); }
void Cursor::setVisualization(Item* visualization) { SAFE_DELETE_ITEM(visualization_); visualization_ = visualization; if (visualization_) { auto item = owner(); while (item) { if (item->flags() & Item::ItemIgnoresTransformations) { visualization_->setFlag(Item::ItemIgnoresTransformations); break; } item = item->parent(); } } }
LayoutProviderBase::~LayoutProviderBase() { SAFE_DELETE_ITEM(layout_); }
RootItem::~RootItem() { SAFE_DELETE_ITEM(item_); }
void PanelBorderLayout::setPanel(bool enable, PanelLayout*& panel, const PanelLayoutStyle& style) { if ( enable && !panel ) panel = new PanelLayout(this, &style); if ( !enable && panel ) SAFE_DELETE_ITEM(panel); setUpdateNeeded(); }