QmlDesigner: Prevent clipping the CollectionDetailsView delegates

Task-number: QDS-11011
Change-Id: I7e7997df09c8c62c72a911a3f51a9b9fe492010b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Ali Kianian
2023-10-30 15:58:19 +02:00
parent afef8afc39
commit 1641035388

View File

@@ -6,84 +6,144 @@ import CollectionDetails 1.0 as CollectionDetails
import HelperWidgets 2.0 as HelperWidgets import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme 1.0 as StudioTheme
import QtQuick.Templates as T
Item { Item {
id: root id: root
required property var columnType required property var columnType
property var __modifier : textEditor property var __modifier : textEditor
property bool __changesAccepted: true
width: itemColumn.width TableView.onCommit: {
height: itemColumn.height if (root.__changesAccepted)
edit = __modifier.editor.editValue
TableView.onCommit: edit = __modifier.editValue }
Component.onCompleted: { Component.onCompleted: {
__changesAccepted = true
if (edit && edit !== "") if (edit && edit !== "")
root.__modifier.editValue = edit root.__modifier.editor.editValue = edit
} }
onActiveFocusChanged: { onActiveFocusChanged: {
if (root.activeFocus) if (root.activeFocus)
root.__modifier.forceActiveFocus() root.__modifier.editor.forceActiveFocus()
} }
Connections { Connections {
id: modifierFocusConnection id: modifierFocusConnection
target: root.__modifier
target: root.__modifier.editor
function onActiveFocusChanged() { function onActiveFocusChanged() {
if (!modifierFocusConnection.target.activeFocus) if (!modifierFocusConnection.target.activeFocus)
TableView.commit() root.TableView.commit()
} }
} }
Column { EditorPopup {
id: itemColumn id: textEditor
editor: textField
StudioControls.TextField { StudioControls.TextField {
id: textEditor id: textField
property alias editValue: textEditor.text property alias editValue: textField.text
actionIndicator.visible: false actionIndicator.visible: false
translationIndicatorVisible: false translationIndicatorVisible: false
enabled: visible
visible: false onRejected: root.__changesAccepted = false
} }
}
EditorPopup {
id: numberEditor
editor: numberField
StudioControls.RealSpinBox { StudioControls.RealSpinBox {
id: numberEditor id: numberField
property alias editValue: numberEditor.realValue property alias editValue: numberField.realValue
actionIndicator.visible: false actionIndicator.visible: false
enabled: visible
visible: false
realFrom: -9e9 realFrom: -9e9
realTo: 9e9 realTo: 9e9
realStepSize: 1.0 realStepSize: 1.0
decimals: 6 decimals: 6
} }
}
EditorPopup {
id: boolEditor
editor: boolField
StudioControls.CheckBox { StudioControls.CheckBox {
id: boolEditor id: boolField
property alias editValue: boolEditor.checked property alias editValue: boolField.checked
actionIndicatorVisible: false actionIndicatorVisible: false
enabled: visible
visible: false
} }
}
EditorPopup {
id: colorEditor
editor: colorPicker
implicitHeight: colorPicker.height + topPadding + bottomPadding
implicitWidth: colorPicker.width + leftPadding + rightPadding
padding: 8
HelperWidgets.ColorPicker { HelperWidgets.ColorPicker {
id: colorEditor id: colorPicker
property alias editValue: colorEditor.color property alias editValue: colorPicker.color
width: 100 width: 100
enabled: visible
visible: false Keys.onEnterPressed: colorPicker.focus = false
}
background: Rectangle {
color: StudioTheme.Values.themeControlBackgroundInteraction
border.color: StudioTheme.Values.themeInteraction
border.width: StudioTheme.Values.border
}
}
component EditorPopup: T.Popup {
id: editorPopup
required property Item editor
implicitHeight: contentHeight
implicitWidth: contentWidth
enabled: visible
visible: false
Connections {
target: editorPopup.editor
function onActiveFocusChanged() {
if (!editorPopup.editor.activeFocus)
editorPopup.close()
}
}
Connections {
target: editorPopup.editor.Keys
function onEscapePressed() {
root.__changesAccepted = false
editorPopup.close()
}
} }
} }