aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2022-09-01 12:37:23 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-09-02 00:40:24 +0000
commitc54ffcccd1eb9d4f87b04d2911eaf4351ef10953 (patch)
tree594c0e66859e717b4c76751fb2b373880076d399 /src
parent071e86cde5831f64c9c4746bce7519b4a3de04b1 (diff)
QQuickTableView: avoid printing out incorrect warning
A warning would be printed out from TableView if you called positionViewAtCell with a mode that affected either horizontal or vertical alignment, but not both. The reason is that the overridden version would just forward the call to positionViewAtRow() and positionViewAtColumn(), without checking if the given mode allowed for it first. This patch will instead check the mode first, before deciding which functions to call. This will stop the warning from being incorrectly printed. Change-Id: I58145873def7543fcffd51ade7d15c70fb755aae Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit bca463b61c29e68fe2a9a63ebee8e35ed125085c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquicktableview.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp
index 54781968b4..e2bd1a17de 100644
--- a/src/quick/items/qquicktableview.cpp
+++ b/src/quick/items/qquicktableview.cpp
@@ -4634,14 +4634,22 @@ void QQuickTableView::positionViewAtColumn(int column, PositionMode mode, qreal
void QQuickTableView::positionViewAtCell(const QPoint &cell, PositionMode mode, const QPointF &offset, const QRectF &subRect)
{
- positionViewAtRow(cell.y(), mode, offset.y(), subRect);
- positionViewAtColumn(cell.x(), mode, offset.x(), subRect);
+ positionViewAtCell(cell.x(), cell.y(), mode, offset, subRect);
}
void QQuickTableView::positionViewAtCell(int column, int row, PositionMode mode, const QPointF &offset, const QRectF &subRect)
{
- positionViewAtRow(row, mode, offset.y(), subRect);
- positionViewAtColumn(column, mode, offset.x(), subRect);
+ PositionMode horizontalMode = mode & ~(AlignTop | AlignBottom | AlignVCenter);
+ PositionMode verticalMode = mode & ~(AlignLeft | AlignRight | AlignHCenter);
+ if (!horizontalMode && !verticalMode) {
+ qmlWarning(this) << "Unsupported mode:" << int(mode);
+ return;
+ }
+
+ if (horizontalMode)
+ positionViewAtColumn(column, horizontalMode, offset.x(), subRect);
+ if (verticalMode)
+ positionViewAtRow(row, verticalMode, offset.y(), subRect);
}
QQuickItem *QQuickTableView::itemAtCell(const QPoint &cell) const