mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Fix double page mode composing regression
This commit is contained in:
parent
810920c471
commit
d1c3969dde
@ -552,36 +552,54 @@ QPixmap * Render::getCurrentDoubleMangaPage()
|
||||
{
|
||||
QPoint leftpage(0,0);
|
||||
QPoint rightpage(0,0);
|
||||
QSize leftsize;
|
||||
QSize rightsize;
|
||||
int totalWidth,totalHeight;
|
||||
switch (imageRotation)
|
||||
{
|
||||
case 0:
|
||||
totalHeight = qMax(buffer[currentPageBufferedIndex]->height(), buffer[currentPageBufferedIndex+1]->height());
|
||||
totalWidth = buffer[currentPageBufferedIndex]->width() + buffer[currentPageBufferedIndex+1]->width();
|
||||
rightpage.setX(buffer[currentPageBufferedIndex+1]->width());
|
||||
leftsize.setHeight(totalHeight);
|
||||
rightsize.setHeight(totalHeight);
|
||||
leftsize.setWidth(buffer[currentPageBufferedIndex+1]->width() + (totalHeight - buffer[currentPageBufferedIndex+1]->height()));
|
||||
rightsize.setWidth(buffer[currentPageBufferedIndex]->width() + (totalHeight - buffer[currentPageBufferedIndex]->height()));
|
||||
totalWidth = leftsize.rwidth() + rightsize.rwidth();
|
||||
rightpage.setX(leftsize.rwidth());
|
||||
break;
|
||||
case 90:
|
||||
totalWidth = qMax(buffer[currentPageBufferedIndex]->width(), buffer[currentPageBufferedIndex+1]->width());
|
||||
totalHeight = buffer[currentPageBufferedIndex]->height() + buffer[currentPageBufferedIndex+1]->height();
|
||||
rightpage.setY(buffer[currentPageBufferedIndex+1]->height());
|
||||
leftsize.setWidth(totalWidth);
|
||||
rightsize.setWidth(totalWidth);
|
||||
leftsize.setHeight(buffer[currentPageBufferedIndex+1]->height() + (totalWidth - buffer[currentPageBufferedIndex+1]->width()));
|
||||
rightsize.setHeight(buffer[currentPageBufferedIndex]->height() + (totalWidth - buffer[currentPageBufferedIndex]->width()));
|
||||
totalHeight = leftsize.rheight() + rightsize.rheight();
|
||||
rightpage.setY(leftsize.rheight());
|
||||
break;
|
||||
case 180:
|
||||
totalHeight = qMax(buffer[currentPageBufferedIndex]->height(), buffer[currentPageBufferedIndex+1]->height());
|
||||
totalWidth = buffer[currentPageBufferedIndex]->width() + buffer[currentPageBufferedIndex+1]->width();
|
||||
leftpage.setX(buffer[currentPageBufferedIndex]->width());
|
||||
leftsize.setHeight(totalHeight);
|
||||
rightsize.setHeight(totalHeight);
|
||||
leftsize.setWidth(buffer[currentPageBufferedIndex+1]->width() + (totalHeight - buffer[currentPageBufferedIndex+1]->height()));
|
||||
rightsize.setWidth(buffer[currentPageBufferedIndex]->width() + (totalHeight - buffer[currentPageBufferedIndex]->height()));
|
||||
totalWidth = leftsize.rwidth() + rightsize.rwidth();
|
||||
leftpage.setX(rightsize.rwidth());
|
||||
break;
|
||||
case 270:
|
||||
totalWidth = qMax(buffer[currentPageBufferedIndex]->width(), buffer[currentPageBufferedIndex+1]->width());
|
||||
totalHeight = buffer[currentPageBufferedIndex]->height() + buffer[currentPageBufferedIndex+1]->height();
|
||||
leftpage.setY(buffer[currentPageBufferedIndex]->height());
|
||||
leftsize.setWidth(totalWidth);
|
||||
rightsize.setWidth(totalWidth);
|
||||
leftsize.setHeight(buffer[currentPageBufferedIndex+1]->height() + (totalWidth - buffer[currentPageBufferedIndex+1]->width()));
|
||||
rightsize.setHeight(buffer[currentPageBufferedIndex]->height() + (totalWidth - buffer[currentPageBufferedIndex]->width()));
|
||||
totalHeight = leftsize.rheight() + rightsize.rheight();
|
||||
leftpage.setY(rightsize.rheight());
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
QPixmap * page = new QPixmap(totalWidth, totalHeight);
|
||||
QPainter painter(page);
|
||||
painter.drawImage(rightpage, *buffer[currentPageBufferedIndex]);
|
||||
painter.drawImage(leftpage, *buffer[currentPageBufferedIndex+1]);
|
||||
painter.drawImage(QRect(rightpage, rightsize), *buffer[currentPageBufferedIndex]);
|
||||
painter.drawImage(QRect(leftpage, leftsize), *buffer[currentPageBufferedIndex+1]);
|
||||
return page;
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user