From b12c7ca751403edd4b6512b45da56d030efb9ed3 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Fri, 28 Oct 2022 13:36:30 +0200 Subject: QQuickTableView: add layoutChanged() signal Add a new signal to TableView that tells when the layout has changed. This signal can be used to reposition any overlay on the content item, including e.g SelectionHandles. [ChangeLog][Quick][TableView] Added new signal 'layoutChanged()' Change-Id: I5b89a064521c2831279accbc889deb768d9b1a1b Reviewed-by: Mitch Curtis --- src/quick/doc/snippets/qml/tableview/overlay.qml | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/quick/doc/snippets/qml/tableview/overlay.qml (limited to 'src/quick/doc/snippets/qml/tableview') diff --git a/src/quick/doc/snippets/qml/tableview/overlay.qml b/src/quick/doc/snippets/qml/tableview/overlay.qml new file mode 100644 index 0000000000..b79e457f81 --- /dev/null +++ b/src/quick/doc/snippets/qml/tableview/overlay.qml @@ -0,0 +1,46 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +import QtQuick +import QtQuick.Window + +Window { + width: 480 + height: 640 + visible: true + visibility: Window.AutomaticVisibility + + TableView { + id: tableView + anchors.fill: parent + clip: true + } + + //![0] + Rectangle { + id: overlay + width: 20 + height: 20 + radius: 10 + color: "blue" + + z: 10 + parent: tableView.contentItem + + Connections { + target: tableView + function onLayoutChanged() { + let item = tableView.itemAtCell(5, 5) + let insideViewport = item !== null + + overlay.visible = insideViewport + if (insideViewport) { + overlay.x = item.x + overlay.y = item.y + } + } + } + } + //![0] + +} -- cgit v1.2.3