void AssetListModel::push_back( IAssetObjectItem * value ) { auto index = items_.size(); signalPreItemsInserted( index, 1 ); items_.emplace( items_.end(), std::move( value ) ); signalPostItemsInserted( index, 1 ); }
void AssetListModel::push_front( IAssetObjectItem * value ) { auto index = 0; signalPreItemsInserted( index, 1 ); items_.emplace( items_.begin(), std::move( value ) ); signalPostItemsInserted( index, 1 ); }
AssetListModel::Iterator AssetListModel::insert( const AssetListModel::Iterator & position, IAssetObjectItem * value ) { auto index = std::distance( items_.cbegin(), position.iterator() ); signalPreItemsInserted( index, 1 ); auto it = items_.emplace( position.iterator(), std::move( value ) ); signalPostItemsInserted( index, 1 ); return it; }
void GenericTreeModel::addRootItem(GenericTreeItem* item) { assert(item->getParent() == nullptr); assert(item->model_ == nullptr); item->model_ = this; size_t index = rootItems_.size(); signalPreItemsInserted(nullptr, index, 1); rootItems_.push_back(item); signalPostItemsInserted(nullptr, index, 1); }
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 ); } }