Fixed many issues with new History module, including saved status.

+ Fixed (old) bug that label content wasn't being saved.
This commit is contained in:
Adsooi 2024-10-11 02:03:27 +02:00
parent 2dc9234b22
commit 448d94fee3
Signed by: Ad5001
GPG key ID: EF45F9C6AFE20160
19 changed files with 479 additions and 459 deletions

View file

@ -117,7 +117,7 @@ MenuBar {
icon.color: sysPalette.buttonText
onTriggered: {
var newObj = Modules.Objects.createNewRegisteredObject(modelData)
history.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
Modules.History.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
objectLists.update()
}
}

View file

@ -225,7 +225,7 @@ Item {
imageDepth: Screen.devicePixelRatio,
fontSize: 14
})
Modules.History.on("updated undone redone", () => {
Modules.History.on("cleared added undone redone", () => {
undoCount = Modules.History.undoStack.length
redoCount = Modules.History.redoStack.length
})

View file

@ -42,7 +42,7 @@ ApplicationWindow {
width: 1000
height: 500
color: sysPalette.window
title: "LogarithmPlotter"
title: qsTr("untitled")
SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active }
SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled }
@ -50,9 +50,7 @@ ApplicationWindow {
menuBar: appMenu.trueItem
AppMenuBar {id: appMenu}
History { id: history }
Popup.GreetScreen {}
Popup.Preferences {id: preferences}
@ -185,7 +183,7 @@ ApplicationWindow {
}
onClosing: function(close) {
if(!history.saved) {
if(!Modules.History.saved) {
close.accepted = false
appMenu.openSaveUnsavedChangesDialog()
}
@ -254,8 +252,20 @@ ApplicationWindow {
if(evt.property === "saveFilename") {
const fileName = evt.newValue.split('/').pop().split('\\').pop()
if(fileName !== "")
title = `${fileName}`
title = fileName
}
})
Modules.IO.on("saved loaded", (evt) => {
// Refreshing sidebar
console.log(evt.name)
updateObjectsLists()
if(title.endsWith("*"))
title = title.substring(0, title.length-1)
})
Modules.IO.on("modified", () => {
console.log("modified")
if(!title.endsWith("*"))
title = title+"*"
})
}
}

View file

@ -80,7 +80,7 @@ Repeater {
variables: propertyType.variables
onChanged: function(newExpr) {
if(obj[propertyName].toString() != newExpr.toString()) {
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], newExpr
))
@ -123,7 +123,7 @@ Repeater {
// Ensuring old and new values are different to prevent useless adding to history.
if(obj[propertyName] != newValueParsed) {
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], newValueParsed
))
@ -168,7 +168,7 @@ Repeater {
return obj[propertyName]
}
onClicked: {
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], this.checked
))
@ -209,7 +209,9 @@ Repeater {
if(selectedObj == null) {
// Creating new object.
selectedObj = Modules.Objects.createNewRegisteredObject(propertyType.objType)
history.addToHistory(new JS.HistoryLib.CreateNewObject(selectedObj.name, propertyType.objType, selectedObj.export()))
Modules.History.addToHistory(
new JS.HistoryLib.CreateNewObject(selectedObj.name, propertyType.objType, selectedObj.export())
)
baseModel = Modules.Objects.getObjectsName(propertyType.objType).concat(
isRealObject ? [qsTr("+ Create new %1").arg(Modules.Objects.types[propertyType.objType].displayType())] :
[])
@ -219,14 +221,14 @@ Repeater {
//Modules.Objects.currentObjects[objType][objIndex].requiredBy = obj[propertyName].filter((obj) => obj.name != obj.name)
}
obj.requiredBy = obj.requiredBy.filter((obj) => obj.name != obj.name)
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], selectedObj
))
obj[propertyName] = selectedObj
} else if(baseModel[newIndex] != obj[propertyName]) {
// Ensuring new property is different to not add useless history entries.
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], baseModel[newIndex]
))
@ -256,7 +258,7 @@ Repeater {
onChanged: {
var exported = exportModel()
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, propertyName,
obj[propertyName], exported
))

