Fix disrepancy between wheel scroll and bar

This commit is contained in:
2023-03-12 16:44:18 +01:00
parent 26666ee36d
commit 7b19230366
+3 -8
View File
@@ -313,8 +313,7 @@ void ImageWidget::thumbnailLoaded(const Image *image)
void ImageWidget::showThumbnail(bool enable)
{
m_showThumbnails = enable;
updateScrollBars();
update();
setOffset(m_dx, m_dy);
}
void ImageWidget::paintGL()
@@ -659,13 +658,11 @@ void ImageWidget::wheelEvent(QWheelEvent *event)
{
if(m_showThumbnails)
{
m_dy = std::clamp(m_dy - event->angleDelta().y(), 0.0f, (float)m_thumbnailCount / (width() / THUMB_SIZE_BORDER) * THUMB_SIZE_BORDER_Y);
update();
updateScrollBars();
setOffset(0, m_dy - event->angleDelta().y());
}
else
{
if(event->angleDelta().y() != 0)
if(std::abs(event->angleDelta().y()) > 15)
zoom(event->angleDelta().y(), event->modifiers() & Qt::ShiftModifier ? QPointF() : event->posF());
}
}
@@ -739,9 +736,7 @@ void ImageWidget::updateScrollBars()
if(m_showThumbnails)
emit scrollBarsUpdate(0, 0, -1, m_dy, m_height, (m_thumbnailCount / (m_width / THUMB_SIZE_BORDER) + 2) * THUMB_SIZE_BORDER_Y - m_height);
else
{
emit scrollBarsUpdate(m_dx, m_width, m_imgWidth * m_scale - m_width, m_dy, m_height, m_imgHeight * m_scale - m_height);
}
}
ImageScrollAreaGL::ImageScrollAreaGL(Database *database, QWidget *parent) : QWidget(parent)