From 3f7306cea6f5e853b474bd2b53c34236db0f1161 Mon Sep 17 00:00:00 2001 From: peri4 Date: Wed, 23 Jun 2021 23:02:53 +0300 Subject: [PATCH] ImageView LOD patch --- libs/widgets/image_view.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libs/widgets/image_view.cpp b/libs/widgets/image_view.cpp index d345a3d..9537609 100644 --- a/libs/widgets/image_view.cpp +++ b/libs/widgets/image_view.cpp @@ -126,18 +126,22 @@ bool ImageView::eventFilter(QObject * o, QEvent * e) { void ImageView::adjustView() { int nw = map.size().boundedTo(size()).width(); + item.setScale(1.); if (nw > 0) { qreal mp = map.width() / nw; - if (mp > 1.) + if (mp > 1.) { + QSize ss = map.size(); item.setPixmap(map.scaled(map.size() / mp, Qt::KeepAspectRatio, Qt::SmoothTransformation)); - else + item.setScale(double(ss.width()) / item.pixmap().width()); + } else item.setPixmap(map); } else item.setPixmap(map); if (!autofit_) return; - setSceneRect(item.boundingRect()); - fitInView(&item, Qt::KeepAspectRatio); - centerOn(&item); + QRectF r = item.mapRectToScene(item.boundingRect()); + setSceneRect(r); + fitInView(r, Qt::KeepAspectRatio); + centerOn(r.center()); }