Preset steps can be added/removed

This commit is contained in:
2023-03-04 20:19:10 +01:00
parent 4720c05cb1
commit 0b870d85f4
6 changed files with 289 additions and 39 deletions

View File

@@ -44,7 +44,7 @@ ColumnLayout {
modal: true
title: qsTr('Confirmation')
onAccepted: presetsModel.removeRow(index)
onAccepted: if (!presetsModel.removeRow(index)) console.warn('failed');
Label {
id: textContainer
@@ -61,6 +61,8 @@ ColumnLayout {
}
ColumnLayout {
Layout.preferredWidth: 300
Layout.maximumWidth: 300
Layout.fillHeight: true
enabled: presetsListView.currentIndex !== -1
@@ -76,6 +78,7 @@ ColumnLayout {
}
Label { text: qsTr("Name:") }
TextField {
Layout.fillWidth: true
text: presetsListView.currentData ? presetsListView.currentData.name : ''
onTextEdited: if (presetsListView.currentData) presetsListView.currentData.name = text; else console.warn('discarded');
}
@@ -86,24 +89,61 @@ ColumnLayout {
}
}
PresetModel {
id: presetModel
controller: __controller
presetId: presetsListView.currentData ? presetsListView.currentData.id : -1
}
EditableListView {
Layout.fillWidth: true
enabled: presetsListView.currentIndex !== -1
model: PresetStepsModel {
id: presetStepsModel
controller: __controller
presetId: presetsListView.currentData ? presetsListView.currentData.id : -1
}
onAddClicked: (index) => { const newIndex = index < 0 ? 0 : index + 1; if (presetStepsModel.insertRow(newIndex)) currentIndex = newIndex; else console.warn('failed'); }
onRemoveClicked: (index) => {
const dialog = dialogComponent2.createObject(Overlay.overlay);
dialog.index = index;
dialog.open();
}
Component {
id: dialogComponent2
Dialog {
property int index
anchors.centerIn: parent
standardButtons: DialogButtonBox.Yes | DialogButtonBox.Cancel
modal: true
title: qsTr('Confirmation')
onAccepted: if (!presetStepsModel.removeRow(index)) console.warn('failed');
Label {
id: textContainer
anchors.fill: parent
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignTop
text: qsTr('Are you sure you want to remove row %0').arg(index)
}
}
}
}
ColumnLayout {
Layout.fillWidth: true
PresetModel {
id: presetModel
controller: __controller
presetId: presetsListView.currentData ? presetsListView.currentData.id : -1
}
RowLayout {
Button {
text: qsTr('Auf Schieberegler\nunten kopieren');