Skip to content

Commit

Permalink
ImageViewer: Use QScrollArea::viewport for boundaries check.
Browse files Browse the repository at this point in the history
QScrollArea::viewport is now used for boundaries check and
for image pan (m_pan_mode).
This should provide more accurate event filtering (content only)
  • Loading branch information
sandman7920 committed Jul 15, 2021
1 parent 2df29fa commit 8bc9d33
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/ImageViewer.cpp
Expand Up @@ -15,7 +15,7 @@ ImageViewer::ImageViewer(QWidget* parent) :
m_pan_mode{false}
{
ui->setupUi(this);
ui->scrollArea->installEventFilter(this);
ui->scrollArea->viewport()->installEventFilter(this);
connect(ui->buttonOriginalSize, &QToolButton::clicked, this, [this]{ scaleImage(100); });

ui->labelView->addAction(ui->actionPrintImage);
Expand All @@ -33,7 +33,7 @@ void ImageViewer::resetImage()

void ImageViewer::setImage(const QImage& image)
{
auto widget_size = ui->scrollArea->size();
auto widget_size = ui->scrollArea->viewport()->size();
m_image_size = image.size();
ui->labelView->setMaximumSize(m_image_size.scaled(widget_size, Qt::KeepAspectRatio));

Expand All @@ -49,7 +49,7 @@ void ImageViewer::setImage(const QImage& image)

bool ImageViewer::isQSizeCovered(QSize rect)
{
auto widget_size = ui->scrollArea->size();
auto widget_size = ui->scrollArea->viewport()->size();
return widget_size.width() >= rect.width() && widget_size.height() >= rect.height();
}

Expand Down Expand Up @@ -118,7 +118,7 @@ void ImageViewer::scaleToFitWindow(bool enabled)
if(!enabled) {
scaleImage(100);
} else {
ui->labelView->setMaximumSize(m_image_size.scaled(ui->scrollArea->size(), Qt::KeepAspectRatio));
ui->labelView->setMaximumSize(m_image_size.scaled(ui->scrollArea->viewport()->size(), Qt::KeepAspectRatio));
}
}

Expand Down

0 comments on commit 8bc9d33

Please sign in to comment.