From 778688154d55719b2b53ff8747003cd0fb18bf2e Mon Sep 17 00:00:00 2001 From: Shrief Gabr Date: Fri, 19 Apr 2024 15:47:20 +0300 Subject: [PATCH] QmlDesigner: Fix model editor layout issues on adding rows/columns Task-number: QDS-12352 Change-Id: Ie37d1afe2a243d08a09a55778cf0bf00de8f327c Reviewed-by: Ali Kianian Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Mahmoud Badri --- .../CollectionDetailsView.qml | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml index e40a3c94577..2193bd1763e 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml @@ -252,37 +252,35 @@ Rectangle { function ensureRowIsVisible(row) { let rows = tableView.model.rowCount() - if (row < 0 || row >= rows) { - tableView.targetRow = -1 - return - } + let rowIsLoaded = tableView.isRowLoaded(row) + + if (row < 0 || row >= rows || rowIsLoaded) { + if (rowIsLoaded) + tableView.positionViewAtRow(row, Qt.AlignLeft | Qt.AlignTop) - if (tableView.isRowLoaded(row)) { - tableView.positionViewAtRow(row, Qt.AlignLeft | Qt.AlignTop) tableView.targetRow = -1 return } tableView.targetRow = row - verticalScrollBar.position = row / rows + tableView.positionViewAtRow(row, Qt.AlignLeft | Qt.AlignTop) ensureTimer.start() } function ensureColumnIsVisible(column) { let columns = tableView.model.columnCount() - if (column < 0 || column >= columns) { - tableView.targetColumn = -1 - return - } + let columnIsLoaded = tableView.isColumnLoaded(column) + + if (column < 0 || column >= columns || columnIsLoaded) { + if (columnIsLoaded) + tableView.positionViewAtColumn(column, Qt.AlignLeft | Qt.AlignTop) - if (tableView.isColumnLoaded(column)) { - tableView.positionViewAtColumn(column, Qt.AlignLeft | Qt.AlignTop) tableView.targetColumn = -1 return } tableView.targetColumn = column - horizontalScrollBar.position = column / columns + tableView.positionViewAtColumn(column, Qt.AlignLeft | Qt.AlignTop) ensureTimer.start() }