| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // Copyright (C) 2024 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
- // Qt-Security score:significant reason:default
- import QtQuick
- import QtQuick.Controls.impl
- import QtQuick.Templates as T
- T.TableViewDelegate {
- id: control
- // same as AbstractButton.qml
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- highlighted: control.selected
- required property int column
- required property int row
- required property var model
- background: Rectangle {
- border.width: control.current ? 2 : Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0
- border.color: control.current ? control.palette.highlight : control.palette.windowText
- color: control.highlighted
- ? control.palette.highlight
- : (control.tableView.alternatingRows && control.row % 2 !== 0
- ? control.palette.alternateBase : control.palette.base)
- }
- contentItem: Label {
- clip: false
- text: control.model.display ?? ""
- elide: Text.ElideRight
- color: control.highlighted ? control.palette.highlightedText : control.palette.buttonText
- visible: !control.editing
- }
- // The edit delegate is a separate component, and doesn't need
- // to follow the same strict rules that are applied to a control.
- // qmllint disable attached-property-reuse
- // qmllint disable controls-attached-property-reuse
- // qmllint disable QuickControlsSanity.controls-sanity
- TableView.editDelegate: FocusScope {
- width: parent.width
- height: parent.height
- TableView.onCommit: {
- let model = control.tableView.model
- if (!model)
- return
- const index = model.index(control.row, control.column)
- if (!model.setData(index, textField.text, Qt.EditRole))
- console.warn("The model does not allow setting the EditRole data.")
- }
- Component.onCompleted: textField.selectAll()
- TextField {
- id: textField
- anchors.fill: parent
- text: control.model.edit ?? control.model.display ?? ""
- focus: true
- }
- }
- // qmllint enable attached-property-reuse
- // qmllint enable controls-attached-property-reuse
- // qmllint enable QuickControlsSanity.controls-sanity
- }
|