diff options
Diffstat (limited to 'src/quickcontrols/basic/VerticalHeaderView.qml')
-rw-r--r-- | src/quickcontrols/basic/VerticalHeaderView.qml | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/quickcontrols/basic/VerticalHeaderView.qml b/src/quickcontrols/basic/VerticalHeaderView.qml new file mode 100644 index 0000000000..52a9bcb876 --- /dev/null +++ b/src/quickcontrols/basic/VerticalHeaderView.qml @@ -0,0 +1,43 @@ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +pragma ComponentBehavior: Bound + +import QtQuick +import QtQuick.Templates as T + +T.VerticalHeaderView { + id: control + + // The contentWidth of TableView will be zero at start-up, until the delegate + // items have been loaded. This means that even if the implicit width of + // VerticalHeaderView should be the same as the content width in the end, we + // need to ensure that it has at least a width of 1 at start-up, otherwise + // TableView won't bother loading any delegates at all. + implicitWidth: Math.max(1, contentWidth) + implicitHeight: syncView ? syncView.height : 0 + + delegate: Rectangle { + id: delegate + + required property var model + + // Qt6: add cellPadding (and font etc) as public API in headerview + readonly property real cellPadding: 8 + + implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2)) + implicitHeight: text.implicitHeight + (cellPadding * 2) + color: "#f6f6f6" + border.color: "#e4e4e4" + + Label { + id: text + text: delegate.model[control.textRole] + width: delegate.width + height: delegate.height + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: "#ff26282a" + } + } +} |