def moving(range, destination)
      return if range.count == 0

      @access.begin_move(range.min, range.max, destination)
      ret = yield
      @access.end_move
      ret
    end
def moving(range, destination)
      return if range.count == 0

      @access.begin_move(range.min, range.max, destination)
      ret = yield
      @access.end_move
      ret
    end
Notifies the list views that items are about to be and were moved.
 @param [Range<Integer>] range the index range of the item being moved.
 @param [Integer] destination the first index of the items after moved.
 @yield the block that actually do moving operation of the items.
 @return the result of given block.
 @see http://qt-project.org/doc/qt-5/qabstractitemmodel.html#beginMoveRows QAbstractItemModel::beginMoveRows
 @see http://qt-project.org/doc/qt-5/qabstractitemmodel.html#endMoveRows QAbstractItemModel::endMoveRows
 @see #inserting
 @see #removing