View file

@ -112,7 +112,7 @@ Popup.BaseDialog {
if(newName in Modules.Objects.currentObjectsByName) {
invalidNameDialog.showDialog(newName)
} else {
history.addToHistory(new JS.HistoryLib.NameChanged(
Modules.History.addToHistory(new JS.HistoryLib.NameChanged(
objEditor.obj.name, objEditor.objType, newName
))
Modules.Objects.renameObject(obj.name, newName)
@ -127,13 +127,17 @@ Popup.BaseDialog {
id: labelContentProperty
height: 30
width: dlgProperties.width
label: qsTr("Label content")
label: qsTranslate("prop", "labelContent")
model: [qsTr("null"), qsTr("name"), qsTr("name + value")]
property var idModel: ["null", "name", "name + value"]
icon: "common/label.svg"
currentIndex: idModel.indexOf(objEditor.obj.labelContent)
onActivated: function(newIndex) {
if(idModel[newIndex] != objEditor.obj.labelContent) {
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
obj.name, objType, "labelContent",
objEditor.obj.labelContent, idModel[newIndex]
))
objEditor.obj.labelContent = idModel[newIndex]
objEditor.obj.update()
objectListList.update()

View file

@ -104,7 +104,9 @@ Column {
onClicked: {
let newObj = Modules.Objects.createNewRegisteredObject(modelData)
history.addToHistory(new JS.HistoryLib.CreateNewObject(newObj.name, modelData, newObj.export()))
Modules.History.addToHistory(new JS.HistoryLib.CreateNewObject(
newObj.name, modelData, newObj.export()
))
objectLists.update()
let hasXProp = newObj.constructor.properties().hasOwnProperty('x')

View file

@ -72,7 +72,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: 5
onClicked: {
history.addToHistory(new JS.HistoryLib.EditedVisibility(
Modules.History.addToHistory(new JS.HistoryLib.EditedVisibility(
obj.name, obj.type, this.checked
))
obj.visible = this.checked
@ -212,7 +212,7 @@ Item {
selectedColor: obj.color
title: qsTr("Pick new color for %1 %2").arg(obj.constructor.displayType()).arg(obj.name)
onAccepted: {
history.addToHistory(new JS.HistoryLib.ColorChanged(
Modules.History.addToHistory(new JS.HistoryLib.ColorChanged(
obj.name, obj.type, obj.color, selectedColor.toString()
))
obj.color = selectedColor.toString()
@ -231,7 +231,7 @@ Item {
// Object still exists
// Temporary fix for objects require not being propertly updated.
object.requiredBy = []
history.addToHistory(new JS.HistoryLib.DeleteObject(
Modules.History.addToHistory(new JS.HistoryLib.DeleteObject(
object.name, object.type, object.export()
))
Modules.Objects.deleteObject(object.name)

View file

@ -115,7 +115,7 @@ Item {
let obj = Modules.Objects.currentObjectsByName[objName]
// Set values
if(parent.userPickX && parent.userPickY) {
history.addToHistory(new JS.HistoryLib.EditedPosition(
Modules.History.addToHistory(new JS.HistoryLib.EditedPosition(
objName, objType, obj[propertyX], newValueX, obj[propertyY], newValueY
))
obj[propertyX] = newValueX
@ -124,7 +124,7 @@ Item {
objectLists.update()
pickerRoot.picked(obj)
} else if(parent.userPickX) {
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
objName, objType, propertyX, obj[propertyX], newValueX
))
obj[propertyX] = newValueX
@ -132,7 +132,7 @@ Item {
objectLists.update()
pickerRoot.picked(obj)
} else if(parent.userPickY) {
history.addToHistory(new JS.HistoryLib.EditedProperty(
Modules.History.addToHistory(new JS.HistoryLib.EditedProperty(
objName, objType, propertyY, obj[propertyY], newValueY
))
obj[propertyY] = newValueY