diff options
Diffstat (limited to 'src/quickcontrols/ios/HorizontalHeaderView.qml')
-rw-r--r-- | src/quickcontrols/ios/HorizontalHeaderView.qml | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/quickcontrols/ios/HorizontalHeaderView.qml b/src/quickcontrols/ios/HorizontalHeaderView.qml new file mode 100644 index 0000000000..1a02ff8f05 --- /dev/null +++ b/src/quickcontrols/ios/HorizontalHeaderView.qml @@ -0,0 +1,40 @@ +// Copyright (C) 2023 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 + + readonly property real cellPadding: 8 + + implicitWidth: text.implicitWidth + (cellPadding * 2) + implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2)) + color: control.palette.button + + Label { + id: text + text: delegate.model[control.textRole] + width: delegate.width + height: delegate.height + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + } +} |