Cover browser: Fix scrolling not working for books after the 32678'th book in a large library. Fixes #1153204 (Cover Browser - Books disappear)

This commit is contained in:
Kovid Goyal 2013-03-17 16:44:17 +05:30
parent 3db99c4dca
commit 1c7a845d1f

View File

@ -398,7 +398,7 @@ private:
QCache<int, QImage> surfaceCache; QCache<int, QImage> surfaceCache;
QTimer triggerTimer; QTimer triggerTimer;
int slideFrame; long long slideFrame;
int step; int step;
int target; int target;
int fade; int fade;
@ -493,7 +493,7 @@ void PictureFlowPrivate::setCurrentSlide(int index)
step = 0; step = 0;
centerIndex = qBound(index, 0, slideImages->count()-1); centerIndex = qBound(index, 0, slideImages->count()-1);
target = centerIndex; target = centerIndex;
slideFrame = index << 16; slideFrame = ((long long)index) << 16;
resetSlides(); resetSlides();
triggerRender(); triggerRender();
widget->emitcurrentChanged(centerIndex); widget->emitcurrentChanged(centerIndex);
@ -1069,7 +1069,7 @@ void PictureFlowPrivate::updateAnimation()
const int max = 2 * 65536; const int max = 2 * 65536;
int fi = slideFrame; int fi = slideFrame;
fi -= (target << 16); fi -= (target << 16);
if(fi < 0) if(fi < 0)
fi = -fi; fi = -fi;
fi = qMin(fi, max); fi = qMin(fi, max);
@ -1094,7 +1094,7 @@ void PictureFlowPrivate::updateAnimation()
if(centerIndex != index) if(centerIndex != index)
{ {
centerIndex = index; centerIndex = index;
slideFrame = index << 16; slideFrame = ((long long)index) << 16;
centerSlide.slideIndex = centerIndex; centerSlide.slideIndex = centerIndex;
for(int i = 0; i < leftSlides.count(); i++) for(int i = 0; i < leftSlides.count(); i++)
leftSlides[i].slideIndex = centerIndex-1-i; leftSlides[i].slideIndex = centerIndex-1-i;