Fix bug in Render::nextDoublePage() function that could lead to segfault if the last page is a double page. Also fixes related bug that could lead to advancing beyond the actual page count.

This commit is contained in:
Felix Kauselmann 2014-11-09 01:42:51 +01:00
parent bf5c0e9326
commit 398faff9d4

View File

@ -850,12 +850,21 @@ void Render::nextPage()
emit pageChanged(currentIndex); emit pageChanged(currentIndex);
} }
else else
{
emit isLast(); emit isLast();
}
} }
void Render::nextDoublePage() void Render::nextDoublePage()
{ {
int nextPage; int nextPage;
nextPage = currentIndex+2; if (currentIndex +2 < (int)comic->numPages())
{
nextPage = currentIndex+2;
}
else
{
nextPage = currentIndex;
}
if(currentIndex != nextPage) if(currentIndex != nextPage)
{ {
comic->setIndex(nextPage); comic->setIndex(nextPage);
@ -864,6 +873,10 @@ void Render::nextDoublePage()
update(); update();
emit pageChanged(currentIndex); emit pageChanged(currentIndex);
} }
else
{
emit isLast();
}
} }
//si se solicita la página anterior, se calcula cuál debe ser en función de si se lee en modo a doble página o no. //si se solicita la página anterior, se calcula cuál debe ser en función de si se lee en modo a doble página o no.
@ -882,7 +895,9 @@ void Render::previousPage()
emit pageChanged(currentIndex); emit pageChanged(currentIndex);
} }
else else
{
emit isCover(); emit isCover();
}
} }
void Render::previousDoublePage() void Render::previousDoublePage()