chore(CommunityNewPermissionView): refactor save/reset changes handlers

This commit is contained in:
Michał Cieślak 2023-02-08 11:13:16 +01:00 committed by Michał
parent b8f6cbcfa1
commit 411c2a0aab
2 changed files with 32 additions and 16 deletions

View File

@ -25,9 +25,6 @@ SettingsPageLayout {
root.state = d.getInitialState()
}
}
d.saveChanges = false
d.resetChanges = false
}
QtObject {
@ -38,8 +35,9 @@ SettingsPageLayout {
readonly property string permissionsViewState: "PERMISSIONS"
readonly property string editPermissionViewState: "EDIT_PERMISSION"
readonly property bool permissionsExist: store.permissionsModel.count > 0
property bool saveChanges: false
property bool resetChanges: false
signal saveChanges
signal resetChanges
property int permissionIndexToEdit
property ListModel holdingsToEditModel: ListModel {}
@ -115,13 +113,15 @@ SettingsPageLayout {
}
onSaveChangesClicked: {
d.saveChanges = true
d.resetChanges = true
d.saveChanges()
d.resetChanges()
root.navigateBack()
}
onResetChangesClicked: {
d.resetChanges = true
d.resetChanges()
root.navigateBack()
}
@ -158,10 +158,22 @@ SettingsPageLayout {
permissionObject: d.permissionsToEditObject
channelsModel: d.channelsToEditModel
isPrivate: d.isPrivateToEditValue
saveChanges: d.saveChanges
resetChanges: d.resetChanges
Component.onCompleted: { root.dirty = Qt.binding(() => newPermissionViewItem.isEditState && newPermissionViewItem.dirty) }
Connections {
target: d
function onSaveChanges() {
newPermissionViewItem.saveChanges()
}
function onResetChanges() {
newPermissionViewItem.resetChanges()
}
}
Component.onCompleted: {
root.dirty = Qt.binding(() => newPermissionViewItem.isEditState && newPermissionViewItem.dirty)
}
}
}

View File

@ -26,7 +26,7 @@ StatusScrollView {
property int viewWidth: 560 // by design
property bool isEditState: false
property bool dirty: {
readonly property bool dirty: {
const trick = d.triggerDirtyTool // Trick: Used to force the reevaluation of dirty when an item of the list is updated
@ -51,8 +51,14 @@ StatusScrollView {
return dirtyPermissionObj || d.dirtyValues.isPrivateDirty
}
property bool saveChanges: false
property bool resetChanges: false
function saveChanges() {
d.saveChanges()
}
function resetChanges() {
d.loadInitValues()
}
property int permissionIndex
@ -301,8 +307,6 @@ StatusScrollView {
contentWidth: mainLayout.width
contentHeight: mainLayout.height
onSaveChangesChanged: if(saveChanges) d.saveChanges()
onResetChangesChanged: if(resetChanges) d.loadInitValues()
onPermissionObjectChanged: d.loadInitValues()
ColumnLayout {