def inserting(range, &block)
      return if range.count == 0

      @access.begin_insert(range.min, range.max)
      ret = yield
      @access.end_insert
      ret
    end
def inserting(range, &block)
      return if range.count == 0

      @access.begin_insert(range.min, range.max)
      ret = yield
      @access.end_insert
      ret
    end
Notifies the list views that items are about to be and were inserted.
 @param [Range<Integer>] range the index range of the items after inserted.
 @yield the block that actually do insertion of the items.
 @return the result of give block.
 @example
   inserting(index ... index + items.size) do
     @array.insert(index, *items)
   end
 @see http://qt-project.org/doc/qt-5/qabstractitemmodel.html#beginInsertRows QAbstractItemModel::beginInsertRows
 @see http://qt-project.org/doc/qt-5/qabstractitemmodel.html#endInsertRows QAbstractItemModel::endInsertRows
 @see #removing
 @see #moving