diff options
Diffstat (limited to 'src/quickcontrols/imagine/HorizontalHeaderView.qml')
-rw-r--r-- | src/quickcontrols/imagine/HorizontalHeaderView.qml | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/quickcontrols/imagine/HorizontalHeaderView.qml b/src/quickcontrols/imagine/HorizontalHeaderView.qml new file mode 100644 index 0000000000..9f571a8f62 --- /dev/null +++ b/src/quickcontrols/imagine/HorizontalHeaderView.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.HorizontalHeaderView { + id: control + + implicitWidth: syncView ? syncView.width : 0 + // The contentHeight of TableView will be zero at start-up, until the delegate + // items have been loaded. This means that even if the implicit height of + // HorizontalHeaderView should be the same as the content height in the end, we + // need to ensure that it has at least a height of 1 at start-up, otherwise + // TableView won't bother loading any delegates at all. + implicitHeight: Math.max(1, contentHeight) + + 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: text.implicitWidth + (cellPadding * 2) + implicitHeight: Math.max(control.height, 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" + } + } +} |