Esempio n. 1
0
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();
	}
}
Esempio n. 2
0
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());
}
Esempio n. 3
0
PanelBorderLayout::~PanelBorderLayout()
{
	SAFE_DELETE_ITEM(top_);
	SAFE_DELETE_ITEM(left_);
	SAFE_DELETE_ITEM(bottom_);
	SAFE_DELETE_ITEM(right_);
	SAFE_DELETE_ITEM(content_);
}
Esempio n. 4
0
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();
}
Esempio n. 5
0
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();
		}
	}
}
Esempio n. 6
0
LayoutProviderBase::~LayoutProviderBase()
{
	SAFE_DELETE_ITEM(layout_);
}
Esempio n. 7
0
RootItem::~RootItem()
{
	SAFE_DELETE_ITEM(item_);
}
Esempio n. 8
0
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();
}