Exemplo n.º 1
0
AssetListModel::Iterator AssetListModel::erase( const AssetListModel::Iterator & position )
{
	auto index = std::distance( items_.cbegin(), position.iterator() );

	signalPreItemsRemoved( index, 1 );
	auto it = items_.erase( position.iterator() );
	signalPostItemsRemoved( index, 1 );

	return it;
}
Exemplo n.º 2
0
AssetListModel::Iterator AssetListModel::erase(
	const AssetListModel::Iterator & first, const AssetListModel::Iterator & last )
{
	auto index = std::distance( items_.cbegin(), first.iterator() );
	auto count = std::distance( first.iterator(), last.iterator() );

	signalPreItemsRemoved( index, count );
	auto it = items_.erase( first.iterator(), last.iterator() );
	signalPostItemsRemoved( index, count );

	return it;
}
Exemplo n.º 3
0
void AssetListModel::resize( size_t newSize )
{
	auto oldSize = size();
	if (newSize < oldSize)
	{
		signalPreItemsRemoved( newSize, oldSize - newSize );
		items_.resize( newSize );
		signalPostItemsRemoved( newSize, oldSize - newSize );
	}
	else if (newSize > oldSize)
	{
		signalPreItemsInserted( oldSize, newSize - oldSize );
		items_.resize( newSize );
		signalPostItemsInserted( oldSize, newSize - oldSize );
	}
}
Exemplo n.º 4
0
void GenericTreeModel::removeRootItem(GenericTreeItem* item)
{
	assert(item != nullptr);
	assert(item->model_ == this);
	const auto foundItr = std::find(rootItems_.cbegin(), rootItems_.cend(), item);
	assert(foundItr != rootItems_.cend());

	item->model_ = nullptr;
	auto findIter = std::find(rootItems_.begin(), rootItems_.end(), item);
	if (findIter == rootItems_.end())
		return;

	size_t index = std::distance(findIter, rootItems_.begin());
	signalPreItemsRemoved(nullptr, index, 1);
	rootItems_.erase(foundItr);
	signalPostItemsRemoved(nullptr, index, 1);
}