QHeaderView: fix logic in setOffset()

Fix the logic in setOffset() which was accidentally reversed during
fixing of UB during signed overflow.

Amends 49fcac99deea390901000a74deea1c0c690b6ae2.

Coverity-Id: 479557
Pick-to: 6.8 6.5
Fixes: QTBUG-136362
Fixes: QTBUG-136477
Change-Id: Ifc9c80346355b0a9e516effe2ff8b60b1966d67a
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
(cherry picked from commit e808b38d4bb894f42b7dfe52f1ef67a0d48c23ff)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Christian Ehrlicher 2025-05-04 15:51:23 +02:00 committed by Qt Cherry-pick Bot
parent 77a10188a5
commit 1da71e5e7d

View File

@ -429,7 +429,7 @@ void QHeaderView::setOffset(int newOffset)
const int ndelta = q26::saturate_cast<int>(d->headerOffset - qint64{newOffset});
d->headerOffset = newOffset;
if (d->orientation == Qt::Horizontal) {
if (isLeftToRight()) {
if (isRightToLeft()) {
if (int r; !qMulOverflow<-1>(ndelta, &r))
d->viewport->scroll(r, 0);
else