mirror of
https://github.com/YACReader/yacreader
synced 2025-07-20 22:14:41 -04:00
Add bare metal zoom handling to viewer
This commit is contained in:
@ -38,7 +38,8 @@ restoreMagnifyingGlass(false),
|
||||
drag(false),
|
||||
numScrollSteps(22),
|
||||
shouldOpenNext(false),
|
||||
shouldOpenPrevious(false)
|
||||
shouldOpenPrevious(false),
|
||||
zoom(1)
|
||||
{
|
||||
translator = new YACReaderTranslator(this);
|
||||
translator->hide();
|
||||
@ -350,16 +351,21 @@ void Viewer::updateContentSize()
|
||||
pagefit.scale(size(), Qt::KeepAspectRatio);
|
||||
break;
|
||||
}
|
||||
//apply scaling
|
||||
content->resize(pagefit);
|
||||
|
||||
//TODO: updtateContentSize should only scale the pixmap once
|
||||
if(devicePixelRatio()>1)//only in retina display
|
||||
{
|
||||
QPixmap page = currentPage->scaled(content->width()*devicePixelRatio(), content->height()*devicePixelRatio(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
page.setDevicePixelRatio(devicePixelRatio());
|
||||
content->setPixmap(page);
|
||||
}
|
||||
if(zoom != 1)
|
||||
{
|
||||
pagefit.scale(pagefit.width()*zoom, 0, Qt::KeepAspectRatioByExpanding);
|
||||
}
|
||||
//apply scaling
|
||||
content->resize(pagefit);
|
||||
|
||||
//TODO: updtateContentSize should only scale the pixmap once
|
||||
if(devicePixelRatio()>1)//only in retina display
|
||||
{
|
||||
QPixmap page = currentPage->scaled(content->width()*devicePixelRatio(), content->height()*devicePixelRatio(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
page.setDevicePixelRatio(devicePixelRatio());
|
||||
content->setPixmap(page);
|
||||
}
|
||||
|
||||
emit backgroundChanges();
|
||||
}
|
||||
|
@ -96,6 +96,9 @@ virtual void mouseReleaseEvent ( QMouseEvent * event );
|
||||
bool information;
|
||||
bool doublePage;
|
||||
bool doubleMangaPage;
|
||||
|
||||
qreal zoom;
|
||||
|
||||
PageLabelWidget * informationLabel;
|
||||
//QTimer * scroller;
|
||||
QPropertyAnimation * verticalScroller;
|
||||
|
Reference in New Issue
Block a user