Do not refresh entire LimitedArray if there is not such need
This commit is contained in:
parent
d1633e796a
commit
52e6959c9c
|
@ -43,7 +43,7 @@ Travis.LimitedArray = Em.ArrayProxy.extend
|
||||||
arrangedContent = @get('arrangedContent')
|
arrangedContent = @get('arrangedContent')
|
||||||
length = arrangedContent.get 'length'
|
length = arrangedContent.get 'length'
|
||||||
|
|
||||||
if addedCount > 0 && length < limit
|
if addedCount > 0
|
||||||
addedObjects = array.slice(index, index + addedCount)
|
addedObjects = array.slice(index, index + addedCount)
|
||||||
for object in addedObjects
|
for object in addedObjects
|
||||||
arrangedContent.unshiftObject(object)
|
arrangedContent.unshiftObject(object)
|
||||||
|
@ -52,7 +52,14 @@ Travis.LimitedArray = Em.ArrayProxy.extend
|
||||||
removedObjects = array.slice(index, index + removedCount);
|
removedObjects = array.slice(index, index + removedCount);
|
||||||
arrangedContent.removeObjects(removedObjects)
|
arrangedContent.removeObjects(removedObjects)
|
||||||
|
|
||||||
|
length = arrangedContent.get 'length'
|
||||||
|
content = @get('content')
|
||||||
|
|
||||||
if length > limit
|
if length > limit
|
||||||
arrangedContent.replace(limit, length - limit)
|
arrangedContent.replace(limit, length - limit)
|
||||||
else if length < limit
|
else if length < limit && content.get('length') > length
|
||||||
@set('arrangedContent', @get('content').slice(0, @get('limit')))
|
count = limit - length
|
||||||
|
while count > 0
|
||||||
|
if next = content.find( (object) -> !arrangedContent.contains(object) )
|
||||||
|
arrangedContent.unshiftObject(next)
|
||||||
|
count -= 1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user